API Documentatie
✦ API v1 — StabielIntroductie
De FactuurMakenOnline REST API geeft je volledige toegang tot je facturen, klanten en producten. Alle responses zijn JSON.
Base URL: https://dashboard.factuurmakenonline.nl/api
Authenticatie
De API gebruikt Laravel Sanctum — een cookie-gebaseerde sessie voor browser-clients (SPA) en token-gebaseerde auth voor externe clients.
Sessie-authenticatie (browser / SPA)
# 1. CSRF cookie ophalen GET /sanctum/csrf-cookie # 2. Inloggen POST /login { "email": "jouw@email.nl", "password": "..." } # 3. Alle verzoeken sturen met Cookie + X-XSRF-TOKEN header
Token-authenticatie (externe apps)
POST /api-tokens
{
"token_name": "mijn-app"
}
# Response
{ "token": "1|abcdef123456..." }
# Gebruik in verzoeken
Authorization: Bearer 1|abcdef123456...
Foutafhandeling
HTTP-statuscodes volgen de standaard conventies:
| Code | Betekenis |
|---|---|
200 | Succes |
201 | Aangemaakt |
401 | Niet ingelogd / ongeldig token |
403 | Geen toegang (ander bedrijf) |
422 | Validatiefout — zie errors in de response |
413 | Bestand te groot / opslagquotum vol |
500 | Serverfout |
# Voorbeeld validatiefout { "message": "The email field is required.", "errors": { "email": ["The email field is required."] } }
Klanten
Geeft een gepagineerde lijst van klanten voor het ingelogde bedrijf.
{
"data": [
{
"id": 1,
"naam": "Jan Jansen",
"bedrijfsnaam": "Jansen BV",
"email": "jan@jansen.nl",
"btw_nummer": "NL123456789B01"
}
],
"total": 42
}
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
naam | string | verplicht | Volledige naam of contactpersoon |
email | string | verplicht | E-mailadres |
bedrijfsnaam | string | optioneel | Bedrijfsnaam |
btw_nummer | string | optioneel | BTW-nummer (NL123456789B01) |
adres | string | optioneel | Straat + huisnummer |
postcode | string | optioneel | Postcode |
stad | string | optioneel | Woonplaats |
land | string | optioneel | Landcode (NL, BE, DE...) |
Facturen
| Query param | Type | Beschrijving |
|---|---|---|
status | string | Filter op status: concept, verzonden, betaald, verlopen |
klant_id | integer | Filter op klant-ID |
per_page | integer | Aantal per pagina (max 100, default 25) |
{
"data": [
{
"id": 1,
"factuurnummer": "F2024-001",
"status": "verzonden",
"totaal": "242.00",
"vervaldatum": "2024-02-15",
"customer": { "id": 1, "naam": "Jan Jansen" }
}
]
}
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
customer_id | integer | verplicht | ID van de klant |
regels | array | verplicht | Factuurregels (zie hieronder) |
vervaldatum | date | optioneel | YYYY-MM-DD (default: 30 dagen) |
notities | string | optioneel | Vrije tekst onderaan factuur |
btw_percentage | integer | optioneel | 0, 9 of 21 (default: 21) |
# regels-object { "omschrijving": "Webdesign - 10 uur", "aantal": 10, "prijs": "85.00", "btw": 21 }
Geeft de factuur terug als application/pdf. Je kunt de Content-Disposition header bekijken voor de bestandsnaam.
Verstuurt de factuur per e-mail naar de klant en zet de status op verzonden.
| Veld | Type | Beschrijving |
|---|---|---|
bericht | string | Optioneel persoonlijk bericht in de e-mail |
Producten
Geeft alle producten/diensten terug die zijn opgeslagen als sjabloon voor factuurregels.
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
naam | string | verplicht | Productnaam of dienstomschrijving |
prijs | numeric | verplicht | Prijs exclusief BTW |
btw | integer | optioneel | BTW-tarief: 0, 9 of 21 |
eenheid | string | optioneel | uur, stuk, m², etc. |
Systeemstatus
Geeft de live systeemstatus terug. Zie ook status.factuurmakenonline.nl.
{
"overall": "ok",
"checks": [
{ "id": "database", "name": "Database", "status": "ok", "detail": "12 ms" },
{ "id": "cache", "name": "Cache", "status": "ok", "detail": "3 ms" }
],
"timestamp": "2026-06-26T08:00:00+02:00",
"uptime_pct": 99.98
}