Spendint API - POST /sn_spend_intg/spendint/invoice

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

    発注書と発注明細が [保留中の送信] ステータスで、発注書と発注明細が設定されていない場合、サードパーティリセラーからの出荷と請求書の転記は許可されません。これは、発注書および発注明細のステータスが [オーダー] の場合にのみ許可されます。また、出荷と請求書の転記に連続した制限はありません。

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

    有効な請求書が品目に転記されると、その請求書は更新できなくなります。

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

    ステータステーブル

    請求書要求のステータスを確認するには、テーブル 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 サードパーティ統合のための非同期モードと同期モードのサポート。

    データタイプ:文字列

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

    デフォルト:非同期

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

    データタイプ:文字列

    最大長:40

    customer_id 顧客に対する識別子。

    データタイプ:文字列

    最大長:100

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

    データタイプ:文字列

    最大長:100

    invoice_date 必須です。顧客が請求された日付。

    データタイプ:文字列

    最大長:40

    形式:YYYY-MM-DD

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

    データタイプ:アレイ

    "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

    shipping 必須です。購入全体の合計送料。

    データタイプ:文字列

    最大長:40

    subtotal 必須。税金と配送料を除いたサプライヤーに支払われる合計金額。

    データタイプ:文字列

    最大長: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

    注:
    Procurement Integration Framework では application/json データ形式のみがサポートされています。
    表 : 5. 応答ヘッダー
    ヘッダー 説明
    なし

    ステータスコード

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

    表 : 6. ステータスコード
    ステータスコード 説明
    success 成功。要求が正常に処理されました。
    failure 不成功。要求が処理されました (エラーあり)。

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

    これらの応答本文パラメーターは、同期モードで照会されたときに受信されます。
    名前 説明
    error_response_body 受注明細行番号、受注番号、サプライヤー請求書番号、サプライヤー請求書明細行番号、およびエラーメッセージ別にリストされたエラーの説明。

    データタイプ:アレイ

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

    データタイプ:文字列

    status_code 「success」や「failure」などの応答ステータス。

    データタイプ:文字列

    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"
                        }
                    ]
                }
            ]
        }
    }