{"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"}]}}}
批量派送(合併)
批量派送(合併)
使用合併流程將單日日本郵局包裹合併為一份延期付款派送單。
本文件介紹透過 Zonos GraphQL API 建立日本郵局延期付款派送批次的三階段流程:開啟合併、附加
n份寄件至其中,然後關閉以接收日本郵局的派送單(清單文件)。何時使用此流程
日本郵局的延期付款計畫(後納)允許商戶在一天結束時透過一筆交易結算其日常運費帳單,而不是在郵局投遞時逐件付款。商戶將當天所有包裹連同一份涵蓋最多 250 份寄件的派送單(差出票)帶到郵局。郵資按商戶預先登記的 Later Pay Number 開具發票。
如果您獨立寄送日本郵局標籤並在櫃台按件付款,您無須使用此流程 — 直接呼叫單份寄件流程,不需使用合併。
概述
有兩種方式可將寄件附加到批次 — 選擇適合您整合的方式(或混合使用):
shipmentConsolidationId欄位將第 1 步中的合併 ID 傳入每個shipmentCreateWorkflow呼叫。shipmentConsolidationCreate上傳遞shipmentIds(為批次設定種子)或在shipmentConsolidationUpdate上傳遞(新增至開啟的批次)。各寄件必須已具有其日本郵局標籤。無論哪種方式,各標籤都會以您的 Later Pay Number 嵌入方式建立,以便日本郵局在第 3 步關閉批次時接受其進入派送單。
先決條件
在此流程對指定的驗證帳戶生效前:
1111111111-222222-3333333333-444444。透過accountNumber(第 1 步)在shipmentConsolidationCreate上傳遞。SHIPMENT_WRITE,加上每個寄件工作流程所需的標準作用域。端點和驗證
以下三個步驟都是傳送至同一端點的 GraphQL 操作。您在標題中傳遞的內容取決於您的設定 — 選擇您的分頁籤。
URL:
標題:
您在自己的驗證帳戶下寄送自己的訂單。以您自己的身分驗證 — 不需帳戶金鑰。
尋找位置: Zonos 儀表板 → Settings → Integrations → Account Key 區段。複製 API key 列上的權杖;這是您的
credentialToken。範例請求
開啟合併的複製並調整範例 — 變更、其變數和回應。這是啟動流程的批次特定呼叫;附加寄件(第 2 步)重複使用單份寄件範例,關閉批次(第 3 步)會傳回清單文件。各欄位在下方的步驟中有詳細說明。
mutation ShipmentConsolidationCreate($input: ShipmentConsolidationCreateInput!) {shipmentConsolidationCreate(input: $input) {idstatusaccountNumbercarrierCode}}步驟 1:
shipmentConsolidationCreate開啟合併。承運商代碼將批次鎖定為日本郵局;所有成員寄件必須使用日本郵局服務級別。如果您已有已標籤的寄件準備好,透過
shipmentIds使用其 ID 為批次設定種子 — 否則建立空批次,並在第 2 步中附加寄件。變更:
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為OPEN直到第 3 步。步驟 2:附加寄件
對於您今天需要寄送的各包裹,執行完整的連結單份寄件工作流程以建立寄件及其標籤。然後使用以下兩種方法之一,將寄件附加到批次。
選項 A:在標籤建立時附加
在鏈的最後
shipmentCreateWorkflow步驟上傳遞合併 ID。鏈中所有前述變更與單份寄件工作流程相同。shipmentCreateWorkflow上的相關欄位:shipmentCreateWorkflow( input: { serviceLevel: "japan_post.air.ems_merchandise" shipmentConsolidationId: "shco_01hjk..." generateLabel: true } ) { id trackingDetails { number } shipmentCartons { label { labelImage } } }shipmentConsolidationIdserviceLeveljapan_post.*)。不支援在單一合併內混合承運商。選項 B:依 ID 附加現有寄件
如果您的寄件已建立並標籤,使用
shipmentConsolidationUpdate上的shipmentIds將其新增至開啟的批次:mutation { shipmentConsolidationUpdate( input: { id: "shco_01hjk..." shipmentIds: ["shipment_01hxd...", "shipment_01hxe..."] } ) { id status shipments { id } } }在您仍在新增寄件時從輸入中省略
status— 批次保持OPEN。各寄件必須使用日本郵局服務級別,並在第 3 步關閉批次前有其標籤(追蹤號碼)。附加對標籤的意義
無論您使用哪個選項,當日本郵局寄件是合併的一部分時:
shipmentConsolidation(id: ...)重新查詢以查看其成員。為批次中的各包裹重複此步驟。每個合併最多250 份寄件;嘗試關閉更大批次會在進行任何日本郵局呼叫前失敗,並顯示明確的驗證錯誤。
您也可以在關閉前驗證批次的內容:
query { shipmentConsolidation(id: "shco_01hjk...") { status shipments { id trackingDetails { number } } } }各寄件應在此處顯示追蹤號碼。如果其中之一沒有,其標籤從未建立 — 在關閉前解決此問題。
status為OPEN直到第 3 步關閉合併。步驟 3:
shipmentConsolidationUpdate(status: CLOSED)關閉批次。這是要求日本郵局產生涵蓋各成員追蹤號碼的延期付款派送單,並將產生的 PDF 附加至合併的呼叫。
GraphQL 操作命名為
CloseConsolidation以描述其意圖,關閉批次。它以status: CLOSED執行shipmentConsolidationUpdate變更。變更:
mutation CloseConsolidation { shipmentConsolidationUpdate(input: { id: "shco_01hjk...", status: CLOSED }) { id status statusTransitions { status changedAt note } customsDocuments { documentType fileUrl } } }idstatusCLOSED以關閉批次並產生派送單。shipmentIds在
CLOSED請求上:MANIFEST_CREATED(此時單據 PDF 正在擷取中),文件附加後再轉為CLOSED。CustomsDocument,其documentType: MANIFEST_DOCUMENT。回應:
{ "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" } ] } } }擷取文件
派送單直接附加至合併作為
CustomsDocument,其documentType: MANIFEST_DOCUMENT— 從上方的關閉回應中擷取fileUrl,或隨時稍後查詢:query { shipmentConsolidation(id: "shco_01hjk...") { status customsDocuments { documentType fileUrl } } }列印
fileUrl上的 PDF。它包含:列印後,在一趟中將包裹 + 派送單 + 收據帶至郵局。日本郵局在計費期結束時按您的 Later Pay Number 開具發票。
整合
代表商戶寄送 50 份日本郵局包裹的典型一天看起來像:
偏好改為在一天結束時批次?建立該天的標籤而不使用合併 ID,然後使用所有
shipmentIds值開啟合併一次(或透過shipmentConsolidationUpdate分塊新增它們)並在同一或後續呼叫中關閉。如果您跨多個業務單位/計費帳戶寄送,執行每個帳戶的單獨合併 — 在各
shipmentConsolidationCreate上傳遞不同的accountNumber並相應地路由寄件。在一天內寄送超過 250 件包裹?開啟第二個合併。錯誤處理
驗證錯誤(在任何日本郵局呼叫前捕捉)
accountNumber格式錯誤 — 在第 1 步(shipmentConsolidationCreate)被拒,甚至在合併儲存前。錯誤訊息識別違規分段。shipment(id: ...) { trackingDetails }調查受影響的寄件。shipmentConsolidationCreate上傳遞accountNumber,或在您的日本郵局承運商帳戶上儲存預設帳戶號碼。日本郵局 API 錯誤
如果日本郵局拒絕派送單請求,關閉變更會將承運商的錯誤代碼和訊息呈現為 GraphQL 錯誤。最常見的:
E034accountNumber。E035-分隔E036E037E0465051重試
如果關閉呼叫在日本郵局已接受派送單請求之後失敗(即在 PDF 擷取期間),重試
shipmentConsolidationUpdate(status: CLOSED)是安全的 — 平台將跳過承運商呼叫,只重新嘗試擷取和附加文件。如果關閉在日本郵局接受請求之前失敗(驗證錯誤、
E0xx、網路逾時),沒有狀態改變 — 修正根本原因並重試。ShipmentConsolidationCreateInput
shipmentConsolidationCreate shipmentConsolidationUpdate shipmentCreateWorkflow
這個頁面有幫助嗎?