Get your API key
First, register for a Zonos account and configure your account in Zonos Dashboard. You will then be able to get your API key, which will allow you to authenticate with the Zonos API.
Decide what details to retrieve
Because of how GraphQL works, you can request only the fields you are interested in from the API, or you could choose to request all information the system has relating to an order—the choice is up to you. Consult the GraphQL API reference for available fields.
Information associated with the order such as landed cost quote details, shipment rating details, cart details, etc. can be queried through the graph by adding fields from those objects to your order
query.
At a minimum, you need an order number to be able to query the API. This is passed in the orderId
field with the variables in your GraphQL request.
Query
query order($orderId: String!) {
order(orderId: $orderId) {
# ... other field names here
}
}
Variables
{
"orderId": "order_88891908-5fd2-42fb-833f-b0afb11ea646"
}
Send your request
Now that you've built your request and configured it, you can send a POST
request to the Zonos API. Make sure to authenticate with your API key and provide the correct version header in your request.
POST https://api.zonos.com/graphql/
Query
query order($orderId: String!) {
order(orderId: $orderId) {
accountOrderNumber
amountSubtotals {
duties
taxes
fees
shipping
items
}
landedCosts {
id
rootId
tariffRate
duties {
amount
currency
formula
item {
id
description
}
exchangeRate {
rate
sourceCurrencyCode
targetCurrencyCode
}
}
fees {
amount
currency
description
note
formula
type
item {
id
description
}
exchangeRate {
rate
}
}
taxes {
amount
currency
formula
item {
id
description
}
exchangeRate {
rate
}
}
deMinimis {
formula
method
note
threshold
type
}
shipmentRating {
id
amount
currencyCode
displayName
minTransitAt
maxTransitAt
details {
amount
carrierCode
type
}
amountSubtotals {
shipping
fuelSurcharge
insuranceCost
otherSurcharge
}
shipmentRatingCartons {
chargeableWeight
carton {
length
width
height
weight
}
}
shippingProfile {
id
customServiceLevelCode
landedCostMethod
serviceLevel {
code
}
}
}
}
}
}
Variables
{
"orderId": "order_88891908-5fd2-42fb-833f-b0afb11ea646"
}
Response
{
"data": {
"order": {
"accountOrderNumber": "10014067",
"amountSubtotals": {
"duties": 0,
"taxes": 11.86,
"fees": 7.49,
"shipping": 37.79,
"items": 229.99
},
"landedCosts": [
{
"id": "landed_cost_5d9ff0c2-059d-42c9-a1bc-3c9bbfaaca5b",
"rootId": "root_df4d61f9-21cc-4b73-a466-a9794cc14963",
"tariffRate": "ZONOS_PREFERRED",
"duties": [
{
"amount": 0,
"currency": "USD",
"formula": "0 %",
"item": {
"id": "item_abfa8dc2-1ae2-4b23-82e3-0b100d0a73a9",
"description": "Volvo & Mack Feeler Gauge & Jake Brake Tools 88880053 88880052 85111377"
},
"exchangeRate": null
}
],
"fees": [
{
"amount": 7.29,
"currency": "USD",
"description": "FedEx Canada Advancement Fee",
"note": null,
"formula": "2.500% of duties & taxes amount with a minimum of 10 cad, whichever is greater",
"type": "advancement",
"item": null,
"exchangeRate": null
},
{
"amount": 0.2,
"currency": "USD",
"description": "FedEx Currency Conversion Fee",
"note": null,
"formula": "1.75% of the amount converted",
"type": "currency_conversion_fee",
"item": null,
"exchangeRate": null
}
],
"taxes": [
{
"amount": 11.4995,
"currency": "USD",
"formula": "5%",
"item": {
"id": "item_abfa8dc2-1ae2-4b23-82e3-0b100d0a73a9",
"description": "Volvo & Mack Feeler Gauge & Jake Brake Tools 88880053 88880052 85111377"
},
"exchangeRate": null
},
{
"amount": 0,
"currency": "USD",
"formula": "5%",
"item": {
"id": "item_abfa8dc2-1ae2-4b23-82e3-0b100d0a73a9",
"description": "Volvo & Mack Feeler Gauge & Jake Brake Tools 88880053 88880052 85111377"
},
"exchangeRate": null
},
{
"amount": 0.36,
"currency": "USD",
"formula": "5%",
"item": null,
"exchangeRate": null
}
],
"deMinimis": [
{
"formula": "(cost {'<='} 150 cad and hs_code not_starts_with \"2203,2204,2205,2206,2208,24\")",
"method": "FOB",
"note": "Items value less than 150 CAD and not containing alcohol, tobacco, or other excluded items",
"threshold": "ABOVE",
"type": "DUTY"
},
{
"formula": "(cost {'<='} 40 cad and hs_code not_starts_with \"2203,2204,2205,2206,2208,24\")",
"method": "FOB",
"note": "Items value less than 40 CAD and not containing alcohol, tobacco, or other excluded items",
"threshold": "ABOVE",
"type": "TAX"
}
],
"shipmentRating": {
"id": "shipment_rating_5551cd40-9477-47b4-9354-6be457f17b6d",
"amount": 37.79,
"currencyCode": "USD",
"displayName": "FedEx International Priority",
"minTransitAt": "2022-10-19T17:00:00Z",
"maxTransitAt": null,
"details": [
{
"amount": 120.56,
"carrierCode": "retail_shipping",
"type": "PUBLISHED_RATE"
},
{
"amount": -96.2,
"carrierCode": "discount",
"type": "DISCOUNT"
},
{
"amount": 1,
"carrierCode": "carrier_fee",
"type": "SURCHARGE"
},
{
"amount": 5.3,
"carrierCode": "carrier_fee",
"type": "SURCHARGE"
},
{
"amount": 7.13,
"carrierCode": "fuel_surcharge",
"type": "FUEL_SURCHARGE"
}
],
"amountSubtotals": {
"shipping": 37.79,
"fuelSurcharge": 7.13,
"insuranceCost": null,
"otherSurcharge": 6.3
},
"shipmentRatingCartons": [],
"shippingProfile": {
"id": "shipping_profile_28632acb-81d2-46ff-8c8e-699c9eafe288",
"customServiceLevelCode": "INTERNATIONAL_PRIORITY",
"landedCostMethod": "DDP_FORCED",
"serviceLevel": {
"code": "fedex.international_priority"
}
}
}
}
]
}
}
}
Retrieve order details
Retrieve your order details with GraphQL.To retrieve details for your international orders in the Zonos system, you can query the GraphQL API. This allows you to retrieve order details and any applicable information tied to an order, such as shipment ratings, landed cost quotes, etc.