Call Zonos for customs details
Follow the steps below to allow your customers to retrieve customs details that can be used when creating shipments from your platform.
Allow customers to pass in their Zonos API credentials
The Zonos API is accessible by a credentialToken
. Your platform will need to give customers the ability to enter their credentialToken
from the Zonos Dashboard into your platform. From here, you will be able to make requests to Zonos on their behalf.
Query customs details
Use the following query to pull back customs details needed to create the shipment. For the orderId
, you can use the Zonos order ID or the accountOrderNumber
that will likely already be in your system.
Query
query {
customsSpecByReference(
referenceId: "order_d8d0893b-cac5-4759-8842-bef4a5abbacf"
) {
id
currencyCode
amountSubtotals {
items
shipping
}
reasonForExport
incoterm
declarationStatement
attributes {
type
value
}
serviceLevel {
name
code
carrier {
name
code
}
}
parties {
id
type
person {
companyName
firstName
lastName
email
phone
}
location {
countryCode
line1
locality
postalCode
administrativeAreaCode
administrativeArea
}
}
customsItems {
id
amount
quantity
hsCode
hsCodeSource
description
countryOfOrigin
items {
id
amount
currencyCode
quantity
}
}
}
}
Response
{
"data": {
"customsSpecByReference": {
"id": "customs_spec_0jnbyj1fc2dhv",
"currencyCode": "GBP",
"amountSubtotals": {
"items": 128.42,
"shipping": 16.05
},
"reasonForExport": "NOT_FOR_RESALE",
"incoterm": "DAP",
"declarationStatement": null,
"attributes": [
{
"type": "GST",
"value": "1234567890"
}
],
"serviceLevel": null,
"parties": [
{
"id": "party_02ca9b01-341a-450e-bff4-8bcd9c799c67",
"type": "PAYOR",
"person": {
"companyName": "Test",
"firstName": "firstName",
"lastName": "lastName",
"email": "test@gmail.com",
"phone": "5022303021"
},
"location": {
"countryCode": "GB",
"line1": "40 Stone Street",
"locality": "Craigton",
"postalCode": "DD5 7JE",
"administrativeAreaCode": null,
"administrativeArea": null
}
},
{
"id": "party_7f22f3b2-2f4d-4f82-a13f-2688397b8ee6",
"type": "ORIGIN",
"person": null,
"location": {
"countryCode": "US",
"line1": "215 test st",
"locality": "St George",
"postalCode": "84770",
"administrativeAreaCode": "UT",
"administrativeArea": "Utah"
}
},
{
"id": "party_604ee39f-369e-458a-b3e3-2958dec42f35",
"type": "DESTINATION",
"person": {
"companyName": "test",
"firstName": "firstName",
"lastName": "lastName",
"email": "test@gmail.com",
"phone": "5022303021"
},
"location": {
"countryCode": "GB",
"line1": "40 Stone Street",
"locality": "Craigton",
"postalCode": "DD5 7JE",
"administrativeAreaCode": null,
"administrativeArea": null
}
}
],
"customsItems": [
{
"id": "customs_item_0jnbyjc5m2dhq",
"amount": 7.22,
"quantity": 1,
"hsCode": "6203.42",
"hsCodeSource": "API_REQUEST",
"description": "Cotton denim trousers",
"countryOfOrigin": "TR",
"items": [
{
"id": "item_0jnbyey9r4xcf",
"amount": 9.0,
"currencyCode": "USD",
"quantity": 1
}
]
},
{
"id": "customs_item_0jnbyjc5m2dhr",
"amount": 28.09,
"quantity": 2,
"hsCode": "6109.10",
"hsCodeSource": "API_REQUEST",
"description": "Cotton knitted apparel",
"countryOfOrigin": "US",
"items": [
{
"id": "item_0jnbyey9r4xc7",
"amount": 5.0,
"currencyCode": "USD",
"quantity": 1
},
{
"id": "item_0jnbyey9r4xcb",
"amount": 30.0,
"currencyCode": "USD",
"quantity": 1
}
]
},
{
"id": "customs_item_0jnbyjc5m2dhs",
"amount": 20.07,
"quantity": 1,
"hsCode": "6214.90",
"hsCodeSource": "API_REQUEST",
"description": "Cotton scarf, textile",
"countryOfOrigin": "IN",
"items": [
{
"id": "item_0jnbyey9r4xcd",
"amount": 25.0,
"currencyCode": "USD",
"quantity": 1
}
]
},
{
"id": "customs_item_0jnbyjc5m2dht",
"amount": 13.64,
"quantity": 2,
"hsCode": "6204.49",
"hsCodeSource": "API_REQUEST",
"description": "Silk apparel items",
"countryOfOrigin": "IN",
"items": [
{
"id": "item_0jnbyey9r4xcg",
"amount": 5.0,
"currencyCode": "USD",
"quantity": 1
},
{
"id": "item_0jnbyey9r4xcc",
"amount": 12.0,
"currencyCode": "USD",
"quantity": 1
}
]
},
{
"id": "customs_item_0jnbyjc5m2dhv",
"amount": 36.12,
"quantity": 1,
"hsCode": "6109.90",
"hsCodeSource": "API_REQUEST",
"description": "Synthetic t-shirt, man-made",
"countryOfOrigin": "VN",
"items": [
{
"id": "item_0jnbyey9r4xc9",
"amount": 45.0,
"currencyCode": "USD",
"quantity": 1
}
]
},
{
"id": "customs_item_0jnbyjc5m2dhw",
"amount": 6.42,
"quantity": 1,
"hsCode": "6110.11",
"hsCodeSource": "API_REQUEST",
"description": "Wool knitted sweater",
"countryOfOrigin": "IT",
"items": [
{
"id": "item_0jnbyey9r4xce",
"amount": 8.0,
"currencyCode": "USD",
"quantity": 1
}
]
},
{
"id": "customs_item_0jnbyjc5m2dhx",
"amount": 16.86,
"quantity": 2,
"hsCode": "4203.10",
"hsCodeSource": "API_REQUEST",
"description": "Leather apparel articles",
"countryOfOrigin": "IT",
"items": [
{
"id": "item_0jnbyey9r4xca",
"amount": 6.0,
"currencyCode": "USD",
"quantity": 1
},
{
"id": "item_0jnbyey9r4xc8",
"amount": 15.0,
"currencyCode": "USD",
"quantity": 1
}
]
}
]
}
}
}
Create the shipment with the carrier
Once you have pulled in the customs details for an order, you can use those details in your request to the carrier. When you retrieve the label and tracking number back from the carrier, you can use the shipmentCreate
mutation, to tell Zonos about the tracking number so that we can update the status of the order.
Retrieve customs details
Retrieve order details to prepare a shipment.GraphQL
If you are a partner of Zonos and are working with a customer that uses your platform for shipping, you can call Zonos for details about the order. These details can be used in your label request to the carrier to ensure that the details passed are the same details used to ensure that Zonos guarantees the duties and taxes assessed on that shipment. We will return details about tax IDs, items, including HS codes and customs descriptions, and account numbers that should be billed for duties and taxes.