For partners — OAuth integrators — who bring their own clients to Tax Star E-Invoice. Pre-register the clients you want by their 10-digit TIN — pending until the company registers, or linked at once if it is already registered and nothing is attached to it — list them, see each onboarded client's Peppol activity as counts (sent, received and failed, and nothing else about the company), and subscribe to the `client.onboarded` webhook, in the normal Webhooks list (POST /oauth/webhooks, or the Webhooks panel of your app's settings). The same rules as the Reseller API, over your own list: a user who is both a reseller and a partner has two separate lists. Any app with the full OAuth API can call these; an app of a reseller account gets 403 insufficient_scope and uses /oauth/reseller. Linking gives your account write access: once a client's company is linked to you, your account is added to the company's members as an editor at once, so your apps can use it (read, connect an ERP, validate and send invoices, manage non-admin members). Only pre-register clients you are authorised to manage. The company's owner is emailed and can remove you.
/oauth/partners/pre-registerAccess tokenPre-register a client by its TIN and email, with an optional company name and notes. The TIN is the first ten digits of the company's TRN: exactly 10 digits, starting with "1". A 15-digit TRN, or a field called `trn`, is refused with 400. Only the TIN is matched; the email is your contact for the client. One TIN can be linked to only one partner or reseller across Tax Star: the first accepted request reserves it, including while the company is unregistered; later partner/reseller requests receive 409 `tin_reserved` and are not stored. The pending winner becomes `entity_created` when the company is registered and receives `client.onboarded`; your account is added to the company's members as an editor. For a registered, unlinked company, the first requester is linked at once (`linked_existing_entity: true`); a company already attached to a partner, reseller or OAuth application is refused with 409 `entity_exists`. A repeat by you is also 409. Legacy duplicate pending rows are resolved in favor of the earliest request; other rows become `not_linked`. Every outcome is recorded in your application's activity (`partner_pre_register`) with ids only, and Tax Star keeps an audit trail of each request and link (the TIN, how, when and why) that support uses to answer questions about it. Linking gives you write access, not just counts: your account is added to the company's members as an editor (unless it already holds a role there, or owns the company), so your apps can use it like any editor and send invoices as the company. Only pre-register clients you are authorised to manage. The company's owner is emailed and can remove you. A suspended account can still read, but not request.
{
"tin": "1000000000",
"email": "client@example.com",
"company_name": "Client LLC",
"notes": ""
}Responses
| 201 | The client in `client`. A linked (`entity_created`) client includes `entity_id`. `linked_existing_entity` is false for a new `pending` request, true when it was linked at once to an already-registered company, in which case your account was added to the company as an editor |
| 400 | `tin` is not 10 digits starting with 1 (a 15-digit TRN included), or the email is invalid; `details` names the field and the value is not echoed |
| 403 | A reseller account's app (`insufficient_scope`), or account suspended |
| 409 | TIN reserved by another partner/reseller (`tin_reserved`), company already attached (`entity_exists`), or you already requested this TIN |
/oauth/partners/pre-register/clientsAccess tokenYour clients, newest first, with each one's status and — once linked — `entity_id` and Peppol activity: `sent` and `received` count documents that reached the network, `failed` counts send attempts whose latest status is a failure. `entity_id` is omitted while a client is pending or not_linked; `activity` is null while pending. `not_linked` is reserved for legacy duplicate pending requests that lost to an earlier TIN reservation. `totals` covers every client you requested, including pending, onboarded and not_linked counts. Only ever your own clients.
Query parameters
search | Part of a TIN, email or company name. |
page | Page number, from 1. |
limit | Page size, 1 to 100. Default 25. |
status | Only clients in this state: pending, entity_created (onboarded), or not_linked (a legacy duplicate that lost to an earlier reservation). Omit for all. totals always covers every client. |
Responses
| 200 | `clients`, `total`, `page`, `limit`, `total_pages`, `totals` |
| 400 | Unknown `status` value |
| 403 | A reseller account's app (`insufficient_scope`) |
/oauth/partners/pre-register/clients/{client_id}Access tokenOne of your clients, with its status and activity (counts), in `client`; a linked client also includes `entity_id`. Poll it to learn when a client is onboarded, or subscribe to `client.onboarded`. Once a client is linked you are an editor of its company, so you can also use the company itself through your application. An id that is not one of yours answers 404, the same as one that does not exist.
Path parameters
client_id | The `id` from the client list or from the request response. |
Responses
| 200 | The client, in `client` |
| 404 | No client with this id among yours |