Når du skal bruke denne flyten
Japan Posts utsatt betalingsprogram (後納) tillater en selger å betale sitt daglige forsendelseskonto i én transaksjon på slutten av dagen, i stedet for per pakke ved levering. Selgeren bringer alle dagens pakker til poststationen sammen med én forsendelsesslipp (差出票) som dekker opptil 250 forsendelser. Porto blir fakturert til selgerens forhåndsregistrerte Later Pay-nummer.
Hvis du sender individuelle Japan Post-etiketter og betaler pakke for pakke ved skranken, trenger du ikke denne flyten — kjør ensendelseskjeden direkte uten en konsolidering.
Oversikt
1. shipmentConsolidationCreate → åpne batchen (returnerer konsolider-ID)
2. Legg til forsendelser × n → lag hver forsendelse + etikett, knyttet til batchen
3. shipmentConsolidationUpdate(CLOSED) → lukk batchen (returnerer forsendelsesslippen)
Det finnes to måter å legge til forsendelser i batchen — bruk den som passer best til integrasjonen din (eller blandingen):
- Legg til ved etikett-opprettelse — føring konsolider-ID-en fra steg 1 inn i hver
shipmentCreateWorkflowanrop via feltetshipmentConsolidationId. - Legg til eksisterende forsendelser etter ID — pass
shipmentIdspåshipmentConsolidationCreate(for å frø batchen) eller påshipmentConsolidationUpdate(for å legge til i en åpen batch). Hver forsendelse må allerede ha sin Japan Post-etikett.
Uansett hvilken metode du bruker, er hver etikett opprettet med ditt Later Pay-nummer innebygd slik at Japan Post vil akseptere det på forsendelsesslippen når steg 3 lukker batchen.
Hvorfor separate anrop i stedet for én mutasjon? Steg 2.1, 2.2, ..., 2.n skjer gjennom selgerens dag — etiketter skrives ut og pakker forsegles når ordrer kommer inn. Batchen kan ikke være en enkelt rundtur slik ensendelseskjeden er: det er et flertimers gap mellom åpning av konsolideringen og lukkingen.
Forutsetninger
Før denne flyten fungerer for en gitt verifisert konto:
- Kontoen din må ha et Japan Post utsatt betalings Later Pay-nummer (後納お客様番号) lagret på den — en hyphen-formatert verdi som
1111111111-222222-3333333333-444444. Send det påshipmentConsolidationCreateviaaccountNumber(Steg 1). - API-nøkkelen din må inneholde
SHIPMENT_WRITE, pluss standardomfanget som per-forsendelsesarbeidsflyten trenger.
Endepunkt og autentisering
Alle tre stegene nedenfor er GraphQL-operasjoner sendt til samme endepunkt. Hva du sender i hodene, avhenger av oppsettet ditt — velg din fane.
URL:
https://api.zonos.com/graphql
Hoder:
Du sender dine egne ordre under din egen verifiserte konto. Autentiser som deg selv — ingen kontobatikkel nødvendig.
credentialToken: {{YOUR_API_TOKEN}}
Hvor du finner det: Zonos Dashboard → Innstillinger → Integrasjoner → delen Kontobatikkel. Kopier tokenet på API-nøkkel-raden; det er din credentialToken.
Eksempel forespørsel
En kopi-og-tilpass eksempel på åpning av en konsolidering — mutasjonen, dens variabler, og svaret. Dette er det batch-spesifikke anropet som starter flyten; legge til forsendelser (Steg 2) gjenbruker ensendelseseksemplet, og lukking av batchen (Steg 3) returnerer manifestdokumentet. Hvert felt er oppstykket i stegene nedenfor.
mutation ShipmentConsolidationCreate($input: ShipmentConsolidationCreateInput!) { shipmentConsolidationCreate(input: $input) { id status accountNumber carrierCode }}Steg 1: shipmentConsolidationCreate
Åpner konsolideringen. Bærekodene låser batchen til Japan Post; alle medlemsforsendelser må bruke Japan Post servicenivåer. Hvis du allerede har merkede forsendelser klare, frø batchen med deres ID-er via shipmentIds — ellers opprett den tom og legg til forsendelser i steg 2.
Mutasjon:
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
}
}
}
| Felt↕ | Merknader↕ |
|---|---|
carrierCode | Påkrevd. Bruk JAPAN_POST. |
accountNumber | Hyphen-formatert Later Pay-nummer. Formatet valideres ved opprettelse — dårlige verdier avvises umiddelbart i stedet for ved lukking. Hvis utelatt, brukes standardkontonummeret lagret på Japan Post-kontoen din. |
name | Valgfritt. Human-lesbar etikett for dine poster. Standarden er konsolideringens genererte ID. |
externalId | Valgfritt. Din interne batch-identifikator; standarden er konsolideringens genererte ID hvis utelatt. |
shipmentIds | Valgfritt. ID-er for de første forsendelsene å legge til. La stå tomt for å åpne batchen først og legge til forsendelser mens etikettene deres lages i steg 2. |
shipmentId | Avleggs — bruk shipmentIds i stedet. |
Svar:
{
"data": {
"shipmentConsolidationCreate": {
"id": "shco_01hjk...",
"status": "OPEN",
"accountNumber": "1111111111-222222-3333333333-444444",
"carrierCode": "JAPAN_POST",
"shipments": [
{ "id": "shipment_01hxa..." },
{ "id": "shipment_01hxb..." }
]
}
}
}
Behold id-en (f.eks. shco_01HJK...) — du bruker den til alt nedenfor. status er OPEN til steg 3.
Steg 2: Legg til forsendelser
For hver pakke du trenger å sende i dag, kjør hele kjedede ensendelsesarbeidsflyten for å lage forsendelsen og etiketten. Legg deretter til forsendelsen i batchen ved å bruke en av metodene nedenfor.
Alternativ A: Legg til ved etikett-opprettelse
Send konsolider-ID-en på det siste trinnet shipmentCreateWorkflow i kjeden. Alle forrige mutasjoner i kjeden er identiske med ensendelsesarbeidsflyten.
De relevante feltene på shipmentCreateWorkflow:
shipmentCreateWorkflow(
input: {
serviceLevel: "japan_post.air.ems_merchandise"
shipmentConsolidationId: "shco_01hjk..."
generateLabel: true
}
) {
id
trackingDetails {
number
}
shipmentCartons {
label {
labelImage
}
}
}
| Felt↕ | Merknader↕ |
|---|---|
shipmentConsolidationId | ID-en fra Steg 1. Forteller plattformen "legg denne forsendelsen til den batchen." Dette er det eneste feltet som skiller en konsolideringsbundet forsendelse fra en frittstående. |
serviceLevel | Må være et Japan Post servicenivå (japan_post.*). Blande bærere innenfor en enkelt konsolidering er ikke støttet. |
Alternativ B: Legg til eksisterende forsendelser etter ID
Hvis forsendelsene dine allerede er opprettet og merkede, legg dem til i den åpne batchen med shipmentIds på shipmentConsolidationUpdate:
mutation {
shipmentConsolidationUpdate(
input: {
id: "shco_01hjk..."
shipmentIds: ["shipment_01hxd...", "shipment_01hxe..."]
}
) {
id
status
shipments {
id
}
}
}
La status være utenfor inndataene mens du fortsatt legger til forsendelser — batchen forblir OPEN. Hver forsendelse må bruke et Japan Post servicenivå og ha sin etikett (sporingsnummer) før batchen lukkes i Steg 3.
Hva vedlegg betyr for etiketten
Uansett hvilken alternativ du bruker, når en Japan Post-forsendelse er en del av en konsolidering:
- Forsendelsen har et sporingsnummer, som vanlig.
- Forsendelsesmerkepapir-PDF inkluderer ikke kunde/postkontor mottakskopi. Disse mottakene utsettes til Steg 3, hvor de bundlet inn i forsendelseslippedokumentet for hele batchen.
- Forsendelsen er knyttet til konsolideringen; du kan re-spørre den via
shipmentConsolidation(id: ...)for å se medlemmene.
Gjenta dette trinnet for hver pakke i dagens batch. Opp til 250 forsendelser per konsolidering; forsøk på lukking av en større batch mislykkes med en tydelig valideringsfeil før noen Japan Post-anrop gjøres.
Du kan også verifisere batchens innhold før lukking:
query {
shipmentConsolidation(id: "shco_01hjk...") {
status
shipments {
id
trackingDetails {
number
}
}
}
}
Hver forsendelse skal vise et sporingsnummer her. Hvis den ikke gjør det, ble etiketten aldri opprettet — ordne det før lukking. status er OPEN til konsolideringen lukkes i Steg 3.
Steg 3: shipmentConsolidationUpdate(status: CLOSED)
Lukker batchen. Dette er anropet som ber Japan Post om å generere den utsatte betalingsforsendelsesslippen som dekker hvert medlems sporingsnummer, og legger det resulterende PDF-dokumentet ved konsolideringen.
GraphQL-operasjonen er kalt CloseConsolidation for å beskrive hensikten, lukking av batchen. Den kjører mutasjonen shipmentConsolidationUpdate med status: CLOSED.
Mutasjon:
mutation CloseConsolidation {
shipmentConsolidationUpdate(input: { id: "shco_01hjk...", status: CLOSED }) {
id
status
statusTransitions {
status
changedAt
note
}
customsDocuments {
documentType
fileUrl
}
}
}
| Felt↕ | Merknader↕ |
|---|---|
id | Konsolider-ID-en fra Steg 1. |
status | Sett til CLOSED for å lukke batchen og produsere forsendelsesslippen. |
shipmentIds | Valgfritt. Legge til forsendelser + lukking i samme anrop støttes — forsendelsene legges til først, deretter lukkes batchen. |
På en CLOSED-forespørsel:
- Konsolideringen valideres: ≤250 forsendelser, og alle medlemmer må ha et sporingsnummer. Hvis en forsendelse mangler sporingsnummeret (etiketten ble aldri opprettet), avvises anropet.
- Japan Post blir bedt om å generere en utsatt betalingsforsendelsesslipp som dekker hvert medlems sporingsnummer.
- Statusen beveger seg kort til
MANIFEST_CREATEDmens slipp-PDF-en hentes, deretter tilCLOSEDnår dokumentet er vedlagt. - Forsendelsesslipp-PDF-en (én fil som inneholder slippen pluss hver medlems kunde/postkontor mottakskopi) legges ved konsolideringen som et
CustomsDocumentmeddocumentType: MANIFEST_DOCUMENT.
Svar:
{
"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"
}
]
}
}
}
Hente dokumentene
Forsendelsesslippen legges ved direkte til konsolideringen som et CustomsDocument med documentType: MANIFEST_DOCUMENT — ta fileUrl fra lukksvarets ovenfor, eller spør for det når som helst senere:
query {
shipmentConsolidation(id: "shco_01hjk...") {
status
customsDocuments {
documentType
fileUrl
}
}
}
Skriv ut PDF-en på fileUrl. Det inneholder:
- Side 1: Forsendelsesslippen med utsatt betaling — levere dette til poststationen.
- Sider 2+: Kunde/postkontor mottakskopier for hver pakke — en stiftet til hver pakke, den andre beholdt av poststationen.
Når den er skrevet ut, ta pakkene + forsendelsesslippen + mottakene til poststationen på én tur. Japan Post fakturerer ditt Later Pay-nummer ved slutten av fakturaperioden.
Sammensatt det hele
En representativ dag for en forhandler som sender 50 Japan Post-pakker ser slik ut:
08:00 → shipmentConsolidationCreate(JAPAN_POST, accountNumber) → shco_01HJK...
08:30 → CreateDeclarationShipment( ... shipmentConsolidationId: "shco_01HJK..." ) pakke 1
09:15 → CreateDeclarationShipment( ... shipmentConsolidationId: "shco_01HJK..." ) pakke 2
...
16:45 → CreateDeclarationShipment( ... shipmentConsolidationId: "shco_01HJK..." ) pakke 50
17:30 → shipmentConsolidationUpdate(id: "shco_01HJK...", status: CLOSED)
17:32 → Skriv ut PDF
Foretrekker å batch på slutten av dagen i stedet? Lag dagens etiketter uten en konsolider-ID, åpne deretter konsolideringen en gang med hver shipmentIds-verdi (eller legg dem til i biter via shipmentConsolidationUpdate) og lukk den i samme eller en oppfølgingssanrop.
Hvis du sender over flere forretningsenheter / fakturakontoer, kjør en separat konsolidering per konto — send en annen accountNumber på hver shipmentConsolidationCreate og rute forsendelser tilsvarende. Sender du mer enn 250 pakker på en dag? Åpne en annen konsolidering.
Feilhåndtering
Valideringsfeil (fanget før noen Japan Post-anrop)
accountNumberfeilformatert — avvist på Steg 1 (shipmentConsolidationCreate) før konsolideringen blir engang lagret. Feilmelding identifiserer det offending-segmentet.- >250 forsendelser — avvist på Steg 3, før Japan Post-anropet gjøres.
- Medlemsforsendelse mangler sporingsnummer — avvist på Steg 3. Betyr at en etikkeloppretting stille mislyktes tidligere; undersøk den berørte forsendelsen via
shipment(id: ...) { trackingDetails }. - Ingen utsatt betalingsnummer satt på konsolideringen — avvist på Steg 3. Send
accountNumberpåshipmentConsolidationCreate, eller lagre et standardkontonummer på Japan Post-bærekontoen din.
Japan Post API-feil
Hvis Japan Post avviser forsendelsesslippen-forespørselen, vises bærerens feilkode og melding som en GraphQL-feil. Den vanligste:
| Kode↕ | Mening↕ | Hva du skal sjekke↕ |
|---|---|---|
E034 | Oppskjøvet kundenumre mangler | accountNumber på konsolideringen. |
E035 | Sporingsnumre må være 13 tegn separert med - | Medlemsforsendelser har på en eller annen måte feilformaterte sporingsnumre. |
E036 | Sporingsnumre må være alfanumerisk | Samme som ovenfor. |
E037 | Ikke en gyldig oppskjøvet forsendelse | En medlemsetikett ble opprettet uten det oppskjøvet betalingskundenummeret. Kontakt Zonos-støtte. |
E046 | Total vekt påkrevd | Oppstrøms etikett opprettet var feilformatert. Kontakt Zonos-støtte. |
50 | Parameterformatfeil | Feltlengde- eller typebrudd på inndataene. |
51 | Autentiseringsfeil | Kontakt Zonos-støtte. |
Forsøk på nytt
Hvis lukksanropet mislykkes etter at Japan Post har akseptert forsendelsesslippen-forespørselen (dvs. under PDF-henting), er forsøk på nytt av shipmentConsolidationUpdate(status: CLOSED) trygt — plattformen hopper over bæreranropet og forsøker bare å hente og vedlegge dokumentet på nytt.
Hvis lukkingen mislykkes før Japan Post har akseptert forespørselen (valideringsfeil, E0xx, nettverkstidsavbrudd), har ingen tilstand endret seg — rett rotårsaken og forsøk på nytt.
Batchforsendelse (konsolidering)
Saml japanske postpakker fra en dag til én utsatt betalingsforsendelsesslipp med konsolideringsflyten.
Dette dokumentet gjennomgår tre-steg-flyten for å lage en Japan Post utsatt betalingsforsendelsebatch via Zonos GraphQL API: åpne en konsolidering, legg til
nforsendelser til den, og lukk den for å motta Japan Posts forsendelsesslipp (manifestdokument).