F-Register API v1

API documentatie en kennisbank

Koppel F-Register veilig aan Teamleader, facturatiepakketten, BI-tools of eigen software. Deze pagina geeft een praktisch overzicht van authenticatie, rechten, endpoints, webhooks en veelvoorkomende integraties.

Vertrouwd door installatiebedrijven in Nederland en België

Image

curl -X POST "https://bedrijf.f-register.nl/api/v1/customers" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer fr_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-d '{
"name": "Hotel Havenzicht",
"contact_name": "Jan de Vries",
"address": "Prinsengracht",
"house_number": "211",
"postal_code": "1015 DT",
|"city": "Amsterdam",
"email": "techniek@example.nl",
"phone": "0201234567"
}'

Basis

Tenant per klant

Elke klantomgeving heeft een eigen subdomein. De API-basis-URL is daarom altijd de URL van de betreffende omgeving, bijvoorbeeld:
https://bedrijf.f-register.nl/api/v1 

Token per koppeling

Gebruik per extern systeem een eigen API-token met alleen de rechten die nodig zijn. Tokens kunnen verlopen, beperkt worden op IP-adres en later worden geroteerd.

Veilig en GDPR-bewust

API-calls, inkomende webhooks en uitgaande events worden gelogd. Gebruik zo min mogelijk persoonsgegevens en beperk toegang tot de klantomgeving die echt nodig is.

Authenticatie

Authenticatie met Bearer token

Een API-token wordt aangemaakt in de klantomgeving via Instellingen > API & Webhooks. Bewaar het token direct veilig; F-Register toont de volledige waarde alleen bij aanmaken of roteren. Een API-token wordt aangemaakt in de klantomgeving via Instellingen > API & Webhooks. Bewaar het token direct veilig; F-Register toont de volledige waarde alleen bij aanmaken of roteren.

curl "https://bedrijf.f-register.nl/api/v1/customers?q=havenzicht&limit=25" \
-H "Accept: application/json" \
-H "Authorization: Bearer fr_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Als alternatief kan de header X-F-Register-Api-Key gebruikt worden, maar Authorization: Bearer heeft de voorkeur.

Rechten

Rechten per API-client

Geef een koppeling alleen toegang tot wat deze nodig heeft. Een facturatiepakket heeft bijvoorbeeld vaak genoeg aan afgeronde werkbonnen, terwijl Teamleader bij een gewonnen deal klanten en locaties mag aanmaken.

customers.read / write
locations.read / write
installations.read / write
combustion.read / write
vehicles.read / write
work_orders.read / write
work_orders.completed
documents.read
webhooks.receive / send
Endpoint overzicht

Belangrijkste API-endpoints

Methode
Endpoint
Recht
Gebruik
GET

/api/v1/openapi.json

-

Machineleesbare OpenAPI-basis met endpoints en eventinformatie.

GET

/api/v1/me

customers.read

Controle van token, rechten en actieve koppeling.

GET

/api/v1/customers

customers.read

Klanten zoeken en pagineren. Query: q , limit , page

POST

/api/v1/customers

customers.write

Klant aanmaken vanuit extern CRM of salesflow.

GET

/api/v1/customers/{id}

customers.read

Klantdetails inclusief locaties en voertuigen.

GET

/api/v1/locations

locations.read

Installatieadressen ophalen. Query: customer_id , q , limit , page .

POST

/api/v1/locations

locations.write

Nieuw installatieadres aanmaken.

GET

/api/v1/installations

installations.read

Koelinstallaties en warmtepompen ophalen per locatie of zoekterm.

GET

/api/v1/combustion-appliances

combustion.read

Verbrandingstoestellen ophalen per locatie of zoekterm.

GET

/api/v1/vehicles

vehicles.read

Voertuigen ophalen per klant of zoekterm.

GET

/api/v1/work-orders

work_orders.read

Werkbonnen zoeken. Query: customer_id , status , q , limit , page .

POST

/api/v1/work-orders

work_orders.write

Nieuwe conceptwerkbon aanmaken.

GET

/api/v1/work-orders/completed

work_orders.completed

Uitgevoerde werkbonnen ophalen voor facturatie. Query: since , limit , page .

GET

/api/v1/work-orders/{id}

work_orders.read

Werkbondetails inclusief klant, objecten, planning, materialen en handelingen.

GET

/api/v1/documents

documents.read

Documentmetadata ophalen. Query: customer_id , installation_id , limit , page .

POST

/api/v1/inbound/{source}/{event}

webhooks.receive

Inkomende webhookpayload auditbaar opslaan.

Voorbeelden

Veelgebruikte requests

Klant zoeken

curl "https://bedrijf.f-register.nl/api/v1/customers?q=havenzicht&limit=25" \
-H "Accept: application/json" \
-H "Authorization: Bearer fr_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Nieuwe klant aanmaken

curl -X POST "https://bedrijf.f-register.nl/api/v1/customers" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer fr_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-d '{
"name": "Hotel Havenzicht",
"contact_name": "Jan de Vries",
"address": "Prinsengracht",
"house_number": "211",
"postal_code": "1015 DT",
"city": "Amsterdam",
"email": "techniek@example.nl",
"phone": "0201234567"
}'

Uitgevoerde werkbonnen voor facturatie

curl "https://bedrijf.f-register.nl/api/v1/work-orders/completed?since=2026-05-01&limit=100" \
-H "Accept: application/json" \
-H "Authorization: Bearer fr_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Webhooks en events

Uitgaande events

F-Register kan events naar externe systemen sturen. De payload heeft altijd de vorm { event, sent_at, data } . De headers bevatten onder andere X-F-Register-Event , X-F-Register-Webhook en X-F-Register-Signature .

Event

Trigger

Payload

test.ping

Handmatige test vanuit API & Webhooks.

Testbericht met tenant URL.

customer.created

Nieuwe klant aangemaakt via UI of API.

Klantobject.

customer.created

Nieuw installatieadres aangemaakt via UI of API.

Installatieadresobject.

work_order.completed

Status wordt Uitgevoerd of Uitgevoerd, met vervolg.

Werkbonobject inclusief uitvoeringsgegevens.

work_order.ready_for_invoice

Werkbon is afgerond en klaar voor facturatie.

Werkbonobject voor facturatiepakket.

document.created

Document toegevoegd aan F-Register.

Documentmetadata.

*

Wildcard subscription.

Afhankelijk van het concrete event.

Webhook signature controleren

hash_hmac('sha256', $rawJsonBody, $webhookSecret)

Teamleader en salespakketten

Voorbeeldflow: deal gewonnen naar werkvoorraad

 

Offerte wordt geaccepteerd in Teamleader; de deal krijgt status gewonnen.

 

 

Teamleader stuurt deal.won naar F-Register.

 

 

F-Register leest klant, contact, installatieadres en dealvelden uit.

 

 

Als de klant nog niet bestaat, wordt deze aangemaakt.

 

 

Het installatieadres wordt aangemaakt of bijgewerkt.

 

 

Afhankelijk van de mapping wordt een installatie, verbrandingstoestel, voertuig of conceptwerkbon klaargezet.

 

 

Na uitvoering kan het facturatiepakket via /work-orders/completed of via work_order.ready_for_invoice de afgeronde werkbon ophalen.

 

Kennisbank

Praktische artikelen

Foutcodes

Veelvoorkomende responses

First Name
Last Name
Countries

401

Token ontbreekt, is ongeldig, inactief of verlopen.

Controleer token, rotatie en vervaldatum.

403

Geen recht voor dit endpoint of IP-adres niet toegestaan.

Controleer rechten en IP-whitelist van de API-client.

404

Endpoint of record niet gevonden, of module staat uit.

Controleer URL, tenant, module en record-id.

422

Validatie mislukt.

Controleer verplichte velden, datums, e-mailadressen en datatypes.

429

Rate limit bereikt.

Verlaag call-frequentie of verhoog de limiet in overleg.

500

Serverfout.

Bewaar request-id/tijdstip en meld dit bij support.

Plaats nooit echte API-tokens in tickets, screenshots, e-mail of documentatie. Deel alleen de token-prefix, tenant-URL en het tijdstip van de fout.