Consignments
Your consignments (despatch advice) and, line by line, what the receiver recorded of them (receiving advice): whether each arrived, short, damaged or refused.
List your consignments
https://api.dawatrack.com/partner-api/v1/consignments/
Your consignments, newest first: those you sent, those your linked supplier account declared on the portal, and those your linked facilities dispatched.
batches:read
Limit 5,000 per day
Each has its number, its biz_transaction (the CBV desadv URI the EPCIS export uses, so the two join), carrier, waybill and expected date, and its receiver: whether it is on DawaTrack, its party_id on GET /parties/ and whether a recall can reach it (reachable). Never its email or phone.
Each line has received, short, damaged and refused units and how it was confirmation: recorded on DawaTrack by the receiver, scanned or typed through its link, or declared on another party's word.
state: confirmed (every line answered), partly_confirmed, waiting, or not_confirmed (a receiver outside DawaTrack that hasn't answered 7 days after it left), or cancelled (every line retracted).
since (a date, default 90 days ago) and state filter the list; a bad value is 400. Subscribe to consignment.received and consignment.not_confirmed to be told instead of polling.
Query parameters
-
sincestring OptionalDispatched on or after this date (YYYY-MM-DD). Default 90 days ago.
-
statestring Optionalconfirmed, partly_confirmed, waiting, not_confirmed or cancelled.
Example request
curl -X GET https://api.dawatrack.com/partner-api/v1/consignments/ \
-H "Authorization: Bearer $DAWATRACK_TOKEN"
import requests
token = "..." # from POST /oauth/token/
response = requests.get(
"https://api.dawatrack.com/partner-api/v1/consignments/",
headers={"Authorization": f"Bearer {token}"},
)
response.raise_for_status()
print(response.json())
const token = "..."; // from POST /oauth/token/
const response = await fetch("https://api.dawatrack.com/partner-api/v1/consignments/", {
method: "GET",
headers: {
Authorization: `Bearer ${token}`,
},
});
console.log(await response.json());
Response fields
-
numberstringUnique per sender.
-
biz_transactionstring or nullIts EPCIS bizTransaction (CBV desadv), as /batches/{gtin}/{batch}/epcis/ has it.
-
dispatched_atdatetime -
referencestring -
carrier_namestring -
waybill_numberstring -
vehicle_registrationstring -
expected_delivery_datedate or null -
receiverobject-
namestring -
on_dawatrackboolean -
party_idinteger or nullIts record on GET /parties/, outside DawaTrack.
-
reachableboolean or nullOutside DawaTrack: a verified email and a phone on file. Never the contact.
-
-
stateenumconfirmed: every line answered; partly_confirmed: some; waiting: none yet; not_confirmed: a receiver outside DawaTrack that hasn't answered 7 days after it left; cancelled: every line retracted.
Possible values:confirmedpartly_confirmedwaitingnot_confirmedcancelled -
linesarray of objects-
event_idintegerThe line's SHIP event.
-
gtinstringThe product's GS1 GTIN, as 14 digits.
-
batch_numberstringThe batch or lot number.
-
quantityintegerUnits sent.
-
receivedinteger or nullUnits the receiver recorded, or null if not yet.
-
shortintegerUnits that never arrived (RECADV).
-
damagedintegerUnits of those received that arrived damaged.
-
refusedintegerUnits refused: still yours to record.
-
confirmationenum or nullrecorded: on DawaTrack by the receiver; scanned/typed: through its link, a scan matching the batch or the quantities typed; declared: on another party's word. Null until answered.
Possible values:recordedscannedtypeddeclared -
received_atdatetime or nullWhen the facility received it.
-
-
linkobject or nullOutside DawaTrack only.
-
sent_tostringWhere its confirm link was last emailed, masked.
-
sent_atdatetime or null -
reminded_atdatetime or nullThe one reminder, 2 days on.
-
Example response
[
{
"number": "number",
"biz_transaction": "",
"dispatched_at": "2026-10-10T09:00:00Z",
"reference": "reference",
"carrier_name": "carrier_name",
"waybill_number": "waybill_number",
"vehicle_registration": "vehicle_registration",
"expected_delivery_date": "2026-10-10",
"receiver": {
"name": "name",
"on_dawatrack": false,
"party_id": 1,
"reachable": false
},
"state": "confirmed",
"lines": [
{
"event_id": "5c0e7d2a-91b4-4f63-8a27-0d4e6b9c1f35",
"gtin": "06164004321562",
"batch_number": "BTH-2026-041",
"quantity": 2600,
"received": 1,
"short": 1,
"damaged": 1,
"refused": 1,
"confirmation": "recorded",
"received_at": "2026-10-10T09:00:00Z"
}
],
"link": {
"sent_to": "sent_to",
"sent_at": "2026-10-10T09:00:00Z",
"reminded_at": "2026-10-10T09:00:00Z"
}
}
]
Status codes
200 | OK |
401 | No valid access token |
403 | Your credential lacks the scope, partner type or environment this needs |
429 | Rate limit exceeded |
Get a consignment
https://api.dawatrack.com/partner-api/v1/consignments/{number}/
One of your consignments by its number, as the list has it.
batches:read
Limit 5,000 per day
A number that isn't one of yours is 404.
Path parameters
-
numberstring Required
Example request
curl -X GET https://api.dawatrack.com/partner-api/v1/consignments/1/ \
-H "Authorization: Bearer $DAWATRACK_TOKEN"
import requests
token = "..." # from POST /oauth/token/
response = requests.get(
"https://api.dawatrack.com/partner-api/v1/consignments/1/",
headers={"Authorization": f"Bearer {token}"},
)
response.raise_for_status()
print(response.json())
const token = "..."; // from POST /oauth/token/
const response = await fetch("https://api.dawatrack.com/partner-api/v1/consignments/1/", {
method: "GET",
headers: {
Authorization: `Bearer ${token}`,
},
});
console.log(await response.json());
Response fields
-
numberstringUnique per sender.
-
biz_transactionstring or nullIts EPCIS bizTransaction (CBV desadv), as /batches/{gtin}/{batch}/epcis/ has it.
-
dispatched_atdatetime -
referencestring -
carrier_namestring -
waybill_numberstring -
vehicle_registrationstring -
expected_delivery_datedate or null -
receiverobject-
namestring -
on_dawatrackboolean -
party_idinteger or nullIts record on GET /parties/, outside DawaTrack.
-
reachableboolean or nullOutside DawaTrack: a verified email and a phone on file. Never the contact.
-
-
stateenumconfirmed: every line answered; partly_confirmed: some; waiting: none yet; not_confirmed: a receiver outside DawaTrack that hasn't answered 7 days after it left; cancelled: every line retracted.
Possible values:confirmedpartly_confirmedwaitingnot_confirmedcancelled -
linesarray of objects-
event_idintegerThe line's SHIP event.
-
gtinstringThe product's GS1 GTIN, as 14 digits.
-
batch_numberstringThe batch or lot number.
-
quantityintegerUnits sent.
-
receivedinteger or nullUnits the receiver recorded, or null if not yet.
-
shortintegerUnits that never arrived (RECADV).
-
damagedintegerUnits of those received that arrived damaged.
-
refusedintegerUnits refused: still yours to record.
-
confirmationenum or nullrecorded: on DawaTrack by the receiver; scanned/typed: through its link, a scan matching the batch or the quantities typed; declared: on another party's word. Null until answered.
Possible values:recordedscannedtypeddeclared -
received_atdatetime or nullWhen the facility received it.
-
-
linkobject or nullOutside DawaTrack only.
-
sent_tostringWhere its confirm link was last emailed, masked.
-
sent_atdatetime or null -
reminded_atdatetime or nullThe one reminder, 2 days on.
-
Example response
{
"number": "number",
"biz_transaction": "",
"dispatched_at": "2026-10-10T09:00:00Z",
"reference": "reference",
"carrier_name": "carrier_name",
"waybill_number": "waybill_number",
"vehicle_registration": "vehicle_registration",
"expected_delivery_date": "2026-10-10",
"receiver": {
"name": "name",
"on_dawatrack": false,
"party_id": 1,
"reachable": false
},
"state": "confirmed",
"lines": [
{
"event_id": "5c0e7d2a-91b4-4f63-8a27-0d4e6b9c1f35",
"gtin": "06164004321562",
"batch_number": "BTH-2026-041",
"quantity": 2600,
"received": 1,
"short": 1,
"damaged": 1,
"refused": 1,
"confirmation": "recorded",
"received_at": "2026-10-10T09:00:00Z"
}
],
"link": {
"sent_to": "sent_to",
"sent_at": "2026-10-10T09:00:00Z",
"reminded_at": "2026-10-10T09:00:00Z"
}
}
Status codes
200 | OK |
401 | No valid access token |
403 | Your credential lacks the scope, partner type or environment this needs |
404 | Not found, or not visible to your credential |
429 | Rate limit exceeded |
Partner API v1. The API reference is generated from the API's own code.