Il workflow GraphQL CreateDeclarationShipment porta una spedizione Japan Post dagli input grezzi a un'etichetta stampabile in un solo round trip.
CreateDeclarationShipment concatena sei mutazioni *Workflow in un'unica richiesta GraphQL. Ogni passaggio si basa sui dati forniti dai passaggi precedenti e vengono inviati tutti insieme, in modo da poter creare una spedizione completa in un solo round trip:
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
Le mutazioni Workflow sono progettate per essere concatenate: non è necessario passare gli ID da un passaggio all'altro né inviare una richiesta separata per ogni passaggio. Invia l'intero documento e ottieni indietro lo Shipment finale.
Quando il serviceLevel dell'ultimo passaggio è un livello di servizio Japan Post (japan_post.*), Zonos chiama per tuo conto l'API etichette di Japan Post (codice 52) utilizzando i Later Pay Number del tuo Verified Account, genera l'etichetta e il numero di tracciamento, crea il Declaration ID e li collega — tutto all'interno di quello stesso passaggio finale shipmentCreateWorkflow.
Perché un'unica mutazione? Ogni passaggio dipende dal precedente (il costo allo sbarco richiede gli articoli e le parti; l'etichetta richiede tutto). Raggruppare tutto in un unico documento GraphQL mantiene i dati coerenti ed evita cinque round trip aggiuntivi.
Le richieste di questa catena usano tutte lo stesso endpoint. Ciò che passi nelle intestazioni dipende dalla tua configurazione: scegli la scheda che ti riguarda.
URL:
https://api.zonos.com/graphql
Intestazioni:
Spedisci i tuoi ordini con il tuo Verified Account. Autenticati come te stesso — non serve nessuna account key.
credentialToken: {{YOUR_API_TOKEN}}
Dove trovarlo: Zonos Dashboard → Settings → Integrations → la sezione Account Key. Copia il token nella riga API key: quello è il tuo credentialToken.
Una richiesta CreateDeclarationShipment completa che puoi copiare e adattare — la mutazione, le sue variabili e la risposta — per una singola spedizione Japan Post inviata in DDP verso gli Stati Uniti. Ogni input viene descritto nel dettaglio nella sezione passo-passo qui sotto.
La colonna Status in ciascuna tabella qui sotto usa questi termini:
Obbligatorio — la richiesta fallisce senza questo campo.
Obbligatorio per l'etichetta — facoltativo nello schema GraphQL, ma necessario per produrre un'etichetta Japan Post statunitense valida.
Condizionale — obbligatorio in base a un altro campo (indicato nella nota).
Consigliato — facoltativo, ma determina dazi e tasse accurati.
Facoltativo — non necessario.
1. partyCreateWorkflow
Crea le parti coinvolte nella spedizione — come minimo un ORIGIN (da dove parte la spedizione) e un DESTINATION (l'acquirente / destinatario).
Campo↕
Status↕
Note↕
type
Obbligatorio
ORIGIN e DESTINATION sono i due valori richiesti da questo flusso. Ne esistono altri (CONSIGNEE, EXPORTER, IMPORTER_OF_RECORD, PAYOR, ecc.), ma non sono usati qui.
La risposta restituisce gli ID Party creati e i campi indirizzo risolti.
2. itemCreateWorkflow
Crea le righe articolo che compongono la spedizione. Sono gli SKU che compariranno sulla fattura commerciale e che determinano il calcolo del costo allo sbarco.
Campo↕
Status↕
Note↕
currencyCode
Obbligatorio
Valuta del prezzo unitario.
quantity
Obbligatorio
Numero di unità di questo articolo.
amount
Condizionale
Prezzo unitario (non totale). Obbligatorio a meno che non venga fornito totalAmount.
totalAmount
Facoltativo
Alternativa ad amount; amount viene derivato da totalAmount / quantity.
hsCode
Consigliato
Codice tariffario del Sistema Armonizzato. Determina le aliquote daziarie.
countryOfOrigin
Consigliato
Codice ISO-2 del paese in cui è stato realizzato l'articolo. Determina dazi / FTA.
name, description
Consigliato
Nome del prodotto e descrizione rivolti al cliente.
customsDescription
Facoltativo
Descrizione doganale alternativa.
sku, productId
Facoltativo
I tuoi identificatori interni.
measurements
Facoltativo
Peso / dimensioni per unità.
Il codice HS, il paese di origine e l'importo sono i tre campi che influenzano maggiormente l'esito di dazi/tasse nel passaggio 5.
3. cartonsCreateWorkflow
Crea i colli fisici — le scatole, i polybag o le buste che conterranno gli articoli.
Campo↕
Status↕
Note↕
dimensionalUnit
Obbligatorio
INCH o CENTIMETER.
weight, weightUnit
Obbligatorio per l'etichetta
Japan Post richiede il peso del collo.
length, width, height
Facoltativo
Dimensioni esterne.
type
Facoltativo
Stile di imballaggio (scatola, polybag, busta). Il valore predefinito è PACKAGE.
Ogni collo diventa un pacco sull'etichetta del corriere nel passaggio 6. Più colli → spedizione multi-collo con un numero di tracciamento per collo.
4. shipmentRatingCreateWorkflow
Registra il preventivo tariffario che il commerciante addebita all'acquirente per la spedizione.
Campo↕
Status↕
Note↕
amount
Obbligatorio
Quanto paga l'acquirente per la spedizione. Passa 0 se gratuita.
Questa è la tariffa proposta all'acquirente al checkout. Confluisce nel calcolo del costo allo sbarco come subtotale "shipping", così dazi e tasse vengono calcolati sul valore CIF corretto.
5. landedCostCalculateWorkflow
Esegue il calcolo di dazi, tasse e commissioni per il paese di destinazione. Utilizza gli articoli, le parti e il costo di spedizione dei passaggi precedenti.
Campo↕
Status↕
Note↕
endUse
Obbligatorio
NOT_FOR_RESALE o FOR_RESALE. Alcune destinazioni applicano aliquote diverse per uso commerciale rispetto a uso personale.
tariffRate
Obbligatorio
Il valore predefinito è ZONOS_PREFERRED se omesso. Indica a Zonos quale fonte/metodologia tariffaria applicare.
calculationMethod
Consigliato
DDP (l'acquirente paga in anticipo) o DDU (l'acquirente paga alla consegna). Usa DDP per il prepagato. Determina se LandedCost.amountSubtotals include dazi/tasse.
currencyCode
Facoltativo
Valuta in cui vengono restituiti i subtotali del costo allo sbarco.
arrivalDate
Facoltativo
Se fornita, i tassi di cambio e le tabelle tariffarie vengono fissati a questa data.
La risposta include amountSubtotals (duties, taxes, fees, shipping, landedCostTotal) — questi sono i valori che mostri all'acquirente al checkout e che vengono stampati sulla fattura commerciale.
6. shipmentCreateWorkflow
Il passaggio finale — crea la Shipment, genera l'etichetta del corriere e (facoltativamente) la fattura commerciale / packing slip.
Per i Verified Account Japan Post, è anche qui che Zonos chiama per tuo conto l'API etichette di Japan Post (codice 52), inserisce i tuoi Later Pay Number, crea il Declaration ID e collega il Declaration ID al numero di tracciamento restituito da Japan Post.
Campi principali:
Campo↕
Status↕
Note↕
serviceLevel
Obbligatorio per l'etichetta
Il servizio Japan Post con cui spedire (es. japan_post.air.ems_merchandise). Deve essere un livello di servizio japan_post.*.
generateLabel
Facoltativo
Il valore predefinito è true; deve essere true per restituire un'etichetta.
contentsType
Consigliato
Determina il trattamento doganale. Uno tra SALE_OF_GOODS, ECOMMERCE_GOODS, COMMERCIAL_GOODS, COMMERCIAL_SAMPLE, RETURNED_GOODS, GIFT, DOCUMENTS, OTHER.
nonDelivery
Facoltativo
Cosa deve fare Japan Post se il pacco non può essere consegnato. Vedi sotto.
references
Facoltativo
Numeri di riferimento forniti dal commerciante, stampati sull'etichetta e sulla fattura commerciale. Vedi sotto.
declaredValue / isDeclaredValue
Facoltativo
Valore assicurativo della spedizione.
shipmentConsolidationId
Facoltativo
Utilizzato quando questa spedizione fa parte di un invio in batch.
Per contentsType, i due valori più comuni per il traffico dei Verified Account sono ECOMMERCE_GOODS (venduto a un consumatore, BtoC) e COMMERCIAL_GOODS (venduto tra aziende, BtoB). Questi valori determinano il pkgType che Zonos invia nella chiamata all'etichetta Japan Post, quindi la scelta cambia ciò che viene stampato sulla dichiarazione doganale — non è solo una questione di etichetta.
Sotto-input nonDelivery
Indica a Japan Post cosa fare del pacco se non può essere consegnato — rifiutato dal destinatario, respinto alla frontiera o non recapitabile all'indirizzo indicato.
option accetta esattamente questi quattro valori. Non esiste un valore RETURN — usa RETURN_AFTER_RETENTION o RETURN_IMMEDIATELY per scegliere quando il pacco torna indietro.
option↕
Equivalente nella Dashboard↕
Cosa fa Japan Post↕
RETURN_AFTER_RETENTION
Return
Trattiene il pacco presso l'ufficio postale di destinazione per il periodo di giacenza, poi lo restituisce al mittente.
RETURN_IMMEDIATELY
Return
Restituisce subito il pacco al mittente, senza periodo di giacenza.
FORWARD
Redirection
Reindirizza il pacco a un indirizzo diverso. Si applicano costi di spedizione aggiuntivi.
ABANDON
Renounce
Smaltisce il pacco a destinazione. Nulla viene restituito e non viene addebitata alcuna spesa di reso.
L'API espone separatamente entrambe le varianti di reso; l'opzione Return della Dashboard le copre entrambe.
transportMethod accetta AIR o MOST_ECONOMICAL e determina come viaggia un pacco reso. Si applica solo alle due opzioni RETURN_* — la Dashboard mostra il campo Return method corrispondente solo quando è selezionato Return.
Il selettore If undeliverable nella finestra di dialogo Create label della Dashboard scrive esattamente questo stesso campo, quindi un'etichetta creata dalla Dashboard e una creata tramite API si comportano in modo identico.
Sotto-input references
Questi campi vengono stampati sull'etichetta del corriere e/o sulla fattura commerciale. Usali per riportare numeri di ordine d'acquisto, numeri di licenza e note in testo libero che il destinatario o l'autorità doganale devono vedere.
Campo↕
Status↕
Note↕
Lunghezza↕
invoiceNumber
Facoltativo
Numero di fattura del commerciante.
—
purchaseOrderNumber
Facoltativo
Numero d'ordine del commerciante.
—
licenseNumber
Facoltativo
Numero di licenza di esportazione/importazione.
—
certificateNumber
Facoltativo
Numero di certificato doganale.
—
paymentConditions
Facoltativo
Termini di pagamento in testo libero mostrati sulla fattura commerciale.
Limite di 200 caratteri — valori più lunghi traboccano sulla fattura stampata.
{
id
trackingDetails {
number
}
shipmentCartons {
label {
url
labelImage
}}}
trackingDetails.number è il numero di tracciamento Japan Post.
L'oggetto label può restituire l'etichetta in due modi — richiedi quello più adatto al tuo workflow (o entrambi):
Campo↕
Restituisce↕
Da usare quando↕
url
Un link ospitato al file dell'etichetta renderizzata (PDF), pronto per il download o la stampa.
Vuoi condividere un link — aprirlo, inviarlo via email o recuperare il file più avanti senza tenerlo nel payload.
labelImage
L'immagine dell'etichetta codificata in base64 (PNG/PDF/ZPL) inline nella risposta.
Vuoi i byte dell'etichetta direttamente nella risposta, da allegare a un workflow di evasione ordini o da salvare nel tuo WMS.
Seleziona solo i campi di cui hai bisogno. Richiedere url mantiene la risposta compatta; richiedere labelImage restituisce l'etichetta completa inline, così non serve un secondo round trip per recuperarla. L'esempio sopra richiede url.
I codici dei livelli di servizio usano punti, non underscore. Potresti vedere la forma con underscore (japan_post_air_parcel) nei messaggi di errore e nei riferimenti interni, ma non è un input valido.
Servizi aerei
Codice↕
Servizio Japan Post↕
Tipo di posta↕
japan_post.air.ems_documents
EMS (documenti)
1-0
japan_post.air.ems_merchandise
EMS (merce)
1-1
japan_post.air.parcel
Pacco internazionale
1-5
japan_post.air.packet
International Air Packet
1-8
japan_post.air.small_packet
Small packet
1-9
japan_post.air.printed_matter_registered
Stampe, raccomandate
1-A
japan_post.air.printed_matter
Stampe
1-B
japan_post.air.letter_registered
Lettera, raccomandata
1-C
japan_post.air.letter
Lettera
1-D
Servizi di superficie
Codice↕
Servizio Japan Post↕
Tipo di posta↕
japan_post.surface.parcel
Pacco internazionale
2-5
japan_post.surface.small_packet
Small packet
2-9
japan_post.surface.printed_matter
Stampe
2-B
japan_post.surface.letter
Lettera
2-D
Scegliere tra servizi simili
Small packet vs. International Air Packet. Entrambi hanno un limite di 2 kg. japan_post.air.packet è il servizio small-packet tracciato di Japan Post. japan_post.air.small_packet è l'equivalente non tracciato. Se ti serve il tracciamento su un pacco leggero, usa japan_post.air.packet.
Varianti raccomandate. Per lettere e stampe, il tracciamento viene aggiunto dalla versione raccomandata (書留) del servizio. japan_post.air.printed_matter e japan_post.air.letter non lo includono da soli.
Codici deprecati
japan_post.air.epacket_light era International e-Packet Light. Japan Post ha rinominato il servizio in International Air Packet il 1° giugno 2026, estendendolo a tutti i paesi e le regioni. Il servizio in sé è rimasto invariato.
Il vecchio codice continua a essere risolto, così le integrazioni esistenti continuano a funzionare, ma per i nuovi sviluppi usa japan_post.air.packet.
Codici di modalità di trasporto
Anche japan_post.air, japan_post.surface, japan_post.economy_air e japan_post.custom vengono risolti, ma identificano una modalità di trasporto o un fallback, non un prodotto postale specifico. Per le spedizioni normali usa uno dei codici servizio elencati sopra.
Convalida il codice che invii
Un serviceLevelCode non riconosciuto non genera un errore. La richiesta restituisce HTTP 200 senza array errors, serviceLevel torna null e il costo di spedizione esce dal totale del costo allo sbarco — quindi la risposta sembra corretta mentre gli importi sono sbagliati.
Verifica sempre che shipmentRatingCreateWorkflow.serviceLevel non sia nullo prima di fare affidamento sui totali.
Per recuperare l'elenco aggiornato in qualsiasi momento:
{
serviceLevels(carrier:"carrier_00004c9b-9431-4518-bfbc-b9f8476335b1"){
code
name
}}
Questa query richiede l'ID del corriere. Passare il codice corriere japan_post restituisce un elenco vuoto senza errori.
Gli errori di convalida (campi obbligatori mancanti, codici paese non validi, ecc.) vengono restituiti nel consueto array GraphQL errors e interrompono il resto della catena.
Gli errori Japan Post (errore nella generazione dell'etichetta, indirizzo non valido, ecc.) compaiono come errori GraphQL su shipmentCreateWorkflow. Se è necessario un nuovo tentativo, contatta l'assistenza — il percorso consigliato è inviare di nuovo l'intera mutazione con l'input corretto.
VALIDATION_INVALID_TYPE_VARIABLE
{"errors":[{"message":"invalid type for variable: 'shipmentInput'","extensions":{"name":"shipmentInput","code":"VALIDATION_INVALID_TYPE_VARIABLE"}}]}
Questo errore indica l'intera variabile, non il campo che in realtà è sbagliato. Nella quasi totalità dei casi significa che un valore enum all'interno di quella variabile non appartiene al suo enum — più spesso nonDelivery.option, contentsType o serviceLevel.
Non è un problema di tipizzazione JSON. Mettere o togliere le virgolette da booleani e numeri non risolve nulla, perché il payload non arriva nemmeno a quel punto: l'enum viene respinto prima.
Per trovare il campo sbagliato, controlla ogni campo di tipo enum nella variabile rispetto ai suoi valori accettati:
Ogni passaggio è protetto in modo indipendente. La tua API key deve avere lo scope di scrittura per ogni entità della catena (ITEM_WRITE, CARTON_WRITE, SHIPMENT_RATING_WRITE, LANDED_COST_WRITE, SHIPMENT_WRITE). Il ruolo commerciante standard su un Verified Account concede tutti questi scope.
Crea un'unica spedizione
Crea un'unica spedizione
Il workflow GraphQL
CreateDeclarationShipmentporta una spedizione Japan Post dagli input grezzi a un'etichetta stampabile in un solo round trip.CreateDeclarationShipmentconcatena sei mutazioni*Workflowin un'unica richiesta GraphQL. Ogni passaggio si basa sui dati forniti dai passaggi precedenti e vengono inviati tutti insieme, in modo da poter creare una spedizione completa in un solo round trip:Le mutazioni
Workflowsono progettate per essere concatenate: non è necessario passare gli ID da un passaggio all'altro né inviare una richiesta separata per ogni passaggio. Invia l'intero documento e ottieni indietro loShipmentfinale.Quando il
serviceLeveldell'ultimo passaggio è un livello di servizio Japan Post (japan_post.*), Zonos chiama per tuo conto l'API etichette di Japan Post (codice 52) utilizzando i Later Pay Number del tuo Verified Account, genera l'etichetta e il numero di tracciamento, crea il Declaration ID e li collega — tutto all'interno di quello stesso passaggio finaleshipmentCreateWorkflow.Endpoint e autenticazione
Le richieste di questa catena usano tutte lo stesso endpoint. Ciò che passi nelle intestazioni dipende dalla tua configurazione: scegli la scheda che ti riguarda.
URL:
Intestazioni:
Spedisci i tuoi ordini con il tuo Verified Account. Autenticati come te stesso — non serve nessuna account key.
Dove trovarlo: Zonos Dashboard → Settings → Integrations → la sezione Account Key. Copia il token nella riga API key: quello è il tuo
credentialToken.Richiesta di esempio
Una richiesta
CreateDeclarationShipmentcompleta che puoi copiare e adattare — la mutazione, le sue variabili e la risposta — per una singola spedizione Japan Post inviata in DDP verso gli Stati Uniti. Ogni input viene descritto nel dettaglio nella sezione passo-passo qui sotto.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}}}}Passo per passo
La colonna
Statusin ciascuna tabella qui sotto usa questi termini:1.
partyCreateWorkflowCrea le parti coinvolte nella spedizione — come minimo un
ORIGIN(da dove parte la spedizione) e unDESTINATION(l'acquirente / destinatario).typeORIGINeDESTINATIONsono i due valori richiesti da questo flusso. Ne esistono altri (CONSIGNEE,EXPORTER,IMPORTER_OF_RECORD,PAYOR, ecc.), ma non sono usati qui.location.countryCodelocation.line1,locality,administrativeAreaCode,postalCodeperson.firstName,lastName,phoneperson.companyName,emailExample payload:
[ { "type": "DESTINATION", "location": { "countryCode": "US" }, "person": {} }, { "type": "ORIGIN", "location": { "countryCode": "JP" }, "person": {} } ]La risposta restituisce gli ID
Partycreati e i campi indirizzo risolti.2.
itemCreateWorkflowCrea le righe articolo che compongono la spedizione. Sono gli SKU che compariranno sulla fattura commerciale e che determinano il calcolo del costo allo sbarco.
currencyCodequantityamounttotalAmount.totalAmountamount;amountviene derivato datotalAmount / quantity.hsCodecountryOfOriginname,descriptioncustomsDescriptionsku,productIdmeasurementsIl codice HS, il paese di origine e l'importo sono i tre campi che influenzano maggiormente l'esito di dazi/tasse nel passaggio 5.
3.
cartonsCreateWorkflowCrea i colli fisici — le scatole, i polybag o le buste che conterranno gli articoli.
dimensionalUnitINCHoCENTIMETER.weight,weightUnitlength,width,heighttypePACKAGE.Ogni collo diventa un pacco sull'etichetta del corriere nel passaggio 6. Più colli → spedizione multi-collo con un numero di tracciamento per collo.
4.
shipmentRatingCreateWorkflowRegistra il preventivo tariffario che il commerciante addebita all'acquirente per la spedizione.
amount0se gratuita.currencyCodeamount.serviceLevelCodejapan_post.air.parcel). Vedi Livelli di servizio Japan Post per l'elenco completo.displayNameQuesta è la tariffa proposta all'acquirente al checkout. Confluisce nel calcolo del costo allo sbarco come subtotale "shipping", così dazi e tasse vengono calcolati sul valore CIF corretto.
5.
landedCostCalculateWorkflowEsegue il calcolo di dazi, tasse e commissioni per il paese di destinazione. Utilizza gli articoli, le parti e il costo di spedizione dei passaggi precedenti.
endUseNOT_FOR_RESALEoFOR_RESALE. Alcune destinazioni applicano aliquote diverse per uso commerciale rispetto a uso personale.tariffRateZONOS_PREFERREDse omesso. Indica a Zonos quale fonte/metodologia tariffaria applicare.calculationMethodDDP(l'acquirente paga in anticipo) oDDU(l'acquirente paga alla consegna). UsaDDPper il prepagato. Determina seLandedCost.amountSubtotalsinclude dazi/tasse.currencyCodearrivalDateLa risposta include
amountSubtotals(duties,taxes,fees,shipping,landedCostTotal) — questi sono i valori che mostri all'acquirente al checkout e che vengono stampati sulla fattura commerciale.6.
shipmentCreateWorkflowIl passaggio finale — crea la
Shipment, genera l'etichetta del corriere e (facoltativamente) la fattura commerciale / packing slip.Per i Verified Account Japan Post, è anche qui che Zonos chiama per tuo conto l'API etichette di Japan Post (codice 52), inserisce i tuoi Later Pay Number, crea il Declaration ID e collega il Declaration ID al numero di tracciamento restituito da Japan Post.
Campi principali:
serviceLeveljapan_post.air.ems_merchandise). Deve essere un livello di serviziojapan_post.*.generateLabeltrue; deve esseretrueper restituire un'etichetta.contentsTypeSALE_OF_GOODS,ECOMMERCE_GOODS,COMMERCIAL_GOODS,COMMERCIAL_SAMPLE,RETURNED_GOODS,GIFT,DOCUMENTS,OTHER.nonDeliveryreferencesdeclaredValue/isDeclaredValueshipmentConsolidationIdPer
contentsType, i due valori più comuni per il traffico dei Verified Account sonoECOMMERCE_GOODS(venduto a un consumatore, BtoC) eCOMMERCIAL_GOODS(venduto tra aziende, BtoB). Questi valori determinano ilpkgTypeche Zonos invia nella chiamata all'etichetta Japan Post, quindi la scelta cambia ciò che viene stampato sulla dichiarazione doganale — non è solo una questione di etichetta.Sotto-input
nonDeliveryIndica a Japan Post cosa fare del pacco se non può essere consegnato — rifiutato dal destinatario, respinto alla frontiera o non recapitabile all'indirizzo indicato.
optionaccetta esattamente questi quattro valori. Non esiste un valoreRETURN— usaRETURN_AFTER_RETENTIONoRETURN_IMMEDIATELYper scegliere quando il pacco torna indietro.option↕RETURN_AFTER_RETENTIONRETURN_IMMEDIATELYFORWARDABANDONL'API espone separatamente entrambe le varianti di reso; l'opzione Return della Dashboard le copre entrambe.
transportMethodaccettaAIRoMOST_ECONOMICALe determina come viaggia un pacco reso. Si applica solo alle due opzioniRETURN_*— la Dashboard mostra il campo Return method corrispondente solo quando è selezionato Return.{ "nonDelivery": { "option": "RETURN_AFTER_RETENTION", "transportMethod": "MOST_ECONOMICAL" } }Il selettore If undeliverable nella finestra di dialogo Create label della Dashboard scrive esattamente questo stesso campo, quindi un'etichetta creata dalla Dashboard e una creata tramite API si comportano in modo identico.
Sotto-input
referencesQuesti campi vengono stampati sull'etichetta del corriere e/o sulla fattura commerciale. Usali per riportare numeri di ordine d'acquisto, numeri di licenza e note in testo libero che il destinatario o l'autorità doganale devono vedere.
invoiceNumberpurchaseOrderNumberlicenseNumbercertificateNumberpaymentConditionscustomsRemarkstaxCodeResponse
I campi rilevanti sullo
Shipmentrestituito sono:{ id trackingDetails { number } shipmentCartons { label { url labelImage } } }trackingDetails.numberè il numero di tracciamento Japan Post.L'oggetto
labelpuò restituire l'etichetta in due modi — richiedi quello più adatto al tuo workflow (o entrambi):urllabelImageSeleziona solo i campi di cui hai bisogno. Richiedere
urlmantiene la risposta compatta; richiederelabelImagerestituisce l'etichetta completa inline, così non serve un secondo round trip per recuperarla. L'esempio sopra richiedeurl.Livelli di servizio Japan Post
Passa uno di questi codici come
serviceLevelCodeinshipmentRatingCreateWorkflow.I codici dei livelli di servizio usano punti, non underscore. Potresti vedere la forma con underscore (
japan_post_air_parcel) nei messaggi di errore e nei riferimenti interni, ma non è un input valido.Servizi aerei
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-DServizi di superficie
japan_post.surface.parcel2-5japan_post.surface.small_packet2-9japan_post.surface.printed_matter2-Bjapan_post.surface.letter2-DScegliere tra servizi simili
Small packet vs. International Air Packet. Entrambi hanno un limite di 2 kg.
japan_post.air.packetè il servizio small-packet tracciato di Japan Post.japan_post.air.small_packetè l'equivalente non tracciato. Se ti serve il tracciamento su un pacco leggero, usajapan_post.air.packet.Varianti raccomandate. Per lettere e stampe, il tracciamento viene aggiunto dalla versione raccomandata (書留) del servizio.
japan_post.air.printed_matterejapan_post.air.letternon lo includono da soli.Codici deprecati
japan_post.air.epacket_lightera International e-Packet Light. Japan Post ha rinominato il servizio in International Air Packet il 1° giugno 2026, estendendolo a tutti i paesi e le regioni. Il servizio in sé è rimasto invariato.Il vecchio codice continua a essere risolto, così le integrazioni esistenti continuano a funzionare, ma per i nuovi sviluppi usa
japan_post.air.packet.Codici di modalità di trasporto
Anche
japan_post.air,japan_post.surface,japan_post.economy_airejapan_post.customvengono risolti, ma identificano una modalità di trasporto o un fallback, non un prodotto postale specifico. Per le spedizioni normali usa uno dei codici servizio elencati sopra.Convalida il codice che invii
Un
serviceLevelCodenon riconosciuto non genera un errore. La richiesta restituisce HTTP 200 senza arrayerrors,serviceLeveltornanulle il costo di spedizione esce dal totale del costo allo sbarco — quindi la risposta sembra corretta mentre gli importi sono sbagliati.Verifica sempre che
shipmentRatingCreateWorkflow.serviceLevelnon sia nullo prima di fare affidamento sui totali.Per recuperare l'elenco aggiornato in qualsiasi momento:
{ serviceLevels(carrier: "carrier_00004c9b-9431-4518-bfbc-b9f8476335b1") { code name } }Questa query richiede l'ID del corriere. Passare il codice corriere
japan_postrestituisce un elenco vuoto senza errori.Gestione degli errori
errorse interrompono il resto della catena.shipmentCreateWorkflow. Se è necessario un nuovo tentativo, contatta l'assistenza — il percorso consigliato è inviare di nuovo l'intera mutazione con l'input corretto.VALIDATION_INVALID_TYPE_VARIABLE{ "errors": [ { "message": "invalid type for variable: 'shipmentInput'", "extensions": { "name": "shipmentInput", "code": "VALIDATION_INVALID_TYPE_VARIABLE" } } ] }Questo errore indica l'intera variabile, non il campo che in realtà è sbagliato. Nella quasi totalità dei casi significa che un valore enum all'interno di quella variabile non appartiene al suo enum — più spesso
nonDelivery.option,contentsTypeoserviceLevel.Non è un problema di tipizzazione JSON. Mettere o togliere le virgolette da booleani e numeri non risolve nulla, perché il payload non arriva nemmeno a quel punto: l'enum viene respinto prima.
Per trovare il campo sbagliato, controlla ogni campo di tipo enum nella variabile rispetto ai suoi valori accettati:
nonDelivery.optionRETURN_AFTER_RETENTION,RETURN_IMMEDIATELY,FORWARD,ABANDON— nessunRETURNnonDelivery.transportMethodAIR,MOST_ECONOMICALcontentsTypeSALE_OF_GOODS,ECOMMERCE_GOODS,COMMERCIAL_GOODS,COMMERCIAL_SAMPLE,RETURNED_GOODS,GIFT,DOCUMENTS,OTHERserviceLeveljapan_post.*L'elenco completo dei membri dell'enum per qualsiasi input è disponibile nella pagina del suo tipo nella documentazione API.
Autorizzazioni
Ogni passaggio è protetto in modo indipendente. La tua API key deve avere lo scope di scrittura per ogni entità della catena (
ITEM_WRITE,CARTON_WRITE,SHIPMENT_RATING_WRITE,LANDED_COST_WRITE,SHIPMENT_WRITE). Il ruolo commerciante standard su un Verified Account concede tutti questi scope.Passaggi successivi
CartonCreateWorkflowInput ItemCreateWorkflowInput LandedCostWorkFlowInput PartyCreateWorkflowInput ShipmentCreateWorkflowInput ShipmentRatingCreateWorkflowInput
cartonsCreateWorkflow itemCreateWorkflow landedCostCalculateWorkflow partyCreateWorkflow shipmentCreateWorkflow shipmentRatingCreateWorkflow
Questa pagina è stata utile?