consolidation flow を使って、1 日分の Japan Post 荷物を 1 つの後納 dispatch slip にまとめます。
本ドキュメントでは、Zonos GraphQL API を使って Japan Post の 後納 dispatch batch を作成する 3 段階のフローを説明します:consolidation を open し、n 件の shipment を attach し、close して Japan Post の dispatch slip(manifest document)を受け取ります。
Japan Post の後納制度(後納)を使うと、マーチャントは荷物を持ち込むたびに個別に支払うのではなく、1 日分の配送料金を営業終了時に 1 回の取引でまとめて精算できます。マーチャントは、最大 250 件の shipment をカバーする 1 枚の dispatch slip(差出票)とともに、その日の荷物すべてを郵便局へ持ち込みます。郵便料金は、あらかじめ登録された Later Pay Number に請求されます。
個々の Japan Post ラベルで発送し、窓口で荷物ごとに支払っている場合は、このフローは不要です — consolidation を使わず、single-shipment chain を直接呼び出してください。
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)
shipmentCreateWorkflow(input:{serviceLevel:"japan_post.air.ems_merchandise"shipmentConsolidationId:"shco_01hjk..."generateLabel:true}){
id
trackingDetails {
number
}
shipmentCartons {
label {
labelImage
}}}
Field↕
説明↕
shipmentConsolidationId
Step 1 で取得した ID です。「この shipment をその batch に attach する」ことを伝えます。consolidation に紐づく shipment と単独の shipment を区別する唯一の field です。
serviceLevel
Japan Post の service level(japan_post.*)である必要があります。1 つの consolidation 内で carrier を混在させることはできません。
Option B: 既存の shipment を ID で attach する
shipment がすでに作成・ラベル済みであれば、shipmentConsolidationUpdate の shipmentIds で open 中の batch に追加します:
mutation{
shipmentConsolidationUpdate(input:{id:"shco_01hjk..."shipmentIds:["shipment_01hxd...", "shipment_01hxe..."]}){
id
status
shipments {
id
}}}
shipment を追加している間は input から status を外しておいてください — batch は OPEN のままになります。各 shipment は、Step 3 で batch を close する前に、Japan Post の service level とラベル(tracking number)を持っている必要があります。
attach がラベルに与える影響
どちらの方法を使っても、Japan Post の shipment が consolidation の一員である場合:
query{
shipmentConsolidation(id:"shco_01hjk..."){
status
shipments {
id
trackingDetails {
number
}}}}
すべての shipment に tracking number が表示されているはずです。表示されていないものがあれば、そのラベルは作成されていません — close する前に対応してください。status は Step 3 で consolidation を close するまで OPEN のままです。
{"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"}]}}}
バッチ dispatch(consolidation)
バッチ dispatch(consolidation)
consolidation flow を使って、1 日分の Japan Post 荷物を 1 つの後納 dispatch slip にまとめます。
本ドキュメントでは、Zonos GraphQL API を使って Japan Post の 後納 dispatch batch を作成する 3 段階のフローを説明します:consolidation を open し、
n件の shipment を attach し、close して Japan Post の dispatch slip(manifest document)を受け取ります。このフローを使うタイミング
Japan Post の後納制度(後納)を使うと、マーチャントは荷物を持ち込むたびに個別に支払うのではなく、1 日分の配送料金を営業終了時に 1 回の取引でまとめて精算できます。マーチャントは、最大 250 件の shipment をカバーする 1 枚の dispatch slip(差出票)とともに、その日の荷物すべてを郵便局へ持ち込みます。郵便料金は、あらかじめ登録された Later Pay Number に請求されます。
個々の Japan Post ラベルで発送し、窓口で荷物ごとに支払っている場合は、このフローは不要です — consolidation を使わず、single-shipment chain を直接呼び出してください。
概要
batch に shipment を attach する方法は 2 つあります。ご自身の integration に合う方を使用してください(両方を組み合わせても構いません):
shipmentConsolidationIdフィールド経由で各shipmentCreateWorkflow呼び出しに渡します。shipmentConsolidationCreate(batch を seed する場合)またはshipmentConsolidationUpdate(open している batch に追加する場合)でshipmentIdsを渡します。各 shipment には、あらかじめ Japan Post のラベルが作成済みである必要があります。どちらの方法でも、各ラベルはあなたの Later Pay Number が埋め込まれた状態で作成されるため、Step 3 で batch を close するときに Japan Post がその dispatch slip への記載を受け入れます。
前提条件
特定の Verified Account でこのフローを使用するには、あらかじめ以下が必要です:
1111111111-222222-3333333333-444444のようなハイフン区切りの値です。Step 1 のshipmentConsolidationCreateでaccountNumberとして渡します。SHIPMENT_WRITE、および per-shipment workflow に必要な標準スコープを保持していること。エンドポイントと認証
以下の 3 つの Step はすべて、同一の endpoint に送る GraphQL operations です。headers に渡す内容は setup によって異なります — 該当する tab を選んでください。
URL:
ヘッダー:
自社の Verified Account で自社の注文を発送します。自分自身として認証します — account key は不要です。
確認場所: Zonos Dashboard → Settings → Integrations → Account Key セクション。API key 行の token をコピーしてください — それが
credentialTokenです。リクエスト例
consolidation を open する example です — mutation、variables、response をそのままコピーして調整できます。これはフローを開始する batch 固有の呼び出しです。shipment の attach(Step 2)は single-shipment example を再利用し、batch の close(Step 3)で manifest document が返されます。各 field は以下の Step でそれぞれ説明します。
mutation ShipmentConsolidationCreate($input: ShipmentConsolidationCreateInput!) {shipmentConsolidationCreate(input: $input) {idstatusaccountNumbercarrierCode}}Step 1:
shipmentConsolidationCreateconsolidation を open します。carrier code によって batch は Japan Post に固定され、member となる全 shipment は Japan Post の service level を使用する必要があります。すでにラベル済みの shipment があれば、その ID を
shipmentIdsで渡して batch を seed してください。なければ空の batch を作成し、Step 2 で shipment を attach してください。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を使用してください。Response:
{ "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...)を保持しておいてください — これ以降すべての Step で使用します。statusは Step 3 までOPENのままです。Step 2: shipment の attach
その日に発送する荷物ごとに、single-shipment workflow のチェーン全体を実行して shipment とそのラベルを作成します。その後、以下いずれかの方法で shipment を batch に attach します。
Option A: ラベル作成時に attach する
チェーンの最後の
shipmentCreateWorkflowStep で consolidation ID を渡します。それより前の mutation はすべて single-shipment workflow と同一です。shipmentCreateWorkflowの関連 field:shipmentCreateWorkflow( input: { serviceLevel: "japan_post.air.ems_merchandise" shipmentConsolidationId: "shco_01hjk..." generateLabel: true } ) { id trackingDetails { number } shipmentCartons { label { labelImage } } }shipmentConsolidationIdserviceLeveljapan_post.*)である必要があります。1 つの consolidation 内で carrier を混在させることはできません。Option B: 既存の shipment を ID で attach する
shipment がすでに作成・ラベル済みであれば、
shipmentConsolidationUpdateのshipmentIdsで open 中の batch に追加します:mutation { shipmentConsolidationUpdate( input: { id: "shco_01hjk..." shipmentIds: ["shipment_01hxd...", "shipment_01hxe..."] } ) { id status shipments { id } } }shipment を追加している間は input から
statusを外しておいてください — batch はOPENのままになります。各 shipment は、Step 3 で batch を close する前に、Japan Post の service level とラベル(tracking number)を持っている必要があります。attach がラベルに与える影響
どちらの方法を使っても、Japan Post の shipment が consolidation の一員である場合:
shipmentConsolidation(id: ...)で再度 query してメンバーを確認できます。その日の batch に含める荷物ごとに、この Step を繰り返してください。1 つの consolidation につき最大 250 件の shipment までです — それを超える batch を close しようとすると、Japan Post への呼び出しが行われる前に、明確な validation エラーになります。
close する前に batch の内容を確認することもできます:
query { shipmentConsolidation(id: "shco_01hjk...") { status shipments { id trackingDetails { number } } } }すべての shipment に tracking number が表示されているはずです。表示されていないものがあれば、そのラベルは作成されていません — close する前に対応してください。
statusは Step 3 で consolidation を close するまでOPENのままです。Step 3:
shipmentConsolidationUpdate(status: CLOSED)batch を close します。この呼び出しによって、全メンバーの tracking number をカバーする後納の dispatch slip の生成が Japan Post に依頼され、生成された PDF が consolidation に添付されます。
この GraphQL operation は、その意図(batch を close すること)を表すため
CloseConsolidationという名前になっています。実際にはstatus: CLOSEDを指定してshipmentConsolidationUpdatemutation を実行します。Mutation:
mutation CloseConsolidation { shipmentConsolidationUpdate(input: { id: "shco_01hjk...", status: CLOSED }) { id status statusTransitions { status changedAt note } customsDocuments { documentType fileUrl } } }idstatusCLOSEDを指定すると、batch が close され dispatch slip が生成されます。shipmentIdsCLOSEDをリクエストすると:MANIFEST_CREATEDになり、document が添付されるとCLOSEDになります。documentType: MANIFEST_DOCUMENTのCustomsDocumentとして consolidation に添付されます。Response:
{ "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" } ] } } }document の取得
dispatch slip は、
documentType: MANIFEST_DOCUMENTのCustomsDocumentとして consolidation に直接添付されます — 上記の close response からfileUrlを取得するか、後からいつでも query できます:query { shipmentConsolidation(id: "shco_01hjk...") { status customsDocuments { documentType fileUrl } } }fileUrlの PDF を印刷してください。内容は次のとおりです:印刷したら、荷物・dispatch slip・受領書を 1 回で郵便局に持ち込んでください。Japan Post は、課金期間の終了時に Later Pay Number へ請求します。
全体像
50 件の Japan Post 荷物を発送するマーチャントの、代表的な 1 日の例:
1 日の終わりにまとめて batch 処理したい場合は、consolidation ID を指定せずにその日のラベルを作成し、すべての
shipmentIdsを指定して一度だけ consolidation を open する(またはshipmentConsolidationUpdateで少しずつ追加する)方法もあります。同じ呼び出しの中で、あるいは後続の呼び出しで close してください。複数の事業部門・課金アカウントにまたがって発送する場合は、アカウントごとに別々の consolidation を実行してください — 各
shipmentConsolidationCreateで異なるaccountNumberを渡し、それに応じて shipment を振り分けます。1 日に 250 件を超える荷物を発送する場合は、2 つ目の consolidation を open してください。エラー処理
Validation エラー(Japan Post への呼び出し前に検出されるもの)
accountNumberの format 不正 — consolidation が保存される前に、Step 1(shipmentConsolidationCreate)で reject されます。エラーメッセージには、問題のある segment が示されます。shipment(id: ...) { trackingDetails }で該当の shipment を確認してください。shipmentConsolidationCreateでaccountNumberを渡すか、Japan Post の carrier account に default の account number を保存してください。Japan Post API のエラー
Japan Post が dispatch slip のリクエストを reject した場合、close の mutation は carrier のエラーコードとメッセージを GraphQL エラーとして返します。よくあるものは次のとおりです:
E034accountNumber。E035-で区切った 13 文字である必要があるE036E037E0465051再試行
close の呼び出しが、Japan Post が dispatch slip のリクエストを受け付けた 後(PDF 取得中)に失敗した場合、
shipmentConsolidationUpdate(status: CLOSED)を再試行しても問題ありません — platform は carrier への呼び出しをスキップし、document の取得と添付だけを再試行します。close が、Japan Post がリクエストを受け付ける 前(validation エラー、
E0xx、network timeout)に失敗した場合は、状態は何も変化していません — 根本原因を修正してから再試行してください。ShipmentConsolidationCreateInput
shipmentConsolidationCreate shipmentConsolidationUpdate shipmentCreateWorkflow
このページは役に立ちましたか?