Integratie
Markdown-exportExterne API V1-documentatie
Technisch documentatiepakket voor selfservice API-implementatie en review. Deze pagina vat het externe API-contract, het toegangsmodel en de integratiegrenzen samen.
Overzicht
De API accepteert multipart-uploads, retourneert JSON-responses en gebruikt standaard HTTP-statuscodes en Bearer-authenticatie. Dien een PDF-factuur in, wacht op de asynchrone verwerking en haal daarna het gegenereerde resultaat op.
Stuur een PDF-factuur naar één endpoint en Invoice-Converter verzorgt extractie, validatie en outputgeneratie. Het resultaat-endpoint geeft het gegenereerde bestand pas terug nadat de validatiepoorten slagen; anders retourneert het 422 VALIDATION_FAILED.
Status: selfservice
Basispad: /api/v1. Laatst gesynchroniseerd 2026-05-23.
Belangrijkste mogelijkheden
Gebruik deze punten als praktische controles voor deze sectie.
- Eén endpoint voor PDF-naar-XML-conversie
- AI-ondersteunde extractie van factuurgegevens
- Geautomatiseerde EN 16931- en KoSIT-validatie
- Uitvoerformaten voor XRechnung, ZUGFeRD, UBL en CII
- Asynchrone verwerking met polling, kleine facturen rond 30 seconden en grotere facturen tot 1-2 minuten
- Idempotente writes voor veilige retries
Leveringsartefacten
Download machineleesbare integratieartefacten voor de Developer API.
Snelstart
Drie API-aanroepen voltooien een conversie. Het convert-endpoint wordt aangeboden op /api/v1 en vereist authenticatie.
POST /api/v1/invoices:convert
In ontwikkelingPDF naar gestructureerde e-factuur converteren
GET /api/v1/tasks/{task_id}
In ontwikkelingTaskstatus pollen
GET /api/v1/tasks/{task_id}/result
In ontwikkelingConversieresultaat downloaden
Gesloten-beta-toegang aanvragen
Gebruik deze punten als praktische controles voor deze sectie.
- Maak een account aan en open je profiel.
- Koop vooraf betaalde API-credits of gebruik een Enterprise-plan met inbegrepen API-toegang.
- Maak een API-sleutel in de sectie API-toegang.
- Voer de eerste request uit met server-side credentials en beheer daarna gebruik en sleutelrotatie vanuit je profiel.
Base-URL en API-sleutels
Gebruik deze punten als praktische controles voor deze sectie.
- Productie-base-URL:
https://invoice-converter.com/api/v1. - Gebruik dezelfde productie-API-host voor al het pilotverkeer:
https://invoice-converter.com/api/v1. - Gebruik tijdens onboarding kleine fixture-aanvragen; geaccepteerde conversieaanvragen verbruiken API-credits.
- Behandel sleutels als server-side secrets. Plaats ze niet in browser- of mobiele clients.
Eerste succesvolle request
Gebruik deze volgorde als minimale happy path nadat je een API-sleutel hebt aangemaakt.
- Uploaden:
POST /api/v1/invoices:convertmetAuthorization,Idempotency-Key,file=@invoice.pdfenformat=XRECHNUNG. - Controleer elke
2-5 seconden:GET /api/v1/tasks/{task_id}tot statuscompletedoffailedis. - Downloaden:
GET /api/v1/tasks/{task_id}/resulten slaX-Correlation-IDplusX-Validation-Proof-Idop wanneer aanwezig. - Voor ZUGFeRD PDF-output stuurt u
format=ZUGFERD; het result endpoint levert standaard de hybride PDF.
Veelgebruikte payloadvoorbeelden
Gebruik deze punten als praktische controles voor deze sectie.
XRECHNUNG: stuurformat=XRECHNUNG; dit is de standaard als format ontbreekt.ZUGFERD: stuurformat=ZUGFERDvoor een EN16931 ZUGFeRD/Factur-X hybride PDF.UBL: stuurformat=UBLvoor EN16931 UBL XML.CII: stuurformat=CIIvoor EN16931 CII XML.
Vereiste headers
Gebruik deze punten als praktische controles voor deze sectie.
- Authorization: Bearer <api_key>
Auth-regels
API-toegang is selfservice. Maak API-sleutels in je profiel, gebruik ze als Bearer-token en koop vooraf betaalde API-credits voor conversie-automatisering.
- Sleutels zijn tenantgebonden en gebruiken het
icp_-prefix. - Maak, roteer en trek API-sleutels in vanuit je profiel zodra External API-toegang is ingeschakeld. Kopieer nieuwe sleutels meteen, want plaintext sleutels worden maar één keer getoond.
- Een ontbrekende of ongeldige sleutel retourneert
401. - Aanroepen naar
/api/v1krijgen automatisch eenX-Correlation-IDwanneer die ontbreekt. - Schrijfaanroepen vereisen
Idempotency-Key; houd deze waarde stabiel over retries. - Gebruik server-to-server-integratie vanuit uw backend. Browser-origin-toegang is in productie beperkt.
Idempotency-contract
Gebruik deze punten als praktische controles voor deze sectie.
- Stuur bij elke schrijfaanroep een
Idempotency-Key. - Idempotency keys moeten overeenkomen met
[A-Za-z0-9._:-]+en maximaal 200 tekens lang zijn. - Als u uw eigen key opgeeft, retourneert dezelfde key + identieke payload de gecachte response.
- Dezelfde key + andere payload retourneert
409 IDEMPOTENCY_CONFLICT. - Idempotency keys verlopen na
24 hours.
Endpoint-referentie
Alle endpoints zijn beschikbaar onder /api/v1. Timeouts verschijnen als 504 en andere tijdelijke verbindingsfouten als 502; correlatie-ID’s helpen support om requests end-to-end te volgen.
POST /api/v1/invoices:convert
In ontwikkelingUpload een PDF-factuur en start asynchrone conversie. Retourneert een task_id voor polling. Verzoek: multipart/form-data. Antwoord: 202 Accepted.
GET /api/v1/tasks/{task_id}
In ontwikkelingPoll de huidige status van een conversietaak. Retourneert pending, processing, completed of failed. Bij failed bevat de response een error-veld met de reden. Verzoek: geen (GET). Antwoord: 200 OK.
GET /api/v1/tasks/{task_id}/result
In ontwikkelingDownload het gegenereerde bestand. ZUGFERD-taken leveren standaard een EN16931 ZUGFeRD/Factur-X hybride PDF; andere formaten leveren standaard XML. Herhaalde downloads kunnen uit gecachte gegenereerde artefacten worden bediend. Als blokkerende validatieproblemen blijven bestaan, retourneert dit endpoint 422 VALIDATION_FAILED zonder bestandsbody. Verzoek: geen (GET). Antwoord: 200 OK.
Uitvoerformatenmatrix
| Formaat | Syntaxis | Versie / Profiel | Content-Type | Extensie |
|---|---|---|---|---|
| XRECHNUNG | UBL 2.1 XML | XRechnung 3.0.2 | application/xml | .xml |
| ZUGFERD | Standaard EN16931 hybride PDF/A-3; CII XML met download=xml | ZUGFeRD 2.4 / Factur-X 1.08 | application/pdf of application/xml | .pdf / .xml |
| EN16931 | UBL 2.1 XML | EN 16931 | application/xml | .xml |
| UBL | UBL 2.1 XML | OASIS UBL 2.1 | application/xml | .xml |
| CII | UN/CEFACT CII XML | D16B | application/xml | .xml |
Wijzigingslogboek
Meest recente extern zichtbare API-wijzigingen.
2026-05-08
Prepaid External API-credits toegevoegd voor niet-Enterprise-tenants. 402 INSUFFICIENT_API_CREDITS gedocumenteerd voor tenants zonder Enterprise-facturering of prepaid credits. Bevestigd dat idempotente replays geen extra API-credits verbruiken. Conversieverzoeken vereenvoudigd tot bestand plus formaat; extractie-instellingen worden server-side beheerd.
2026-03-06
Task-result-downloads formaatgetrouw gemaakt voor CII- en ZUGFERD-uitvoer. Hergebruik van gecachte resultaatartefacten toegevoegd voor herhaalde XML/PDF-downloads van dezelfde task. Pollingquota afgestemd op endpoint-gescopeerde gewogen rate-limit-buckets.
2026-02-23
Duidelijkere, consistente API-foutresponses toegevoegd voor alle endpoints. Convert-opties uitgebreid en XML/PDF-downloadgedrag voor taskresultaten gedocumenteerd. Retryveiligheid verbeterd met strengere idempotency-vereisten en validatie. OpenAPI/Postman-artefacten bijgewerkt naar huidig API-gedrag.
2026-02-20
Statusresponses vereenvoudigd naar statusgerichte output. IndexNow-inzendvalidatie en authenticatiecontroles versterkt. API-toegangscontroles en request-limitinggedrag in productie verstevigd.
Foutcontract
| Code | HTTP | Opnieuw te proberen | Notities |
|---|---|---|---|
| AUTHENTICATION_REQUIRED | 401 | Nee | Bearer-token ontbreekt/is leeg |
| INVALID_API_KEY | 401 | Nee | API-sleutel niet gevonden, ingetrokken of verlopen |
| INSUFFICIENT_API_CREDITS | 402 | Nee | Koop minimaal 10 prepaid API-credits of gebruik Enterprise-facturering |
| IDEMPOTENCY_KEY_REQUIRED | 400 | Nee | Schrijfendpoint aangeroepen zonder Idempotency-Key |
| INVALID_IDEMPOTENCY_KEY | 400 | Nee | Idempotency key heeft een ongeldig formaat |
| IDEMPOTENCY_CONFLICT | 409 | Nee | Zelfde key gebruikt met andere request-hash |
| IDEMPOTENCY_IN_PROGRESS | 409 | Ja | Veilig later opnieuw proberen met dezelfde key/payload |
| AUTH_SERVICE_UNAVAILABLE | 503 | Ja | Auth-backend niet beschikbaar |
| RATE_LIMIT_SERVICE_UNAVAILABLE | 503 | Ja | Rate-limit-backend niet beschikbaar |
| RATE_LIMITED | 429 | Ja | Respecteer Retry-After en quotaheaders |
| BAD_REQUEST | 400 | Nee | Ongeldige JSON of ongeldig UUID-padparameter |
| PAYLOAD_TOO_LARGE | 413 | Nee | Uploadgrootte overschrijdt limiet |
| INVALID_UPLOAD | 400 | Nee | Upload lezen/parsen mislukt |
| UPLOAD_FAILED | 4xx/5xx | Voorwaardelijk | Corrigeer ongeldige requestopties; probeer alleen opnieuw bij tijdelijke 5xx-gevallen |
| TASK_NOT_READY | 202 | Ja | Poll opnieuw voor asynchrone voltooiing |
| TASK_STATUS_FAILED | 4xx/5xx | Voorwaardelijk | Opnieuw proberen bij tijdelijke serviceconditie |
| TASK_RESULT_FAILED | 4xx/5xx | Voorwaardelijk | Opnieuw proberen bij tijdelijke serviceconditie |
| XML_GENERATION_FAILED | 500 | Ja | Tijdelijke XML-generatiefout of timeout |
| PDF_GENERATION_FAILED | 500 | Ja | Tijdelijke PDF-generatiefout of timeout |
| PROFILE_MISMATCH | 422 | Nee | Invoice CustomizationID conflicts with the selected public format |
| PROXY_ERROR | 502/504 | Ja | Tijdelijke verbindingsfout (504 bij timeout) |
Veelvoorkomende fouten en wat te doen
Gebruik deze punten als praktische controles voor deze sectie.
- Opnieuw proberen met backoff:
429,500,502,503,504. - Request of brondata corrigeren:
400,409,413,422. - Toegang of credentials corrigeren:
401,403. - Later blijven pollen:
202 TASK_NOT_READY. - Bij
422 VALIDATION_FAILEDtoont u het teruggegeven veld, de regel-ID en de voorgestelde oplossing aan een menselijke controleur voordat u opnieuw probeert met gecorrigeerde factuurdata.
Rate- en payloadlimieten
Rate limits per sleutel en payloadgroottebeperkingen gelden voor alle API-aanroepen. Geweigerde requests verbruiken geen quotum.
- Endpointbewuste quota zijn kosten-gewogen. Convert gebruikt het basisplanquotum (standaard
30/minen500/hour), terwijl polling-endpoints lager gewogen quota gebruiken. - Lees effectieve limieten uit
X-RateLimit-Limit-MinuteenX-RateLimit-Limit-Hourop responses. - Maximale PDF-uploadgrootte:
20 MB - Maximale JSON-payloadgrootte:
1 MB - Rate-limit-responses bevatten
Retry-After,X-RateLimit-Limit-MinuteenX-RateLimit-Limit-Hour.
Retry-richtlijn
Gebruik deze punten als praktische controles voor deze sectie.
- Gebruik exponentiële backoff met jitter.
- Probeer alleen tijdelijke klassen (
429,500,502,503,504) opnieuw, waar mogelijk met dezelfde payload en idempotency key. - Probeer validatie- of contractfouten (
400,401,403,409,413) niet blind opnieuw.
Taaklevenscyclus en bewaartermijn
Gebruik deze punten als praktische controles voor deze sectie.
- Completed en failed tasks blijven
10 minutesbeschikbaar nadat ze een terminale status bereiken. - Verwerking krijgt een timeout na
5 minutes; vastgelopen tasks worden automatisch alsfailedgemarkeerd. - Idempotency keys verlopen na
24 hours. - Rate-limit-tellers resetten op een rollend venster.
Supportmodel
Gebruik deze punten als praktische controles voor deze sectie.
- Support tijdens kantooruren.
- Doel voor eerste reactie: 1 werkdag.
Stuur technische feedback
Deel implementatievragen, risico’s en benodigde contractwijzigingen met ons team.
Postman en OpenAPI gebruiken
Gebruik deze punten als praktische controles voor deze sectie.
- Importeer de Postman-collectie en stel
baseUrl,apiKeyen een nieuwe variabeleidempotencyKeyin. - Voer de collectie op volgorde uit: convert, status pollen, daarna result ophalen.
- Gebruik de OpenAPI JSON om typed clients te genereren, maar dek file upload, polling en binaire result handling af met integratietests.
- Leg
X-Correlation-IDvast in logs zodat support requests end-to-end kan traceren.