コンソリデーションフローを使って、1 日分の Japan Post の荷物を 1 枚の後納差出票にまとめます。
本ドキュメントでは、Zonos GraphQL API を使って Japan Post の 後納差出バッチ を作成する 3 段階のフローを説明します。コンソリデーションを作成(オープン)し、そこに n 件の出荷を追加してから、クローズして Japan Post の差出票(マニフェストドキュメント)を受け取ります。
米国向けと EU 向けの出荷も、同じ方法でバッチにまとめられます。EU 向けの出荷では、EU への発送の説明に従って、各出荷に IOSS と VAT のフィールドを設定してください。
Japan Post の後納制度を利用すると、マーチャントは荷物を差し出すたびに個別に支払うのではなく、1 日分の送料を営業終了時に 1 回の取引でまとめて精算できます。マーチャントは、最大 250 件の出荷を記載した 1 枚の 差出票 とともに、その日の荷物をすべて郵便局へ持ち込みます。郵便料金は、事前に登録された Later Pay Number(後納お客様番号)宛てに請求されます。
Japan Post のラベルを 1 件ずつ発行し、窓口で荷物ごとに支払っている場合、このフローは不要です。コンソリデーションを使わずに、単一出荷のチェーンを直接呼び出してください。
1. shipmentConsolidationCreate → open the batch (returns consolidation ID)
2. Attach shipments × n → create each shipment + label, attached to the batch
3. shipmentConsolidationUpdate(CLOSED) → close the batch (returns the dispatch slip)
ラベル作成時に追加する — ステップ 1 で取得したコンソリデーション ID を、shipmentConsolidationId フィールドで各 shipmentCreateWorkflow の呼び出しに渡します。
既存の出荷を ID で追加する — shipmentConsolidationCreate(バッチの初期メンバーとして登録する場合)または shipmentConsolidationUpdate(オープン中のバッチに追加する場合)で shipmentIds を渡します。各出荷には、Japan Post のラベルが作成済みである必要があります。
どちらの方法でも、各ラベルにはお客様の Later Pay Number が埋め込まれて作成されるため、ステップ 3 でバッチをクローズした際に、Japan Post がその出荷を差出票に受け入れます。
コンソリデーションをオープンします。キャリアコードによってバッチは Japan Post に固定されるため、メンバーとなるすべての出荷で Japan Post のサービスレベルを使用する必要があります。ラベル作成済みの出荷がすでにある場合は、その ID を shipmentIds で渡してバッチの初期メンバーとして登録できます。ない場合は空のバッチを作成し、ステップ 2 で出荷を追加してください。
Mutation:
mutation{
shipmentConsolidationCreate(input:{carrierCode: JAPAN_POST
accountNumber:"1111111111-222222-3333333333-444444"name:"Tokyo dispatch — 2026-05-01"externalId:"merchant-batch-20260501-001"shipmentIds:["shipment_01hxa...", "shipment_01hxb..."]}){
id
status
accountNumber
carrierCode
shipments {
id
}}}
フィールド↕
説明↕
carrierCode
必須。JAPAN_POST を指定します。
accountNumber
ハイフン区切りの Later Pay Number。作成時に形式が検証されるため、不正な値はクローズ時ではなく即座に拒否されます。省略した場合は、Japan Post アカウントに保存されているデフォルトのアカウント番号が使用されます。
name
任意。管理用のわかりやすい名前です。デフォルトはコンソリデーションの生成 ID です。
externalId
任意。社内で使用するバッチ識別子です。省略した場合は、コンソリデーションの生成 ID が使用されます。
shipmentIds
任意。最初に追加する出荷の ID です。空のままにすると、先にバッチをオープンし、ステップ 2 でラベル作成に合わせて出荷を追加できます。
{"data":{"shipmentConsolidationUpdate":{"id":"shco_01hjk...","status":"CLOSED","statusTransitions":[{"status":"OPEN","changedAt":"2026-05-01T08:00:00Z","note":"Shipment batch created"},{"status":"MANIFEST_CREATED","changedAt":"2026-05-01T17:30:12Z","note":"Dispatch slip created with Japan Post"},{"status":"CLOSED","changedAt":"2026-05-01T17:30:14Z","note":"Dispatch slip downloaded and uploaded"}],"customsDocuments":[{"documentType":"MANIFEST_DOCUMENT","fileUrl":"https://customs-docs.zonos.com/.../japanpost-dispatch-slip.pdf"}]}}}
Japan Post が差出票のリクエストを受け付けた 後(PDF の取得中など)にクローズの呼び出しが失敗した場合は、shipmentConsolidationUpdate(status: CLOSED) を安全に再試行できます。プラットフォームはキャリアへの呼び出しをスキップし、ドキュメントの取得と添付のみを再試行します。
Japan Post がリクエストを受け付ける 前(検証エラー、E0xx、ネットワークのタイムアウト)にクローズが失敗した場合、状態は何も変わっていません。根本原因を解決してから再試行してください。
GraphQL API ReferenceTypes, inputs, and operations used in this guide
バッチ差出(コンソリデーション)
バッチ差出(コンソリデーション)
コンソリデーションフローを使って、1 日分の Japan Post の荷物を 1 枚の後納差出票にまとめます。
本ドキュメントでは、Zonos GraphQL API を使って Japan Post の 後納差出バッチ を作成する 3 段階のフローを説明します。コンソリデーションを作成(オープン)し、そこに
n件の出荷を追加してから、クローズして Japan Post の差出票(マニフェストドキュメント)を受け取ります。米国向けと EU 向けの出荷も、同じ方法でバッチにまとめられます。EU 向けの出荷では、EU への発送の説明に従って、各出荷に IOSS と VAT のフィールドを設定してください。
このフローを使う場面
Japan Post の後納制度を利用すると、マーチャントは荷物を差し出すたびに個別に支払うのではなく、1 日分の送料を営業終了時に 1 回の取引でまとめて精算できます。マーチャントは、最大 250 件の出荷を記載した 1 枚の 差出票 とともに、その日の荷物をすべて郵便局へ持ち込みます。郵便料金は、事前に登録された Later Pay Number(後納お客様番号)宛てに請求されます。
Japan Post のラベルを 1 件ずつ発行し、窓口で荷物ごとに支払っている場合、このフローは不要です。コンソリデーションを使わずに、単一出荷のチェーンを直接呼び出してください。
概要
バッチに出荷を追加する方法は 2 つあります。インテグレーションに合う方法を選んでください(併用も可能です)。
shipmentConsolidationIdフィールドで各shipmentCreateWorkflowの呼び出しに渡します。shipmentConsolidationCreate(バッチの初期メンバーとして登録する場合)またはshipmentConsolidationUpdate(オープン中のバッチに追加する場合)でshipmentIdsを渡します。各出荷には、Japan Post のラベルが作成済みである必要があります。どちらの方法でも、各ラベルにはお客様の Later Pay Number が埋め込まれて作成されるため、ステップ 3 でバッチをクローズした際に、Japan Post がその出荷を差出票に受け入れます。
前提条件
Verified Account でこのフローを利用するには、次の条件を満たしている必要があります。
1111111111-222222-3333333333-444444のようなハイフン区切りの値です。ステップ 1 のshipmentConsolidationCreateでaccountNumberとして渡します。SHIPMENT_WRITEに加え、出荷ごとのワークフローに必要な標準スコープを持っていること。エンドポイントと認証
以下の 3 つのステップはすべて、同じエンドポイントに送信する GraphQL オペレーションです。ヘッダーに渡す内容はご利用形態によって異なります。該当するタブを選択してください。
URL:
ヘッダー:
自社の Verified Account で自社の注文を発送します。自社として認証するため、アカウントキーは不要です。
確認場所: Zonos Dashboard → Settings → Integrations → Account Key セクション。API key 行のトークンをコピーしてください。これが
credentialTokenです。リクエスト例
コンソリデーションをオープンする例です。mutation、変数、レスポンスをコピーして、用途に合わせて調整できます。これはフローを開始する、バッチ固有の呼び出しです。出荷の追加(ステップ 2)では単一出荷の例をそのまま利用し、バッチのクローズ(ステップ 3)ではマニフェストドキュメントが返されます。各フィールドの詳細は、以下の各ステップで説明します。
mutation ShipmentConsolidationCreate($input: ShipmentConsolidationCreateInput!) {shipmentConsolidationCreate(input: $input) {idstatusaccountNumbercarrierCode}}ステップ 1:
shipmentConsolidationCreateコンソリデーションをオープンします。キャリアコードによってバッチは Japan Post に固定されるため、メンバーとなるすべての出荷で Japan Post のサービスレベルを使用する必要があります。ラベル作成済みの出荷がすでにある場合は、その ID を
shipmentIdsで渡してバッチの初期メンバーとして登録できます。ない場合は空のバッチを作成し、ステップ 2 で出荷を追加してください。Mutation:
mutation { shipmentConsolidationCreate( input: { carrierCode: JAPAN_POST accountNumber: "1111111111-222222-3333333333-444444" name: "Tokyo dispatch — 2026-05-01" externalId: "merchant-batch-20260501-001" shipmentIds: ["shipment_01hxa...", "shipment_01hxb..."] } ) { id status accountNumber carrierCode shipments { id } } }carrierCodeJAPAN_POSTを指定します。accountNumbernameexternalIdshipmentIdsshipmentIdshipmentIdsを使用してください。レスポンス:
{ "data": { "shipmentConsolidationCreate": { "id": "shco_01hjk...", "status": "OPEN", "accountNumber": "1111111111-222222-3333333333-444444", "carrierCode": "JAPAN_POST", "shipments": [ { "id": "shipment_01hxa..." }, { "id": "shipment_01hxb..." } ] } } }id(例:shco_01HJK...)を控えておいてください。以降のすべての手順で使用します。statusはステップ 3 までOPENのままです。ステップ 2: 出荷を追加する
その日に発送する荷物ごとに、単一出荷のワークフローのチェーン全体を実行して、出荷とそのラベルを作成します。その後、以下のいずれかの方法で出荷をバッチに追加します。
オプション A: ラベル作成時に追加する
チェーンの最後の
shipmentCreateWorkflowステップで、コンソリデーション ID を渡します。それより前の mutation は、すべて単一出荷のワークフローと同じです。shipmentCreateWorkflowの関連フィールド:shipmentCreateWorkflow( input: { serviceLevel: "japan_post.air.ems_merchandise" shipmentConsolidationId: "shco_01hjk..." generateLabel: true } ) { id trackingDetails { number } shipmentCartons { label { labelImage } } }shipmentConsolidationIdserviceLeveljapan_post.*)を指定する必要があります。1 つのコンソリデーション内で複数のキャリアを混在させることはできません。オプション B: 既存の出荷を ID で追加する
出荷がすでに作成され、ラベルも発行済みの場合は、
shipmentConsolidationUpdateのshipmentIdsを使ってオープン中のバッチに追加します。mutation { shipmentConsolidationUpdate( input: { id: "shco_01hjk..." shipmentIds: ["shipment_01hxd...", "shipment_01hxe..."] } ) { id status shipments { id } } }出荷を追加している間は、input に
statusを含めないでください。バッチはOPENのまま維持されます。各出荷は、ステップ 3 でバッチをクローズする前に、Japan Post のサービスレベルを使用し、ラベル(追跡番号)を持っている必要があります。追加がラベルに与える影響
どちらの方法でも、Japan Post の出荷がコンソリデーションに含まれる場合は次のようになります。
shipmentConsolidation(id: ...)を再度クエリすると、メンバーを確認できます。その日のバッチに含めるすべての荷物について、このステップを繰り返します。1 つのコンソリデーションに含められる出荷は最大 250 件 です。これを超えるバッチをクローズしようとすると、Japan Post への呼び出しが行われる前に、わかりやすい検証エラーで失敗します。
クローズする前に、バッチの内容を確認することもできます。
query { shipmentConsolidation(id: "shco_01hjk...") { status shipments { id trackingDetails { number } } } }すべての出荷に追跡番号が表示されるはずです。表示されない出荷がある場合、そのラベルは作成されていません。クローズする前に解決してください。
statusは、ステップ 3 でコンソリデーションをクローズするまでOPENのままです。ステップ 3:
shipmentConsolidationUpdate(status: CLOSED)バッチをクローズします。この呼び出しで、すべてのメンバーの追跡番号を記載した後納差出票の作成を Japan Post に依頼し、作成された PDF をコンソリデーションに添付します。
この GraphQL オペレーションは、バッチをクローズするという目的を表すために
CloseConsolidationという名前になっています。実際には、status: CLOSEDを指定してshipmentConsolidationUpdatemutation を実行します。Mutation:
mutation CloseConsolidation { shipmentConsolidationUpdate(input: { id: "shco_01hjk...", status: CLOSED }) { id status statusTransitions { status changedAt note } customsDocuments { documentType fileUrl } } }idstatusCLOSEDを指定すると、バッチがクローズされ、差出票が作成されます。shipmentIdsCLOSEDをリクエストすると、次の処理が行われます。MANIFEST_CREATEDになり、ドキュメントが添付されるとCLOSEDになります。documentType: MANIFEST_DOCUMENTのCustomsDocumentとしてコンソリデーションに添付されます。レスポンス:
{ "data": { "shipmentConsolidationUpdate": { "id": "shco_01hjk...", "status": "CLOSED", "statusTransitions": [ { "status": "OPEN", "changedAt": "2026-05-01T08:00:00Z", "note": "Shipment batch created" }, { "status": "MANIFEST_CREATED", "changedAt": "2026-05-01T17:30:12Z", "note": "Dispatch slip created with Japan Post" }, { "status": "CLOSED", "changedAt": "2026-05-01T17:30:14Z", "note": "Dispatch slip downloaded and uploaded" } ], "customsDocuments": [ { "documentType": "MANIFEST_DOCUMENT", "fileUrl": "https://customs-docs.zonos.com/.../japanpost-dispatch-slip.pdf" } ] } } }ドキュメントの取得
差出票は、
documentType: MANIFEST_DOCUMENTのCustomsDocumentとして、コンソリデーションに直接添付されます。上記のクローズ時のレスポンスからfileUrlを取得するか、後からいつでもクエリで取得できます。query { shipmentConsolidation(id: "shco_01hjk...") { status customsDocuments { documentType fileUrl } } }fileUrlの PDF を印刷してください。内容は次のとおりです。印刷したら、荷物・差出票・受領証をまとめて 1 回で郵便局に持ち込んでください。Japan Post は、請求期間の終了時に Later Pay Number 宛てに料金を請求します。
全体の流れ
50 件の Japan Post の荷物を発送するマーチャントの、典型的な 1 日の例は次のとおりです。
1 日の終わりにまとめてバッチ処理したい場合は、コンソリデーション ID を指定せずにその日のラベルを作成しておき、すべての出荷を
shipmentIdsで指定してコンソリデーションを一度にオープンします(またはshipmentConsolidationUpdateで数回に分けて追加します)。クローズは同じ呼び出しでも、後続の呼び出しでも行えます。複数の事業部門や請求アカウントで発送する場合は、アカウントごとに別のコンソリデーションを使用してください。
shipmentConsolidationCreateごとに異なるaccountNumberを渡し、出荷をそれぞれに振り分けます。1 日に 250 件を超える荷物を発送する場合は、2 つ目のコンソリデーションをオープンしてください。エラー処理
検証エラー(Japan Post への呼び出し前に検出)
accountNumberの形式が不正 — コンソリデーションが保存される前に、ステップ 1(shipmentConsolidationCreate)で拒否されます。エラーメッセージで、問題のある区切りが示されます。shipment(id: ...) { trackingDetails }で該当の出荷を調査してください。shipmentConsolidationCreateでaccountNumberを渡すか、Japan Post のキャリアアカウントにデフォルトのアカウント番号を保存してください。Japan Post API のエラー
Japan Post が差出票のリクエストを拒否した場合、クローズの mutation はキャリアのエラーコードとメッセージを GraphQL エラーとして返します。主なエラーは次のとおりです。
E034accountNumber。E035-で区切られた 13 文字である必要があるE036E037E0465051再試行
Japan Post が差出票のリクエストを受け付けた 後(PDF の取得中など)にクローズの呼び出しが失敗した場合は、
shipmentConsolidationUpdate(status: CLOSED)を安全に再試行できます。プラットフォームはキャリアへの呼び出しをスキップし、ドキュメントの取得と添付のみを再試行します。Japan Post がリクエストを受け付ける 前(検証エラー、
E0xx、ネットワークのタイムアウト)にクローズが失敗した場合、状態は何も変わっていません。根本原因を解決してから再試行してください。ShipmentConsolidationCreateInput
shipmentConsolidationCreate shipmentConsolidationUpdate shipmentCreateWorkflow
このページは役に立ちましたか?