API reference

Reseller clients

Submit the clients you want registered on Tax Star E-Invoice, list them, and see each onboarded client's Peppol activity as counts — sent, received and failed, and nothing else about the company. The same data as the Reseller dashboard. Requires an access token for an app whose owner is a reseller — a reseller account, or an E-Invoice account Tax Star has given reseller access — while that access is on (otherwise 403 reseller_inactive). Any other app gets 403 insufficient_scope here. See Reseller accounts for the full rules.

POST/oauth/reseller/clientsAccess token

Submit a client

Put a client forward to be registered: its TRN and email, with an optional company name and notes. The client is `pending` until an entity with that TRN is created on the platform, then `entity_created` — automatically, whichever way the entity is created — and the entity is marked as your client. Only the TRN is matched; the email is your contact for the client. The TRN must be a UAE TRN: 15 digits, starting with "1" and ending with "03" or "001". Answers 409 if you already submitted this TRN, and 409 with `code: entity_exists` if a company with this TRN is already registered — you are linked only to a company registered after your request. A suspended account can still read, but not submit.

Request body example
{
  "trn": "100000000000003",
  "email": "client@example.com",
  "company_name": "Client LLC",
  "notes": ""
}

Responses

201Submitted. The new client, `pending`, in `client`
400Invalid TRN or email; `details` names the field
403Not a reseller's app (`insufficient_scope`), reseller access off (`reseller_inactive`), or account suspended
409Already submitted by you, or already registered (`entity_exists`)
GET/oauth/reseller/clientsAccess token

List my clients

Your clients, newest first, with each one's status and — once its entity exists — its Peppol activity: `sent` and `received` count documents that reached the network, `failed` counts send attempts whose latest status is a failure. Those three counts are all that is returned about the client's company. `activity` is null while a client is pending. `totals` covers every client you submitted, not just the page: how many, how many pending and onboarded, and the activity summed across them. Only ever your own clients.

Query parameters

searchPart of a TRN, email or company name.
pagePage number, from 1.
limitPage size, 1 to 100. Default 25.
statusOnly clients in this state: pending (waiting for their company to be registered) or entity_created (onboarded). Omit for all. totals always covers every client.

Responses

200`clients`, `total`, `page`, `limit`, `total_pages`, `totals`
400Unknown `status` value
403Not a reseller's app (`insufficient_scope`), or reseller access off (`reseller_inactive`)
GET/oauth/reseller/clients/{client_id}Access token

Get one client

One of your clients, with its status and activity, in `client`. Poll it to learn when a client is onboarded. An id that is not one of yours answers 404, the same as one that does not exist.

Path parameters

client_idThe `id` from the client list or from the submit response.

Responses

200The client, in `client`
404No client with this id among yours