REST API — Documentatie
Integreer 1invoice.online met uw eigen systemen. De API volgt REST-conventies en retourneert JSON. Stabiel onder /api/v1 — we bumpen de versie bij breaking changes.
Snelstart
- Log in en ga naar Instellingen → REST API
- Klik "Sleutel maken", geef hem een naam en kopieer de waarde (wordt maar één keer getoond)
- Stuur de sleutel als
Authorization: Bearer 1iv_...-header in uw aanvragen
Auth
Alle endpoints vereisen een Bearer-token in de Authorization-header. Sleutels zijn gekoppeld aan de organisatie waarin ze zijn aangemaakt — u kunt alleen data van uw eigen org lezen.
Authorization: Bearer 1iv_<uw sleutel>
Foutresponses
401 Unauthorized— header ontbreekt of sleutel ongeldig/ingetrokken500 Internal Server Error— databasefout; probeer opnieuw of neem contact op
Discovery
GET /api/v1
Retourneert een lijst beschikbare endpoints. Geen credentials nodig.
Leden
GET /api/v1/members?limit=50&offset=0&status=active
Retourneert leden van uw organisatie. Gepagineerd.
limit— per pagina (standaard 50, max 200)offset— startpositie (standaard 0)status— filter opactive,inactive,pending
Offertes
GET /api/v1/quotes?status=accepted
Retourneert offertes met status, totaal, public_token en signing-info.
Facturen
GET /api/v1/invoices?status=paid
Retourneert facturen met betaalstatus en vervaldatum.
Webhooks
Registreer een URL onder Instellingen → Webhooks. Bij een event POSTen wij JSON daarheen met deze headers:
X-1Invoice-Event— eventnaam (bijv.invoice.paid)X-1Invoice-Signature— HMAC-SHA256 van de ruwe body met uw secret (hex)User-Agent: 1invoice-webhooks/1
Beschikbare events
invoice.created,invoice.sent,invoice.paidquote.created,quote.sent,quote.accepted,quote.rejected
Rate limits
Zachte limiet: 60 aanvragen/minuut per sleutel. Bij overbelasting krijgt u 429 Too Many Requests. Meer nodig? Schrijf ons — we kunnen het op verzoek verhogen.
Versioning
We gebruiken URL-versioning. /api/v1 is stabiel. Breaking changes gaan in /api/v2 met minimaal 6 maanden parallelle werking.
Status & changelog
Zie roadmap voor de actuele status. We kondigen API-wijzigingen minimaal 30 dagen vooraf aan via webhooks en dashboardbanner.
Vragen over integratie?
Neem contact op — we helpen u op weg. De eerste integratie duurt meestal minder dan een uur.