De CreateDeclarationShipment GraphQL-workflow brengt een Japan Post-zending van ruwe invoergegevens naar een afdrukbaar label in één round trip.
CreateDeclarationShipment koppelt zes *Workflow-mutaties aaneen tot één GraphQL-verzoek. Elke stap bouwt voort op de gegevens die de vorige stappen hebben geleverd, en ze worden allemaal samen verzonden, zodat een complete zending in één round trip kan worden aangemaakt:
partyCreateWorkflow → describe origin + destination parties
itemCreateWorkflow → describe the line items
cartonsCreateWorkflow → describe the physical packaging
shipmentRatingCreateWorkflow → record the carrier rate quote
landedCostCalculateWorkflow → calculate duties / taxes / fees
shipmentCreateWorkflow → create the shipment + label
De Workflow-mutaties zijn ontworpen om gekoppeld te worden: u hoeft geen ID's van de ene stap naar de volgende door te geven en u hoeft niet per stap een apart verzoek te verzenden. Verstuur het volledige document en ontvang de uiteindelijke Shipment terug.
Wanneer de serviceLevel in de laatste stap een Japan Post-servicelevel is (japan_post.*), roept Zonos namens u de Japan Post Label API (code 52) aan met de Later Pay Numbers van uw Verified Account, genereert het label en trackingnummer, maakt de Declaration ID aan en koppelt deze aan elkaar — allemaal binnen die laatste shipmentCreateWorkflow-stap.
Waarom één mutatie? Elke stap is afhankelijk van de vorige (landed cost heeft de items en partijen nodig; het label heeft alles nodig). Door ze te bundelen in één GraphQL-document blijven de gegevens consistent en worden vijf extra round trips vermeden.
Een compleet CreateDeclarationShipment-verzoek dat u kunt kopiëren en aanpassen — de mutatie, de variabelen en het antwoord — voor één Japan Post-pakket dat DDP naar de VS wordt verzonden. Elke invoer wordt hieronder stapsgewijs uitgelegd.
De kolom Status in elke tabel hieronder gebruikt de volgende termen:
Vereist — het verzoek mislukt zonder dit veld.
Vereist voor label — optioneel in het GraphQL-schema, maar nodig om een geldig Japan Post-label voor de VS te genereren.
Voorwaardelijk — verplicht, afhankelijk van een ander veld (inline toegelicht).
Aanbevolen — optioneel, maar bepaalt nauwkeurige invoerrechten en belastingen.
Optioneel — niet nodig.
1. partyCreateWorkflow
Maakt de partijen aan die bij de zending betrokken zijn — op zijn minst een ORIGIN (waar de zending vandaan wordt verzonden) en een DESTINATION (de koper/geadresseerde).
Field↕
Status↕
Opmerkingen↕
type
Vereist
ORIGIN en DESTINATION zijn de twee die deze flow nodig heeft. Andere (CONSIGNEE, EXPORTER, IMPORTER_OF_RECORD, PAYOR, enz.) bestaan wel, maar worden hier niet gebruikt.
Het antwoord retourneert de aangemaakte Party-ID's en de herleide adresvelden.
2. itemCreateWorkflow
Maakt de regelitems aan waaruit de zending bestaat. Dit zijn de SKU's die op de handelsfactuur worden vermeld en die de landed-cost-berekening aansturen.
Field↕
Status↕
Opmerkingen↕
currencyCode
Vereist
Munteenheid van de stukprijs.
quantity
Vereist
Aantal eenheden van dit item.
amount
Voorwaardelijk
Stukprijs (niet het totaal). Verplicht, tenzij totalAmount is opgegeven.
totalAmount
Optioneel
Alternatief voor amount; amount wordt afgeleid via totalAmount / quantity.
hsCode
Aanbevolen
Tariefcode van het Harmonized System. Bepaalt de invoerrechten.
countryOfOrigin
Aanbevolen
ISO-2-code van het land waar het item is vervaardigd. Bepaalt invoerrechten/FTA.
name, description
Aanbevolen
Klantgerichte productnaam en -beschrijving.
customsDescription
Optioneel
Overschrijving van de douaneomschrijving.
sku, productId
Optioneel
Uw interne identificatiecodes.
measurements
Optioneel
Gewicht/afmetingen per eenheid.
De HS-code, het land van herkomst en het bedrag zijn de drie velden die de uitkomst van invoerrechten/belasting in stap 5 het meest beïnvloeden.
3. cartonsCreateWorkflow
Maakt de fysieke verpakkingen aan — de dozen, polybags of enveloppen waarin de items worden verpakt.
Elke carton wordt in stap 6 één pakket op het vervoerderslabel. Meerdere cartons → een zending met meerdere pakketten, met één trackingnummer per carton.
4. shipmentRatingCreateWorkflow
Registreert de tariefopgave die de handelaar de koper voor verzending in rekening brengt.
Field↕
Status↕
Opmerkingen↕
amount
Vereist
Wat de koper betaalt voor verzending. Geef 0 op als het gratis is.
currencyCode
Vereist
Munteenheid van amount.
serviceLevelCode
Vereist
Vervoerdersservicecode (bijv. japan_post.air.parcel). Zie Japan Post-servicelevels voor de volledige lijst.
displayName
Optioneel
Weergavenaam voor de bon/factuur.
Dit is het tarief dat aan de koper is aangeboden bij het afrekenen. Het wordt meegenomen in de landed-cost-berekening als het subtotaal „shipping”, zodat invoerrechten en belastingen worden berekend op basis van de juiste CIF-waarde.
5. landedCostCalculateWorkflow
Voert de berekening van invoerrechten, belastingen en kosten uit voor het land van bestemming. Gebruikt de items, partijen en verzendkosten uit de voorgaande stappen.
Field↕
Status↕
Opmerkingen↕
endUse
Vereist
NOT_FOR_RESALE of FOR_RESALE. Sommige bestemmingen passen andere tarieven toe voor zakelijk versus particulier eindgebruik.
tariffRate
Vereist
Standaard ZONOS_PREFERRED indien niet opgegeven. Vertelt Zonos welke tariefbron/-methodologie moet worden toegepast.
calculationMethod
Aanbevolen
DDP (koper betaalt vooraf) of DDU (koper betaalt aan de deur). Gebruik DDP voor vooruitbetaling. Bepaalt of LandedCost.amountSubtotals invoerrechten/belasting bevat.
currencyCode
Optioneel
Munteenheid waarin de landed-cost-subtotalen worden geretourneerd.
arrivalDate
Optioneel
Wisselkoersen en tariefschema's worden aan deze datum vastgepind, indien opgegeven.
Het antwoord bevat amountSubtotals (duties, taxes, fees, shipping, landedCostTotal) — dit zijn de bedragen die u aan de koper toont bij het afrekenen en die op de handelsfactuur worden afgedrukt.
6. shipmentCreateWorkflow
De laatste stap — maakt de entiteit Shipment aan, genereert het vervoerderslabel en (optioneel) de handelsfactuur/pakbon.
Voor Japan Post Verified Accounts is dit ook waar Zonos namens u de Japan Post Label API (code 52) aanroept, uw Later Pay Numbers invoegt, de Declaration ID aanmaakt en deze koppelt aan het trackingnummer dat door Japan Post wordt geretourneerd.
Belangrijke velden:
Field↕
Status↕
Opmerkingen↕
serviceLevel
Vereist voor label
De Japan Post-service waarmee wordt verzonden (bijv. japan_post.air.ems_merchandise). Moet een japan_post.*-servicelevel zijn.
generateLabel
Optioneel
Standaard true; moet true zijn om een label te retourneren.
contentsType
Aanbevolen
Bepaalt de douanebehandeling. Een van SALE_OF_GOODS, ECOMMERCE_GOODS, COMMERCIAL_GOODS, COMMERCIAL_SAMPLE, RETURNED_GOODS, GIFT, DOCUMENTS, OTHER.
nonDelivery
Optioneel
Wat Japan Post moet doen als het pakket niet kan worden bezorgd. Zie hieronder.
references
Optioneel
Door de handelaar opgegeven referentienummers die op het label en de handelsfactuur worden afgedrukt. Zie hieronder.
declaredValue / isDeclaredValue
Optioneel
Verzekerde waarde van de zending.
shipmentConsolidationId
Optioneel
Wordt gebruikt wanneer deze zending onderdeel is van een batch dispatch.
Bij contentsType zijn de twee meest gebruikte waarden voor verkeer via een Verified Account ECOMMERCE_GOODS (verkocht aan een consument, BtoC) en COMMERCIAL_GOODS (verkocht tussen bedrijven, BtoB). Deze bepalen het pkgType dat Zonos meestuurt bij de Japan Post-labelaanvraag, dus deze keuze verandert wat er op de douaneaangifte wordt afgedrukt — het is niet alleen een label.
nonDelivery sub-input
Vertelt Japan Post wat er met het pakket moet gebeuren als het niet kan worden bezorgd — geweigerd door de geadresseerde, tegengehouden aan de grens, of onbestelbaar zoals geadresseerd.
option accepteert precies deze vier waarden. Er bestaat geen waarde RETURN — gebruik RETURN_AFTER_RETENTION of RETURN_IMMEDIATELY om te kiezen wanneer het pakket terugkomt.
option↕
Dashboard-equivalent↕
Wat Japan Post doet↕
RETURN_AFTER_RETENTION
Return
Houdt het pakket bij het postkantoor van bestemming gedurende de bewaartermijn en stuurt het daarna terug naar de afzender.
RETURN_IMMEDIATELY
Return
Stuurt het pakket direct terug naar de afzender, zonder bewaartermijn.
FORWARD
Redirection
Stuurt het pakket door naar een ander adres. Hiervoor worden extra portokosten in rekening gebracht.
ABANDON
Renounce
Vernietigt het pakket op de bestemming. Er wordt niets teruggestuurd en er worden geen retourkosten in rekening gebracht.
De API biedt beide retourvarianten afzonderlijk aan; de Return-optie in het Dashboard dekt beide.
transportMethod accepteert AIR of MOST_ECONOMICAL en bepaalt hoe een geretourneerd pakket terugreist. Dit geldt alleen voor de twee RETURN_*-opties — het Dashboard toont het bijbehorende veld Return method alleen wanneer Return is geselecteerd.
De keuzelijst If undeliverable in het dialoogvenster Create label van het Dashboard schrijft naar hetzelfde veld, dus een label dat in het Dashboard is aangemaakt en een label dat via de API is aangemaakt, gedragen zich identiek.
references sub-input
Deze velden worden afgedrukt op het vervoerderslabel en/of de handelsfactuur. Gebruik ze om PO-nummers, vergunningsnummers en vrije-tekstopmerkingen te tonen die de geadresseerde of douaneautoriteit moet zien.
Field↕
Status↕
Opmerkingen↕
Lengte↕
invoiceNumber
Optioneel
Factuurnummer van de handelaar.
—
purchaseOrderNumber
Optioneel
PO-nummer van de handelaar.
—
licenseNumber
Optioneel
Export-/importvergunningsnummer.
—
certificateNumber
Optioneel
Douanecertificaatnummer.
—
paymentConditions
Optioneel
Vrije tekst met betalingsvoorwaarden, weergegeven op de handelsfactuur.
Maximaal 200 tekens — langere waarden lopen over op de afgedrukte factuur.
customsRemarks
Optioneel
Vrije tekst met douaneopmerkingen.
—
taxCode
Optioneel
Aangepaste belastingcode die op het label wordt afgedrukt.
—
Antwoord
De interessante velden op de geretourneerde Shipment zijn:
{
id
trackingDetails {
number
}
shipmentCartons {
label {
url
labelImage
}}}
trackingDetails.number is het Japan Post-trackingnummer.
Het object label kan het label op twee manieren retourneren — vraag op wat past bij uw workflow (of beide):
Field↕
Retourneert↕
Wanneer gebruiken↕
url
Een gehoste link naar het gerenderde labelbestand (PDF), klaar om te downloaden of af te drukken.
U wilt een link doorgeven — deze openen, e-mailen of het bestand later ophalen zonder het in de payload te bewaren.
labelImage
De base64-gecodeerde labelafbeelding (PNG/PDF/ZPL) inline in het antwoord.
U wilt de labelbytes rechtstreeks in het antwoord om toe te voegen aan een fulfillmentworkflow of op te slaan in uw WMS.
Selecteer alleen de velden die u nodig hebt. Het opvragen van url houdt het antwoord klein; het opvragen van labelImage retourneert het volledige label inline, zodat u geen tweede round trip nodig hebt om het op te halen. Het voorbeeld hierboven vraagt url op.
Servicelevelcodes gebruiken punten, geen underscores. U kunt de underscore-vorm (japan_post_air_parcel) tegenkomen in foutmeldingen en interne verwijzingen, maar deze is geen geldige invoer.
Luchtdiensten
Code↕
Japan Post-service↕
Posttype↕
japan_post.air.ems_documents
EMS (documenten)
1-0
japan_post.air.ems_merchandise
EMS (goederen)
1-1
japan_post.air.parcel
Internationaal pakket
1-5
japan_post.air.packet
International Air Packet
1-8
japan_post.air.small_packet
Klein pakket
1-9
japan_post.air.printed_matter_registered
Drukwerk, aangetekend
1-A
japan_post.air.printed_matter
Drukwerk
1-B
japan_post.air.letter_registered
Brief, aangetekend
1-C
japan_post.air.letter
Brief
1-D
Oppervlaktediensten
Code↕
Japan Post-service↕
Posttype↕
japan_post.surface.parcel
Internationaal pakket
2-5
japan_post.surface.small_packet
Klein pakket
2-9
japan_post.surface.printed_matter
Drukwerk
2-B
japan_post.surface.letter
Brief
2-D
Kiezen tussen vergelijkbare services
Small packet versus International Air Packet. Beide zijn beperkt tot maximaal 2 kg. japan_post.air.packet is de traceerbare small-packet-service van Japan Post. japan_post.air.small_packet is het niet-traceerbare equivalent. Gebruik japan_post.air.packet als u tracking nodig hebt voor een lichtgewicht pakket.
Aangetekende varianten. Voor brieven en drukwerk wordt tracking toegevoegd via de aangetekende (書留) versie van de service. japan_post.air.printed_matter en japan_post.air.letter bevatten dit niet op zichzelf.
Verouderde codes
japan_post.air.epacket_light was International e-Packet Light. Japan Post heeft de service op 1 juni 2026 hernoemd naar International Air Packet en uitgebreid naar alle landen en regio's. De service zelf is ongewijzigd.
De oude code blijft werken, zodat bestaande integraties gewoon blijven functioneren, maar gebruik voor nieuw werk japan_post.air.packet.
Transportmoduscodes
japan_post.air, japan_post.surface, japan_post.economy_air en japan_post.custom werken ook, maar deze geven een transportmodus of fallback aan in plaats van een specifiek postproduct. Gebruik voor normale zendingen een van de bovenstaande servicecodes.
Valideer de code die u verzendt
Een niet-herkende serviceLevelCodelevert geen foutmelding op. Het verzoek retourneert HTTP 200 zonder errors-array, serviceLevel komt terug als null, en de verzendkosten vallen weg uit het landed-cost-totaal — waardoor het antwoord correct lijkt, terwijl de bedragen onjuist zijn.
Controleer altijd dat shipmentRatingCreateWorkflow.serviceLevel niet null is voordat u op de totalen vertrouwt.
Om op elk moment de actuele lijst op te halen:
{
serviceLevels(carrier:"carrier_00004c9b-9431-4518-bfbc-b9f8476335b1"){
code
name
}}
Deze query gebruikt de carrier-ID. Als u de carriercode japan_post doorgeeft, wordt een lege lijst geretourneerd zonder foutmelding.
Validatiefouten (ontbrekende verplichte velden, ongeldige landcodes, enz.) komen terug in de standaard GraphQL-array errors en breken de rest van de keten af.
Japan Post-fouten (mislukte labelgeneratie, ongeldig adres, enz.) verschijnen als GraphQL-fouten bij shipmentCreateWorkflow. Als een nieuwe poging nodig is, neem dan contact op met support — de aanbevolen aanpak is om de volledige mutatie opnieuw in te dienen met gecorrigeerde invoer.
VALIDATION_INVALID_TYPE_VARIABLE
{"errors":[{"message":"invalid type for variable: 'shipmentInput'","extensions":{"name":"shipmentInput","code":"VALIDATION_INVALID_TYPE_VARIABLE"}}]}
Deze foutmelding noemt de hele variabele, niet het veld dat daadwerkelijk fout is. Meestal betekent dit dat een enum-waarde binnen die variabele geen geldig lid van zijn enum is — meestal nonDelivery.option, contentsType of serviceLevel.
Dit is geen JSON-typeprobleem. Het wel of niet aanhalen van uw booleans en getallen verandert hier niets aan, omdat de payload nooit zo ver komt — de enum wordt al eerder afgewezen.
Controleer elk veld met een enum-waarde in de variabele aan de hand van de geaccepteerde waarden om het foutieve veld te vinden:
Veld↕
Geaccepteerde waarden↕
nonDelivery.option
RETURN_AFTER_RETENTION, RETURN_IMMEDIATELY, FORWARD, ABANDON — geen RETURN
nonDelivery.transportMethod
AIR, MOST_ECONOMICAL
contentsType
SALE_OF_GOODS, ECOMMERCE_GOODS, COMMERCIAL_GOODS, COMMERCIAL_SAMPLE, RETURNED_GOODS, GIFT, DOCUMENTS, OTHER
serviceLevel
Een japan_post.*-servicecode
De volledige lijst met enum-leden voor elke invoer staat op de bijbehorende typepagina in de API-referentie.
Elke stap is afzonderlijk beveiligd. Uw API-key moet de schrijfscope hebben voor elke entiteit in de keten (ITEM_WRITE, CARTON_WRITE, SHIPMENT_RATING_WRITE, LANDED_COST_WRITE, SHIPMENT_WRITE). De standaard handelaarsrol op een Verified Account verleent al deze rechten.
Eén zending aanmaken
Eén zending aanmaken
De
CreateDeclarationShipmentGraphQL-workflow brengt een Japan Post-zending van ruwe invoergegevens naar een afdrukbaar label in één round trip.CreateDeclarationShipmentkoppelt zes*Workflow-mutaties aaneen tot één GraphQL-verzoek. Elke stap bouwt voort op de gegevens die de vorige stappen hebben geleverd, en ze worden allemaal samen verzonden, zodat een complete zending in één round trip kan worden aangemaakt:De
Workflow-mutaties zijn ontworpen om gekoppeld te worden: u hoeft geen ID's van de ene stap naar de volgende door te geven en u hoeft niet per stap een apart verzoek te verzenden. Verstuur het volledige document en ontvang de uiteindelijkeShipmentterug.Wanneer de
serviceLevelin de laatste stap een Japan Post-servicelevel is (japan_post.*), roept Zonos namens u de Japan Post Label API (code 52) aan met de Later Pay Numbers van uw Verified Account, genereert het label en trackingnummer, maakt de Declaration ID aan en koppelt deze aan elkaar — allemaal binnen die laatsteshipmentCreateWorkflow-stap.Endpoint en authenticatie
Alle verzoeken in deze keten gebruiken hetzelfde endpoint. Wat u in de headers meegeeft, hangt af van uw configuratie — kies uw tabblad.
URL:
Headers:
U verzendt uw eigen orders onder uw eigen Verified Account. Authenticeer als uzelf — geen account key nodig.
Waar u het vindt: Zonos Dashboard → Settings → Integrations → de sectie Account Key. Kopieer de token op de rij API key; dat is uw
credentialToken.Voorbeeldverzoek
Een compleet
CreateDeclarationShipment-verzoek dat u kunt kopiëren en aanpassen — de mutatie, de variabelen en het antwoord — voor één Japan Post-pakket dat DDP naar de VS wordt verzonden. Elke invoer wordt hieronder stapsgewijs uitgelegd.mutation CreateDeclarationShipment($partyInput: [PartyCreateWorkflowInput!]!$itemInput: [ItemCreateWorkflowInput!]!$cartonInput: [CartonCreateWorkflowInput!]!$shipmentRatingInput: ShipmentRatingCreateWorkflowInput!$landedCostInput: LandedCostWorkFlowInput!$shipmentInput: ShipmentCreateWorkflowInput!) {partyCreateWorkflow(input: $partyInput) {idtypelocation {line1localitypostalCodecountryCode}}itemCreateWorkflow(input: $itemInput) {idnameskuamountcurrencyCodehsCode}cartonsCreateWorkflow(input: $cartonInput) {idlengthwidthheightdimensionalUnitweightweightUnit}shipmentRatingCreateWorkflow(input: $shipmentRatingInput) {idamount}landedCostCalculateWorkflow(input: $landedCostInput) {idmethodcurrencyCodeamountSubtotals {dutiestaxesfeesshippinglandedCostTotal}}shipmentCreateWorkflow(input: $shipmentInput) {idtrackingDetails {number}shipmentCartons {label {url}}}}Stap voor stap
De kolom
Statusin elke tabel hieronder gebruikt de volgende termen:1.
partyCreateWorkflowMaakt de partijen aan die bij de zending betrokken zijn — op zijn minst een
ORIGIN(waar de zending vandaan wordt verzonden) en eenDESTINATION(de koper/geadresseerde).typeORIGINenDESTINATIONzijn de twee die deze flow nodig heeft. Andere (CONSIGNEE,EXPORTER,IMPORTER_OF_RECORD,PAYOR, enz.) bestaan wel, maar worden hier niet gebruikt.location.countryCodelocation.line1,locality,administrativeAreaCode,postalCodeperson.firstName,lastName,phoneperson.companyName,emailExample payload:
[ { "type": "DESTINATION", "location": { "countryCode": "US" }, "person": {} }, { "type": "ORIGIN", "location": { "countryCode": "JP" }, "person": {} } ]Het antwoord retourneert de aangemaakte
Party-ID's en de herleide adresvelden.2.
itemCreateWorkflowMaakt de regelitems aan waaruit de zending bestaat. Dit zijn de SKU's die op de handelsfactuur worden vermeld en die de landed-cost-berekening aansturen.
currencyCodequantityamounttotalAmountis opgegeven.totalAmountamount;amountwordt afgeleid viatotalAmount / quantity.hsCodecountryOfOriginname,descriptioncustomsDescriptionsku,productIdmeasurementsDe HS-code, het land van herkomst en het bedrag zijn de drie velden die de uitkomst van invoerrechten/belasting in stap 5 het meest beïnvloeden.
3.
cartonsCreateWorkflowMaakt de fysieke verpakkingen aan — de dozen, polybags of enveloppen waarin de items worden verpakt.
dimensionalUnitINCHofCENTIMETER.weight,weightUnitlength,width,heighttypePACKAGE.Elke carton wordt in stap 6 één pakket op het vervoerderslabel. Meerdere cartons → een zending met meerdere pakketten, met één trackingnummer per carton.
4.
shipmentRatingCreateWorkflowRegistreert de tariefopgave die de handelaar de koper voor verzending in rekening brengt.
amount0op als het gratis is.currencyCodeamount.serviceLevelCodejapan_post.air.parcel). Zie Japan Post-servicelevels voor de volledige lijst.displayNameDit is het tarief dat aan de koper is aangeboden bij het afrekenen. Het wordt meegenomen in de landed-cost-berekening als het subtotaal „shipping”, zodat invoerrechten en belastingen worden berekend op basis van de juiste CIF-waarde.
5.
landedCostCalculateWorkflowVoert de berekening van invoerrechten, belastingen en kosten uit voor het land van bestemming. Gebruikt de items, partijen en verzendkosten uit de voorgaande stappen.
endUseNOT_FOR_RESALEofFOR_RESALE. Sommige bestemmingen passen andere tarieven toe voor zakelijk versus particulier eindgebruik.tariffRateZONOS_PREFERREDindien niet opgegeven. Vertelt Zonos welke tariefbron/-methodologie moet worden toegepast.calculationMethodDDP(koper betaalt vooraf) ofDDU(koper betaalt aan de deur). GebruikDDPvoor vooruitbetaling. Bepaalt ofLandedCost.amountSubtotalsinvoerrechten/belasting bevat.currencyCodearrivalDateHet antwoord bevat
amountSubtotals(duties,taxes,fees,shipping,landedCostTotal) — dit zijn de bedragen die u aan de koper toont bij het afrekenen en die op de handelsfactuur worden afgedrukt.6.
shipmentCreateWorkflowDe laatste stap — maakt de entiteit
Shipmentaan, genereert het vervoerderslabel en (optioneel) de handelsfactuur/pakbon.Voor Japan Post Verified Accounts is dit ook waar Zonos namens u de Japan Post Label API (code 52) aanroept, uw Later Pay Numbers invoegt, de Declaration ID aanmaakt en deze koppelt aan het trackingnummer dat door Japan Post wordt geretourneerd.
Belangrijke velden:
serviceLeveljapan_post.air.ems_merchandise). Moet eenjapan_post.*-servicelevel zijn.generateLabeltrue; moettruezijn om een label te retourneren.contentsTypeSALE_OF_GOODS,ECOMMERCE_GOODS,COMMERCIAL_GOODS,COMMERCIAL_SAMPLE,RETURNED_GOODS,GIFT,DOCUMENTS,OTHER.nonDeliveryreferencesdeclaredValue/isDeclaredValueshipmentConsolidationIdBij
contentsTypezijn de twee meest gebruikte waarden voor verkeer via een Verified AccountECOMMERCE_GOODS(verkocht aan een consument, BtoC) enCOMMERCIAL_GOODS(verkocht tussen bedrijven, BtoB). Deze bepalen hetpkgTypedat Zonos meestuurt bij de Japan Post-labelaanvraag, dus deze keuze verandert wat er op de douaneaangifte wordt afgedrukt — het is niet alleen een label.nonDeliverysub-inputVertelt Japan Post wat er met het pakket moet gebeuren als het niet kan worden bezorgd — geweigerd door de geadresseerde, tegengehouden aan de grens, of onbestelbaar zoals geadresseerd.
optionaccepteert precies deze vier waarden. Er bestaat geen waardeRETURN— gebruikRETURN_AFTER_RETENTIONofRETURN_IMMEDIATELYom te kiezen wanneer het pakket terugkomt.option↕RETURN_AFTER_RETENTIONRETURN_IMMEDIATELYFORWARDABANDONDe API biedt beide retourvarianten afzonderlijk aan; de Return-optie in het Dashboard dekt beide.
transportMethodaccepteertAIRofMOST_ECONOMICALen bepaalt hoe een geretourneerd pakket terugreist. Dit geldt alleen voor de tweeRETURN_*-opties — het Dashboard toont het bijbehorende veld Return method alleen wanneer Return is geselecteerd.{ "nonDelivery": { "option": "RETURN_AFTER_RETENTION", "transportMethod": "MOST_ECONOMICAL" } }De keuzelijst If undeliverable in het dialoogvenster Create label van het Dashboard schrijft naar hetzelfde veld, dus een label dat in het Dashboard is aangemaakt en een label dat via de API is aangemaakt, gedragen zich identiek.
referencessub-inputDeze velden worden afgedrukt op het vervoerderslabel en/of de handelsfactuur. Gebruik ze om PO-nummers, vergunningsnummers en vrije-tekstopmerkingen te tonen die de geadresseerde of douaneautoriteit moet zien.
invoiceNumberpurchaseOrderNumberlicenseNumbercertificateNumberpaymentConditionscustomsRemarkstaxCodeAntwoord
De interessante velden op de geretourneerde
Shipmentzijn:{ id trackingDetails { number } shipmentCartons { label { url labelImage } } }trackingDetails.numberis het Japan Post-trackingnummer.Het object
labelkan het label op twee manieren retourneren — vraag op wat past bij uw workflow (of beide):urllabelImageSelecteer alleen de velden die u nodig hebt. Het opvragen van
urlhoudt het antwoord klein; het opvragen vanlabelImageretourneert het volledige label inline, zodat u geen tweede round trip nodig hebt om het op te halen. Het voorbeeld hierboven vraagturlop.Japan Post-servicelevels
Geef een van deze codes op als
serviceLevelCodeinshipmentRatingCreateWorkflow.Servicelevelcodes gebruiken punten, geen underscores. U kunt de underscore-vorm (
japan_post_air_parcel) tegenkomen in foutmeldingen en interne verwijzingen, maar deze is geen geldige invoer.Luchtdiensten
japan_post.air.ems_documents1-0japan_post.air.ems_merchandise1-1japan_post.air.parcel1-5japan_post.air.packet1-8japan_post.air.small_packet1-9japan_post.air.printed_matter_registered1-Ajapan_post.air.printed_matter1-Bjapan_post.air.letter_registered1-Cjapan_post.air.letter1-DOppervlaktediensten
japan_post.surface.parcel2-5japan_post.surface.small_packet2-9japan_post.surface.printed_matter2-Bjapan_post.surface.letter2-DKiezen tussen vergelijkbare services
Small packet versus International Air Packet. Beide zijn beperkt tot maximaal 2 kg.
japan_post.air.packetis de traceerbare small-packet-service van Japan Post.japan_post.air.small_packetis het niet-traceerbare equivalent. Gebruikjapan_post.air.packetals u tracking nodig hebt voor een lichtgewicht pakket.Aangetekende varianten. Voor brieven en drukwerk wordt tracking toegevoegd via de aangetekende (書留) versie van de service.
japan_post.air.printed_matterenjapan_post.air.letterbevatten dit niet op zichzelf.Verouderde codes
japan_post.air.epacket_lightwas International e-Packet Light. Japan Post heeft de service op 1 juni 2026 hernoemd naar International Air Packet en uitgebreid naar alle landen en regio's. De service zelf is ongewijzigd.De oude code blijft werken, zodat bestaande integraties gewoon blijven functioneren, maar gebruik voor nieuw werk
japan_post.air.packet.Transportmoduscodes
japan_post.air,japan_post.surface,japan_post.economy_airenjapan_post.customwerken ook, maar deze geven een transportmodus of fallback aan in plaats van een specifiek postproduct. Gebruik voor normale zendingen een van de bovenstaande servicecodes.Valideer de code die u verzendt
Een niet-herkende
serviceLevelCodelevert geen foutmelding op. Het verzoek retourneert HTTP 200 zondererrors-array,serviceLevelkomt terug alsnull, en de verzendkosten vallen weg uit het landed-cost-totaal — waardoor het antwoord correct lijkt, terwijl de bedragen onjuist zijn.Controleer altijd dat
shipmentRatingCreateWorkflow.serviceLevelniet null is voordat u op de totalen vertrouwt.Om op elk moment de actuele lijst op te halen:
{ serviceLevels(carrier: "carrier_00004c9b-9431-4518-bfbc-b9f8476335b1") { code name } }Deze query gebruikt de carrier-ID. Als u de carriercode
japan_postdoorgeeft, wordt een lege lijst geretourneerd zonder foutmelding.Foutafhandeling
errorsen breken de rest van de keten af.shipmentCreateWorkflow. Als een nieuwe poging nodig is, neem dan contact op met support — de aanbevolen aanpak is om de volledige mutatie opnieuw in te dienen met gecorrigeerde invoer.VALIDATION_INVALID_TYPE_VARIABLE{ "errors": [ { "message": "invalid type for variable: 'shipmentInput'", "extensions": { "name": "shipmentInput", "code": "VALIDATION_INVALID_TYPE_VARIABLE" } } ] }Deze foutmelding noemt de hele variabele, niet het veld dat daadwerkelijk fout is. Meestal betekent dit dat een enum-waarde binnen die variabele geen geldig lid van zijn enum is — meestal
nonDelivery.option,contentsTypeofserviceLevel.Dit is geen JSON-typeprobleem. Het wel of niet aanhalen van uw booleans en getallen verandert hier niets aan, omdat de payload nooit zo ver komt — de enum wordt al eerder afgewezen.
Controleer elk veld met een enum-waarde in de variabele aan de hand van de geaccepteerde waarden om het foutieve veld te vinden:
nonDelivery.optionRETURN_AFTER_RETENTION,RETURN_IMMEDIATELY,FORWARD,ABANDON— geenRETURNnonDelivery.transportMethodAIR,MOST_ECONOMICALcontentsTypeSALE_OF_GOODS,ECOMMERCE_GOODS,COMMERCIAL_GOODS,COMMERCIAL_SAMPLE,RETURNED_GOODS,GIFT,DOCUMENTS,OTHERserviceLeveljapan_post.*-servicecodeDe volledige lijst met enum-leden voor elke invoer staat op de bijbehorende typepagina in de API-referentie.
Machtigingen
Elke stap is afzonderlijk beveiligd. Uw API-key moet de schrijfscope hebben voor elke entiteit in de keten (
ITEM_WRITE,CARTON_WRITE,SHIPMENT_RATING_WRITE,LANDED_COST_WRITE,SHIPMENT_WRITE). De standaard handelaarsrol op een Verified Account verleent al deze rechten.Volgende stappen
CartonCreateWorkflowInput ItemCreateWorkflowInput LandedCostWorkFlowInput PartyCreateWorkflowInput ShipmentCreateWorkflowInput ShipmentRatingCreateWorkflowInput
cartonsCreateWorkflow itemCreateWorkflow landedCostCalculateWorkflow partyCreateWorkflow shipmentCreateWorkflow shipmentRatingCreateWorkflow
Was deze pagina nuttig?