Overzicht
Pakketfeature customers. Een klantnaam is uniek binnen de organisatie. Aanmaken telt mee voor de klantlimiet van het pakket.
Klantvelden
| Veld | Type | Regels |
|---|---|---|
name | string | Verplicht bij aanmaken, max. 255, uniek binnen de organisatie |
email | string | Geldig e-mailadres, max. 255 |
phone | string | Max. 50 |
address | string | Max. 255 |
zipcode | string | Max. 20 |
city, country | string | Max. 100 |
vat_number, coc_number | string | Max. 50 |
is_active | boolean | Standaard true |
portal_access_enabled | boolean | Toegang tot het klantenportaal |
automatic_invoicing_enabled | boolean | Automatisch periodiek factureren |
automatic_invoicing_interval | integer | 1–999 |
automatic_invoicing_interval_unit | string | week, month, quarter of year |
automatic_invoicing_day | integer | 1–31 (bij week: 1–7); verplicht als automatisch factureren aan staat |
automatic_invoicing_month | integer | 1–12; verplicht bij year |
automatic_invoicing_next_date | date | Volgende factuurdatum |
automatic_invoicing_auto_send | boolean | Standaard false |
Endpoints
/customersKlanten opvragen
Gepagineerde lijst, alfabetisch op naam.
- Pakketfeature
- customers
- Recht (app-login)
- customers.view
Queryparameters
searchstringZoekt in naam, e-mail en plaats
per_pageinteger1–100, standaard 50
pageintegerPaginanummer
curl "https://factora.one/api/v1/customers?search=jansen" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": {
"current_page": 1,
"data": [
{
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl",
"phone": "010-1234567",
"address": "Hoofdstraat 1",
"zipcode": "3011 AB",
"city": "Rotterdam",
"country": "NL",
"vat_number": "NL123456789B01",
"coc_number": "12345678",
"is_active": true,
"portal_access_enabled": false,
"portal_last_login_at": null,
"automatic_invoicing_enabled": false,
"automatic_invoicing_interval": 1,
"automatic_invoicing_interval_unit": "month",
"automatic_invoicing_day": null,
"automatic_invoicing_month": null,
"automatic_invoicing_next_date": null,
"automatic_invoicing_auto_send": false,
"created_at": "2026-11-12T08:14:03.000000Z",
"updated_at": "2026-11-12T08:14:03.000000Z"
}
],
"first_page_url": "https://factora.one/api/v1/customers?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "https://factora.one/api/v1/customers?page=1",
"next_page_url": null,
"path": "https://factora.one/api/v1/customers",
"per_page": 50,
"prev_page_url": null,
"to": 1,
"total": 1
}
}/customers/{id}Klant tonen
Eén klant.
- Pakketfeature
- customers
- Recht (app-login)
- customers.view
Mogelijke fouten
404Klant bestaat niet in deze organisatie
curl "https://factora.one/api/v1/customers/<id>" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl",
"phone": "010-1234567",
"address": "Hoofdstraat 1",
"zipcode": "3011 AB",
"city": "Rotterdam",
"country": "NL",
"vat_number": "NL123456789B01",
"coc_number": "12345678",
"is_active": true,
"portal_access_enabled": false,
"portal_last_login_at": null,
"automatic_invoicing_enabled": false,
"automatic_invoicing_interval": 1,
"automatic_invoicing_interval_unit": "month",
"automatic_invoicing_day": null,
"automatic_invoicing_month": null,
"automatic_invoicing_next_date": null,
"automatic_invoicing_auto_send": false,
"created_at": "2026-11-12T08:14:03.000000Z",
"updated_at": "2026-11-12T08:14:03.000000Z"
}
}/customersKlant aanmaken
Maakt een klant aan. Zie de tabel klantvelden voor alle velden.
- Pakketfeature
- customers
- Recht (app-login)
- customers.manage
Mogelijke fouten
422Validatiefout (bijv. naam bestaat al) of klantlimiet van het pakket bereikt
curl -X POST "https://factora.one/api/v1/customers" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl",
"phone": "010-1234567",
"address": "Hoofdstraat 1",
"zipcode": "3011 AB",
"city": "Rotterdam",
"country": "NL",
"portal_access_enabled": false
}'201 Voorbeeldantwoord
{
"data": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl",
"phone": "010-1234567",
"address": "Hoofdstraat 1",
"zipcode": "3011 AB",
"city": "Rotterdam",
"country": "NL",
"vat_number": "NL123456789B01",
"coc_number": "12345678",
"is_active": true,
"portal_access_enabled": false,
"portal_last_login_at": null,
"automatic_invoicing_enabled": false,
"automatic_invoicing_interval": 1,
"automatic_invoicing_interval_unit": "month",
"automatic_invoicing_day": null,
"automatic_invoicing_month": null,
"automatic_invoicing_next_date": null,
"automatic_invoicing_auto_send": false,
"created_at": "2026-11-12T08:14:03.000000Z",
"updated_at": "2026-11-12T08:14:03.000000Z"
}
}/customers/{id}Klant bijwerken
Werkt alleen de meegestuurde velden bij.
- Pakketfeature
- customers
- Recht (app-login)
- customers.manage
curl -X PATCH "https://factora.one/api/v1/customers/<id>" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"automatic_invoicing_enabled": true,
"automatic_invoicing_interval": 1,
"automatic_invoicing_interval_unit": "month",
"automatic_invoicing_day": 1,
"automatic_invoicing_next_date": "2026-12-01"
}'200 Voorbeeldantwoord
{
"data": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl",
"phone": "010-1234567",
"address": "Hoofdstraat 1",
"zipcode": "3011 AB",
"city": "Rotterdam",
"country": "NL",
"vat_number": "NL123456789B01",
"coc_number": "12345678",
"is_active": true,
"portal_access_enabled": false,
"portal_last_login_at": null,
"automatic_invoicing_enabled": true,
"automatic_invoicing_interval": 1,
"automatic_invoicing_interval_unit": "month",
"automatic_invoicing_day": 1,
"automatic_invoicing_month": null,
"automatic_invoicing_next_date": "2026-12-01",
"automatic_invoicing_auto_send": false,
"created_at": "2026-11-12T08:14:03.000000Z",
"updated_at": "2026-11-12T08:14:03.000000Z"
}
}/customers/{id}Klant verwijderen
Kan alleen zonder open facturen, open offertes, klantabonnementen en actieve portaaltoegang. Anders 422 met blockers.
- Pakketfeature
- customers
- Recht (app-login)
- customers.manage
Mogelijke fouten
422Verwijderen geblokkeerd;blockersbevat bijv.["2 open facturen", "actieve klantenportaaltoegang"]
curl -X DELETE "https://factora.one/api/v1/customers/<id>" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"message": "Klant verwijderd."
}Lees ook
- FacturenConceptfacturen maken en bijwerken, versturen, betalingen registreren, annuleren met creditnota en PDF downloaden.
- KlantabonnementenTerugkerende facturatie per klant: abonnementen starten, wijzigen, pauzeren, hervatten, stoppen en verwerken.
- KlantenportaalInstellingen van het klantenportaal beheren en portaaldocumenten en gesprekken met klanten lezen.