Skip to content
Staging documentation. Requests go to https://api.stg.invoicing.proradius.co.

Authentication

Every request carries the API key in the Authorization header:

GET /v1/clients HTTP/1.1
Host: api.invoicing.proradius.co
Authorization: Bearer <your API key>
Accept: application/json

Send the key exactly as it was shown when you created it. Always call the API over HTTPS and keep the key on your server. Never put it in a mobile app or a web page.

An API key belongs to one organization. The API reads the organization from the key, so you do not send an Organization-Id header. If you send one, it is ignored and replaced by the key’s organization.

The Organization-Id header is only used by the PROradius apps themselves, which sign in as a user and can switch between organizations.

Each key holds a list of abilities, in the form module:action. An endpoint checks the ability it needs and answers 403 when the key does not have it. The API reference names the ability on every operation.

AbilityAllows
clients:readList and read clients. Also lets the key subscribe to client.* webhooks.
clients:createCreate clients.
clients:updateUpdate clients.
clients:deleteDelete clients.
tickets:readList and read service jobs, boards, job types and technicians. Also lets the key subscribe to ticket.* webhooks.
tickets:createCreate service jobs.
tickets:updateUpdate, move, archive, comment on, start and cancel jobs. Create and update job types.
tickets:deleteDelete service jobs.
tickets:scheduleSchedule and unschedule a visit, or create a job with a technician.
tickets:completeComplete a job and read its completion preview.
tickets:dispatchBook a technician over a conflict (override with a reason) when scheduling.
invoices:createNeeded together with tickets:complete when a completion creates an invoice, and for create-invoice.
invoices:readSubscribe to invoice.* webhooks.
client_payments:readSubscribe to payment.* webhooks.
webhooks:readList webhook endpoints, topics and deliveries.
webhooks:manageEverything in webhooks:read, plus create, update, delete, roll the secret, test and resend.

A key created with no abilities holds *, which allows everything. Choose explicit abilities for every production key.

A key can also be limited to some ticket boards. It then sees and changes only jobs on those boards. Jobs on other boards answer 404, as if they did not exist.

A missing, unknown or revoked key answers 401:

{ "status": false, "error": { "message": "Unauthenticated." } }

A valid key without the needed ability answers 403:

{ "status": false, "error": { "message": "This action is unauthorized." } }

See API key settings for the disabled key, IP allow-list and daily limit responses.