Spendint API - POST /sn_spend_intg/spendint/invoice

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:9分
  • サードパーティプロバイダーからの請求書を受け入れます。

    発注書 (PO) と発注書 (PO) 明細行が [送信待ち] ステータスで、販売注文明細行と販売注文明細行が入力されていない場合、サードパーティ リセラーからの出荷と請求書の転記は許可されません。これは、発注書と発注書明細のステータスが [注文済み] の場合にのみ許可されます。また、出荷と請求書の転記に順次制限はありません。

    請求書が送信されると、請求書と請求書明細行が発注書にマッピングされます。マッピングに成功すると、請求書のステータスは次のように設定されます。
    • 配送待ち:受領書が存在しない場合、注文の一部が配送されたか、請求書の承認が必要です。
    • 請求確認済み:発注書が配達され、請求された金額が発注書の合計金額と一致した場合。
    • レビューが必要:発注書が納品され、請求金額が発注書の合計金額と一致しない場合。

    明細品目に対して有効な請求書が転記された場合、同じ請求書を更新することはできません。

    指定された請求書に発注書番号がない場合、請求書は却下され、指定された請求書の 1 つ以上の発注書番号がないことを示すエラーメッセージが表示されます。提供された請求書に発注書番号があるが、発注書と一致しない場合、または発注書が存在しない場合は、エラーメッセージが表示されます。このメッセージには、1 つ以上の請求書に、請求書の発注書番号と一致する対応する発注書がないことが示されます。また、サードパーティのリセラーから送信された請求金額が請求金額と一致しない場合、請求書は却下されます。

    ステータステーブル

    請求書要求のステータスを確認するには、Table REST API を使用して ServiceNow データベースに REST 呼び出しを行います。API からの応答には、請求書の作成に失敗したレコードが一覧表示されます。請求書応答の場合は、次のパラメーターを使用して請求書エラーテーブルをクエリします。

    sysparm_query=outbound_error.supplier_id=<supplier_id>^outbound_error.state=20

    顧客 ID、サプライヤー ID、エラータイプ、一意のインポートセット ID、ステータスの詳細は、親エラーテーブルである送信ステータステーブルにあります。

    URL 形式

    /api/sn_spend_intg/spendint/invoice

    サポートされている要求パラメーター

    表 : 1. パスパラメーター
    名前 説明
    なし
    表 : 2. クエリパラメーター
    名前 説明
    mode サードパーティ統合のための非同期モードと同期モードのサポート。

    データタイプ:文字列

    有効な値:
    • async:非同期モード。
    • sync:同期モード。

    デフォルト:非同期

    表 : 3. 要求本文パラメーター (XML または JSON)
    名前 説明
    currency 必須。小計、税金、および送料の通貨。小計、税金、および配送料は同じ通貨である必要があります。

    データタイプ:文字列

    最大長:40

    顧客_ID 顧客の識別子。

    データタイプ:文字列

    最大長:100

    割引 請求書に適用される割引。これは編集可能なフィールドです。

    データタイプ:文字列

    最大長:100

    invoice_date 必須。顧客に請求された日付。

    データタイプ:文字列

    最大長:40

    形式:YYYY-MM-DD

    invoice_lines この注文内の購入に対して請求される明細を定義するオブジェクトのリスト。

    データタイプ:アレイ

    "invoice_lines": [
      {
        "invoiced_line_amount": "String",
        "invoiced_quantity": "String",
        "line_number": "String",
        "supplier_invoice_line_number": "String",
        "sales_order_line_number": "String"
      }
    ]
    invoice_lines.invoiced_line_amount 必須。特定の発注書明細について顧客に請求される総コスト (税金と配送料を除く)。

    データタイプ:文字列

    最大長:40

    invoice_lines.invoiced_quantity 必須。顧客に請求される商品またはサービスの数量。

    データタイプ:文字列

    最大長:40

    invoice_lines.line_number 必須。特定の購入に対して顧客が生成した発注書明細番号。

    データタイプ:文字列

    最大長:40

    invoice_lines.sales_order_line_number 必須。サプライヤーによって生成された受注明細行番号。

    データタイプ:文字列

    最大長:40

    invoice_lines.supplier_invoice_line_number 必須。この請求書項目に対してサプライヤーによって生成された識別番号。

    データタイプ:文字列

    最大長:100

    other_charges 請求書に関連するその他の追加料金。これは編集可能なフィールドです。

    データタイプ:文字列

    最大長:100

    order_number 必須。この注文に対して顧客から提供された発注書番号。

    データタイプ:文字列

    最大長:40

    remit_to_address 必須。支払い先の場所。

    データタイプ:文字列

    最大長:1000

    sales_order_number 必須。この注文に対してサプライヤーによって生成された番号または値。

    データタイプ:文字列

    最大長:40

    出荷 必須。購入全体の合計送料。

    データタイプ:文字列

    最大長:40

    小計 必須。税金および配送料を除き、仕入先に支払う合計金額。

    データタイプ:文字列

    最大長:40

    supplier_id 必須。顧客が注文できるリセラーまたはサプライヤーの識別子。

    データタイプ:文字列

    最大長:100

    supplier_invoice_number 必須。この請求書に対してサプライヤーによって生成された識別番号。

    データタイプ:文字列

    最大長:100

    supplier_tax_id サードパーティの再販業者に関連付けられている税識別子。これは編集可能なフィールドです。

    データタイプ:文字列

    最大長:100

    tax 必須。購入に対して請求される税の合計額。

    データタイプ:文字列

    最大長:40

    tax_rate 注文に適用される税率。これは編集可能なフィールドです。

    データタイプ:文字列

    最大長:100

    third_party_import_id インポートされたデータのセットを一意に識別するために文字列値を渡すことをサードパーティに有効にする識別子。

    データタイプ:文字列

    最大長:100

    total_amount_invoiced 必須。税金と配送料を含めて、サプライヤーに支払う合計金額。

    データタイプ:文字列

    最大長:40

    ヘッダー

    次の要求ヘッダーと応答ヘッダーは、この HTTP アクションにのみ適用されるか、別の方法でこのアクションに適用されます。

    表 : 4. 要求ヘッダー
    ヘッダー 説明
    受容 応答本文のデータ形式。サポートされているタイプ: application/json または application/xml

    デフォルト: application/json

    注:
    調達統合フレームワークでは、 application/json データ形式のみがサポートされています。
    表 : 5. 応答ヘッダー
    ヘッダー 説明
    なし

    ステータスコード

    この HTTP アクションには、次のステータスコードが適用されます。

    表 : 6. ステータスコード
    ステータスコード 説明
    成功 成功。要求が正常に処理されました。
    失敗 不成功。要求はエラーで処理されました。

    応答本文のパラメーター (JSON)

    これらの応答本文パラメーターは、同期モードでクエリされたときに受信されます。
    名前 説明
    error_response_body 受注明細行番号、受注番号、仕入先請求書番号、仕入先請求書明細行番号、およびエラーメッセージで一覧表示されるエラーの説明。

    データタイプ:アレイ

    error_response_body.error_message 詳細なエラーメッセージ。

    データタイプ:文字列

    status_code 「成功」や「失敗」などの応答ステータス。

    データタイプ:文字列

    cURL 要求

    curl "https://instance.service-now.com/api/sn_spend_intg/spendint/invoice" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root":[{
      "customer_id": "Customer - A",
      "supplier_id": "SUP-123456",
      "third_party_import_id": "undefined",
      "supplier_invoice_number": "QAAP89873220071",
      "supplier_tax_id": "TIN000000",
      "order_number": "POL7987633",
      "sales_order_number": "SO0000000081",
      "invoice_date": "YYYY-MM-DD",
      "subtotal": "6000",
      "tax_rate": "10%",
      "tax": "600",
      "shipping": "120",
      "other_charges": "100",
      "discounts": "200",
      "total_amount_invoiced": "6620",
      "remit_to_address": "1640 Camino Del Rio North #202, San Diego,CA",
      "currency": "USD",
      "invoice_lines": [
        {
          "supplier_invoice_line_number": "QA789A867877ABN32251",
          "line_number": "POL587667",
          "sales_order_line_number": "SOL00000081",
          "invoiced_quantity": "45",
          "invoiced_line_amount": "4000"
        },
        {
          "line_number": "POL587668",
          "supplier_invoice_line_number": "78987323",
          "sales_order_line_number": "SOL98769",
          "invoiced_quantity": "12",
          "invoiced_line_amount": "2000"
        }
      ]
    }
    ]}

    考えられる回答:

    // Success response:
    {
        "result": {
            "response": "success"
        }
    }
    
    // Error response:
    {
        "result": {
            "response": [
                {
                    "customer_id": "Customer - A",
                    "supplier_id": "SUP-123456",
                    "third_party_import_id": "undefined",
                    "status_code": "failure",
                    "error_response_body": [
                        {
                            "sales_order_line_number": "SOL00000081",
                            "sales_order_number": "SO0000000081",
                            "supplier_invoice_number": "QAAP89873220071",
                            "supplier_invoice_line_number": "QA789A867877ABN32251",
                            "error_message": "The invoice do not have a corresponding purchase order which matches the purchase order number of the invoice provided\n"
                        }
                    ]
                }
            ]
        }
    }