Skip to main content

Parties outside DawaTrack

The suppliers and buyers outside DawaTrack your events named, and the contact a recall reaches them by.

List your parties outside DawaTrack

GET https://api.dawatrack.com/partner-api/v1/parties/

The suppliers and buyers outside DawaTrack your events named, with the email and phone a recall reaches them by.

Scope batches:read Limit 5,000 per day

A party is listed once a RECEIVE named it as sender or a SHIP named it as recipient. Those a recall can't email (reachable: false) come first.

Only your own records: another partner's are never listed. Needs batches:read.

Example request

curl -X GET https://api.dawatrack.com/partner-api/v1/parties/ \
  -H "Authorization: Bearer $DAWATRACK_TOKEN"
import requests

token = "..."  # from POST /oauth/token/
response = requests.get(
    "https://api.dawatrack.com/partner-api/v1/parties/",
    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/parties/", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${token}`,
  },
});
console.log(await response.json());

Response fields

  • id integer Read-only

    The record's id.

  • name string Read-only
  • ppb_licence string Read-only
  • email string Read-only
  • phone string Read-only
  • reachable boolean Read-only

    True when a recall can email it.

  • first_seen_at datetime Read-only
  • last_seen_at datetime Read-only

Example response

JSON
[
  {
    "id": 412,
    "name": "Lakeside Wholesale",
    "ppb_licence": "PPB/WH/0042",
    "email": "",
    "phone": "+254700000042",
    "reachable": false,
    "first_seen_at": "2026-10-20T08:15:00Z",
    "last_seen_at": "2026-10-29T14:02:00Z"
  }
]

Status codes

200OK
401No valid access token
403Your credential lacks the scope, partner type or environment this needs
429Rate limit exceeded

Set a party's contact

PATCH https://api.dawatrack.com/partner-api/v1/parties/{id}/

Set the email and phone of a party outside DawaTrack your events named.

Scope events:write Limit 5,000 per day

Send email and phone, both required (400 otherwise); the phone with its country code (+254…; a Kenyan 07… or 01… number works too), kept in E.164. It replaces what's on file, on your record of the party, off the ledger.

An email tells the open recalls already reaching the party straight away: it is emailed the recall notice with a link to answer it. Needs events:write.

Path parameters

  • id integer Required

Request body

JSON. Send Content-Type: application/json.

  • email string Optional
  • phone string Optional

Example request

curl -X PATCH https://api.dawatrack.com/partner-api/v1/parties/42/ \
  -H "Authorization: Bearer $DAWATRACK_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "recalls@lakeside.example",
    "phone": "+254700000042"
  }'
import uuid
import requests

token = "..."  # from POST /oauth/token/
response = requests.patch(
    "https://api.dawatrack.com/partner-api/v1/parties/42/",
    headers={"Authorization": f"Bearer {token}", "Idempotency-Key": str(uuid.uuid4())},
    json={
      "email": "recalls@lakeside.example",
      "phone": "+254700000042"
    },
)
response.raise_for_status()
print(response.json())
const token = "..."; // from POST /oauth/token/
const response = await fetch("https://api.dawatrack.com/partner-api/v1/parties/42/", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${token}`,
    "Idempotency-Key": crypto.randomUUID(),
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "email": "recalls@lakeside.example",
    "phone": "+254700000042"
  }),
});
console.log(await response.json());

Response fields

  • id integer Read-only

    The record's id.

  • name string Read-only
  • ppb_licence string Read-only
  • email string Read-only
  • phone string Read-only
  • reachable boolean Read-only

    True when a recall can email it.

  • first_seen_at datetime Read-only
  • last_seen_at datetime Read-only

Example response

JSON
{
  "id": 412,
  "name": "Lakeside Wholesale",
  "ppb_licence": "PPB/WH/0042",
  "email": "recalls@lakeside.example",
  "phone": "+254700000042",
  "reachable": true,
  "first_seen_at": "2026-10-20T08:15:00Z",
  "last_seen_at": "2026-10-29T14:02:00Z"
}

Status codes

200OK
400The request is invalid, for example a malformed GTIN or a missing field
401No valid access token
403Your credential lacks the scope, partner type or environment this needs
404Not found, or not visible to your credential
409Conflict: a request with this Idempotency-Key is in progress, or the record already exists
429Rate limit exceeded

Partner API v1. The API reference is generated from the API's own code.