Developers
Put an order in from your own system.
A REST API over the same data your dispatchers work in. Issue a scoped key in your account and make the first call in a minute.
Endpoints
Six, all live. Nothing on this page is planned or partial.
- GET
/pingCheck a key and see its scopes - GET
/ordersList orders — filter by status and created_after, paged - POST
/ordersCreate an order, single- or multi-stop - GET
/orders/{id}One order - GET
/orders/{id}/trackingPositions of the truck carrying it - GET
/orders/{id}/documentsProof of delivery and other documents, as 24-hour signed URLs
Authentication
Send your key as a bearer token, or in an X-API-Key header. A key belongs to exactly one company, and every response is scoped to it.
- Scopes are per key: orders:read, orders:write, tracking:read, documents:read. Give an integration the least it needs.
- We store only a SHA-256 of the key. It cannot be read back — issue a new one if it is lost.
- 120 requests per key per minute.
- Every call is logged with a request id, returned in the body and in the X-Request-Id header. Quote it and we can find the call.
Webhooks
So your system does not have to poll. We call you when something happens, from whichever side caused it — a dispatcher in the TMS, a carrier in the Partner HUB, a driver in the app, or a call to this API.
- EVENT
order.status_changedAn order moved along the status machine - EVENT
order.pod_uploadedA proof of delivery arrived - EVENT
invoice.issuedAn invoice was issued
Every delivery carries three headers. The signature is an HMAC-SHA256 over the timestamp and the raw body, using the signing secret shown once when you create the endpoint.
X-Cargon-Signature: t=1788700000,v1=5f2b...c91a
X-Cargon-Event: order.status_changed
X-Cargon-Delivery: 4417
Verify against the RAW body, before any JSON parsing. Re-serialising changes bytes and the signature will not match. The timestamp is inside the signed string so a captured delivery cannot be replayed later — reject anything older than five minutes.
Any 2xx means delivered. Anything else, or no answer within ten seconds, is retried five times with growing gaps:
1 min → 5 min → 15 min → 1 h → 6 h
So your system can be down for most of a day and still receive everything. After that the delivery is marked failed and stays in the log; re-enabling the endpoint replays what was missed. An endpoint that fails twenty times in a row is switched off rather than hammered, and you are told why.
Telematics
Truck positions reach the TMS either by us polling a provider, or by your system pushing them to us.
Traccar testedWebhook / Push API tested Wialon integration readyWebfleet integration readySamsara integration readyGeotab integration readyNavixy integration readyMapon integration readyflespi integration readyVerizon Connect integration ready
“Tested” means we drove a real account end to end. “Integration ready” means the adapter is written and reaches the provider, but no customer account has certified it yet — tell us which one you use and we will certify it with you.
Get a key
Keys live in your own account under Settings → API keys. If you are evaluating and do not have an account yet, start a trial — no card needed.