Docs
7

Toegangsgegevens voor netwerken

De toegangsgegevens van een eindklant voor een netwerk opslaan en vervangen.

  • In de sandboxopslag
  • Nog niet in de sandboxnetwerken

In gewone woorden

Toegangsgegevens voor een netwerk zijn de sleutel of machtiging waarmee we voor één eindklant kunnen optreden bij het netwerk of de overheidsinstantie van een land, zoals een token voor het nationale e-facturatiesysteem van Polen (KSeF). De eindklant reikt ze uit of geeft de machtiging, en ze komen in eurinvoice binnen via de API, nooit per e-mail of chat. We bewaren ze versleuteld en tonen ze nooit opnieuw. De gehoste sandbox bevat er nog geen, dus een verzendkanaal daar verzendt niets.

Met toegangsgegevens voor een netwerk kunnen we voor één eindklant optreden op een verzendkanaal: een KSeF-token, een ANAF-autorisatie, een platformsleutel. Ze komen binnen via deze API, nooit per e-mail of chat. De API bewaart ze en geeft ze nooit terug. De aanroepen vereisen een sleutel met de scope admin, en de sleutel van een eindklant slaat alleen toegangsgegevens op voor de eigen eindklant.

Hoe een waarde wordt bewaard

Een waarde wordt versleuteld voordat ze wordt opgeslagen, apart bewaard van de sleutel die haar beschermt, en nooit opnieuw getoond. Toegangsgegevens worden alleen geopend wanneer de dienst het verzendkanaal van die eindklant zou aanroepen. Elk gebruik schrijft een auditregel zonder waarde.

Voor toegangsgegevens waarvan de expires_on minder dan 30 dagen in de toekomst ligt, wordt een waarschuwing vastgelegd. Intrekken wist de waarde en bewaart de datums.

Velden

VeldBetekenis
clientDe identificatie van de eindklant, dezelfde die in een factuur staat: 1 tot 64 letters, cijfers, punten, underscores of koppeltekens. De eigen sleutel van een eindklant mag dit veld weglaten.
routeDE-XRECHNUNG, PEPPOL, FR-PA, PL-KSEF of RO-EFACTURA.
kindGeeft de toegangsgegevens een naam en bepaalt hoe ze worden gelezen, maximaal 80 tekens uit letters, cijfers, punten, underscores en koppeltekens: ksef-token voor KSeF en anaf-oauth voor ANAF. Voor een Peppol- of Frans verzendkanaal geven wij u de soort en de vorm van de waarde wanneer de livegang begint.
issued_byWie ze heeft uitgereikt, maximaal 200 tekens.
issued_onDe datum van uitreiking, YYYY-MM-DD.
expires_onOptioneel, YYYY-MM-DD. Vul dit in als de toegangsgegevens verlopen.
environmentOptioneel. Het moet de omgeving zijn van de dienst die u aanroept; een sandbox slaat alleen sandbox-toegangsgegevens op.
legal_entityOptioneel, maximaal 64 tekens. De ID van de verkoper waarvoor de toegangsgegevens gelden: een btw-nummer, NIP, SIREN of bedrijfs-ID. Toegangsgegevens zonder deze waarde gelden ook voor de andere facturen van de eindklant.
valueHet geheim, maximaal 16.384 tekens. Verplicht, en wordt nooit teruggegeven.

De dienst controleert of een waarde bij haar soort kan werken, bijvoorbeeld dat een KSeF-token JSON is met een nip en een token. Een anaf-oauth-waarde is JSON-tekst met een cui en een access_token, of een refresh_token met de client_id en het client_secret van de toepassing. Een waarde die dat niet kan, geeft 422, credential-unusable, en het antwoord zegt welke vorm het verwacht zonder de waarde te citeren.

Een antwoord bevat id (cred_ en 24 hexadecimale tekens), de velden hierboven behalve value, stored (true zolang er een waarde wordt bewaard) en revoked_at na het intrekken.

Een eindklant kan per verzendkanaal, kind, omgeving en rechtspersoon één actieve set toegangsgegevens hebben. De worker gebruikt voor de eindklant en het verzendkanaal van de factuur de oudste set die niet is ingetrokken.

Toegangsgegevens opslaan

POST /credentials neemt de velden hierboven aan als JSON en antwoordt 201. Het verzoek is credential-create.json.

curl -X POST "https://api-sandbox-eu.eurinvoice.com/credentials" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  --data-binary @credential-create.json
Antwoord201
{
  "issued_by": "ANAF",
  "environment": "sandbox",
  "route": "RO-EFACTURA",
  "kind": "anaf-oauth",
  "expires_on": "2027-09-01",
  "stored": true,
  "client": "acme-srl",
  "issued_on": "2026-09-01",
  "id": "cred_5bebc3172daf651a788e4284"
}
Vastgelegd op 7 okt. 2026. De waarde is een verzonnen string.

Dezelfde toegangsgegevens opnieuw opslaan terwijl de eerste nog actief zijn, geeft 409.

curl -X POST "https://api-sandbox-eu.eurinvoice.com/credentials" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  --data-binary @credential-create.json
Antwoord409 Conflict
{
  "type": "https://eurinvoice.com/problems/credential-exists",
  "title": "This client already has this credential",
  "status": 409
}
Vastgelegd op 7 okt. 2026.

Opvragen en lezen

GET /credentials geeft alle toegangsgegevens terug, actief en ingetrokken, als {"data": [...]}. GET /credentials/{id} geeft één set terug, en 404 voor een onbekende ID.

curl "https://api-sandbox-eu.eurinvoice.com/credentials" \
  -H "Authorization: Bearer <your-api-key>"
Antwoord200 OK
{
  "data": [
    {
      "issued_by": "ANAF",
      "environment": "sandbox",
      "route": "RO-EFACTURA",
      "kind": "anaf-oauth",
      "expires_on": "2027-09-01",
      "stored": true,
      "client": "acme-srl",
      "issued_on": "2026-09-01",
      "id": "cred_5bebc3172daf651a788e4284"
    }
  ]
}
Vastgelegd op 7 okt. 2026. De lijst bevat geen enkele waarde.

Vervangen

POST /credentials/{id} neemt een nieuwe value aan, en eventueel een nieuwe expires_on. Eindklant, verzendkanaal, soort en datum van uitreiking blijven ongewijzigd. Gebruik dit na het vernieuwen van een token. Het verzoek is credential-replace.json.

curl -X POST "https://api-sandbox-eu.eurinvoice.com/credentials/cred_5bebc3172daf651a788e4284" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  --data-binary @credential-replace.json
Antwoord200 OK
{
  "issued_by": "ANAF",
  "environment": "sandbox",
  "route": "RO-EFACTURA",
  "kind": "anaf-oauth",
  "expires_on": "2028-09-01",
  "stored": true,
  "client": "acme-srl",
  "issued_on": "2026-09-01",
  "id": "cred_5bebc3172daf651a788e4284"
}
Vastgelegd op 7 okt. 2026.

Intrekken

POST /credentials/{id}/revoke wist de waarde en vult revoked_at in. Herhalen verandert niets.

curl -X POST "https://api-sandbox-eu.eurinvoice.com/credentials/cred_5bebc3172daf651a788e4284/revoke" \
  -H "Authorization: Bearer <your-api-key>"
Antwoord200 OK
{
  "issued_by": "ANAF",
  "environment": "sandbox",
  "route": "RO-EFACTURA",
  "revoked_at": "2026-10-06T19:49:12.987Z",
  "kind": "anaf-oauth",
  "expires_on": "2028-09-01",
  "stored": false,
  "client": "acme-srl",
  "issued_on": "2026-09-01",
  "id": "cred_5bebc3172daf651a788e4284"
}
Vastgelegd op 7 okt. 2026. `stored` staat op false.

Waarschuwing

Een ingetrokken record blijft bestaan, voor het auditspoor. Het kan niet worden vervangen: dat geeft 409, credential-revoked. Sla de nieuwe toegangsgegevens op als een nieuw record. Ingetrokken toegangsgegevens staan het opnieuw opslaan van dezelfde eindklant, hetzelfde verzendkanaal en dezelfde soort niet meer in de weg.

Antwoorden

StatusBetekenis
200De lijst, één set toegangsgegevens, een vervanging of een intrekking.
201Opgeslagen.
400De body is geen JSON, een verplicht veld ontbreekt of is te lang, route is niet een van de vijf, of een datum heeft niet de vorm YYYY-MM-DD.
401Geen sleutel, of een onbekende sleutel.
403De sleutel mist de scope admin, of noemt een andere eindklant.
404Deze toegangsgegevens bestaan niet.
409De eindklant heeft deze toegangsgegevens al (credential-exists), of ze zijn ingetrokken (credential-revoked).
413De body is groter dan 5 MB (payload-too-large).
422De waarde kan niet werken voor deze soort (credential-unusable).
429Te veel aanvragen voor de sleutel. Wacht het aantal seconden in Retry-After.
503De dienst heeft geen hoofdsleutel om een waarde mee te verzegelen (unavailable).

Wat elk verzendkanaal nodig heeft

In de sandboxuit officiële bronnen, gecontroleerd op 2 okt. 2026
VerzendkanaalDe eindklant geeftWie het uitreiktGeldigheid
PL-KSEFEen KSeF-token waarmee facturen kunnen worden verzonden (InvoiceWrite) en, voor statussen, gelezen (InvoiceRead). De rechten liggen vast bij het aanmaken, dus een wijziging vereist een nieuw token. Aanmelden met een KSeF-certificaat wordt nog niet ondersteund. Het opslaan van een ksef-set die geen ksef-token is, geeft 422, credential-unusable.De KSeF-beheerder van de eindklant.Zie de opmerking hieronder.
RO-EFACTURAEen OAuth-autorisatie voor onze geregistreerde ANAF-applicatie.Iemand met SPV-rechten voor de CUI van de eindklant: de wettelijke vertegenwoordiger of de boekhouder. Die meldt zich aan op het portaal van ANAF met een gekwalificeerd certificaat.Het toegangstoken is 90 dagen geldig en het vernieuwingstoken 365 dagen.
PEPPOLToestemming om de eindklant als Peppol-deelnemer te registreren, en de identiteitscontrole die het toegangspunt vraagt.De eindklant ondertekent de toestemming en doorstaat de controle. Wij beheren de sleutel van het toegangspunt, dus er zijn geen toegangsgegevens van de eindklant om op te slaan.De sleutel van het toegangspunt is van ons en wij roteren hem.
FR-PAHet eigen account van de eindklant op zijn Plateforme Agréée, en API-toegangsgegevens voor de onderneming.De eindklant maakt ze aan op zijn platform, of geeft ons toegang.Bepaald door het platform. Vraag welk soort toegangsgegevens het uitreikt.
DE-XRECHNUNGNiets voor Duitsland zelf. Per e-mail: de verzendende mailbox. Via Peppol: de registratie bij het toegangspunt.De eindklant.Niet van toepassing.

Tip

Stel expires_on in op basis van de datums hierboven, zodat de waarschuwing van 30 dagen afgaat voordat een vernieuwingstoken verloopt.

Bronnen: OAuth-procedure van ANAF (geldigheid van de tokens), KSeF-API-documentatie: tokens (rechten liggen vast bij het aanmaken van een token).

Waarschuwing

Polen: de bronnen zijn het oneens over hoelang een KSeF-token werkt. Het handboek van het Poolse ministerie van Financiën (editie van 9 feb. 2026) en de pagina over de applicatie voor belastingplichtigen (gewijzigd op 31 mrt. 2026) zeggen dat tokens tot 31 dec. 2026 geldig zijn voor authenticatie. De pagina met vragen en antwoorden van het ministerie zegt dat het heeft besloten de tokens in KSeF 2.0 zonder einddatum te behouden (antwoord 39). Een openbaar issue in de KSeF-API-repository van het ministerie vraagt het om dat verschil op te helderen. Gecontroleerd op 2 okt. 2026. Reken er, tot dat is opgehelderd, op dat u het token moet vernieuwen als het ministerie een einddatum vaststelt. Aanmelden met een certificaat wordt nog niet ondersteund, dus een token is de enige toegang. Zie het handboek, de vragen en antwoorden en het issue.

Op deze pagina