Naar de inhoud

Authenticatie

Zo authenticeer je bij de EenFactuurMaken.nl REST API met een API-sleutel (Bearer of X-API-Key), wat een sleutel niet mag en hoe je sleutels veilig houdt.

Elk API-verzoek heeft een API-sleutel nodig. Maak er een bij Instellingen → API & AI (zie API-sleutels en apps). Een sleutel begint met efm_.

De sleutel meesturen

Gebruik bij voorkeur de Authorization-header:

bash
curl https://eenfactuurmaken.nl/api/v1/invoices \
  -H "Authorization: Bearer efm_jouw_sleutel"

Kan je tool geen Bearer-tokens sturen? Gebruik dan X-API-Key:

bash
curl https://eenfactuurmaken.nl/api/v1/invoices \
  -H "X-API-Key: efm_jouw_sleutel"

In JavaScript (Node 18 of nieuwer):

js
const res = await fetch('https://eenfactuurmaken.nl/api/v1/me', {
  headers: { Authorization: `Bearer ${process.env.EENFACTUURMAKEN_API_KEY}` },
})
if (!res.ok) throw new Error((await res.json()).data?.code)
console.log(await res.json())

In Python:

python
import os, requests

r = requests.get(
    "https://eenfactuurmaken.nl/api/v1/me",
    headers={"Authorization": f"Bearer {os.environ['EENFACTUURMAKEN_API_KEY']}"},
    timeout=30,
)
r.raise_for_status()
print(r.json())

Fouten bij authenticatie

StatusCodeBetekenis
401unauthenticatedGeen sleutel meegestuurd.
401invalid_api_keyDe sleutel klopt niet, is ingetrokken of verlopen.
403session_requiredDit kan alleen in de web-app (zie hieronder).
429rate_limitedMeer dan 120 verzoeken per minuut met deze sleutel. Wacht het aantal seconden uit de header Retry-After.

Wat kan alleen in de web-app?

Om je te beschermen als een sleutel uitlekt, werken deze acties niet met een API-sleutel (403 session_required):

  • betaalgegevens wijzigen: iban, bic, bankAccountName, email (antwoordadres) en defaultPaymentLink via PATCH /business;
  • je abonnement afsluiten, opzeggen of hervatten;
  • beveiliging (wachtwoord, 2FA, passkeys, apparaten, beveiligingslog, API-sleutels, verbonden apps) en je account verwijderen;
  • de welkomstgids.

Sessies en OAuth

  • De web-app gebruikt een sessiecookie. Daarvoor geldt een extra controle op de Origin-header (403 bad_origin) tegen CSRF. Met een API-sleutel heb je daar geen last van.
  • OAuth-tokens zijn alleen voor de MCP-server. Zie MCP-server.

Veilig werken

  • Zet de sleutel in een omgevingsvariabele of secrets-store, nooit in je code of in een openbare repository.
  • Gebruik de API alleen vanaf je server, niet vanuit een browser: dan ligt je sleutel op straat.
  • Maak per koppeling een eigen sleutel, met een verloopdatum. Dan kun je er één intrekken zonder de rest te raken.
  • Lekt er een sleutel uit? Trek hem meteen in.

Laatst bijgewerkt op 13 oktober 2026

Kom je er niet uit?

Mail ons op support@eenfactuurmaken.nl. Vertel wat je probeerde en wat er gebeurde, dan helpen we je verder.

support@eenfactuurmaken.nl