DOCS

Opprett en forsendelse

Opprett en forsendelse

CreateDeclarationShipment GraphQL-arbeidsflyten tar en Japan Post-forsendelse fra rå inndata til en utskrivbar etikett i en enkelt rund.

CreateDeclarationShipment kjeder sammen seks *Workflow mutasjoner i en enkelt GraphQL-forespørsel. Hvert trinn bygger på dataene fra forrige trinn, og alle sendes inn sammen slik at en komplett forsendelse kan opprettes i en enkelt rund:

partyCreateWorkflow            → beskriv opprinnelses- og destinasjonspartner
itemCreateWorkflow             → beskriv linjeartikelene
cartonsCreateWorkflow          → beskriv den fysiske pakningen
shipmentRatingCreateWorkflow   → registrer sitatet for transportørtakst
landedCostCalculateWorkflow    → beregn toll / skatter / gebyrer
shipmentCreateWorkflow         → opprett forsendelsen + etikett

Workflow mutasjonene er designet for å være kjededet: du trenger ikke å tråde IDer fra ett trinn til det neste, og du trenger ikke å sende en separat forespørsel per trinn. Send hele dokumentet, få den endelige Shipment tilbake.

Når serviceLevel på det siste trinnet er et Japan Post-servicenivå (japan_post.*), kaller Zonos Japan Post Label API (kode 52) på dine vegne ved hjelp av Later Pay-tallene for din verifiserte konto, genererer etiketten og sporingsnummeret, oppretter deklarasjons-IDen, og kobler dem sammen – alt innenfor det siste shipmentCreateWorkflow-trinnet.

Hvorfor en mutasjon? Hvert trinn avhenger av det forrige (landed cost trenger artiklene + partene; etiketten trenger alt). Å samle dem i et enkelt GraphQL-dokument holder dataene konsistente og unngår fem ekstra runder.

Endepunkt og autentisering 

Forespørslene i denne kjeden bruker alle det samme endepunktet. Hva du sender i headerne avhenger av oppsettet ditt – velg fanen din.

URL:

https://api.zonos.com/graphql

Headers:

Du sender dine egne bestillinger under din egen verifiserte konto. Autentiser som deg selv – ingen kontanøkkel nødvendig.

credentialToken: {{YOUR_API_TOKEN}}

Hvor du finner det: Zonos Dashboard → SettingsIntegrationsAccount Key-seksjonen. Kopier tokenet på raden API key; det er din credentialToken.

Eksempelforespørsel 

En komplett CreateDeclarationShipment-forespørsel som du kan kopiere og tilpasse – mutasjonen, variablene og responsen – for en enkelt Japan Post-pakke som sendes DDP til USA. Hver inndata blir delt ned i delen trinn for trinn nedenfor.

1mutation CreateDeclarationShipment(
2$partyInput: [PartyCreateWorkflowInput!]!
3$itemInput: [ItemCreateWorkflowInput!]!
4$cartonInput: [CartonCreateWorkflowInput!]!
5$shipmentRatingInput: ShipmentRatingCreateWorkflowInput!
6$landedCostInput: LandedCostWorkFlowInput!
7$shipmentInput: ShipmentCreateWorkflowInput!
8) {
9 partyCreateWorkflow(input: $partyInput) {
10 id
11 type
12 location {
13 line1
14 locality
15 postalCode
16 countryCode
17 }
18 }
19 itemCreateWorkflow(input: $itemInput) {
20 id
21 name
22 sku
23 amount
24 currencyCode
25 hsCode
26 }
27 cartonsCreateWorkflow(input: $cartonInput) {
28 id
29 length
30 width
31 height
32 dimensionalUnit
33 weight
34 weightUnit
35 }
36 shipmentRatingCreateWorkflow(input: $shipmentRatingInput) {
37 id
38 amount
39 }
40 landedCostCalculateWorkflow(input: $landedCostInput) {
41 id
42 method
43 currencyCode
44 amountSubtotals {
45 duties
46 taxes
47 fees
48 shipping
49 landedCostTotal
50 }
51 }
52 shipmentCreateWorkflow(input: $shipmentInput) {
53 id
54 trackingDetails {
55 number
56 }
57 shipmentCartons {
58 label {
59 url
60 }
61 }
62 }
63}

Trinn for trinn 

Tabellen under bruker disse vilkårene i Status-kolonnen:

  • Required – forespørselen vil mislykkes uten det.
  • Required for label – valgfritt i GraphQL-skjemaet, men nødvendig for å produsere en gyldig Japan Post-etikett til USA.
  • Conditional – påkrevd avhengig av et annet felt (notert inline).
  • Recommended – valgfritt, men driver nøyaktige toll og skatter.
  • Optional – ikke nødvendig.

1. partyCreateWorkflow

Oppretter partene som er involvert i forsendelsen – minst en ORIGIN (der forsendelsen sendes fra) og en DESTINATION (kjøperen / mottakeren).

FieldStatusNotes
typeRequiredORIGIN, DESTINATION, RETURN, etc.
location.countryCodeRequiredISO-2 landskode.
location.line1, locality, administrativeAreaCode, postalCodeRequired for labelAdressefelt som trengs for en gyldig etikett.
person.firstName, lastName, phoneRequired for labelKontaktdetaljer som trengs for en gyldig etikett.
person.companyName, emailOptional

Eksempelpayload:

[
  { "type": "DESTINATION", "location": { "countryCode": "US" }, "person": {} },
  { "type": "ORIGIN", "location": { "countryCode": "JP" }, "person": {} }
]

Responsen returnerer de opprettede Party-IDene og løste adressefelt.

2. itemCreateWorkflow

Oppretter linjeartikelene som utgjør forsendelsen. Disse er SKUene som vises på handelsfakturaen og driver landed-cost-beregningen.

FieldStatusNotes
currencyCodeRequiredValuta for enhetsprisen.
quantityRequiredAntall enheter av denne artiklen.
amountConditionalEnhetspris (ikke total). Påkrevd med mindre totalAmount er gitt.
totalAmountOptionalAlternativ til amount; amount er utledet fra totalAmount / quantity.
hsCodeRecommendedHarmonized System tariffkode. Driver tollsatser.
countryOfOriginRecommendedISO-2-kode hvor artiklen ble laget. Driver toll / FTA.
name, descriptionRecommendedKundevendt produktnavn + beskrivelse.
customsDescriptionOptionalTullbeskrivelse override.
sku, productIdOptionalDine interne identifikatorer.
measurementsOptionalPer-enhet vekt / dimensjoner.

HS-koden, opprinnelsesland og beløp er de tre feltene som mest påvirker toll-/skatteutfallet i trinn 5.

3. cartonsCreateWorkflow

Oppretter de fysiske pakkene – boksene, polyposene eller brevene som skal holde artiklene.

FieldStatusNotes
dimensionalUnitRequiredINCH eller CENTIMETER.
weight, weightUnitRequired for labelJapan Post krever pakkevekt.
length, width, heightOptionalYtre dimensjoner.
typeOptionalPakkestil (boks, polypose, brev). Standard til PACKAGE.

Hver kartong blir en pakke på transportør-etiketten i trinn 6. Flere kartong → fleirstykks forsendelse med ett sporingsnummer per kartong.

4. shipmentRatingCreateWorkflow

Registrerer takstene kjøpmannen belaster kjøperen for frakt.

FieldStatusNotes
amountRequiredDet kjøperen betaler for frakt. Gi 0 hvis gratis.
currencyCodeRequiredValuta for amount.
serviceLevelCodeRequiredTransportør-servicekode (f.eks. japan_post.air.parcel).
displayNameOptionalPen navn for kvitteringen / fakturaen.

Dette er taksten kjøperen fikk tilbud om ved kassen. Det går inn i landed-cost-beregningen som "frakt"-subtotalen slik at toll og skatter beregnes mot riktig CIF-verdi.

5. landedCostCalculateWorkflow

Kjør toll-, skatt- og gebyrberegningen for destinasjonslandet. Bruker artiklene, partene og fraktkostnaden fra forrige trinn.

FieldStatusNotes
endUseRequiredNOT_FOR_RESALE eller FOR_RESALE. Noen destinasjoner bruker ulike takster for kommersiell vs. personlig bruk.
tariffRateRequiredStandard til ZONOS_PREFERRED hvis utelatt. Forteller Zonos hvilken tariffkilde/-metodikk som skal brukes.
calculationMethodRecommendedDDP (kjøper forhåndbetaler) eller DDU (kjøper betaler ved døren). Bruk DDP for forhåndbetalt. Driver om LandedCost.amountSubtotals inkluderer toll/skatt.
currencyCodeOptionalValuta som landed-cost-subtotalene returneres i.
arrivalDateOptionalValutakurser og tariffplaner er festet til denne datoen hvis gitt.

Responsen inkluderer amountSubtotals (duties, taxes, fees, shipping, landedCostTotal) – dette er tallene du viser til kjøperen ved kassen og som skrives ut på handelsfakturaen.

6. shipmentCreateWorkflow

Det siste trinnet – oppretter Shipment enheten, genererer transportør-etiketten, og (valgfritt) handelsfakturaen / pakkelisten.

For Japan Post-verifiserte kontoer, er dette også hvor Zonos kaller Japan Post Label API (kode 52) på dine vegne, injiserer dine Later Pay-numre, oppretter deklarasjons-IDen, og kobler deklarasjons-IDen til sporingsnummeret som ble returnert av Japan Post.

Viktige felt:

FieldStatusNotes
serviceLevelRequired for labelJapan Post-tjenesten som skal sendes med (f.eks. japan_post.air.ems_merchandise). Må være et japan_post.* servicenivå.
generateLabelOptionalStandard til true; må være true for å returnere en etikett.
contentsTypeRecommendedSALE_OF_GOODS, GIFT, DOCUMENTS, SAMPLE, osv. Driver tullbehandling.
nonDeliveryOptionalHva transportøren skal gjøre hvis levering mislykkes: RETURN, ABANDON, FORWARD.
referencesOptionalKjøpmanns-leverte referansenumre som skrives ut på etiketten og handelsfakturaen. Se nedenfor.
declaredValue / isDeclaredValueOptionalForsikringsverdien for forsendelsen.
shipmentConsolidationIdOptionalBrukt når denne forsendelsen er del av en batch dispatch.

references sub-input

Disse feltene skrives ut på transportør-etiketten og/eller handelsfakturaen. Bruk dem til å vise PO-numre, lisens-numre, og fri-tekst-merknader som mottakeren eller tullmyndighetene må se.

FieldStatusNotesLength
invoiceNumberOptionalKjøpmanns-fakturanummer.
purchaseOrderNumberOptionalKjøpmanns PO-nummer.
licenseNumberOptionalEksport-/importlisens-nummer.
certificateNumberOptionalTull-sertifikatnummer.
paymentConditionsOptionalFri-tekst-betalingsvilkår vist på handelsfakturaen.Grens til 200 tegn – lengre verdier overflyter på den trykte fakturaen.
customsRemarksOptionalFri-tekst tullmerknader.
taxCodeOptionalEgendefinert skattekode trykt på etiketten.

Response

De interessante feltene på returnert Shipment er:

{
  id
  trackingDetails {
    number
  }
  shipmentCartons {
    label {
      url
      labelImage
    }
  }
}

trackingDetails.number er Japan Post sporingsnummeret.

label-objektet kan returnere etiketten på to måter – be om den som passer arbeidsflyten din (eller begge):

FieldReturnsUse when
urlEn hosted link til den renderte etikettfilen (PDF), klar til nedlasting eller utskrift.Du vil levere en lenke – åpne den, send den e-post, eller hent filen senere uten å holde den i payloaden.
labelImageDen base64-kodede etikettbildet (PNG/PDF/ZPL) inline i responsen.Du vil ha etikettbytene direkte i responsen for å legge til arbeidsflyten for oppfyllelse eller lagring til WMS.

Velg bare feltene du trenger. Å be om url holder responsen liten; å be om labelImage returnerer hele etiketten inline slik at du ikke trenger en annen rund for å hente den. Eksempelet over ber om url.

Feilhåndtering 

  • Valideringsfeil (manglende påkrevde felt, ugyldige landskoder, osv.) kommer tilbake i standard GraphQL errors matrise og avbryter resten av kjeden.
  • Japan Post feil (etikettgenereringsfeil, ugyldig adresse, osv.) oppstår som GraphQL feil på shipmentCreateWorkflow. Hvis et nytt forsøk er nødvendig, kontakt support – den anbefalte veien er å sende den fullstendige mutasjonen på nytt med korrigert inndata.

Tillatelser 

Hvert trinn er uavhengig sikret. Din API-nøkkel må holde skriveomfanget for hver enhet i kjeden (ITEM_WRITE, CARTON_WRITE, SHIPMENT_RATING_WRITE, LANDED_COST_WRITE, SHIPMENT_WRITE). Standartkjøpmannsrollen på en verifisert konto gir alle disse.

Neste steg 

Bestill en demo

Var denne siden nyttig?