支出 API
Spendint API は、カタログ、価格、在庫状況、注文、出荷、請求書の情報をサードパーティからServiceNowインスタンスにプッシュするエンドポイントを提供します。この API は Source-to-Pay 統合フレームワーク アプリケーションの一部です。
この API は、調達統合フレームワーク (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 からのサードパーティ統合によって入力されます。
ステータステーブル
製品の一括インポート要求のステータスを確認するには、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/catalog
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| mode | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| 顧客_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 | 製品属性を定義するキーと値のペアのリストです。例:「色」:「スペースグレー」。製品には複数の属性を使用できます。ただし、価格設定または在庫状況に影響を与える属性のみを 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 アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| 成功 | 成功。要求が正常に処理されました。 |
| 失敗 | 不成功。要求はエラーで処理されました。 |
応答本文のパラメーター (JSON)
これらの応答本文パラメーターは、同期モードでクエリされたときに受信されます。| 名前 | 説明 |
|---|---|
| error_response_body | sku、mpn、およびエラーメッセージ別に一覧表示されるエラーの説明。 データタイプ:アレイ |
| error_response_body.error_message | 詳細なエラーメッセージ。 データタイプ:文字列 |
| status_code | 「成功」や「失敗」などの応答ステータス。 データタイプ:文字列 |
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 を使用して既存のサプライヤー製品を検索します。一致するサプライヤー製品が存在する場合、対応する契約価格が更新されます。一致するサプライヤー製品が見つからない場合は、価格設定を更新しようとしている製品が存在しないことを示すエラーメッセージが生成されます。
ステータステーブル
価格インポート要求のステータスを確認するには、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/price
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| mode | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| catalog_id | 必須です。顧客が購入できるカタログコンテンツの識別子。 データタイプ:文字列 最大長:100 |
| 顧客_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 アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| 成功 | 成功。要求が正常に処理されました。 |
| 失敗 | 不成功。要求はエラーで処理されました。 |
応答本文のパラメーター (JSON)
これらの応答本文パラメーターは、同期モードでクエリされたときに受信されます。| 名前 | 説明 |
|---|---|
| error_response_body | SKU とエラーメッセージごとに一覧表示されるエラーの説明。 データタイプ:アレイ |
| error_response_body.error_message | 詳細なエラーメッセージ。 データタイプ:文字列 |
| status_code | 「成功」や「失敗」などの応答ステータス。 データタイプ:文字列 |
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 フィールドが更新されます。一致するサプライヤー製品が見つからない場合は、可用性を更新しようとしている製品が存在しないことを示すエラーメッセージが生成されます。
ステータステーブル
可用性更新要求のステータスを確認するには、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/availability
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| mode | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| catalog_id | 必須です。顧客が購入できるカタログコンテンツの識別子。 データタイプ:文字列 最大長:100 |
| 顧客_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 アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| 成功 | 成功。要求が正常に処理されました。 |
| 失敗 | 不成功。要求はエラーで処理されました。 |
応答本文のパラメーター (JSON)
これらの応答本文パラメーターは、同期モードでクエリされたときに受信されます。| 名前 | 説明 |
|---|---|
| error_response_body | SKU とエラーメッセージごとに一覧表示されるエラーの説明。 データタイプ:アレイ |
| error_response_body.error_message | 詳細なエラーメッセージ。 データタイプ:文字列 |
| status_code | 「成功」や「失敗」などの応答ステータス。 データタイプ:文字列 |
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ヘッダーの場合は sysparm_query=purchase_order.supplier_id=<supplier_id>^purchase_order.status=20
- 該当する場合、発注書 (PO) と発注明細がエンタープライズリソースプランニング (ERP) に送信されます。
- 発注書と発注書明細は、顧客 ID、サプライヤー ID、発注書番号、注文日、発注金額、発注書金額通貨、発注明細を使用して、統合を通じてサードパーティに転送されます。
- サードパーティのカタログ統合と ERP の両方で確認メッセージが受信されるまで、発注書と発注書明細は [送信待ち] ステータスのままになります。確認を受信すると、ステータスが [注文済み] に更新されます。ERP 統合が関係しない場合、サードパーティ統合からの確認メッセージのみが必要です。
ステータステーブル
注文確認要求のステータスを確認するには、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/orderack
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| mode | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| 顧客_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 アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| 成功 | 成功。要求が正常に処理されました。 |
| 失敗 | 不成功。要求はエラーで処理されました。 |
応答本文のパラメーター (JSON)
これらの応答本文パラメーターは、同期モードでクエリされたときに受信されます。| 名前 | 説明 |
|---|---|
| error_response_body | 受注番号、受注明細行番号、およびエラーメッセージでリストされたエラーの説明。 データタイプ:アレイ |
| error_response_body.error_message | 詳細なエラーメッセージ。 データタイプ:文字列 |
| status_code | 「成功」や「失敗」などの応答ステータス。 データタイプ:文字列 |
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 | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| 顧客_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 アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| 成功 | 成功。要求が正常に処理されました。 |
| 失敗 | 不成功。要求はエラーで処理されました。 |
応答本文のパラメーター (JSON)
これらの応答本文パラメーターは、同期モードでクエリされたときに受信されます。| 名前 | 説明 |
|---|---|
| error_response_body | 受注明細行番号、受注番号、仕入先出荷番号、およびエラーメッセージで一覧表示されたエラーの説明。 データタイプ:アレイ |
| error_response_body.error_message | 詳細なエラーメッセージ。 データタイプ:文字列 |
| status_code | 「成功」や「失敗」などの応答ステータス。 データタイプ:文字列 |
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
サードパーティプロバイダーからの請求書を受け入れます。
発注書 (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
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| mode | サードパーティ統合のための非同期モードと同期モードのサポート。 データタイプ:文字列 有効な値:
デフォルト:非同期 |
| 名前 | 説明 |
|---|---|
| currency | 必須です。小計、税金、および送料の通貨。小計、税金、および配送料は同じ通貨である必要があります。 データタイプ:文字列 最大長:40 |
| 顧客_ID | 顧客の識別子。 データタイプ:文字列 最大長:100 |
| 割引 | 請求書に適用される割引。これは編集可能なフィールドです。 データタイプ:文字列 最大長:100 |
| invoice_date | 必須です。顧客に請求された日付。 データタイプ:文字列 最大長:40 形式:YYYY-MM-DD |
| invoice_lines | この注文内の購入に対して請求される明細を定義するオブジェクトのリスト。 データタイプ:アレイ |
| 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 アクションにのみ適用されるか、別の方法でこのアクションに適用されます。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。
| ステータスコード | 説明 |
|---|---|
| 成功 | 成功。要求が正常に処理されました。 |
| 失敗 | 不成功。要求はエラーで処理されました。 |
応答本文のパラメーター (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"
}
]
}
]
}
}