DOCS

Batchforsendelse (konsolidering)

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 n forsendelser til den, og lukk den for å motta Japan Posts forsendelsesslipp (manifestdokument).

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 shipmentCreateWorkflow anrop via feltet shipmentConsolidationId.
  • Legg til eksisterende forsendelser etter ID — pass shipmentIdsshipmentConsolidationCreate (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å shipmentConsolidationCreate via accountNumber (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 → InnstillingerIntegrasjoner → 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.

1mutation ShipmentConsolidationCreate(
2$input: ShipmentConsolidationCreateInput!
3) {
4 shipmentConsolidationCreate(input: $input) {
5 id
6 status
7 accountNumber
8 carrierCode
9 }
10}

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
    }
  }
}
FeltMerknader
carrierCodePåkrevd. Bruk JAPAN_POST.
accountNumberHyphen-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.
nameValgfritt. Human-lesbar etikett for dine poster. Standarden er konsolideringens genererte ID.
externalIdValgfritt. Din interne batch-identifikator; standarden er konsolideringens genererte ID hvis utelatt.
shipmentIdsValgfritt. 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.
shipmentIdAvleggs — 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
    }
  }
}
FeltMerknader
shipmentConsolidationIdID-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.
serviceLevelMå 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 shipmentIdsshipmentConsolidationUpdate:

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
    }
  }
}
FeltMerknader
idKonsolider-ID-en fra Steg 1.
statusSett til CLOSED for å lukke batchen og produsere forsendelsesslippen.
shipmentIdsValgfritt. Legge til forsendelser + lukking i samme anrop støttes — forsendelsene legges til først, deretter lukkes batchen.

På en CLOSED-forespørsel:

  1. Konsolideringen valideres: ≤250 forsendelser, og alle medlemmer må ha et sporingsnummer. Hvis en forsendelse mangler sporingsnummeret (etiketten ble aldri opprettet), avvises anropet.
  2. Japan Post blir bedt om å generere en utsatt betalingsforsendelsesslipp som dekker hvert medlems sporingsnummer.
  3. Statusen beveger seg kort til MANIFEST_CREATED mens slipp-PDF-en hentes, deretter til CLOSED når dokumentet er vedlagt.
  4. Forsendelsesslipp-PDF-en (én fil som inneholder slippen pluss hver medlems kunde/postkontor mottakskopi) legges ved konsolideringen som et CustomsDocument med documentType: 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)

  • accountNumber feilformatert — 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 accountNumbershipmentConsolidationCreate, 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:

KodeMeningHva du skal sjekke
E034Oppskjøvet kundenumre mangleraccountNumber på konsolideringen.
E035Sporingsnumre må være 13 tegn separert med -Medlemsforsendelser har på en eller annen måte feilformaterte sporingsnumre.
E036Sporingsnumre må være alfanumeriskSamme som ovenfor.
E037Ikke en gyldig oppskjøvet forsendelseEn medlemsetikett ble opprettet uten det oppskjøvet betalingskundenummeret. Kontakt Zonos-støtte.
E046Total vekt påkrevdOppstrøms etikett opprettet var feilformatert. Kontakt Zonos-støtte.
50ParameterformatfeilFeltlengde- eller typebrudd på inndataene.
51AutentiseringsfeilKontakt 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.

GraphQL API ReferenceTypes, inputs, and operations used in this guide
Bestill en demo

Var denne siden nyttig?