electronic-invoice.app

Electronic Invoice API

Valideer en maak e-facturen via een interface

Dezelfde regels als de validator in de browser, voor uw software: stuur een factuur, ontvang het resultaat als JSON, maak e-facturen van uw gegevens. Het abonnement Free kost niets en bevat 50 aanroepen per maand.

Wat de API omvat: de API maakt en valideert XRechnung, ZUGFeRD en Factur-X (EN 16931). Validatie via de API en MCP omvat ook meer Europese formaten, zie ondersteunde formaten. De API verstuurt geen facturen. De API is uitsluitend bedoeld voor bedrijven.

Handleidingen met voorbeelden: XRechnung, ZUGFeRD, validatie, DATEV-export, integratie met Claude, ChatGPT, Copilot en uw eigen agenten, documentatie van de MCP-server.

Wat de API kan

FunctieBeschrijving
ValiderenUBL, CII en ZUGFeRD/Factur-X PDF tegen EN 16931 en XRechnung 3.0 plus meer Europese formaten (zie ondersteunde formaten): oordeel, bevindingen met regel-ID, locatie en een korte toelichting. PDF's worden gecontroleerd als PDF/A-3-containers, de ingebedde XML als elke andere factuur.
AanmakenXRechnung (UBL, CII), ZUGFeRD en Factur-X als PDF/A-3 op basis van een JSON-factuur. Elk bestand wordt via hetzelfde controlepad gevalideerd voordat het wordt teruggegeven; bij fouten krijgt u de bevindingen in plaats van een bestand.
VisualiserenXRechnung- of ZUGFeRD-XML als leesbare PDF of HTML, zodat ontvangers facturen kunnen lezen en archiveren.
ConverterenConverteren tussen UBL en CII, XRechnung naar ZUGFeRD PDF.
ExtraherenFactuurgegevens als JSON, CSV en als DATEV-boekingsbatch voor inkomende facturen.
BatchVeel bestanden in één ZIP valideren (tot 200 bestanden, 5 MiB per bestand, 50 MiB in totaal). Resultaat per bestand, dubbele factuurnummers binnen de batch worden gevonden, en het samenvattingsrapport komt als JSON, CSV of PDF. Vanaf het abonnement Starter. Elk gecontroleerd bestand telt als één aanroep, en per account loopt één batch tegelijk.
PlausibiliteitMeer dan het formaat: verplichte gegevens volgens § 14 lid 4 van de Duitse btw-wet (UStG), rekenfouten, kortingspercentage bij contante betaling (Skonto) en vervaldatum, dubbele factuurnummers binnen een batch, vorm van het btw-id (geen controle bij het Duitse Federale Centrale Belastingkantoor (BZSt) of VIES).

Ondersteunde formaten

Geldt voor validatie via de API en de MCP-server. De validator in de browser controleert nog steeds alleen XRechnung en ZUGFeRD, en daar verlaat het bestand nooit uw apparaat.

LandFormaatWat wordt gecontroleerd
DuitslandXRechnung 3.0 (UBL, CII)EN 16931-regels en de XRechnung-CIUS
EUEN 16931 (UBL, CII)EN 16931-regels
Duitsland, FrankrijkZUGFeRD / Factur-X 1.09.2 (MINIMUM, BASIC WL, BASIC, EN 16931, EXTENDED)Regels per profiel, plus een PDF/A-3-controle van de container
EuropaPeppol BIS Billing 3.0.21 (UBL Invoice and CreditNote)Regels van het bestandsformaat. Geen verzending of ontvangst via het Peppol-netwerk.
NederlandNLCIUS (SI-UBL 2.0.3.13, NLCIUS-CII 1.0.3.13)Nationale regels
RoemeniëCIUS-RO 1.0.1Nationale regels
FrankrijkFranse CIUS-regels (FNFE France_RFE 1.4.0.04), met country=FR, incl. EXTENDED-CTC-FRNationale regels
Overige EU-landenOverige EN 16931-CIUS, bijvoorbeeld Kroatië, PortugalAlleen de kernregels van EN 16931. Het resultaat is hoogstens "waarschuwingen", met de vermelding dat nationale regels niet zijn gecontroleerd.
ItaliëFatturaPA (XSD 1.2.3)Alleen het officiële schema. Verdere controles worden uitgevoerd door de autoriteit (SdI).
PolenKSeF FA(3)Alleen het officiële schema, zonder bovengrenzen voor herhalingen. Verdere controles worden uitgevoerd door de autoriteit (KSeF).

Genereren en converteren blijven beperkt tot XRechnung, ZUGFeRD en EN 16931. De API controleert het Peppol BIS-bestandsformaat; de API verstuurt geen facturen.

Onze eigen tests (31 oktober 2026): 223 van 223 testgevallen (officiële KoSIT-testgevallen en onze eigen foutgevallen) gaven het verwachte resultaat; 35 van 35 gegenereerde facturen (alle btw-categorieën, vijf formaten) doorstaan de onafhankelijke kruiscontrole met de KoSIT-validator, Mustang en veraPDF. Dit is een test tegen steekproeven, niet een certificering.

Privacy: hoe de API is opgebouwd

  • Alleen in het geheugen: Facturen worden verwerkt en niet opgeslagen. De container draait met een alleen-lezen bestandssysteem, en tijdelijke bestanden staan in het geheugen.
  • Geen inhoud in logboeken: Elke aanvraag levert één logregel op met aanvraag-ID, tijd, duur, omvang en resultaat. Geen factuurinhoud, geen IP-adressen in de applicatielogboeken.
  • Verwerkingsservers in Duitsland: De inhoudelijke verwerking draait op servers van Hetzner Online GmbH in Duitsland (datacenter Neurenberg). Bij gebruik van de MCP-server wordt de aanvraag eerst in het geheugen verwerkt in een Cloudflare Worker op mcp.electronic-invoice.app; Cloudflare kan hiervoor datacenters buiten de EU gebruiken.
  • Upstream-gateway: Sleutelcontroles en quota worden afgehandeld door een Cloudflare Worker. Deze ziet aanvragen in het geheugen omdat hij ze doorstuurt, en slaat geen inhoud op. In de console wordt de API-sleutel alleen als hash opgeslagen; voor OAuth-verbindingen met de MCP-server wordt deze daarnaast versleuteld opgeslagen met AES-256-GCM. De OAuth-verbindingsgegevens worden bewaard in Durable Objects met een EU-locatievereiste. De aanroeptellers worden opgeslagen. Cloudflare kan aanvragen ook via datacenters buiten de EU routeren; de details staan in de verwerkingsovereenkomst.
  • Gegevensverwerking: De verwerkingsovereenkomst (DPA) is van toepassing.
  • Geen gebruik voor eigen doeleinden: Wij gebruiken factuurgegevens niet voor eigen doeleinden, in het bijzonder niet voor advertenties, productverbetering, analyse of het trainen van AI-modellen.
  • Facturering: Vaste maandelijkse abonnementen via Stripe. Stripe krijgt noch de factuurinhoud noch het aantal van uw aanroepen te zien.

Abonnementen

AbonnementPrijs per maandInbegrepen aanroepenAanroepen per minuutGelijktijdigDaarboven
Free0 EUR50ongeveer 102Harde limiet: verdere aanroepen worden geweigerd
Starter19 EUR2.000ongeveer 604Verdere aanroepen worden geweigerd (429) tot de factureringsperiode eindigt of u naar een hoger abonnement overstapt
Business49 EUR10.000ongeveer 3006Verdere aanroepen worden geweigerd (429) tot de factureringsperiode eindigt of u naar een hoger abonnement overstapt
Pro149 EUR50.000ongeveer 1.0008Verdere aanroepen worden geweigerd (429) tot de factureringsperiode eindigt of u naar een hoger abonnement overstapt

Vaste maandprijzen, geen verbruiksafhankelijke facturering. Er wordt geen btw in rekening gebracht op grond van § 19 van de Duitse btw-wet (UStG) (kleine ondernemer). De API is uitsluitend bedoeld voor bedrijven; de voorwaarden zijn van toepassing. Naar de console

Limieten en grote volumes

Wat telt: Antwoorden met 200, 400, 422 en 504 tellen als één aanroep; bij batches telt elk gecontroleerd bestand. 401, 403, 404, 405, 411, 413, 429, 500, 502, 503 en /v1/health tellen niet.

Limiet per minuut: De waarden zijn bij benadering en gelden per Cloudflare-locatie. Daarboven antwoordt de API met 429 rate_limited. Gelijktijdig betekent lopende en wachtende aanroepen van één account. Daarboven antwoordt de API onmiddellijk met 429 too_many_concurrent.

Veel facturen: Veel XML-bestanden horen in /v1/validate/batch (vanaf Starter). Stuur slechts enkele aanvragen tegelijk. PDF-generatie duurt een paar seconden; probeer bij 503 opnieuw na Retry-After. 429 rate_limited, too_many_concurrent en batch_in_progress geven daar ook de wachttijd in seconden.

Omvang en formaat: Een aanvraag mag maximaal 10 MiB zijn (10.485.760 bytes), een batch maximaal 50 MiB. Met het Content-Type wordt soepel omgegaan: alleen multipart/form-data wordt apart gelezen, anders detecteert de API het formaat aan de inhoud.

Codevoorbeelden

Voorbeelden laden ...

Referentie

Referentie laden ...

Juridische teksten zijn beschikbaar in het Duits en Engels: privacybeleid, API-voorwaarden en colofon. Alleen de Duitse versie is juridisch bindend.