CreateDeclarationShipment GraphQL iş akışı, bir Japan Post sevkiyatını ham girdilerden yazdırılabilir bir etikete tek bir gidiş-dönüş içinde getirir.
CreateDeclarationShipment, altı *Workflow mutasyonunu tek bir GraphQL isteğinde birleştirir. Her adım, önceki adımların sağladığı verilere dayanır ve hepsi birlikte gönderilir, böylece tam bir sevkiyat tek bir gidiş-dönüşte oluşturulabilir:
Workflow mutasyonları zincirleme yapılmak üzere tasarlanmıştır: bir adımdan diğerine ID'leri iletmeniz gerekmez ve adım başına ayrı bir istek göndermeniz gerekmez. Tüm belgeyi gönderin, son Shipment'i geri alın.
Son adımdaki serviceLevel bir Japan Post hizmet seviyesi olduğunda (japan_post.*), Zonos sizin adınıza Japan Post Label API'sini (kod 52) çağırır ve Doğrulanmış Hesabınızın Later Pay Numaralarını kullanarak etiketi ve takip numarasını oluşturur, Declaration ID'yi oluşturur ve bunları bağlar — tümü bu son shipmentCreateWorkflow adımının içinde.
Neden bir mutasyon? Her adım bir öncekine bağlıdır (landed cost hesaplaması öğeler + tarafları gerektirir; etiket her şeyi gerektirir). Bunları tek bir GraphQL belgesinde birleştirmek, veri tutarlılığını korur ve beş ekstra gidiş-dönüşü önler.
Bu zincirdeki isteklerin tümü aynı endpoint'i kullanır. Başlıklara ne koyacağınız kurulumunuza bağlıdır — sekmenizi seçin.
URL:
https://api.zonos.com/graphql
Başlıklar:
Kendi siparişlerinizi kendi Doğrulanmış Hesabınız altında gönderiyorsunuz. Kendiniz olarak kimlik doğrulaması yapın — hesap anahtarı gerekli değildir.
credentialToken: {{YOUR_API_TOKEN}}
Nereyi bulacağınız: Zonos Dashboard → Settings → Integrations → Account Key bölümü. API key satırındaki tokeni kopyalayın; bu sizin credentialToken'ınızdır.
Kopyalayıp uyarlayabileceğiniz tam bir CreateDeclarationShipment isteği — mutasyon, değişkenleri ve yanıtı — ABD'ye DDP ile gönderilen tek bir Japan Post paketi için. Her girdi, aşağıdaki adım adım bölümünde ayrıntılı olarak açıklanmıştır.
Aşağıdaki tablolarda Durum sütunu bu terimleri kullanır:
Gerekli — istek olmadan başarısız olur.
Etiket için gerekli — GraphQL şemasında isteğe bağlı, ancak geçerli bir Japan Post ABD etiketi üretmek için gerekli.
Koşullu — başka bir alana bağlı olarak gerekli (satır içinde belirtilmiştir).
Önerilen — isteğe bağlı, ancak doğru gümrük vergisi ve vergi hesaplamasını sağlar.
İsteğe bağlı — gerekli değildir.
1. partyCreateWorkflow
Sevkiyatla ilgili tarafları oluşturur — en azından bir ORIGIN (sevkiyatın nereden gönderileceği) ve bir DESTINATION (alıcı / teslim alan).
Alan↕
Durum↕
Notlar↕
type
Gerekli
Bu akışın ihtiyaç duyduğu iki değer ORIGIN ve DESTINATION'dır. Diğerleri (CONSIGNEE, EXPORTER, IMPORTER_OF_RECORD, PAYOR, vb.) mevcuttur ama burada kullanılmaz.
Harmonize Sistem tarife kodu. Gümrük oranlarını yönlendirir.
countryOfOrigin
Önerilen
ISO-2 kodu, öğenin yapıldığı yer. Gümrük / FTA'yı yönlendirir.
name, description
Önerilen
Müşteriye yönelik ürün adı + açıklaması.
customsDescription
İsteğe bağlı
Gümrük açıklaması geçersiz kılması.
sku, productId
İsteğe bağlı
İç tanımlayıcılarınız.
measurements
İsteğe bağlı
Birim başına ağırlık / boyutlar.
HS kodu, menşe ülkesi ve tutar, 5. adımdaki gümrük vergisi/vergi sonucunu en çok etkileyen üç alandır.
3. cartonsCreateWorkflow
Fiziksel paketleri oluşturur — öğeleri içine alacak kutular, polybag'lar veya mektuplar.
Alan↕
Durum↕
Notlar↕
dimensionalUnit
Gerekli
INCH veya CENTIMETER.
weight, weightUnit
Etiket için gerekli
Japan Post paket ağırlığı gerektirir.
length, width, height
İsteğe bağlı
Dış boyutlar.
type
İsteğe bağlı
Ambalaj stili (kutu, polybag, mektup). Varsayılan PACKAGE.
Her karton, 6. adımdaki taşıyıcı etikette bir parsel haline gelir. Birden fazla karton → her karton için ayrı bir takip numarasıyla çok parçalı bir sevkiyat.
4. shipmentRatingCreateWorkflow
Oran teklifini kaydeder — satıcının alıcıya kargo için talep ettiği tutar.
Alan↕
Durum↕
Notlar↕
amount
Gerekli
Alıcının kargo için ödediği tutar. Ücretsiz ise 0 iletin.
Bu, alıcının ödeme sırasında teklif edilen kargo ücretidir. Gümrük vergileri ve vergilerin doğru CIF değeri üzerinden hesaplanması için bu tutar, gümrük vergisi/vergi hesaplamasına "kargo" alt toplamı olarak dahil edilir.
5. landedCostCalculateWorkflow
Hedef ülke için gümrük vergisi, vergi ve ücret hesaplamasını çalıştırır. Önceki adımlardaki öğeleri, tarafları ve kargo maliyetini kullanır.
Alan↕
Durum↕
Notlar↕
endUse
Gerekli
NOT_FOR_RESALE veya FOR_RESALE. Bazı hedefler ticari vs kişisel kullanım için farklı oranlar uygular.
tariffRate
Gerekli
Atlanırsa ZONOS_PREFERRED varsayılanını ayarlar. Zonos'a hangi tarife kaynağı/yönteminin uygulanacağını söyler.
calculationMethod
Önerilen
DDP (alıcı ön ödeme) veya DDU (alıcı kapıda ödeme). Ön ödeme için DDP kullanın. LandedCost.amountSubtotals'in gümrük vergisi/vergi içerip içermediğini belirler.
currencyCode
İsteğe bağlı
İniş maliyeti alt toplamlarının döndürüleceği para birimi.
arrivalDate
İsteğe bağlı
Sağlanırsa döviz kurları ve tarife tabloları bu tarihe sabitleştirilir.
Yanıt, amountSubtotals alanını içerir (duties, taxes, fees, shipping, landedCostTotal) — bunlar, ödeme sırasında alıcıya gösterdiğiniz ve ticari faturada basılan sayılardır.
6. shipmentCreateWorkflow
Son adım — Shipment varlığını oluşturur, taşıyıcı etiketi ve isteğe bağlı olarak ticari fatura / paketleme fişini üretir.
Japan Post Doğrulanmış Hesapları için bu adım, aynı zamanda Zonos'un sizin adınıza Japan Post Label API'sini (kod 52) çağırdığı, Later Pay Numaralarınızı enjekte ettiği, Declaration ID'yi oluşturduğu ve bu Declaration ID'yi Japan Post'un döndürdüğü takip numarasına bağladığı adımdır.
Önemli alanlar:
Alan↕
Durum↕
Notlar↕
serviceLevel
Etiket için gerekli
Gönderim için kullanılacak Japan Post hizmeti (ör. japan_post.air.ems_merchandise). Bir japan_post.* hizmet seviyesi olmalıdır.
generateLabel
İsteğe bağlı
Varsayılan true; etiket döndürmek için true olmalıdır.
contentsType
Önerilen
Gümrük muamelesini yönlendirir. SALE_OF_GOODS, ECOMMERCE_GOODS, COMMERCIAL_GOODS, COMMERCIAL_SAMPLE, RETURNED_GOODS, GIFT, DOCUMENTS, OTHER değerlerinden biri.
nonDelivery
İsteğe bağlı
Paket teslim edilemezse Japan Post'un ne yapacağı. Aşağıya bakın.
references
İsteğe bağlı
Satıcı tarafından sağlanan referans numaraları etikete ve ticari faturaya basılı. Aşağıya bakın.
declaredValue / isDeclaredValue
İsteğe bağlı
Sevkiyat için sigorta değeri.
shipmentConsolidationId
İsteğe bağlı
Bu sevkiyat bir batch dispatch parçası olduğunda kullanılır.
contentsType için, Doğrulanmış Hesap trafiğinde en yaygın kullanılan iki değer ECOMMERCE_GOODS (bir tüketiciye satılan, BtoC) ve COMMERCIAL_GOODS (işletmeler arası satılan, BtoB) değerleridir. Bu değerler, Zonos'un Japan Post etiket çağrısında gönderdiği pkgType alanını belirler; dolayısıyla seçiminiz gümrük beyannamesinde neyin basılacağını değiştirir — bu sadece bir etiket meselesi değildir.
nonDelivery alt girdisi
Paket teslim edilemezse — alıcı tarafından kabul edilmezse, sınırda reddedilirse veya belirtilen adrese teslim edilemezse — Japan Post'un ne yapacağını belirtir.
option tam olarak şu dört değeri kabul eder. RETURN değeri yoktur — paketin ne zaman geri döneceğini seçmek için RETURN_AFTER_RETENTION veya RETURN_IMMEDIATELY kullanın.
option↕
Dashboard karşılığı↕
Japan Post ne yapar↕
RETURN_AFTER_RETENTION
Return
Paketi bekletme süresi boyunca hedef postanede tutar, ardından gönderene geri döndürür.
RETURN_IMMEDIATELY
Return
Paketi bekletmeden hemen gönderene geri döndürür.
FORWARD
Redirection
Paketi başka bir adrese yönlendirir. Ek posta ücreti uygulanır.
ABANDON
Renounce
Paketi hedefte imha eder. Hiçbir şey geri döndürülmez ve geri gönderim ücreti alınmaz.
API, her iki return türünü ayrı ayrı sunar; Dashboard'daki Return seçeneği ikisini de kapsar.
transportMethod, AIR veya MOST_ECONOMICAL değerlerini kabul eder ve geri döndürülen bir paketin nasıl taşınacağını belirler. Yalnızca iki RETURN_* seçeneği için geçerlidir — Dashboard, ilgili Return method alanını yalnızca Return seçildiğinde gösterir.
Dashboard'daki Create label iletişim kutusundaki If undeliverable seçici de aynı alanı yazar, böylece Dashboard'da oluşturulan bir etiket ile API üzerinden oluşturulan bir etiket aynı şekilde davranır.
references alt girdisi
Bu alanlar taşıyıcı etiketinde ve/veya ticari faturada basılı. Alıcının veya gümrük otoritesinin görmesi gereken PO numaralarını, lisans numaralarını ve serbest metin açıklamalarını yüzeye çıkarmak için bunları kullanın.
Alan↕
Durum↕
Notlar↕
Uzunluk↕
invoiceNumber
İsteğe bağlı
Satıcı fatura numarası.
—
purchaseOrderNumber
İsteğe bağlı
Satıcı PO numarası.
—
licenseNumber
İsteğe bağlı
İhracat/ithalat lisans numarası.
—
certificateNumber
İsteğe bağlı
Gümrük sertifikası numarası.
—
paymentConditions
İsteğe bağlı
Ticari faturada gösterilen serbest metin ödeme koşulları.
200 karakterle sınırlı — daha uzun değerler basılı faturada taşar.
customsRemarks
İsteğe bağlı
Serbest metin gümrük açıklamaları.
—
taxCode
İsteğe bağlı
Etikette basılı özel vergi kodu.
—
Yanıt
Döndürülen Shipment'daki ilginç alanlar:
{
id
trackingDetails {
number
}
shipmentCartons {
label {
url
labelImage
}}}
trackingDetails.number Japan Post takip numarasıdır.
label nesnesi etiketi iki şekilde döndürebilir — iş akışınıza uyan şeyi isteyin (veya her ikisini):
Alan↕
Döndürür↕
Şu durumlarda kullanın↕
url
Oluşturulan etiket dosyasına (PDF) barındırılan bir bağlantı; indirmeye veya yazdırmaya hazır.
Bir bağlantı aktarmak istiyorsunuz — açın, e-posta ile gönderin veya payload'u tutmadan dosyayı daha sonra alın.
Etiket verilerini doğrudan yanıtta almak istiyorsunuz — bir fulfillment iş akışına eklemek veya WMS'nize kaydetmek için.
Yalnızca gerekli alanları seçin. url istemek yanıtı küçük tutar; labelImage istemek tam etiketi satır içinde döndürür, böylece almak için ikinci bir gidiş-dönüş gerekmez. Yukarıdaki örnek url alanını talep etmektedir.
Hizmet seviyesi kodları alt çizgi değil nokta kullanır. Hata mesajlarında ve iç referanslarda alt çizgili biçimi (japan_post_air_parcel) görebilirsiniz, ancak bu geçerli bir girdi değildir.
Hava hizmetleri
Kod↕
Japan Post hizmeti↕
Posta türü↕
japan_post.air.ems_documents
EMS (belgeler)
1-0
japan_post.air.ems_merchandise
EMS (eşya)
1-1
japan_post.air.parcel
Uluslararası paket
1-5
japan_post.air.packet
International Air Packet
1-8
japan_post.air.small_packet
Küçük paket
1-9
japan_post.air.printed_matter_registered
Basılı materyal, kayıtlı
1-A
japan_post.air.printed_matter
Basılı materyal
1-B
japan_post.air.letter_registered
Mektup, kayıtlı
1-C
japan_post.air.letter
Mektup
1-D
Yüzey hizmetleri
Kod↕
Japan Post hizmeti↕
Posta türü↕
japan_post.surface.parcel
Uluslararası paket
2-5
japan_post.surface.small_packet
Küçük paket
2-9
japan_post.surface.printed_matter
Basılı materyal
2-B
japan_post.surface.letter
Mektup
2-D
Benzer hizmetler arasında seçim yapma
Küçük paket ile International Air Packet karşılaştırması. Her ikisi de 2 kg ile sınırlıdır. japan_post.air.packet, Japan Post'un takip edilebilir küçük paket hizmetidir. japan_post.air.small_packet ise takip edilemeyen eşdeğeridir. Hafif bir pakette takip özelliğine ihtiyacınız varsa japan_post.air.packet kullanın.
Kayıtlı varyantlar. Mektuplar ve basılı materyaller için takip, hizmetin kayıtlı (書留) sürümüyle eklenir. japan_post.air.printed_matter ve japan_post.air.letter, bunu kendi başlarına içermez.
Kullanımdan kaldırılan kodlar
japan_post.air.epacket_light, International e-Packet Light hizmetiydi. Japan Post, hizmetin adını 1 Haziran 2026'da International Air Packet olarak değiştirdi ve tüm ülke ve bölgeleri kapsayacak şekilde genişletti. Hizmetin kendisi değişmedi.
Eski kod hâlâ çözümlenir, böylece mevcut entegrasyonlar çalışmaya devam eder, ancak yeni işler için japan_post.air.packet kullanın.
Taşıma modu kodları
japan_post.air, japan_post.surface, japan_post.economy_air ve japan_post.custom da çözümlenir, ancak bunlar belirli bir posta ürünü değil, bir taşıma modunu veya bir yedek seçeneği tanımlar. Normal sevkiyatlar için yukarıdaki hizmet kodlarından birini kullanın.
Gönderdiğiniz kodu doğrulayın
Tanınmayan bir serviceLevelCodehata vermez. İstek, errors dizisi olmadan HTTP 200 döndürür, serviceLevelnull olarak gelir ve kargo tutarı landed cost toplamından düşer — böylece yanıt doğru görünür ama tutarlar yanlıştır.
Toplamlara güvenmeden önce her zaman shipmentRatingCreateWorkflow.serviceLevel'in null olmadığını doğrulayın.
Güncel listeyi istediğiniz zaman almak için:
{
serviceLevels(carrier:"carrier_00004c9b-9431-4518-bfbc-b9f8476335b1"){
code
name
}}
Bu sorgu, taşıyıcı ID'sini alır. Taşıyıcı kodu japan_post'u geçirmek, hatasız boş bir liste döndürür.
Doğrulama hataları (eksik gerekli alanlar, geçersiz ülke kodları, vb.) standart GraphQL errors dizisinde geri gelir ve zincirin geri kalanını durdurur.
Japan Post hataları (etiket üretim hatası, geçersiz adres, vb.) shipmentCreateWorkflow üzerinde GraphQL hataları olarak yüzeye çıkar. Yeniden deneme gerekiyorsa, desteğe başvurun — önerilen yol, tam mutasyonu düzeltilmiş girdilerle yeniden göndermektir.
VALIDATION_INVALID_TYPE_VARIABLE
{"errors":[{"message":"invalid type for variable: 'shipmentInput'","extensions":{"name":"shipmentInput","code":"VALIDATION_INVALID_TYPE_VARIABLE"}}]}
Bu hata değişkenin tamamını adlandırır, gerçekte hatalı olan alanı değil. Neredeyse her zaman, bu değişkenin içindeki bir enum değerinin kendi enum'unun bir üyesi olmadığı anlamına gelir — en sık nonDelivery.option, contentsType veya serviceLevel alanlarında.
Bu bir JSON tip sorunu değildir. Booleanlarınızı veya sayılarınızı tırnak içine alıp almamanız bir şey değiştirmez, çünkü payload hiçbir zaman o noktaya ulaşmaz — enum önce reddedilir.
Hatalı alanı bulmak için, değişken içindeki her enum değerli alanı kabul edilen değerlerine göre kontrol edin:
Alan↕
Kabul edilen değerler↕
nonDelivery.option
RETURN_AFTER_RETENTION, RETURN_IMMEDIATELY, FORWARD, ABANDON — RETURN yoktur
nonDelivery.transportMethod
AIR, MOST_ECONOMICAL
contentsType
SALE_OF_GOODS, ECOMMERCE_GOODS, COMMERCIAL_GOODS, COMMERCIAL_SAMPLE, RETURNED_GOODS, GIFT, DOCUMENTS, OTHER
serviceLevel
Bir japan_post.* hizmet seviyesi kodu
Herhangi bir girdi için enum üyelerinin tam listesi, API referansındaki tür sayfasında yer alır.
Her adım bağımsız olarak güvenliği sağlanır. API anahtarınız, zincirdeki her varlık için yazma kapsamını (ITEM_WRITE, CARTON_WRITE, SHIPMENT_RATING_WRITE, LANDED_COST_WRITE, SHIPMENT_WRITE) tutmalıdır. Doğrulanmış Hesaptaki standart satıcı rolü tümünü verir.
Tek bir sevkiyat oluşturun
Tek bir sevkiyat oluşturun
CreateDeclarationShipmentGraphQL iş akışı, bir Japan Post sevkiyatını ham girdilerden yazdırılabilir bir etikete tek bir gidiş-dönüş içinde getirir.CreateDeclarationShipment, altı*Workflowmutasyonunu tek bir GraphQL isteğinde birleştirir. Her adım, önceki adımların sağladığı verilere dayanır ve hepsi birlikte gönderilir, böylece tam bir sevkiyat tek bir gidiş-dönüşte oluşturulabilir:Workflowmutasyonları zincirleme yapılmak üzere tasarlanmıştır: bir adımdan diğerine ID'leri iletmeniz gerekmez ve adım başına ayrı bir istek göndermeniz gerekmez. Tüm belgeyi gönderin, sonShipment'i geri alın.Son adımdaki
serviceLevelbir Japan Post hizmet seviyesi olduğunda (japan_post.*), Zonos sizin adınıza Japan Post Label API'sini (kod 52) çağırır ve Doğrulanmış Hesabınızın Later Pay Numaralarını kullanarak etiketi ve takip numarasını oluşturur, Declaration ID'yi oluşturur ve bunları bağlar — tümü bu sonshipmentCreateWorkflowadımının içinde.Endpoint ve kimlik doğrulama
Bu zincirdeki isteklerin tümü aynı endpoint'i kullanır. Başlıklara ne koyacağınız kurulumunuza bağlıdır — sekmenizi seçin.
URL:
Başlıklar:
Kendi siparişlerinizi kendi Doğrulanmış Hesabınız altında gönderiyorsunuz. Kendiniz olarak kimlik doğrulaması yapın — hesap anahtarı gerekli değildir.
Nereyi bulacağınız: Zonos Dashboard → Settings → Integrations → Account Key bölümü. API key satırındaki tokeni kopyalayın; bu sizin
credentialToken'ınızdır.Örnek istek
Kopyalayıp uyarlayabileceğiniz tam bir
CreateDeclarationShipmentisteği — mutasyon, değişkenleri ve yanıtı — ABD'ye DDP ile gönderilen tek bir Japan Post paketi için. Her girdi, aşağıdaki adım adım bölümünde ayrıntılı olarak açıklanmıştır.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}}}}Adım adım
Aşağıdaki tablolarda Durum sütunu bu terimleri kullanır:
1.
partyCreateWorkflowSevkiyatla ilgili tarafları oluşturur — en azından bir
ORIGIN(sevkiyatın nereden gönderileceği) ve birDESTINATION(alıcı / teslim alan).typeORIGINveDESTINATION'dır. Diğerleri (CONSIGNEE,EXPORTER,IMPORTER_OF_RECORD,PAYOR, vb.) mevcuttur ama burada kullanılmaz.location.countryCodelocation.line1,locality,administrativeAreaCode,postalCodeperson.firstName,lastName,phoneperson.companyName,emailÖrnek yük:
[ { "type": "DESTINATION", "location": { "countryCode": "US" }, "person": {} }, { "type": "ORIGIN", "location": { "countryCode": "JP" }, "person": {} } ]Yanıt, oluşturulan
PartyID'lerini ve çözümlenen adres alanlarını döndürür.2.
itemCreateWorkflowSevkiyatı oluşturan satır öğelerini oluşturur. Bunlar, ticari faturada görünecek ve iniş maliyeti hesaplamasını yönlendirecek SKU'lardır.
currencyCodequantityamounttotalAmountsağlanmadıkça gerekli.totalAmountamount'a alternatif;amounttotalAmount / quantityöğesinden türetilir.hsCodecountryOfOriginname,descriptioncustomsDescriptionsku,productIdmeasurementsHS kodu, menşe ülkesi ve tutar, 5. adımdaki gümrük vergisi/vergi sonucunu en çok etkileyen üç alandır.
3.
cartonsCreateWorkflowFiziksel paketleri oluşturur — öğeleri içine alacak kutular, polybag'lar veya mektuplar.
dimensionalUnitINCHveyaCENTIMETER.weight,weightUnitlength,width,heighttypePACKAGE.Her karton, 6. adımdaki taşıyıcı etikette bir parsel haline gelir. Birden fazla karton → her karton için ayrı bir takip numarasıyla çok parçalı bir sevkiyat.
4.
shipmentRatingCreateWorkflowOran teklifini kaydeder — satıcının alıcıya kargo için talep ettiği tutar.
amount0iletin.currencyCodeamount'un para birimi.serviceLevelCodejapan_post.air.parcel). Tam liste için Japan Post hizmet seviyeleri sayfasına bakın.displayNameBu, alıcının ödeme sırasında teklif edilen kargo ücretidir. Gümrük vergileri ve vergilerin doğru CIF değeri üzerinden hesaplanması için bu tutar, gümrük vergisi/vergi hesaplamasına "kargo" alt toplamı olarak dahil edilir.
5.
landedCostCalculateWorkflowHedef ülke için gümrük vergisi, vergi ve ücret hesaplamasını çalıştırır. Önceki adımlardaki öğeleri, tarafları ve kargo maliyetini kullanır.
endUseNOT_FOR_RESALEveyaFOR_RESALE. Bazı hedefler ticari vs kişisel kullanım için farklı oranlar uygular.tariffRateZONOS_PREFERREDvarsayılanını ayarlar. Zonos'a hangi tarife kaynağı/yönteminin uygulanacağını söyler.calculationMethodDDP(alıcı ön ödeme) veyaDDU(alıcı kapıda ödeme). Ön ödeme içinDDPkullanın.LandedCost.amountSubtotals'in gümrük vergisi/vergi içerip içermediğini belirler.currencyCodearrivalDateYanıt,
amountSubtotalsalanını içerir (duties,taxes,fees,shipping,landedCostTotal) — bunlar, ödeme sırasında alıcıya gösterdiğiniz ve ticari faturada basılan sayılardır.6.
shipmentCreateWorkflowSon adım —
Shipmentvarlığını oluşturur, taşıyıcı etiketi ve isteğe bağlı olarak ticari fatura / paketleme fişini üretir.Japan Post Doğrulanmış Hesapları için bu adım, aynı zamanda Zonos'un sizin adınıza Japan Post Label API'sini (kod 52) çağırdığı, Later Pay Numaralarınızı enjekte ettiği, Declaration ID'yi oluşturduğu ve bu Declaration ID'yi Japan Post'un döndürdüğü takip numarasına bağladığı adımdır.
Önemli alanlar:
serviceLeveljapan_post.air.ems_merchandise). Birjapan_post.*hizmet seviyesi olmalıdır.generateLabeltrue; etiket döndürmek içintrueolmalıdır.contentsTypeSALE_OF_GOODS,ECOMMERCE_GOODS,COMMERCIAL_GOODS,COMMERCIAL_SAMPLE,RETURNED_GOODS,GIFT,DOCUMENTS,OTHERdeğerlerinden biri.nonDeliveryreferencesdeclaredValue/isDeclaredValueshipmentConsolidationIdcontentsTypeiçin, Doğrulanmış Hesap trafiğinde en yaygın kullanılan iki değerECOMMERCE_GOODS(bir tüketiciye satılan, BtoC) veCOMMERCIAL_GOODS(işletmeler arası satılan, BtoB) değerleridir. Bu değerler, Zonos'un Japan Post etiket çağrısında gönderdiğipkgTypealanını belirler; dolayısıyla seçiminiz gümrük beyannamesinde neyin basılacağını değiştirir — bu sadece bir etiket meselesi değildir.nonDeliveryalt girdisiPaket teslim edilemezse — alıcı tarafından kabul edilmezse, sınırda reddedilirse veya belirtilen adrese teslim edilemezse — Japan Post'un ne yapacağını belirtir.
optiontam olarak şu dört değeri kabul eder.RETURNdeğeri yoktur — paketin ne zaman geri döneceğini seçmek içinRETURN_AFTER_RETENTIONveyaRETURN_IMMEDIATELYkullanın.option↕RETURN_AFTER_RETENTIONRETURN_IMMEDIATELYFORWARDABANDONAPI, her iki return türünü ayrı ayrı sunar; Dashboard'daki Return seçeneği ikisini de kapsar.
transportMethod,AIRveyaMOST_ECONOMICALdeğerlerini kabul eder ve geri döndürülen bir paketin nasıl taşınacağını belirler. Yalnızca ikiRETURN_*seçeneği için geçerlidir — Dashboard, ilgili Return method alanını yalnızca Return seçildiğinde gösterir.{ "nonDelivery": { "option": "RETURN_AFTER_RETENTION", "transportMethod": "MOST_ECONOMICAL" } }Dashboard'daki Create label iletişim kutusundaki If undeliverable seçici de aynı alanı yazar, böylece Dashboard'da oluşturulan bir etiket ile API üzerinden oluşturulan bir etiket aynı şekilde davranır.
referencesalt girdisiBu alanlar taşıyıcı etiketinde ve/veya ticari faturada basılı. Alıcının veya gümrük otoritesinin görmesi gereken PO numaralarını, lisans numaralarını ve serbest metin açıklamalarını yüzeye çıkarmak için bunları kullanın.
invoiceNumberpurchaseOrderNumberlicenseNumbercertificateNumberpaymentConditionscustomsRemarkstaxCodeYanıt
Döndürülen
Shipment'daki ilginç alanlar:{ id trackingDetails { number } shipmentCartons { label { url labelImage } } }trackingDetails.numberJapan Post takip numarasıdır.labelnesnesi etiketi iki şekilde döndürebilir — iş akışınıza uyan şeyi isteyin (veya her ikisini):urllabelImageYalnızca gerekli alanları seçin.
urlistemek yanıtı küçük tutar;labelImageistemek tam etiketi satır içinde döndürür, böylece almak için ikinci bir gidiş-dönüş gerekmez. Yukarıdaki örnekurlalanını talep etmektedir.Japan Post hizmet seviyeleri
Bu kodlardan birini
shipmentRatingCreateWorkflowiçindeserviceLevelCodeolarak iletin.Hizmet seviyesi kodları alt çizgi değil nokta kullanır. Hata mesajlarında ve iç referanslarda alt çizgili biçimi (
japan_post_air_parcel) görebilirsiniz, ancak bu geçerli bir girdi değildir.Hava hizmetleri
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-DYüzey hizmetleri
japan_post.surface.parcel2-5japan_post.surface.small_packet2-9japan_post.surface.printed_matter2-Bjapan_post.surface.letter2-DBenzer hizmetler arasında seçim yapma
Küçük paket ile International Air Packet karşılaştırması. Her ikisi de 2 kg ile sınırlıdır.
japan_post.air.packet, Japan Post'un takip edilebilir küçük paket hizmetidir.japan_post.air.small_packetise takip edilemeyen eşdeğeridir. Hafif bir pakette takip özelliğine ihtiyacınız varsajapan_post.air.packetkullanın.Kayıtlı varyantlar. Mektuplar ve basılı materyaller için takip, hizmetin kayıtlı (書留) sürümüyle eklenir.
japan_post.air.printed_mattervejapan_post.air.letter, bunu kendi başlarına içermez.Kullanımdan kaldırılan kodlar
japan_post.air.epacket_light, International e-Packet Light hizmetiydi. Japan Post, hizmetin adını 1 Haziran 2026'da International Air Packet olarak değiştirdi ve tüm ülke ve bölgeleri kapsayacak şekilde genişletti. Hizmetin kendisi değişmedi.Eski kod hâlâ çözümlenir, böylece mevcut entegrasyonlar çalışmaya devam eder, ancak yeni işler için
japan_post.air.packetkullanın.Taşıma modu kodları
japan_post.air,japan_post.surface,japan_post.economy_airvejapan_post.customda çözümlenir, ancak bunlar belirli bir posta ürünü değil, bir taşıma modunu veya bir yedek seçeneği tanımlar. Normal sevkiyatlar için yukarıdaki hizmet kodlarından birini kullanın.Gönderdiğiniz kodu doğrulayın
Tanınmayan bir
serviceLevelCodehata vermez. İstek,errorsdizisi olmadan HTTP 200 döndürür,serviceLevelnullolarak gelir ve kargo tutarı landed cost toplamından düşer — böylece yanıt doğru görünür ama tutarlar yanlıştır.Toplamlara güvenmeden önce her zaman
shipmentRatingCreateWorkflow.serviceLevel'in null olmadığını doğrulayın.Güncel listeyi istediğiniz zaman almak için:
{ serviceLevels(carrier: "carrier_00004c9b-9431-4518-bfbc-b9f8476335b1") { code name } }Bu sorgu, taşıyıcı ID'sini alır. Taşıyıcı kodu
japan_post'u geçirmek, hatasız boş bir liste döndürür.Hata işleme
errorsdizisinde geri gelir ve zincirin geri kalanını durdurur.shipmentCreateWorkflowüzerinde GraphQL hataları olarak yüzeye çıkar. Yeniden deneme gerekiyorsa, desteğe başvurun — önerilen yol, tam mutasyonu düzeltilmiş girdilerle yeniden göndermektir.VALIDATION_INVALID_TYPE_VARIABLE{ "errors": [ { "message": "invalid type for variable: 'shipmentInput'", "extensions": { "name": "shipmentInput", "code": "VALIDATION_INVALID_TYPE_VARIABLE" } } ] }Bu hata değişkenin tamamını adlandırır, gerçekte hatalı olan alanı değil. Neredeyse her zaman, bu değişkenin içindeki bir enum değerinin kendi enum'unun bir üyesi olmadığı anlamına gelir — en sık
nonDelivery.option,contentsTypeveyaserviceLevelalanlarında.Bu bir JSON tip sorunu değildir. Booleanlarınızı veya sayılarınızı tırnak içine alıp almamanız bir şey değiştirmez, çünkü payload hiçbir zaman o noktaya ulaşmaz — enum önce reddedilir.
Hatalı alanı bulmak için, değişken içindeki her enum değerli alanı kabul edilen değerlerine göre kontrol edin:
nonDelivery.optionRETURN_AFTER_RETENTION,RETURN_IMMEDIATELY,FORWARD,ABANDON—RETURNyokturnonDelivery.transportMethodAIR,MOST_ECONOMICALcontentsTypeSALE_OF_GOODS,ECOMMERCE_GOODS,COMMERCIAL_GOODS,COMMERCIAL_SAMPLE,RETURNED_GOODS,GIFT,DOCUMENTS,OTHERserviceLeveljapan_post.*hizmet seviyesi koduHerhangi bir girdi için enum üyelerinin tam listesi, API referansındaki tür sayfasında yer alır.
İzinler
Her adım bağımsız olarak güvenliği sağlanır. API anahtarınız, zincirdeki her varlık için yazma kapsamını (
ITEM_WRITE,CARTON_WRITE,SHIPMENT_RATING_WRITE,LANDED_COST_WRITE,SHIPMENT_WRITE) tutmalıdır. Doğrulanmış Hesaptaki standart satıcı rolü tümünü verir.Sonraki adımlar
CartonCreateWorkflowInput ItemCreateWorkflowInput LandedCostWorkFlowInput PartyCreateWorkflowInput ShipmentCreateWorkflowInput ShipmentRatingCreateWorkflowInput
cartonsCreateWorkflow itemCreateWorkflow landedCostCalculateWorkflow partyCreateWorkflow shipmentCreateWorkflow shipmentRatingCreateWorkflow
Bu sayfa faydalı mıydı?