Log in to your Zonos Dashboard and navigate to Account →
Integrations. The table shows two keys:
Name in Dashboard↕
Purpose↕
Use for the API?↕
Account key
Identifier for linking with the postal operator
❌ NO
API key
Authentication key for calling the Zonos API
✅ YES — use this one
Copy the token in the API key row. It begins with credential_live_. You will need this
key for both integration methods.
Keep your API key secure. Do not commit it to source control or share it publicly. If you
believe it has been compromised, regenerate it from the same Account → Integrations page.
The Item Quoter tool in your
Zonos Dashboard lets you look up estimated duty costs for your products before shipping — useful
for checking rates and planning ahead without generating a Declaration ID.
Choose the method that fits your technical setup. Both methods produce Declaration IDs that you
then upload to Česká pošta's shipping system.
For technical customers and developers who call Zonos directly from their own system.
Endpoint
URL: https://api.zonos.com/graphql
Method: POST
Content-Type: application/json
Authentication
Pass your API key in the credentialToken header:
credentialToken: credential_live_xxxxxxxxxxxxxxxxxx
API example
Log in to your Česká pošta account for the full API example, including the complete request and
response.
After generating Declaration IDs
Submit the Declaration ID to Česká pošta along with your shipment details. Česká pošta links
the Declaration ID to the shipment and returns a tracking number. Zonos does not issue tracking
numbers.
Error handling
Error / Symptom↕
Likely cause and fix↕
Security requirement failed
Your API key is invalid or passed in the wrong header. Ensure you're using the API Key (not the Account Key) and the header name is exactly credentialToken.
HTTP 401 Unauthorized
The API key is missing from the request headers. Confirm credentialToken is included.
errors array in response
The mutation returned a GraphQL error. Check the message field in the errors array for details.
Unexpected response shape
The response did not include data.declarationCreate.id. Log the full response body and verify the mutation text matches the example exactly.
Account setup
Account setup
Create your Verified Account, add a payment method, and connect your integration.
Step 1 — Create your Verified Account
Register for a Zonos Verified Account using the Česká pošta registration link. Complete your business address and billing setup.
Step 2 — Add a payment method
Add a payment method to your Zonos account to fund duty remittance for U.S.-bound shipments.
Step 3 — Get your API key
Log in to your Zonos Dashboard and navigate to Account → Integrations. The table shows two keys:
Copy the token in the API key row. It begins with
credential_live_. You will need this key for both integration methods.Keep your API key secure. Do not commit it to source control or share it publicly. If you believe it has been compromised, regenerate it from the same Account → Integrations page.
Step 4 (optional) — Estimate duty costs with Item Quoter
The Item Quoter tool in your Zonos Dashboard lets you look up estimated duty costs for your products before shipping — useful for checking rates and planning ahead without generating a Declaration ID.
Integration methods
Choose the method that fits your technical setup. Both methods produce Declaration IDs that you then upload to Česká pošta's shipping system.
For technical customers and developers who call Zonos directly from their own system.
Endpoint
https://api.zonos.com/graphqlapplication/jsonAuthentication
Pass your API key in the
credentialTokenheader:credentialToken: credential_live_xxxxxxxxxxxxxxxxxxAPI example
Log in to your Česká pošta account for the full API example, including the complete request and response.
After generating Declaration IDs
Submit the Declaration ID to Česká pošta along with your shipment details. Česká pošta links the Declaration ID to the shipment and returns a tracking number. Zonos does not issue tracking numbers.
Error handling
credentialToken.credentialTokenis included.errorsarray in responsemessagefield in the errors array for details.data.declarationCreate.id. Log the full response body and verify the mutation text matches the example exactly.Was this page helpful?