API Reference
REST API voor koppelingen met externe systemen.
Interactieve documentatie beschikbaar via Swagger UI op /api/docs — test endpoints direct in de browser.
Authenticatie
Alle API-verzoeken vereisen een API-sleutel in de X-API-Key header. Maak een sleutel aan via Instellingen > API-sleutels.
curl -X GET "https://your-project.supabase.co/functions/v1/api/contacts" \
-H "X-API-Key: ftj_your_api_key_here"Contacten
Volledige CRUD voor klanten.
| Methode | Path | Beschrijving |
|---|---|---|
GET | /contacts | Lijst van alle contacten |
POST | /contacts | Contact aanmaken |
GET | /contacts/{id} | Contact ophalen |
PUT | /contacts/{id} | Contact bijwerken |
DELETE | /contacts/{id} | Contact verwijderen |
Producten
Volledige CRUD voor producten.
| Methode | Path | Beschrijving |
|---|---|---|
GET | /products | Lijst van alle producten |
POST | /products | Product aanmaken |
GET | /products/{id} | Product ophalen |
PUT | /products/{id} | Product bijwerken |
DELETE | /products/{id} | Product verwijderen |
Facturen
Facturen aanmaken, ophalen, filteren en status bijwerken. Ideaal voor externe systemen die facturen registreren.
| Methode | Path | Beschrijving |
|---|---|---|
POST | /invoices | Factuur aanmaken met regels (auto berekening) |
GET | /invoices | Lijst met filters: status, contact_id, limit, offset |
GET | /invoices/{id} | Factuur met regels en contactgegevens |
PATCH | /invoices/{id} | Status, vervaldatum of notitie bijwerken |
Factuur aanmaken voorbeeld
POST /invoices
X-API-Key: ftj_...
{
"contact_id": "uuid-of-customer",
"status": "verzonden",
"invoice_date": "2026-04-11",
"due_date": "2026-05-11",
"lines": [
{
"description": "Spont POS Licentie",
"quantity": 1,
"unit_price_incl": 89.00,
"tax_percentage": 21,
"product_id": "uuid-of-product"
},
{
"description": "Installatie",
"quantity": 2,
"unit_price_incl": 125.00,
"tax_percentage": 21
},
{
"description": "Notitie: Levering binnen 5 werkdagen",
"is_text_line": true
}
]
}
→ Invoice created with auto-calculated totalsBetaling registreren
Na het aanmaken van een factuur kun je een betaling registreren. De factuurstatus wordt automatisch bijgewerkt naar 'deels_betaald' of 'betaald'.
POST /payments
X-API-Key: ftj_...
{
"invoice_id": "uuid-of-invoice",
"amount": 339.00,
"payment_date": "2026-04-11",
"external_method": "bank_transfer",
"external_reference": "TXN-12345",
"note": "Betaling ontvangen via extern systeem"
}
→ Invoice status updated to "betaald"Offertes
| Methode | Path | Beschrijving |
|---|---|---|
GET | /quotes | Lijst met filters |
GET | /quotes/{id} | Offerte met regels |
PATCH | /quotes/{id} | Status bijwerken |
Abonnementen
| Methode | Path | Beschrijving |
|---|---|---|
GET | /subscriptions | Lijst met filters |
GET | /subscriptions/{id} | Abonnement met regels |
PATCH | /subscriptions/{id} | Status bijwerken |
Betalingen
| Methode | Path | Beschrijving |
|---|---|---|
GET | /payments | Lijst van betalingen |
POST | /payments | Betaling registreren (werkt amount_paid op factuur bij) |
GET | /payments/{id} | Betaling ophalen |
Klantportaal endpoint
Het /client-portal/{external_id} endpoint retourneert alle data voor een klant in één verzoek. Ideaal voor chatbot-integraties.
GET /client-portal/CRM-12345
{
"contact": { "name": "Acme BV", "email": "info@acme.nl", ... },
"summary": {
"open_invoice_count": 2,
"open_invoice_amount": 850.00,
"active_subscriptions": 1,
"balance": 125.50
},
"invoices": [...],
"quotes": [...],
"subscriptions": [...],
"recent_payments": [...]
}Query parameters
De lijst-endpoints ondersteunen deze filters:
| Parameter | Type | Beschrijving |
|---|---|---|
status | string | Filter op status (bijv. 'verzonden', 'betaald') |
contact_id | UUID | Filter op klant-ID |
limit | integer | Maximaal aantal resultaten (standaard 100, max 500) |
offset | integer | Skip eerste N resultaten (voor paginering) |
Webhook events
De API triggert webhooks voor deze events:
contact.created,contact.updated,contact.deletedproduct.created,product.updated,product.deletedinvoice.updated,quote.updated,subscription.updatedpayment.created
OpenAPI / Swagger
De volledige API-specificatie is beschikbaar als OpenAPI 3.0 JSON op /openapi.json. Interactieve Swagger UI is beschikbaar op /docs.