API Access

Info: API access is available on the Business plan.

API keys

API keys can be generated in the organization settings. Each key is scoped to a single organization and grants programmatic access to the Rekivo API.

Warning: Keep your API keys secret. Do not share them in client-side code or public repositories. Rotate keys immediately if they are compromised.

Authentication

Include your API key in the Authorization header of every request:

Authorization: Bearer rek_your_api_key_here

All API responses are JSON. Errors return a { "message": "..." } body with an appropriate HTTP status code.

Granular scopes

When creating an API key, you can restrict its permissions to specific scopes. Keys with no scopes assigned have full access (backwards compatible).

ScopeDescription
invoices:readList invoices, view details, download XML/PDF
invoices:writeUpdate metadata, change workflow status, add comments
invoices:deleteDelete invoices
upload:writeUpload new invoices
export:readList exports and download archives
export:writeCreate new exports
Tip: Use the principle of least privilege — create keys with only the scopes your integration needs. For example, a read-only dashboard integration only needs invoices:read.

Available endpoints

Invoices

GET/api/invoicesList all invoices (paginated)
GET/api/invoices/:idGet invoice details
GET/api/invoices/:id/xmlDownload original XML
GET/api/invoices/:id/pdfDownload rendered PDF
PATCH/api/invoices/:id/metadataUpdate invoice metadata
DELETE/api/invoices/:idDelete an invoice

Status changes

POST/api/invoices/:id/approveApprove invoice
POST/api/invoices/:id/rejectReject invoice
POST/api/invoices/:id/mark-paidMark as paid
POST/api/invoices/:id/archiveArchive invoice

Upload

POST/api/uploadUpload a new invoice (multipart form)

Export

GET/api/exportList recent exports
POST/api/exportCreate a new export
GET/api/export/:id/downloadDownload export archive

Rate limiting

API requests are rate-limited per key. If you exceed the limit, you will receive a 429 Too Many Requests response. The response includes Retry-After headers indicating when you can retry.

Error codes

StatusMeaning
400Bad request — invalid parameters
401Unauthorized — missing or invalid API key
403Forbidden — insufficient scopes or plan
404Not found
429Rate limit exceeded
500Internal server error
Rekivo — Receive and manage e-invoices with ease