Ga naar de hoofdinhoud

Integratie

Markdown-export

Externe API V1-documentatie

Zet facturen vanuit je eigen systemen om naar gevalideerde e-facturen: upload een PDF-, DOCX- of TXT-document – of gestructureerde ERP-data – en download de XRechnung-, ZUGFeRD-, EN 16931-, UBL- of CII-output zodra de validatie is geslaagd. Deze pagina is het volledige integratiecontract: toegangsmodel, endpoints, foutcatalogus en limieten.

Vijf REST-endpoints zetten PDF-, DOCX- of TXT-facturen – of gestructureerde ERP-data – om naar gevalideerde XRechnung-, ZUGFeRD-, EN 16931-, UBL- en CII-e-facturen. Actieve Enterprise-abonnees maken sleutels direct aan; elke maand zijn 100 gedeelde E-mail/API-conversies inbegrepen, daarna gebruikt elke conversie € 0,40–0,50 aan prepaid credits.

Overzicht

De API accepteert multipart-uploads, geeft JSON-antwoorden terug en gebruikt standaard HTTP-statuscodes met Bearer-authenticatie. Elke conversie verloopt asynchroon: verstuur het document, poll de taak, download het resultaat. Een bestand wordt pas geleverd nadat de validatie is geslaagd – ongevalideerde output bestaat niet.

Stuur een PDF-, DOCX- of TXT-factuurdocument of gestructureerde factuurdata naar een conversie-endpoint. Invoice-Converter start daarmee een asynchrone task voor extractie, validatie en artefactgeneratie. Het resultaat-endpoint levert alleen een bestand wanneer het gevraagde artefact gevalideerd, gecontroleerd en klaar voor uitvoer is; tijdens verwerking retourneert het 202 TASK_NOT_READY, bij blokkerende validatiefouten 422 VALIDATION_FAILED.

Status: Enterprise-toegang

Basispad: /api/v1. Laatst gesynchroniseerd 2026-09-08.

Belangrijkste mogelijkheden

  • Upload-endpoints voor PDF-facturen en gestructureerde factuurdata
  • Extractie van factuurgegevens met controle van de velden aan de bron
  • Geautomatiseerde EN 16931- en KoSIT-validatie
  • Uitvoerformaten voor XRechnung, ZUGFeRD, EN16931, UBL en CII
  • Asynchrone verwerking met polling, kleine facturen rond 30 seconden en grotere facturen tot 1-2 minuten
  • Idempotente writes voor veilige retries

Start Enterprise API-toegang

Elke actieve Enterprise-abonnee kan productie-API-sleutels direct in het profiel maken.

  1. Maak een account aan en start Enterprise via de prijzenpagina: € 35/maand bij jaarlijkse facturering (€ 420/jaar); bij maandelijkse facturering: € 50/maand.
  2. Gebruik de 100 gedeelde E-mail/API-conversies die elke maand zijn inbegrepen; extra conversies gebruiken prepaid credits van € 0,40–0,50 per stuk.
  3. Maak een live API-sleutel aan in het API-toegangsgedeelte van je profiel.
  4. Verstuur de eerste request met Bearer-token en een stabiele Idempotency-Key.

Snelstart

Drie API-aanroepen voltooien een conversie. Het convert-endpoint wordt aangeboden op /api/v1 en vereist authenticatie.

POST /api/v1/invoices:convert

Live

Factuurdocument converteren

POST /api/v1/invoices:convert-structured

Live

Gestructureerde data converteren

GET /api/v1/tasks/{task_id}

Live

Taskstatus pollen

Snelstart met curl

Vervang $API_KEY door je live sleutel en $TASK_ID door de task_id uit het eerste antwoord. Dezelfde drie aanroepen werken voor elk uitvoerformaat.

1. Start de conversie
curl -X POST "https://www.invoice-converter.com/api/v1/invoices:convert" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: inv-2026-0001" \
  -F "file=@invoice.pdf" \
  -F "format=XRECHNUNG"
2. Poll de taak tot completed
curl "https://www.invoice-converter.com/api/v1/tasks/$TASK_ID" \
  -H "Authorization: Bearer $API_KEY"
3. Download het gevalideerde bestand
curl -o invoice.xml \
  "https://www.invoice-converter.com/api/v1/tasks/$TASK_ID/result?download=xml" \
  -H "Authorization: Bearer $API_KEY"

Base-URL en API-sleutels

  • Productie-base-URL: https://www.invoice-converter.com/api/v1.
  • Live-sleutels gebruiken de productiehost en het prefix icp_....
  • Gebruik uw live sleutel voor onboarding en validatieruns voordat u productievolume verstuurt.
  • 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:convert met Authorization, Idempotency-Key, file=@invoice.pdf (of .docx/.txt) en format=XRECHNUNG.
  • Poll met backoff: wacht na de 202 ongeveer 20 seconden en roep daarna GET /api/v1/tasks/{task_id} aan met intervallen van 20s, 30s, 45s, 60s en 60s tot de status completed of failed is. Blijf binnen het statusquotum van 10/min en 120/hour en stop na ongeveer 16 minuten.
  • Downloaden: GET /api/v1/tasks/{task_id}/result?download=xml en sla X-Correlation-ID op voor support-tracing.
  • Voor ZUGFeRD PDF-output vraagt u format=ZUGFERD bij convert en download=pdf bij result; hybride PDF-output vereist een PDF-bronupload.
  • Voor gestructureerde invoer roept u POST /api/v1/invoices:convert-structured aan met pdf_file=@invoice.pdf, data_file=@invoice-data.json en het doel-format.
  • Stuur optioneel client_reference of external_invoice_id en source_system mee voor ERP-reconciliatie.
  • Voor gesplitste ERP-exports van één factuur herhaalt u data_file; voor meerdere facturen start u één task per factuur met een eigen idempotency key.
  • Sla result_artifacts uit de statusresponse op om te zien of XML/PDF-artefacten gevalideerd, gecachet of door afhankelijkheden nog niet beschikbaar zijn.

Veelgebruikte payloadvoorbeelden

  • XRECHNUNG: stuur format=XRECHNUNG.
  • ZUGFERD: stuur format=ZUGFERD; gebruik download=pdf bij result voor de hybride PDF/A-3-output.
  • Gestructureerde invoer: stuur pdf_file plus een of meer data_file-parts; geaccepteerde dataformaten zijn CSV, JSON, XML, XLSX en TXT, met elk ondersteund doelformaat. De data_file-parts moeten alle verplichte data bevatten; de PDF vult geen ontbrekende velden aan.
  • Meerdere facturen: verstuur afzonderlijke convert-requests en volg elke geretourneerde task_id; herhaalde data_file-parts zijn alleen voor gesplitste exports van dezelfde factuur.
  • UBL: stuur format=UBL; geaccepteerde profielen zijn XRECHNUNG, PEPPOL en EN16931, met EN16931 als standaard.
  • CII: stuur format=CII; geaccepteerde profielen zijn XRECHNUNG, EN16931, ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED en ZUGFERD_XRECHNUNG, met EN16931 als standaard.
  • format x profile is een gesloten tabel: XRECHNUNG accepteert [XRECHNUNG] (standaard XRECHNUNG), EN16931 accepteert [EN16931] (standaard EN16931), UBL accepteert [XRECHNUNG, PEPPOL, EN16931] (standaard EN16931), CII accepteert [XRECHNUNG, EN16931, ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG] (standaard EN16931) en ZUGFERD accepteert [ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG] (standaard ZUGFERD_EN16931). Profielen worden hoofdletterongevoelig vergeleken; ZUGFERD, FACTURX, FACTUR-X en FACTUR_X zijn aliassen voor ZUGFERD_EN16931, en ZUGFERD-XRECHNUNG is een alias voor ZUGFERD_XRECHNUNG.

Vereiste headers

  • Authorization: Bearer <api_key>

Auth-regels

Elke actieve Enterprise-abonnee kan API-sleutels in het profiel maken en als Bearer-token gebruiken. Het gedeelde E-mail/API-tegoed omvat 100 conversies per maand; extra conversies gebruiken prepaid credits van € 0,40–0,50 per stuk.

  • API-sleutels zijn tenant-gebonden live-credentials voor actieve Enterprise-abonnementen. Het huidige productieprefix is icp_....
  • Maak, roteer en trek API-sleutels in vanuit je profiel zolang Enterprise actief is. Kopieer nieuwe sleutels meteen, want plaintext sleutels worden maar één keer getoond.
  • Een ontbrekende of ongeldige sleutel retourneert 401.
  • Aanroepen naar /api/v1 krijgen automatisch een X-Correlation-ID wanneer 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

  • 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; dat is niet herhaalbaar — gebruik een nieuwe key voor een nieuwe payload.
  • Een tweede request met dezelfde key terwijl de eerste nog loopt, retourneert 409 IDEMPOTENCY_IN_PROGRESS; probeer dezelfde key na een korte pauze opnieuw. Een vastgelopen in-progress claim wordt na 15 minuten vrijgegeven.
  • Is de oorspronkelijke task voorbij de bewaartermijn van 24 uur, dan retourneert een replay 409 IDEMPOTENCY_REPLAY_EXPIRED; start een nieuwe conversie met een nieuwe key.
  • Idempotency-records blijven 24 uur bestaan, gelijk aan de taskbewaartermijn.

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

Live

Upload een PDF-, DOCX- of TXT-factuurdocument en start asynchrone conversie. Retourneert een task_id voor polling. ZUGFeRD/Factur-X hybride PDF-downloads vereisen een PDF-bronupload; DOCX/TXT-bronnen moeten XML-resultaten aanvragen. Ingesloten factuur-XML wordt standaard genegeerd; stel use_embedded_xml=true alleen in als uw integratie deze XML als primaire extractiebron accepteert. Verzoek: multipart/form-data; file (binary, verplicht) — PDF-, DOCX- of TXT-factuurbrondocument; oude DOC/RTF-, afbeeldings- en andere bestanden worden geweigerd; format (string, verplicht) — doeluitvoerformaat; zie de formaatmatrix hieronder; profile (string, optioneel, aanbevolen voor deterministische integraties) — expliciet complianceprofiel, hoofdletterongevoelig vergeleken. Elk formaat heeft een gesloten set toegestane waarden en één standaard: XRECHNUNG → [XRECHNUNG] (standaard XRECHNUNG); EN16931 → [EN16931] (standaard EN16931); UBL → [XRECHNUNG, PEPPOL, EN16931] (standaard EN16931); CII → [XRECHNUNG, EN16931, ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG] (standaard EN16931); ZUGFERD → [ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG] (standaard ZUGFERD_EN16931). ZUGFERD, FACTURX, FACTUR-X en FACTUR_X zijn aliassen voor ZUGFERD_EN16931; ZUGFERD-XRECHNUNG is een alias voor ZUGFERD_XRECHNUNG. Een waarde buiten de toegestane set geeft 422 OUTPUT_PROFILE_CONFLICT; een niet-herkende profielnaam geeft 422 INVALID_PROFILE met details.allowed_profiles; jurisdiction (string, optioneel) — expliciete ISO 3166-1 alpha-2-jurisdictiecontext voor validatie-/adviescontroles; overschrijft het profiel niet; transaction_scope (string, optioneel) — expliciete transactiecontext, zoals B2G; toegepast op de queued task; delivery_channel (string, optioneel) — een van PEPPOL, DIRECT_XML, PORTAL, EMAIL_PDF, UNKNOWN; toegepast op de queued task; client_reference of external_invoice_id (string, optioneel) — factuur-/jobreferentie van de klant, teruggegeven in geaccepteerde uploads en taskstatusresponses; source_system (string, optioneel) — upstream ERP- of facturatiesysteemlabel, teruggegeven in geaccepteerde uploads en taskstatusresponses; email_input (vrije tekst, optioneel, alleen PDF-bronnen) — klantinstructies in elke taal, maximaal 10.000 tekens, aangeleverd zonder e-mailblokmarkeringen; alle AI-extractie- en correctiestappen ontvangen ze los van de brontekst van de factuur; niet te combineren met use_embedded_xml=true, onderdeel van de request-identiteit voor idempotentie en niet ondersteund door invoices:convert-structured; de standaard factuurvalidatie blijft gelden; use_seller_master_data (boolean, optioneel) — zonder waarde geldt de standaard uit het tenantprofiel; false negeert opgeslagen verkopersstamgegevens voor deze request, true levert/gebruikt verkopersstamgegevens; seller_master_data (JSON-objectstring, optioneel) — verkopersstamgegevens die alleen worden gebruikt wanneer use_seller_master_data=true; ondersteunt bedrijfs-, adres-, belasting-, contact- en betaalvelden (payment_means_code 30/42/58, payment_iban, payment_bic, payment_account_name, payment_terms_note); elke profielwaarde vervangt de overeenkomstige geëxtraheerde waarde, ontbrekende profielvelden blijven ongewijzigd en verschillen geven niet-blokkerende waarschuwingen; electronic_address en electronic_address_scheme moeten samen worden opgegeven of beide worden weggelaten; use_embedded_xml (boolean, optioneel, standaard false) — ingesloten Factur-X-, ZUGFeRD- of XRechnung-XML wordt genegeerd, tenzij de waarde expliciet true is; gebruik dit alleen als de integratie de ingesloten XML als primaire extractiebron accepteert. Antwoord: 202 Accepted.

POST /api/v1/invoices:convert-structured

Live

Upload een drager-PDF met CSV-, JSON-, XML-, XLSX- of TXT-factuurdata en start asynchrone conversie vanuit gestructureerde data. De data_file-parts zijn de enige semantische bron; de PDF vult geen ontbrekende factuurvelden aan. Voor ZUGFeRD/Factur-X wordt de PDF gebruikt als drager-PDF, en bij XML-georiënteerde output wordt hij bewaard als ingediend PDF-artefact. Gebruik één conversierequest per factuur; herhaal data_file alleen voor gesplitste ERP-exports die dezelfde factuur beschrijven. Verzoek: multipart/form-data; pdf_file (binary, verplicht) — drager-PDF voor ZUGFeRD/Factur-X-insluiting en bewaring bij XML-georiënteerde output; data_file (binary, verplicht, herhaalbaar) — CSV-, JSON-, XML-, XLSX- of TXT-factuurdata als enige semantische bron; .xls, PDF’s en afbeeldingsbestanden worden als data_file geweigerd; herhaal voor gesplitste header-/regel-exports van dezelfde factuur; de aliassen data_files en data_files[] worden geaccepteerd; totale grootte gestructureerde data — maximaal 2 MB over alle data_file-parts; format (string, verplicht) — doeloutputformaat; ondersteunt XRECHNUNG, ZUGFERD, EN16931, UBL en CII; profile (string, optioneel, aanbevolen voor deterministische integraties) — expliciet complianceprofiel, hoofdletterongevoelig vergeleken. Elk formaat heeft een gesloten set toegestane waarden en één standaard: XRECHNUNG → [XRECHNUNG] (standaard XRECHNUNG); EN16931 → [EN16931] (standaard EN16931); UBL → [XRECHNUNG, PEPPOL, EN16931] (standaard EN16931); CII → [XRECHNUNG, EN16931, ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG] (standaard EN16931); ZUGFERD → [ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG] (standaard ZUGFERD_EN16931). Een waarde buiten de toegestane set geeft 422 OUTPUT_PROFILE_CONFLICT; een niet-herkende profielnaam geeft 422 INVALID_PROFILE met details.allowed_profiles; jurisdiction (string, optioneel) — expliciete ISO 3166-1 alpha-2-jurisdictiecontext voor validatie-/adviescontroles; overschrijft het profiel niet; transaction_scope (string, optioneel) — expliciete transactiecontext, zoals B2G; toegepast op de queued task; delivery_channel (string, optioneel) — een van PEPPOL, DIRECT_XML, PORTAL, EMAIL_PDF, UNKNOWN; toegepast op de queued task; client_reference of external_invoice_id (string, optioneel) — factuur-/jobreferentie van de klant, teruggegeven in geaccepteerde uploads en taskstatusresponses; source_system (string, optioneel) — upstream ERP- of facturatiesysteemlabel, teruggegeven in geaccepteerde uploads en taskstatusresponses; use_seller_master_data (boolean, optioneel) — zonder waarde geldt de standaard uit het tenantprofiel; false negeert opgeslagen verkopersstamgegevens voor deze request, true levert/gebruikt verkopersstamgegevens; seller_master_data (JSON-objectstring, optioneel) — verkopersstamgegevens die alleen worden gebruikt wanneer use_seller_master_data=true; ondersteunt bedrijfs-, adres-, belasting-, contact- en betaalvelden (payment_means_code 30/42/58, payment_iban, payment_bic, payment_account_name, payment_terms_note); elke profielwaarde vervangt de overeenkomstige geëxtraheerde waarde, ontbrekende profielvelden blijven ongewijzigd en verschillen geven niet-blokkerende waarschuwingen; electronic_address en electronic_address_scheme moeten samen worden opgegeven of beide worden weggelaten. Antwoord: 202 Accepted.

GET /api/v1/tasks/{task_id}

Live

Poll de huidige status van een conversietaak. Retourneert pending (geaccepteerd en in de wachtrij, nog niet gestart), processing, completed of failed. Rate limit 10/min en 120/hour; dat is de bindende beperking voor polling: wacht na de geaccepteerde 202 ongeveer 20 seconden voor de eerste aanroep, bouw daarna af (20s, 30s, 45s, 60s en vanaf dan 60s) en stop bij completed of failed. Voltooide taken bevatten result_artifacts-diagnostiek, zodat clients kunnen zien welke XML/PDF-artefacten beschikbaar, gecachet en met validatiebewijs onderbouwd zijn. Payloads van voltooide taken kunnen aanvullende _processing_warnings- en _validation_warnings-items met SOURCE_CONTEXT_*-regel-ID’s bevatten wanneer bronbewijs ontbrak, twijfelachtig of afgekapt was; behandel deze als beoordelingssignalen, niet als fouten. Bij failed bevat de response een error-veld met de reden. Verzoek: geen (GET); task_id (path, verplicht) — UUID die door het convert-endpoint is geretourneerd; include_validation_report_html (query, optioneel) — true of false (standaard false); bij true bevat de statusresponse het opgeschoonde HTML-validatierapport van het huidige strikte artefact wanneer dit beschikbaar is. Antwoord: 200 OK.

GET /api/v1/tasks/{task_id}/result

Live

Download het gegenereerde bestand (XML of PDF). De resultaantsyntaxis komt overeen met het oorspronkelijke taskformaat: XRECHNUNG/EN16931/UBL retourneren UBL XML, CII/ZUGFERD retourneren CII XML, en ZUGFERD + download=pdf retourneert een hybride PDF/A-3. Bij andere formaten kan download=pdf een gerenderde PDF leveren; op een voltooide task is download=xml het verwacht beschikbare artefact, geen gegarandeerd artefact. Herhaalde downloads kunnen uit gecachte artefacten worden bediend wanneer het validatiebewijs nog actueel is. Tijdens verwerking retourneert het endpoint een 202 met de standaard foutenvelope ({"code":"TASK_NOT_READY","message":"Strict conversion is still processing. No validated artifact is available yet.","correlation_id":"<uuid>"}); blokkerende validatiefouten retourneren 422 VALIDATION_FAILED, retrybare ontbrekende afhankelijkheden 503, definitieve conversiefouten 500 TASK_FAILED met de reden in details.code, en artefact-invariantfouten 500 INTERNAL_ARTIFACT_INVARIANT_FAILED, telkens zonder bestand. Geslaagde downloads bevatten X-Correlation-ID, Content-Disposition, Cache-Control: no-store, X-Artifact-Sha256, X-Validation-Proof-Id, X-Artifact-Proof-Id, X-Artifact-State, X-Validation-State, X-Proof-Status en X-Validator-Bundle-Id; X-Task-Id wordt op dit endpoint niet gezet. Rate limit 10/min en ongeveer 134/hour. Verzoek: geen (GET); task_id (path, verplicht) — UUID die door het convert-endpoint is geretourneerd; download (query, verplicht) — xml of pdf. Antwoord: 200 OK.

GET /api/v1/tasks/{task_id}/validation-report

Live

Download het rapport voor het huidige gevalideerde resultaatartefact. Het rapport is pas beschikbaar nadat strikte conversie een artefact met actueel bewijs heeft opgeslagen; anders retourneert het endpoint 202 of 404. Responseheaders identificeren het artefact en rapportbewijs. X-Artifact-Sha256 verwijst naar het resultaatartefact, niet naar het rapportbestand. Rate limit: 10/min en 120/uur. Verzoek: geen (GET); task_id (pad, verplicht) — UUID die een conversie-endpoint retourneert; download (query, optioneel) — html of xml. Antwoord: 200 OK.

Uitvoerformatenmatrix

FormaatSyntaxisVersie / ProfielContent-TypeExtensie
XRECHNUNGUBL 2.1 XMLXRechnung 3.0.2application/xml.xml
ZUGFERDCII XML (download=xml) / hybride PDF/A-3 (download=pdf)ZUGFeRD 2.5 / Factur-X 1.09application/xml of application/pdf.xml / .pdf
EN16931UBL 2.1 XMLEN 16931application/xml.xml
UBLUBL 2.1 XMLOASIS UBL 2.1application/xml.xml
CIIUN/CEFACT CII XMLD16Bapplication/xml.xml

Foutcontract

CodeHTTPOpnieuw te proberenNotities
AUTHENTICATION_REQUIRED401NeeBearer-token ontbreekt/is leeg
INVALID_API_KEY401NeeAPI-sleutel niet gevonden, ingetrokken of verlopen
API_NOT_ENABLED_FOR_TENANT403NeeDe sleutel is geldig, maar External API-toegang staat uit voor dit account; neem contact op met support
INSUFFICIENT_API_CREDITS402NeeHet inbegrepen maandtegoed plus prepaid API-credits dekten de request niet. Twee details-vormen: prepaid (remaining, minimum_purchase 100) en inbegrepen tegoed (included_remaining, credit_remaining, shortfall, minimum_purchase 100). Verwerk op code en lees welke sleutels aanwezig zijn
IDEMPOTENCY_KEY_REQUIRED400NeeSchrijfendpoint aangeroepen zonder Idempotency-Key
INVALID_IDEMPOTENCY_KEY400NeeIdempotency key moet overeenkomen met [A-Za-z0-9._:-]+ en maximaal 200 tekens lang zijn
IDEMPOTENCY_CONFLICT409NeeDe key is al gebruikt met een andere payload, of de idempotente claim kon niet worden gestart; gebruik een nieuwe key voor een nieuwe payload
IDEMPOTENCY_IN_PROGRESS409JaDe eerste request met deze key wordt nog verwerkt; probeer DEZELFDE key na een korte pauze opnieuw. Een vastgelopen in-progress claim wordt na 15 minuten vrijgegeven
IDEMPOTENCY_REPLAY_EXPIRED409NeeDe oorspronkelijke task valt buiten de bewaartermijn van 24 uur; start een nieuwe conversie met een nieuwe sleutel
FORMAT_REQUIRED400NeeConversierequest mist het verplichte format
INVALID_FORMAT422NeeNiet-ondersteund conversieformaat
CLIENT_REFERENCE_CONFLICT400Neeclient_reference en external_invoice_id verschillen
INVALID_CLIENT_METADATA400Neeclient_reference, external_invoice_id of source_system overschrijdt de lengtelimiet of bevat besturingstekens
INVALID_EMAIL_INPUT400Neeemail_input is meer dan één keer verzonden, is langer dan 10.000 tekens, is gecombineerd met een niet-PDF-bron of met use_embedded_xml=true, of is naar invoices:convert-structured verzonden
INVALID_EMBEDDED_XML_POLICY400Neeuse_embedded_xml moet true of false zijn
INVALID_SELLER_MASTER_DATA400Neeuse_seller_master_data of seller_master_data is niet parseerbaar of doorstaat de veldvalidatie niet; electronic_address en electronic_address_scheme moeten samen worden opgegeven of beide worden weggelaten
METHOD_NOT_ALLOWED405NeeConversiepaden accepteren alleen POST en taskpaden alleen GET; de response bevat Allow: POST, OPTIONS (conversie) of Allow: GET, OPTIONS (task)
DOWNLOAD_FORMAT_REQUIRED400NeeTask-resultrequest mist de verplichte download-query
INVALID_DOWNLOAD_FORMAT400NeeTask-result download-query moet xml of pdf zijn
AUTH_SERVICE_UNAVAILABLE503JaAuth-backend niet beschikbaar
RATE_LIMIT_SERVICE_UNAVAILABLE503JaDe rate-limit-service was niet bereikbaar; probeer opnieuw met backoff
PLAN_TIER_CHECK_FAILED503JaHet plan of de API-toegang kon niet worden gecontroleerd; probeer opnieuw met backoff
API_CREDIT_SERVICE_UNAVAILABLE503JaVerificatie van prepaid API-credits of kanaalquotum is tijdelijk niet beschikbaar bij conversie-uploads
RATE_LIMITED429JaRespecteer Retry-After. Retry-After, X-RateLimit-Limit-Minute en X-RateLimit-Limit-Hour worden alleen op 429-responses teruggegeven; de body bevat details.minute_count, details.hour_count, details.limit_minute en details.limit_hour
BAD_REQUEST400NeeOngeldige JSON of ongeldig UUID-padparameter
INVALID_QUERY_PARAMETER400Neeinclude_validation_report_html moet true of false zijn
PAYLOAD_TOO_LARGE413NeeUploadgrootte overschrijdt limiet
INVALID_UPLOAD400NeeUpload lezen/parsen mislukt
UPLOAD_FAILED422NeeEen optioneel contextveld (jurisdiction, transaction_scope, delivery_channel) bevatte een niet-herkende waarde; de toegestane waarden staan in de message
INVALID_PROFILE422NeeOnbekende profielnaam; details.allowed_profiles bevat de toegestane waarden
TASK_NOT_READY202JaPoll opnieuw voor asynchrone voltooiing
TASK_NOT_FOUND404NeeDe task is onbekend, hoort niet bij de tenant of is voorbij de bewaartermijn van 24 uur na het bereiken van een terminale status
VALIDATION_FAILED422NeeBlokkerende validatieproblemen blijven bestaan, waaronder strikte ZUGFeRD-voorwaardefouten en onopgeloste blocking_source_conflict-items; corrigeer de factuurdata voordat u opnieuw probeert
AUTHORITATIVE_VALIDATION_UNAVAILABLE503JaAutoritatieve validatie, bewijsopslag of afhankelijkheid voor hybride generatie is niet beschikbaar; probeer later opnieuw
TASK_STATUS_FAILED4xx/5xxVoorwaardelijkOpnieuw proberen bij tijdelijke serviceconditie
TASK_RESULT_FAILED4xx/5xxVoorwaardelijkOpnieuw proberen bij tijdelijke serviceconditie
TASK_FAILED500VoorwaardelijkConversiefout op het resultaat-endpoint. Lees details.code en details.retryable: MULTIPLE_INVOICES_IN_DOCUMENT, NO_INVOICE_DETECTED, INSUFFICIENT_INVOICE_SIGNAL, SCHEMA_PARSE_FAILED en ARTIFACT_PARITY_FAILED zijn definitief; PROVIDER_ERROR en elke niet-herkende details.code volgen details.retryable, en details.retryable=true betekent een NIEUWE conversie met een nieuwe Idempotency-Key in plaats van opnieuw pollen van dezelfde task. De mislukte conversie verbruikt geen facturatie-eenheid
MULTIPLE_INVOICES_IN_DOCUMENT500 (details code)NeeDefinitief: de bron bevat meerdere facturen. Splits deze in één bestand per factuur en start aparte conversies
NO_INVOICE_DETECTED500 (details code)NeeDefinitief: het document lijkt geen factuur; stuur het naar menselijke afhandeling
INSUFFICIENT_INVOICE_SIGNAL500 (details code)NeeDefinitief: de bron bevat te weinig factuurdata; lever een betere bron of gebruik gestructureerde conversie
SCHEMA_PARSE_FAILED500 (details code)NeeDefinitief voor deze invoer: geëxtraheerde data kon niet volgens het schema worden verwerkt. Start een nieuwe conversie; escaleer als hetzelfde document opnieuw faalt
PROVIDER_ERROR500 (details code)VoorwaardelijkDe extractieprovider faalde. Volg details.retryable; gebruik bij provider_context_too_large een kleiner brondocument
XML_GENERATION_FAILED500JaTijdelijke XML-generatiefout of timeout
PDF_GENERATION_FAILED500JaTijdelijke PDF-generatiefout of timeout
ARTIFACT_GENERATION_RERUN_REQUIRED503NeeStrikte artifactgeneratie is mislukt na server-side retries; start een nieuwe conversie nadat de afhankelijkheid is hersteld
EXTRACTION_INCOMPLETE_GROUP_FAILURE503NeeEen of meer extractiegroepen faalden. De task kan niet herstellen; start een nieuwe conversie en controleer details.failed_groups
ARTIFACT_GENERATION_FAILED503 (details code)NeeVastgelegd op mislukte tasks voor herhaalbare strikte uitgiftefouten; resultdownloads geven 503 ARTIFACT_GENERATION_RERUN_REQUIRED met deze code in details
ARTIFACT_PARITY_FAILED500 (details code)NeeGemeld in de details van 500 TASK_FAILED wanneer het strikte artefact niet overeenkomt met de definitieve gecontroleerde factuurdata; escaleer met de correlatie-ID
INTERNAL_ARTIFACT_INVARIANT_FAILED500NeeVoltooide strikte task heeft geen veilig opgeslagen artefact voor de gevraagde download; escaleer met de correlatie-ID
PROFILE_MISMATCH422NeeHet gevraagde profiel komt bij de resultdownload niet overeen met de CustomizationID van het opgeslagen resultaat
ZUGFERD_SOURCE_PDF_INCOMPATIBLE422NeeStrikte hybride PDF-generatie kan XML niet in de geüploade bron-PDF insluiten
ZUGFERD_SOURCE_PDF_REQUIRED422Needownload=pdf voor ZUGFERD vereist een PDF-bronupload (DOCX/TXT-bronnen kunnen de hybride PDF niet dragen); vraag in plaats daarvan download=xml aan
VALIDATION_REPORT_NOT_FOUND404NeeEr is geen validatierapport gekoppeld aan het bewijs van het huidige geleverde artefact
VALIDATION_REPORT_FAILED4xx/5xxVoorwaardelijkOphalen van het validatierapport is mislukt; probeer alleen opnieuw bij tijdelijke 5xx-gevallen
OUTPUT_PROFILE_REQUIRED422NeeEen generiek uitvoercontract vereist een expliciet profiel wanneer geen eenduidige standaard kan worden bepaald
OUTPUT_PROFILE_CONFLICT422NeeProfiel is in strijd met het gekozen uitvoerformaat of de expliciete variant
PROXY_ERROR502/504JaTransportfout in plaats van een conversieresultaat: proxy-/upstreamfout (504 bij timeout). Probeer opnieuw met backoff en dezelfde idempotency key

Veelvoorkomende fouten en wat te doen

  • Opnieuw proberen met backoff: 429, 502, 504, 503 met een herhaalbare code, en tijdelijke 500-fouten die geen TASK_FAILED of INTERNAL_ARTIFACT_INVARIANT_FAILED zijn. 500 TASK_FAILED is alleen herhaalbaar wanneer details.retryable true is, en dan uitsluitend als nieuwe conversie.
  • Niet opnieuw proberen: 400, 401, 402, 403, 404, 405, 413, 422, 409 IDEMPOTENCY_CONFLICT, 409 IDEMPOTENCY_REPLAY_EXPIRED, 500 TASK_FAILED wanneer details.retryable niet true is, en 500 INTERNAL_ARTIFACT_INVARIANT_FAILED.
  • Request of brondata corrigeren: 400, 413, 422.
  • Toegang of credentials corrigeren: 401 INVALID_API_KEY. 403 API_NOT_ENABLED_FOR_TENANT betekent dat de sleutel geldig is maar External API-toegang niet is ingeschakeld voor het account — neem contact op met support.
  • Controleer het inbegrepen maandtegoed of koop een prepaid API-creditpakket: 402 INSUFFICIENT_API_CREDITS. Lees de details-sleutels die aanwezig zijn (remaining bij prepaid accounts, of included_remaining/credit_remaining/shortfall wanneer een inbegrepen tegoed geldt).
  • Later blijven pollen: 202 TASK_NOT_READY.
  • Lees bij 500 TASK_FAILED de details.code en details.retryable. MULTIPLE_INVOICES_IN_DOCUMENT, NO_INVOICE_DETECTED, INSUFFICIENT_INVOICE_SIGNAL, SCHEMA_PARSE_FAILED en ARTIFACT_PARITY_FAILED zijn definitief; PROVIDER_ERROR en elke niet-herkende code volgen details.retryable, en true betekent een NIEUWE conversie in plaats van opnieuw pollen van dezelfde task. Een mislukte conversie verbruikt geen facturatie-eenheid.
  • Bij 422 VALIDATION_FAILED toont u het teruggegeven veld, de regel-ID en de voorgestelde oplossing aan een menselijke controleur voordat u opnieuw probeert met gecorrigeerde factuurdata.
  • Bij 503 AUTHORITATIVE_VALIDATION_UNAVAILABLE haalt u dezelfde task later opnieuw op; er is geen ongecontroleerd artefact geleverd. Start bij 503 ARTIFACT_GENERATION_RERUN_REQUIRED en 503 EXTRACTION_INCOMPLETE_GROUP_FAILURE in plaats daarvan een nieuwe conversie.
  • 502 en 504 PROXY_ERROR zijn transportfouten en geen conversieresultaten; probeer opnieuw met backoff en dezelfde idempotency key.

Rate- en payloadlimieten

Rate limits per API-sleutel en payloadgroottebeperkingen gelden voor alle API-aanroepen. Geweigerde conversies verbruiken geen prepaid API-credits; rate limits worden apart per endpoint bepaald.

  • Endpointgebonden limieten zijn kostengewogen, en elk endpoint heeft een eigen bucket zodat polling de conversiedoorvoer niet kan uithongeren. Standaarden per API-sleutel: POST /invoices:convert en POST /invoices:convert-structured 30/min en 500/hour; GET /tasks/{task_id} 10/min en 120/hour; GET /tasks/{task_id}/result 10/min en ongeveer 134/hour; GET /tasks/{task_id}/validation-report 10/min en 120/hour.
  • Quotaheaders worden alleen op 429 RATE_LIMITED-responses teruggegeven. Geslaagde responses bevatten geen quotaheaders; behandel de bovenstaande tabel daarom als het geldende contract en lees de exacte effectieve waarden uit een 429.
  • De statusbucket is de bindende beperking voor polling: wacht na de geaccepteerde 202 ongeveer 20 seconden voor de eerste statusaanroep, bouw daarna af (20s, 30s, 45s, 60s en vanaf dan 60s) en stop bij completed of failed. Poll niet elke 10 seconden; één zo bevraagde task verbruikt zijn hele uurbudget in 20 minuten.
  • Maximale uploadgrootte voor brondocumenten: 20 MB voor PDF-, DOCX- of TXT-bestanden.
  • Maximale uploadgrootte gestructureerde data: 2 MB totaal over alle data_file-parts.
  • Maximale JSON-payloadgrootte: 1 MB
  • 429-responses bevatten Retry-After, X-RateLimit-Limit-Minute en X-RateLimit-Limit-Hour, plus details.minute_count, details.hour_count, details.limit_minute en details.limit_hour.

Retry-richtlijn

  • Gebruik exponentiële backoff met jitter en hergebruik bij elke retry van een schrijfrequest dezelfde Idempotency-Key.
  • Beslis op de machineleesbare code — en bij 500 TASK_FAILED op details.code plus details.retryable — nooit op de HTTP-status alleen. Een 500 is in deze API niet automatisch herhaalbaar.
  • Veilig te herhalen: 429, 502, 504, 503 met een herhaalbare code, tijdelijke 500-fouten die GEEN TASK_FAILED of INTERNAL_ARTIFACT_INVARIANT_FAILED zijn, en 500 TASK_FAILED wanneer details.retryable true is (tijdelijke providerfouten: rate limiting, timeout, transportfout) — herhaal dat geval als een NIEUWE conversie met een nieuwe Idempotency-Key, niet door dezelfde task opnieuw te pollen.
  • Nooit herhalen: 400, 401, 402, 403, 404, 405, 413, 422, 409 IDEMPOTENCY_CONFLICT, 409 IDEMPOTENCY_REPLAY_EXPIRED, 500 TASK_FAILED wanneer details.retryable niet true is, en 500 INTERNAL_ARTIFACT_INVARIANT_FAILED. Een definitief mislukte conversie verbruikt geen facturatie-eenheid.
  • 409 IDEMPOTENCY_IN_PROGRESS is met DEZELFDE key na een korte pauze herhaalbaar; een vastgelopen in-progress claim wordt na 15 minuten vrijgegeven.
  • 503 ARTIFACT_GENERATION_RERUN_REQUIRED en 503 EXTRACTION_INCOMPLETE_GROUP_FAILURE vragen om een NIEUWE conversie in plaats van een retry van dezelfde task.

Taaklevenscyclus en bewaartermijn

  • Een task en de opgeslagen artefacten worden 24 uur bewaard nadat de task een terminale status (completed of failed) bereikt en worden daarna verwijderd. Na verwijdering geven status-, result- en validatierapportrequests 404 TASK_NOT_FOUND.
  • Er is geen vaste conversietimeout. Een task mislukt na een stilstandvenster van 5 minuten zonder fase- of voortgangsupdate, of zodra de totale verwerking de absolute bovengrens van 15 minuten overschrijdt.
  • Zet uw client-side timeout op ongeveer 16 minuten vanaf de geaccepteerde 202. De meeste conversies zijn ruim binnen twee minuten klaar.
  • Idempotency-records blijven 24 uur bestaan, gelijk aan de taskbewaartermijn. Een vastgelopen request wordt na 15 minuten vrijgegeven.
  • Rate-limit-tellers resetten op een rollend venster.

Supportmodel

  • Support tijdens kantooruren op basis van commercieel redelijke inspanningen.
  • Geen formele SLA, servicecredit of reactietijdverplichting tenzij afgesproken in een order form.

Wijzigingslogboek

Meest recente extern zichtbare API-wijzigingen.

2026-09-08

seller_master_data behandelt electronic_address en electronic_address_scheme nu als één optioneel paar. Geef beide velden op of laat beide weg; een onvolledig paar geeft 400 INVALID_SELLER_MASTER_DATA terug.

2026-09-07

Correctie van de prijsdocumentatie: 1.000 prepaid credits kosten 400 EUR (0,40 EUR per credit). Pakketten van 100, 200 en 500 credits blijven 50, 100 en 250 EUR kosten. De toegepaste prijzen en bestaande aankopen blijven ongewijzigd.

2026-08-24

Documentconversie negeert ingesloten factuur-XML nu standaard. Stel use_embedded_xml=true alleen in als de integratie de ingesloten XML expliciet als primaire extractiebron accepteert. E-mailimport negeert ingesloten factuur-XML altijd. Een wijziging van use_embedded_xml wijzigt de idempotency-hash van de request; gebruik een nieuwe Idempotency-Key wanneer u deze optie wijzigt.

2026-08-20

Als verkoperstamgegevens een veld vullen, blijven resterende extractievlaggen zichtbaar maar blokkeren ze strikte e-mailimport of de External API niet meer. Koper, regels, btw, levering, vervaldatum, korting, omschrijving, niet-ingevulde profielvelden en ongeldige profielwaarden blijven blokkerend.

2026-08-07

Enterprise werd direct te koop voor EUR 50/maand of EUR 420/jaar. Enterprise bevat 100 gedeelde E-mail/API-conversies per maand; extra conversies gebruiken prepaid credits van EUR 0,40–0,50. API-sleutels vereisen geen handmatige goedkeuring meer.

2026-07-29

De actuele foutencatalogus en retries per code zijn gepubliceerd. Een status 500 is niet automatisch retrybaar; controleer code, details.code en details.retryable. Beide details-vormen voor 402 INSUFFICIENT_API_CREDITS en de verschillende herstelpaden voor 409-idempotency zijn gedocumenteerd. Bewijsheaders van het validatierapport, 24 uur bewaring, tasktimeouts en rate limits per endpoint zijn gepubliceerd. De gesloten format/profieltabel is gepubliceerd en de uitleg voor downloaden, METHOD_NOT_ALLOWED en PROFILE_MISMATCH is gecorrigeerd.

2026-07-28

API-conversie wijst een bevestigde bron met meerdere facturen nu definitief af met MULTIPLE_INVOICES_IN_DOCUMENT. Splits bevestigde multi-factuurbestanden. Een onzeker signaal retourneert in plaats daarvan 422 VALIDATION_FAILED voor controle.

2026-07-26

Ingeschakelde verkoperstamdata vervangt nu overeenkomende geëxtraheerde verkopers- of betaalwaarden. Ontbrekende profielvelden laten geëxtraheerde waarden ongewijzigd; verschillen blijven niet-blokkerende controlewaarschuwingen.

2026-07-25

Vervangen door 2026-07-26: verkoperstamdata vervangt nu overeenkomende geëxtraheerde waarden in plaats van alleen ontbrekende waarden aan te vullen.

2026-07-10

Documentatie-inhaalslag; geen wijziging in runtimegedrag. De foutcatalogus documenteert nu eerder ongedocumenteerde runtime-foutcodes, waaronder API_CREDIT_SERVICE_UNAVAILABLE, TASK_NOT_FOUND, INVALID_CLIENT_METADATA, INVALID_SELLER_MASTER_DATA, PROFILE_MISMATCH, ZUGFERD_SOURCE_PDF_REQUIRED, VALIDATION_REPORT_NOT_FOUND, VALIDATION_REPORT_FAILED, INVALID_QUERY_PARAMETER en METHOD_NOT_ALLOWED. Clients die foutresponses via het machineleesbare code-veld verwerken, hoeven niets te wijzigen; clients die op een vaste lijst codes schakelen, moeten de nieuw gedocumenteerde waarden toevoegen. Changelogdatums gecorrigeerd: ondersteuning voor DOCX/TXT-bronnen verscheen op 2026-06-30, niet op 2026-07-06.

2026-07-06

Payloads van voltooide taken kunnen aanvullende _processing_warnings- en _validation_warnings-items met SOURCE_CONTEXT_*-regel-ID’s bevatten wanneer bronbewijs vóór extractie ontbrak, twijfelachtig of afgekapt was. Behandel SOURCE_CONTEXT_*-items als beoordelingssignalen voor klantzijdige uitzonderingsafhandeling; strikte artefactdownloads blijven onderworpen aan validatiebewijs en artefactcontroles.

2026-07-03

Strikte ZUGFeRD-voorwaardefouten (ontbrekende verplichte velden voor hybride generatie) falen nu als 422 VALIDATION_FAILED met de blokkerende regel-ID’s in plaats van een herhaalbare 503; leid deze naar een datacorrectieflow, niet naar een retry-lus. Voor XML-only formaten (XRECHNUNG, EN16931, UBL, CII) is de PDF-weergave nu een best-effort gemaksartefact: download=xml blijft leidend en beschikbaar op voltooide taken, terwijl download=pdf onbeschikbaar kan zijn als de weergave na de XML-uitgifte mislukte. Conversies met onopgeloste blokkerende bronconflicten falen nu als 422 VALIDATION_FAILED met blocking_source_conflict-items in plaats van een artefact uit te geven.

2026-06-30

POST /api/v1/invoices:convert accepteert nu PDF-, DOCX- en TXT-factuurbrondocumenten in het file-veld. Oude DOC-, RTF-, afbeeldings- en andere niet-ondersteunde bronbestanden worden geweigerd voordat de conversie start. ZUGFeRD/Factur-X hybride PDF-downloads vereisen nog steeds een PDF-bronupload; gebruik XML-downloads voor DOCX/TXT-bronconversies. Optionele include_validation_report_html=true toegevoegd op GET /api/v1/tasks/{task_id} om het opgeschoonde HTML-validatierapport inline te leveren wanneer beschikbaar. Conversie-uploads accepteren nu op beide endpoints optionele use_seller_master_data- en seller_master_data-velden, zodat goedgekeurde tenants opgeslagen of request-gebonden verkopersstamgegevens kunnen inschakelen.

2026-06-29

GET /api/v1/tasks/{task_id}/validation-report?download=html|xml toegevoegd om het validatierapport op te halen dat aan het huidige strikte resultaatartefactbewijs is gekoppeld. Validatierapportresponses tonen task-ID, artefact-SHA-256, validatiebewijs-ID, rapportbewijs-ID, rapportcontenttype en correlatie-ID-headers.

2026-06-10

Ingestuurde factuurdata is nu de databron voor hybride ZUGFeRD-uitvoer; deterministische opschoning en belastingnormalisatie blijven gelden. Tasks falen wanneer voortgang stopt of bij de limiet van 15 minuten, niet na een vaste timeout van vijf minuten.

2026-06-09

Opslagfouten in gebruiksregistratie blokkeren geen gereed gevalideerd antwoord en kosten geen extra credit; mislukte events gaan naar reconciliatie.

2026-06-02

External API-toegang is nu gedocumenteerd als goedgekeurde toegang in plaats van onbeperkte sleutelaanmaak. Verduidelijkt dat er geen formele SLA, servicecredit of contractuele boete geldt tenzij afgesproken in een order form. format is nu verplicht op beide conversie-endpoints; ontbrekende waarden retourneren 400 FORMAT_REQUIRED en niet-ondersteunde waarden 422 INVALID_FORMAT. download is nu verplicht op task-resultrequests; ontbrekende waarden retourneren 400 DOWNLOAD_FORMAT_REQUIRED en niet-ondersteunde waarden 400 INVALID_DOWNLOAD_FORMAT. Conversie-uploads accepteren nu client_reference/external_invoice_id en source_system voor klantzijdige reconciliatie. Geaccepteerde conversie- en taskstatusresponses bevatten nu status_url, primary_result_format, primary_result_url en meegestuurde reconciliatievelden.

2026-06-01

Gestructureerde conversie accepteert nu alle publieke outputformaten: XRECHNUNG, ZUGFeRD, EN16931, UBL en CII. Gestructureerde conversie accepteert nu herhaalbare data_file-onderdelen plus de aliassen data_files en data_files[] voor gesplitste ERP-exports. Gestructureerde multi-file bundles moeten precies één factuur beschrijven en falen vroeg bij conflicterende of ontbrekende bundle-factuur-ID’s. Verduidelijkt dat meerdere factuurdocumenten als afzonderlijke conversietasks moeten worden ingestuurd, elk met een eigen idempotency key.

2026-05-27

POST /api/v1/invoices:convert-structured toegevoegd voor conversie vanuit gestructureerde data met drager-PDF en CSV/JSON/XML/XLSX/TXT over ondersteunde outputformaten. Gedocumenteerd dat gestructureerde data op dit endpoint de enige semantische bron is; de PDF wordt gebruikt voor hybride insluiting. OpenAPI- en Postman-artefacten bijgewerkt voor gestructureerde conversie.

2026-05-26

Strikte XML- en hybride PDF-artefacten kregen interne pariteitsdata; gebruik result_artifacts voor gereedheid en validatiestatus. De gedocumenteerde productie-base-URL werd https://www.invoice-converter.com/api/v1.

2026-05-19

GET /api/v1/tasks/{task_id}/result haalt alleen op; de aanroep genereert, repareert of valideert geen bestanden. Strikte tasks eindigen pas nadat een gevalideerd artefact is opgeslagen; ontbrekend actueel bewijs faalt gesloten. External API-conversie staat vast op strikte uitgifte, zonder concept of waarschuwingsoverbrugging. Taskstatus kreeg result_artifacts-diagnostiek en gedocumenteerde delivery_channel-waarden.

2026-05-08

Prepaid External API-credits toegevoegd voor niet-Enterprise-tenants. 402 INSUFFICIENT_API_CREDITS gedocumenteerd voor goedgekeurde tenants zonder Enterprise-facturering per order form of prepaid credits. Bevestigd dat idempotente replays geen extra API-credits verbruiken. Verduidelijkt dat External API V1 modelrouting server-side beheert, terwijl profiel- en leveringscontext door de aanroeper worden bepaald.

2026-03-28

Taskstatus kreeg gereedheidsdiagnostiek voor XML/PDF-artefacten. Strikte resultaatdownloads leveren pas bestanden nadat servercontroles van het artefact slagen.

2026-03-26

Geslaagde resultaatdownloads kregen server-side validatiebewijs voor het geretourneerde artefact. Ontbrekende validatie- of bewijsafhankelijkheden retourneren 503 AUTHORITATIVE_VALIDATION_UNAVAILABLE. Downloads uit de cache worden alleen hergebruikt zolang hun opgeslagen validatiebewijs actueel blijft.

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.

Leveringsartefacten

Download machineleesbare integratieartefacten voor de Developer API.

Postman en OpenAPI gebruiken

  • Importeer de Postman-collectie en stel de collectievariabelen base_url, api_key en idempotency_key in.
  • 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-ID vast in logs zodat support requests end-to-end kan traceren.

Stuur technische feedback

Deel implementatievragen, risico’s en benodigde contractwijzigingen met ons team.