Spendint API
Spendint API は、カタログ、価格、使用可否、注文、出荷、および請求書の情報をサードパーティから ServiceNow インスタンスにプッシュするエンドポイントを提供します。この API は Source-to-Pay 統合フレームワーク アプリケーションの一部です。
この API は Procurement Integration Framework (com.glide.sn_spend_intg) ストアアプリケーションを必要とし、sn_spend_intg 名前空間内で提供されます。詳細については、「Procurement File Transfer Framework」を参照してください。
この API にアクセスするには、sn_spend_intg.procurement_integrator ロールが必要です。
Spendint API - POST /sn_spend_intg/spendint/catalog
サプライヤーが複数のカタログを転記して、サプライヤー製品、モデル製品、契約、および価格設定レコードを作成できるようにします。
- 新しいサードパーティカテゴリを作成し、これらのカテゴリをモデルカテゴリにマップします。
- 可能な場合は、国連標準製品とサービスコード (UNSPSC) を使用してから、カテゴリ名を使用します。
- UNSPSC が利用できない場合は、カテゴリ名のみを使用します。
- サードパーティカテゴリをモデルカテゴリにマッピングした後、メーカー品番 (MPN) を使用して既存の製品モデルを検索します (利用可能な場合)。
- MPN の製品モデルが見つかった場合は、変更を加えて製品モデルを更新してから、製品モデルに関連するサプライヤー製品を作成または更新します。
- MPN の製品モデルが存在しない場合は、次の手順を実行します。
- 製品モデルクラスは、通常、製品のサードパーティカテゴリによって参照されているモデルカテゴリで利用できます。この製品モデルクラスを使用して、製品モデルを作成する必要がある製品モデルテーブル (ハードウェア、ソフトウェア、消耗品など) を取得します。利用可能な製品モデルクラスがない場合は、基本製品モデルテーブルに製品モデルを作成します。
- 正しい製品モデルクラスが特定されたら、次のように正しいクラスに新しい製品モデルを作成します。
- メーカー、公開者、またはプロバイダーは、製品モデルでメーカーにマップする必要があります。
- API からの製品名は、製品モデルの名前にマップする必要があります。
- API からの MPN は、モデル番号を更新する必要があります。
- API からの製品説明は、製品モデルの説明を更新する必要があります。
- モデルカテゴリは、サードパーティカテゴリレコードで参照されている製品カテゴリで更新する必要があります。
- 製品カテゴリは、サードパーティカテゴリレコードで参照されている製品カテゴリで更新する必要があります。
- API での代替製品に値がある場合は、現在の製品モデルと他の製品モデルの間に代替製品レコードを作成します。
- API での互換製品に値がある場合は、現在の製品モデルと他の製品モデルの間に互換製品レコードを作成します。
- API からの製品属性は、製品モデルの製品属性関連リストで作成または更新する必要があります。
- 製品モデルが利用可能な場合は、サプライヤーの部品番号を使用して、製品モデルに関連するサプライヤー製品を作成または更新します。
サードパーティモデルマッピング
- サードパーティカテゴリ:内部の既存のモデルカテゴリにマップする、ShoppingHub 管理者のすべてのサードパーティカテゴリレコードを保存します。
- サードパーティモデルマッピング:製品モデルとサードパーティモデルカテゴリ間のすべてのマッピング情報を保存します。
- サードパーティユニット:ShoppingHub 管理者がサプライヤー製品ユニットとマップするための、すべてのサードパーティユニットレコードを保存します。
- サードパーティユニットマッピング:製品モデルとサードパーティユニット間のすべてのマッピング情報を保存します。
サプライヤー製品の販売日
販売終了日を迎えたサプライヤー製品は廃止され、カタログで公開されなくなります。サプライヤー製品フォームの [販売開始日] フィールドと [販売終了日] フィールドは、カタログ API からのサードパーティ統合によって入力されます。
ステータステーブル
製品の一括インポート要求のステータスを確認するには、テーブル 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/catalog
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| mode | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| customer_id | 顧客に対する識別子。 データタイプ:文字列 最大長:100 |
| catalog_id | 顧客が購入できるカタログコンテンツの識別子。 データタイプ:文字列 最大長:100 |
| 製品 | 作成または更新する製品を定義するオブジェクトのリスト。各トランザクションには 1000 製品の制限があります。 データタイプ:アレイ |
| products.available_units | 在庫のある製品に必要です。この値は、この製品で利用可能なユニットの数量を示します。 データタイプ:文字列 最大長:40 |
| products.available_for_country | サプライヤー製品を購入できる国コードのリスト。国が指定されていない場合は、どの国のユーザーでも製品を購入できます。 データタイプ:アレイ |
| products.bundled_components | カタログペイロードの一部として製品バンドルを送信するシナリオでのみ有効で、親バンドルペイロードにのみ適用されます。この値には、子バンドルコンポーネントへの参照が含まれます。子バンドルコンポーネントの MPN と数量のリストは、ここで維持されます。 注: 子バンドルコンポーネントとその詳細 (MPN と数量) は、同じサプライヤーにマッピングする必要があります。同じ子バンドルコンポーネントがバンドル内に複数回追加される可能性があるため、入力された数量は同じ子バンドルコンポーネント間の差別化要素となります。 データタイプ:アレイ |
| products.contract_agreement | 製品の契約の詳細。 注:
これは、子バンドルコンポーネントには必要ありません。 データタイプ:オブジェクト |
| products.contract_agreement.contract_end_date | 契約期間の終了日付。 データタイプ:文字列 最大長:40 形式:YYYY-MM-DD |
| products.contract_agreement.contract_number | 必須です。製品に関連付けられているアクティブな契約の番号。 データタイプ:文字列 最大長:100 |
| products.contract_agreement.contract_start_date | 契約期間の開始日付。 データタイプ:文字列 最大長:40 形式:YYYY-MM-DD |
| products.contract_agreement.negotiated_currency | 必須です。交渉価格の通貨。 データタイプ:文字列 最大長:40 |
| products.contract_agreement.negotiated_price | 必須です。サプライヤーまたはリセラーとの契約を通じて交渉された製品の単価。 データタイプ:文字列 最大長:40 |
| products.delivery_time | 製品が顧客に出荷されるまでにかかる推定日数。この値は日数を表し、整数である必要があります。 データタイプ:文字列 最大長:40 |
| products.images | サプライヤー製品のイメージ URL を指定する文字列のリスト。 データタイプ:アレイ |
| products.manufacturer | 必須です。製品を製造、公開、または提供する会社。これは製品のサプライヤーまたはリセラーではありません。 データタイプ:文字列 最大長:100 |
| products.mpn | 必須です。メーカー、発行者、またはプロバイダーによって提供される製品の識別子。 注:
SKU 値が利用可能な場合、これはリセラーの親バンドルには必要ありません。 データタイプ:文字列 最大長:100 |
| products.parent_bundle | カタログペイロードの一部として製品バンドルを送信するシナリオでのみ有効で、子バンドルコンポーネントペイロードにのみ適用されます。子バンドルコンポーネントの場合、親への参照はここで維持されます。親の MPN と SKU の値もここで設定します。 データタイプ:文字列 最大長:100 |
| products.product_attributes | 製品属性を定義するキーと値のペアのリスト。たとえば、"Color": "Space Grey"。製品には複数の属性を使用できます。ただし、API を介して提供する必要があるのは、価格設定または在庫の有無に影響する属性のみです。データタイプ:オブジェクト |
| products.product_category_name | 必須です。unspsc プロパティを設定しない場合に入力する名前。この名前は、製品が属するカテゴリです。このカテゴリ名は、製品を購入するための商取引シナリオで使用できます。たとえば、電源タップ製品はオフィス機器カテゴリに属すことができます。 データタイプ:文字列 最大長:100 |
| products.product_description | 商取引エクスペリエンス内で購入者に表示される製品の完全な説明。 注:
特に子バンドルコンポーネントがある製品バンドルカタログアイテムについては、サプライヤーができるだけ詳細に説明することをお勧めします。 データタイプ:文字列 最大長:65000 |
| products.product_name | 必須です。製品の名前。 データタイプ:文字列 最大長:1000 |
| products.sku | 必須です。サプライヤーによって販売された製品を一意に識別するサプライヤーによって生成される番号。 データタイプ:文字列 最大長:100 |
| products.unit | 必須です。サプライヤーでの製品販売単位またはレート。たとえば、個数や時間などです。 データタイプ:文字列 最大長:40 |
| products.unspsc | 必須です。product_category_name プロパティを設定しない場合に入力する識別子。この識別子は、製品が属するカテゴリの UNSPSC です。たとえば、UNSPSC コード 43210000 は、製品カテゴリ「コンピューター」の識別子です。 データタイプ:文字列 最大長:100 |
| supplier_id | 必須です。顧客が注文できるリセラーまたはサプライヤーの識別子。 データタイプ:文字列 最大長:100 |
| third_party_import_id | この識別子により、サードパーティは、インポートされたデータのセットを一意に識別する文字列値を渡すことができます。 データタイプ:文字列 最大長:100 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| success | 成功。要求が正常に処理されました。 |
| failure | 不成功。要求が処理されました (エラーあり)。 |
応答本文のパラメーター (JSON)
これらの応答本文パラメーターは、同期モードで照会されたときに受信されます。| 名前 | 説明 |
|---|---|
| error_response_body | SKU、MPN、およびエラーメッセージでリストされたエラーの説明。 データタイプ:アレイ |
| error_response_body.error_message | 詳細なエラーメッセージ。 データタイプ:文字列 |
| status_code | 「success」や「failure」などの応答ステータス。 データタイプ:文字列 |
cURL 要求
curl "https://instance.service-now.com/api/sn_spend_intg/spendint/catalog" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root": [{
"customer_id": "AB-1234323",
"catalog_id": "ACME CORP-12347898",
"supplier_id": "SUP-123456",
"third_party_import_id": "DELL1234567",
"products": [
{
"product_name": "Apple MacBook Pro 13 Core i7",
"mpn": "Z0WQ-20004301931",
"sku": "55788741",
"manufacturer": "Apple",
"product_category_name": "Computer",
"parent_bundle": "920-0045362002",
"bundled_components": {
"mpn": "Z0WQ-20004301931",
"quantity": "4",
},
"unspsc": "43211500",
"product_description": "Apple MacBook Pro 13 Core i7 2.8GHz 16GB 512GB - Touch Bar - Space Gray",
"product_attributes": {
"Color": "Space Grey",
"RAM": "16GB",
"Screen Size": "13inch"
},
"images": ["http://test123.image1.png", "http://test123.image2.jpeg"],
"unit": "Each",
"available_units": "4",
"available_for_country": ["US","IN","GB"],
"delivery_time": "4",
"contract_agreement": {
"contract_number": "34567892",
"contract_start_date": "YYYY-MM-DD",
"contract_end_date": "YYYY-MM-DD",
"negotiated_price": "456",
"negotiated_currency ": "USD"
}
}
]
}
]}
考えられる応答:
// Success response:
{
"result": {
"response": "success"
}
}
// Error response:
{
"result": {
"response": [
{
"customer_id": "AB-1234323",
"supplier_id": "SUP-123456",
"third_party_import_id": "DELL1234567",
"status_code": "failure",
"error_response_body": [
{
"sku": "55788741",
"mpn": "Z0WQ-20004301931",
"error_message": "Field Value empty/Formatting issue Negotiated currency \n"
}
]
}
]
}
}
Spendint API - POST /sn_spend_intg/spendint/price
サプライヤー製品レコードの価格設定を更新します。
サプライヤー製品レコードの価格設定が利用可能な場合、API は製品 SKU を使用して既存のサプライヤー製品を検索します。一致するサプライヤー製品が存在する場合、対応する契約価格が更新されます。一致するサプライヤー製品が見つからない場合は、価格更新対象の製品が存在しないことを示すエラーメッセージが生成されます。
ステータステーブル
価格インポート要求のステータスを確認するには、テーブル 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/price
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| mode | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| catalog_id | 必須です。顧客が購入できるカタログコンテンツの識別子。 データタイプ:文字列 最大長:100 |
| customer_id | 必須です。顧客に対する識別子。 データタイプ:文字列 最大長:100 |
| 製品 | 作成または更新する製品を定義するオブジェクトのリスト。各トランザクションには 1000 製品の制限があります。 データタイプ:アレイ |
| products.contract_agreement | 製品の契約の詳細。 データタイプ:オブジェクト |
| products.contract_agreement.contract_end_date | 契約期間の終了日付。 データタイプ:文字列 最大長:40 形式:YYYY-MM-DD |
| products.contract_agreement.contract_number | 必須です。製品に関連付けられているアクティブな契約の番号。 データタイプ:文字列 最大長:100 |
| products.contract_agreement.contract_start_date | 契約期間の開始日付。 データタイプ:文字列 最大長:40 形式:YYYY-MM-DD |
| products.contract_agreement.negotiated_currency | 必須です。交渉価格の通貨。 データタイプ:文字列 最大長:40 |
| products.contract_agreement.negotiated_price | 必須です。サプライヤーまたはリセラーとの契約を通じて交渉された製品の単価。 データタイプ:文字列 最大長:40 |
| products.sku | 必須です。サプライヤーによって販売された製品を一意に識別するサプライヤーによって生成される番号。 データタイプ:文字列 最大長:100 |
| supplier_id | 必須です。顧客が注文できるリセラーまたはサプライヤーの識別子。 データタイプ:文字列 最大長:100 |
| third_party_import_id | この識別子により、サードパーティは、インポートされたデータのセットを一意に識別する文字列値を渡すことができます。 データタイプ:文字列 最大長:100 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| success | 成功。要求が正常に処理されました。 |
| failure | 不成功。要求が処理されました (エラーあり)。 |
応答本文のパラメーター (JSON)
これらの応答本文パラメーターは、同期モードで照会されたときに受信されます。| 名前 | 説明 |
|---|---|
| error_response_body | SKU およびエラーメッセージ別にリストされたエラーの説明。 データタイプ:アレイ |
| error_response_body.error_message | 詳細なエラーメッセージ。 データタイプ:文字列 |
| status_code | 「success」や「failure」などの応答ステータス。 データタイプ:文字列 |
cURL 要求
curl "https://instance.service-now.com/api/sn_spend_intg/spendint/price" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root": [{
"customer_id": "ACME CORP",
"catalog_id": "AB-1234323",
"supplier_id": "SUP-123456",
“third_party_import_id”: “DEL789876",
"products": [
{
"sku": "5578874",
"contract_agreement": {
"contract_number": "34567892",
"contract_start_date": "YYYY-MM-DD",
"contract_end_date": "YYYY-MM-DD",
"negotiated_price": "456",
"negotiated_currency ": "USD"
}
}
]
}
]}
考えられる応答:
// Success response:
{
“result”: {
“response”: “success”
}
}
// Error response:
{
“result”: {
“response”: [
{
“customer_id”: “ACME CORP”,
“supplier_id”: “SUP-123456”,
“third_party_import_id”: “DEL789876",
“status_code”: “failure”,
“error_response_body”: [
{
“sku”: “5578874”,
“error_message”: “The product for which you are trying to update pricing does not exist\nField Value empty/Formatting issue Negotiated currency\nField Value empty/Formatting issue Contract start date\nField Value empty/Formatting issue Contract end date\n”
}
]
}
]
}
}
Spendint API - POST /sn_spend_intg/spendint/availability
サプライヤー製品レコードの使用可否を更新します。
サプライヤー製品レコードが利用可能な場合、API は製品 SKU を使用して既存のサプライヤー製品を検索します。一致する場合サプライヤー製品が存在する場合、対応する available_units フィールドが更新されます。一致するサプライヤー製品が見つからない場合は、使用可否の更新対象の製品が存在しないことを示すエラーメッセージが生成されます。
ステータステーブル
使用可否更新要求のステータスを確認するには、テーブル 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/availability
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| mode | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| catalog_id | 必須です。顧客が購入できるカタログコンテンツの識別子。 データタイプ:文字列 最大長:100 |
| customer_id | 必須です。顧客に対する識別子。 データタイプ:文字列 最大長:100 |
| 製品 | 更新する製品を定義するオブジェクトのリスト。各トランザクションには 1000 製品の制限があります。 データタイプ:アレイ |
| products.available_units | 在庫のある製品に必要です。この製品で利用可能なユニットの数。 データタイプ:文字列 最大長:40 |
| products.sku | 必須です。サプライヤーによって販売された製品を一意に識別する、サプライヤーによって生成される番号。 データタイプ:文字列 最大長:100 |
| products.unit | 必須です。サプライヤーでの製品販売単位またはレート。たとえば、個数や時間などです。 データタイプ:文字列 最大長:100 |
| supplier_id | 顧客が注文できるリセラーまたはサプライヤーの識別子。 データタイプ:文字列 最大長:100 |
| third_party_import_id | インポートされたデータのセットを一意に識別するための文字列値を渡すことをサードパーティに許可します。 データタイプ:文字列 最大長:100 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| success | 成功。要求が正常に処理されました。 |
| failure | 不成功。要求が処理されました (エラーあり)。 |
応答本文のパラメーター (JSON)
これらの応答本文パラメーターは、同期モードで照会されたときに受信されます。| 名前 | 説明 |
|---|---|
| error_response_body | SKU およびエラーメッセージ別にリストされたエラーの説明。 データタイプ:アレイ |
| error_response_body.error_message | 詳細なエラーメッセージ。 データタイプ:文字列 |
| status_code | 「success」や「failure」などの応答ステータス。 データタイプ:文字列 |
cURL 要求
curl "https://instance.servicenow.com/api/sn_spend_intg/spendint/availability" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root": [{
"customer_id": "AB-1234323",
"catalog_id": "ACME CORP",
"supplier_id": "SUP-123456",
"third_party_import_id": "DEL6789876",
"products": [
{
"sku": "5578874",
"unit": "Each",
"available_units": "20"
}
]
}
]}
考えられる応答:
// Success response:
{
"result": {
"response": "success"
}
}
Error response:
{
"result": {
"response": [
{
"customer_id": "AB-1234323",
"supplier_id": "SUP-123456",
"third_party_import_id": "DEL6789876",
"status_code": "failure",
"error_response_body": [
{
"sku": "5578874",
"error_message": "The product for which you are trying to update availability does not exist\nField Value empty/Formatting issue Unit\n"
}
]
}
]
}
}
Spendint API - POST /sn_spend_intg/spendint/orderack
ユーザーがサードパーティカタログから製品を購入する際の注文情報を更新します。ユーザーがチェックアウトすると、購入の承認またはその他のタスクを完了できるように購入明細が作成されます。
- 送信オーダー:注文ヘッダーが含まれます。
- 送信オーダーライン:オーダーラインが含まれます。
サプライヤーは、これらのテーブルをクエリし、処理待ちの注文をフェッチする必要があります。サプライヤーは、ServiceNow データベースと統合するための ワークフロースタジオ アクションのスコープ対象アプリを作成する必要があります。
sysparm_query=supplier_id=<supplier_id>^purchase_order.status=20 for headersysparm_query=purchase_order.supplier_id=<supplier_id>^purchase_order.status=20 for header
- 該当する場合、発注書と発注明細はエンタープライズリソースプランニング (ERP) に送信されます。
- 発注書と発注明細は、顧客 ID、サプライヤー ID、発注書番号、注文日、発注書金額、発注書金額通貨、および発注明細とともに、統合を通じてサードパーティに転送されます。
- 発注書と発注明細は、サードパーティカタログの統合と ERP の両方が確認メッセージを受信するまで、[保留中の送信] ステータスのままになります。確認を受信した後、ステータスが [オーダー] に更新されます。ERP Integration が関連していない場合は、サードパーティ統合からの確認メッセージのみが必要です。
ステータステーブル
注文確認要求のステータスを確認するには、テーブル 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/orderack
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| mode | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| customer_id | 必須です。顧客に対する識別子。 データタイプ:文字列 最大長:100 |
| order_number | 必須です。この注文に対して顧客から提供された発注書番号。 データタイプ:文字列 最大長:40 |
| sales_order_lines | この注文の購入に対する一意の更新を含む受注明細行を定義するオブジェクトのリスト。 データタイプ:アレイ |
| sales_order_lines.estimated_arrival_date | 注文の到着予定日。 データタイプ:文字列 最大長:40 形式:YYYY-MM-DD |
| sales_order_lines.line_number | 必須です。特定の購入について顧客が生成された発注書明細行番号。 データタイプ:文字列 最大長:40 |
| sales_order_lines.sales_order_line_number | サプライヤーによって生成された受注明細行番号。この番号は、この購入のリビジョンにのみ必要です。 データタイプ:文字列 最大長:40 |
| sales_order_number | この注文についてサプライヤーが生成した番号または値。 データタイプ:文字列 最大長:40 |
| status_code | 必須です。注文が正常に行われたかどうかを確認する送信済み注文のステータス。 データタイプ:文字列 有効な値:
|
| status_message | ステータスコードに添付されたメッセージ。たとえば、注文が正常に行われて取り寄せ中であるメッセージが表示される場合があります。 データタイプ:文字列 最大長:1000 |
| supplier_id | 必須です。顧客が注文できるリセラーまたはサプライヤーの識別子。 データタイプ:文字列 最大長:100 |
| third_party_import_id | この識別子により、サードパーティは、インポートされたデータのセットを一意に識別する文字列値を渡すことができます。 データタイプ:文字列 最大長:100 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| 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/orderack" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root":[{
"customer_id": "ACME CORP",
"supplier_id": "SUP-123456",
"third_party_import_id": "undefined",
"order_number": "PO08903323",
"sales_order_number": "SO03323212",
"status_code": "CONFIRMED",
"status_message": "BACKORDERED",
"sales_order_lines":[
{
"line_number": "POL6789876",
"sales_order_line_number": "SOL5678909",
"estimated_arrival_date": "YYYY-MM-DD"
}
]
}
]}
考えられる応答:
// Success response:
{
"result": {
"response": "success"
}
}
// Error response:
{
"result": {
"response": [
{
"customer_id": "ACME CORP",
"supplier_id": "SUP-123456",
"third_party_import_id": "undefined",
"status_code": "failure",
"error_response_body": [
{
"sales_order_number": "SO03323212",
"sales_order_line_number": "SOL5678909",
"error_message": "Field Value empty/Formatting issue Purchase order number\nField Value empty/Formatting issue Purchase order line number\n"
}
]
}
]
}
}
Spendint API - POST /sn_spend_intg/spendint/shipment
このエンドポイントを使用して、サードパーティからの購入に関する更新を受け入れます。
ステータステーブル
出荷要求のステータスを確認するには、テーブル 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/shipment
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| mode | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| customer_id | 顧客に対する識別子。 データタイプ:文字列 最大長:100 |
| order_number | 必須です。この注文に対して顧客から提供された発注書番号。 データタイプ:文字列 最大長:40 |
| sales_order_number | 必須です。この注文についてサプライヤーが生成した番号または値。 データタイプ:文字列 最大長:40 |
| shipment_lines | 資産のシリアル番号、IMEI 番号、および資産タグの詳細を含めることができる出荷明細のリスト。 データタイプ:アレイ |
| shipment_lines.actual_shipment_date | 貨物がサプライヤーの場所を離れる日。 データタイプ:文字列 最大長:40 形式:YYYY-MM-DD |
| shipment_lines.estimated_arrival_date | 貨物が指定された場所に到着する予定日。 データタイプ:文字列 最大長:40 形式:YYYY-MM-DD |
| shipment_lines.line_number | 必須です。特定の購入について顧客で生成される発注書明細行番号。 データタイプ:文字列 最大長:40 |
| shipment_lines.planned_shipment_date | 貨物がサプライヤーの場所を離れる予定日。 データタイプ:文字列 最大長:40 形式:YYYY-MM-DD |
| shipment_lines.product_details | 出荷される製品の詳細を定義するオブジェクトのリスト。オプションには、シリアル番号、IMEI 番号、および資産タグの詳細が含まれます。 データタイプ:アレイ |
| shipment_lines.product_details.asset_tag | 出荷された製品の資産タグ。 データタイプ:文字列 最大長:100 |
| shipment_lines.product_details.imei | 出荷された製品の IMEI 番号。 データタイプ:文字列 最大長:100 |
| shipment_lines.product_details.serial_number | 必須です。出荷された製品のシリアル番号。 データタイプ:文字列 最大長:100 |
| shipment_lines.sales_order_line_number | サプライヤーによって生成される受注明細行番号。この番号は、この購入のリビジョンにのみ必要です。 データタイプ:文字列 最大長:40 |
| shipment_lines.shipping_address | 製品の出荷先住所。 データタイプ:オブジェクト |
| shipment_lines.shipping_address.city | 製品の出荷先住所の市町村名。 データタイプ:文字列 最大長:1000 |
| shipment_lines.shipping_address.country | 製品の出荷先の国。 データタイプ:文字列 最大長:40 |
| shipment_lines.shipping_address.name | 製品の出荷先の顧客の名前。 データタイプ:文字列 最大長:1000 |
| shipment_lines.shipping_address.state | 製品の出荷先の州/都道府県。 データタイプ:文字列 最大長:1000 |
| shipment_lines.shipping_address.street | 製品の出荷先住所の番地名。 データタイプ:文字列 最大長:1000 |
| shipment_lines.shipping_address.zip_code | 製品の出荷先の郵便番号または PIN コード。 データタイプ:文字列 最大長:40 |
| shipment_lines.shipment_quantity | 必須です。物品として出荷されている製品の数。この数には、出荷されている製品の数量が含まれている必要があります。 データタイプ:文字列 最大長:40 |
| shipment_lines.shipping_carrier | FedEx、UPS、USPS など、指定された場所に製品を配送する配送業者。 データタイプ:文字列 最大長:100 |
| shipment_lines.ship_to | 製品の出荷先の受取人の名前。 データタイプ:文字列 最大長:100 |
| shipment_lines.tracking_number | 購入の全体または一部について配送業者から提供された追跡番号。 データタイプ:文字列 最大長:100 |
| supplier_id | 必須です。顧客が注文できるリセラーまたはサプライヤーの識別子。 データタイプ:文字列 最大長:100 |
| supplier_shipment_number | 必須です。この出荷に対して生成された識別番号。通常、この番号は、エンタープライズリソースプランニング (ERP) または注文トラッキングシステムによって生成されます。 データタイプ:文字列 最大長:100 |
| third_party_import_id | この識別子により、サードパーティは、インポートされたデータのセットを一意に識別する文字列値を渡すことができます。 データタイプ:文字列 最大長:100 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| 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/shipment" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root":[{
"customer_id" : "ACME CORP",
"supplier_id" : "SUP-123456",
"third_party_import_id": "DEL2134324",
"supplier_shipment_number" : "TN-YU67898723",
"order_number": "PO0001002",
"sales_order_number": "SO00223002",
"shipment_lines": [
{
"line_number": "POL0001005",
"sales_order_line_number": "SOL0231325",
"shipment_quantity": "4",
"shipping_carrier": "FedEx",
"tracking_number": "E-901290092",
"shipping_address":
{
"name" : "1640 Camino Del Rio North #202, San Diego,CA",
"street" : "1640 Camino Del Rio North",
"city" : "San Diego",
"state" : "CA",
"zip_code" : "92108-1512",
"country" : "US"
},
"ship_to": "John doe",
"planned_shipment_date": "YYYY-MM-DD",
"actual_shipment_date": "YYYY-MM-DD",
"estimated_arrival_date": "YYYY-MM-DD",
"product_details": [
{
"serial_number": "FL1234-23242319001",
"imei": "2134890294",
"asset_tag": ""
},{
"serial_number": "FL1234-23242319110",
"imei": "245499003",
"asset_tag": ""
}
]
}
]
}
]}
考えられる応答:
// Success response:
{
"result": {
"response": "success"
}
}
// Error response:
{
"result": {
"response": [
{
"customer_id": "ACME CORP",
"supplier_id": "SUP-123456",
"third_party_import_id": "DEL2134324",
"status_code": "failure",
"error_response_body": [
{
"sales_order_line_number": "SOL0231325",
"sales_order_number": "SO00223002",
"supplier_shipment_number": "TN-YU67898723",
"error_message": "The purchase order for this shipment does not exist\nThe purchase order line for this shipment does not exist\n"
}
]
}
]
}
}
Spendint API - POST /sn_spend_intg/spendint/invoice
サードパーティプロバイダーからの請求書を受け入れます。
発注書と発注明細が [保留中の送信] ステータスで、発注書と発注明細が設定されていない場合、サードパーティリセラーからの出荷と請求書の転記は許可されません。これは、発注書および発注明細のステータスが [オーダー] の場合にのみ許可されます。また、出荷と請求書の転記に連続した制限はありません。
- 配信待ち:領収書がない場合、注文の一部が配送済みか、請求書の承認が必要です。
- 請求書確認済み:発注書が配送され、請求金額が発注書の合計金額と一致した場合。
- レビューが必要:発注書は配送されたが、請求金額が発注書の合計金額と一致しない場合。
有効な請求書が品目に転記されると、その請求書は更新できなくなります。
指定された請求書に発注書番号がない場合、請求書は却下され、指定された 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
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| mode | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| currency | 必須です。小計、税、および送料の通貨。小計、税、および送料は同じ通貨である必要があります。 データタイプ:文字列 最大長:40 |
| customer_id | 顧客に対する識別子。 データタイプ:文字列 最大長:100 |
| discounts | 請求書に適用される割引。これは編集可能なフィールドです。 データタイプ:文字列 最大長:100 |
| invoice_date | 必須です。顧客が請求された日付。 データタイプ:文字列 最大長:40 形式:YYYY-MM-DD |
| invoice_line | この注文内の購入に対して請求される明細を定義するオブジェクトのリスト。 データタイプ:アレイ |
| 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 アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| 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"
}
]
}
]
}
}