REST API — Documentation
Integrate 1invoice.online with your own systems. The API follows REST conventions and returns JSON. Stable under /api/v1 — we bump the version on breaking changes.
Quick start
- Log in and go to Settings → REST API
- Click "Create key", name it and copy the value (it's only shown once)
- Send the key as
Authorization: Bearer 1iv_...in your requests
Auth
All endpoints require a Bearer token in the Authorization header. Keys are tied to the organisation they were created in — you can only read data for your own org.
Authorization: Bearer 1iv_<your key>
Error responses
401 Unauthorized— header missing or key invalid/revoked500 Internal Server Error— database error; retry or contact us
Discovery
GET /api/v1
Returns a list of available endpoints. No credentials needed.
Members
GET /api/v1/members?limit=50&offset=0&status=active
Returns members for your organisation. Paginated.
limit— items per page (default 50, max 200)offset— starting position (default 0)status— filter onactive,inactive,pending
Quotes
GET /api/v1/quotes?status=accepted
Returns quotes with status, total, public_token and signing info.
Invoices
GET /api/v1/invoices?status=paid
Returns invoices with payment status and due date.
Webhooks
Register a URL under Settings → Webhooks. When an event happens, we POST JSON there with these headers:
X-1Invoice-Event— event name (e.g.invoice.paid)X-1Invoice-Signature— HMAC-SHA256 of the raw body with your secret (hex)User-Agent: 1invoice-webhooks/1
Available events
invoice.created,invoice.sent,invoice.paidquote.created,quote.sent,quote.accepted,quote.rejected
Rate limits
Soft limit: 60 requests/minute per key. On overload you get 429 Too Many Requests. Need more? Write to us — we can raise it on request.
Versioning
We use URL versioning. /api/v1 is stable. Breaking changes go in /api/v2 with at least 6 months of parallel operation.
Status & changelog
See roadmap for current status. We announce API changes with at least 30 days' notice via webhooks and a dashboard banner.
Questions about integration?
Contact us and we'll help you get going — the first integration usually takes less than an hour.