Een factuur aanleveren die de eindklant via een verzendkanaal heeft ontvangen
- In de sandbox
Sinds 0.35.0 (17 okt. 2026). De body is de XML precies zoals het verzendkanaal hem heeft bezorgd (UBL, CII of FA(3)); er wordt niets
gewijzigd en niets verzonden. Het bestand wordt eerst opgeslagen, verzegeld onder de gegevenssleutel van de eindklant, omdat het wettelijk
al ontvangen is; daarna controleren de eigen validators van het verzendkanaal het, zoals bij een pass-through-verzending, en het resultaat komt aan
als statusbericht (received, dan validated of validation_failed, met direction: in) op de webhook van de eindklant en
op GET /received/{id}/events. Een bestand dat de regels niet haalt, wordt bewaard en staat op validation_failed met de fouten; het
wordt nooit weggegooid. Een bestand dat geen factuur is die bewaard moet worden, wordt met 422 geweigerd en er wordt niets opgeslagen, zoals bij
POST /invoices/xml: een DOCTYPE (EI-XML-DTD, nooit verwerkt), XML die niet welgevormd is (EI-XML-SYNTAX), of een
document dat geen factuur is die het verzendkanaal kent (EI-XML-TYPE). Een controle die niet kon draaien (een validator is niet bereikbaar) wordt
opnieuw geprobeerd, en na de laatste poging komt de factuur op de opvolgingslijst en blijft received. Een eindklant levert ten hoogste
120 documenten per minuut en 2.000 per dag aan, welke sleutel hij ook gebruikt (429, niet bewaard onder de Idempotency-Key). Het bestand wordt
teruggegeven als download (Content-Disposition: attachment).
Eén document van het verzendkanaal is voor de eindklant één ontvangen factuur: op rail_id als die is opgegeven, op de SHA-256 van het bestand
als dat niet zo is. Hetzelfde document opnieuw geeft 202 met duplicate_of; dezelfde rail_id met andere bytes
geeft 409 received-id-conflict, en er wordt niets opgeslagen. Ontvangen facturen worden gescheiden gehouden van de facturen die de
eindklant verzendt: ze staan niet in GET /invoices, de reeks, de metrics of het maandrapport, en ze blokkeren nooit
de verzending van hetzelfde bestand. Een ontvangen factuur wordt verwijderd met de bewaartermijn van de eindklant zodra er niets meer openstaat (de
controle is afgerond, of een persoon heeft de opvolgingsrij afgehandeld), en staat in de export van de eindklant onder received/. De scope submit;
een sleutel van een eindklant werkt alleen voor die eigen eindklant.
apiKeyAuthorizationBearer <token>Stuur uw sleutel als bearer-token: Authorization: Bearer <your-api-key>. De health-aanroep is de enige aanroep die geen sleutel vereist.
route*stringHet verzendkanaal waarlangs het document is binnengekomen.
"PEPPOL""PL-KSEF""RO-EFACTURA""FR-PA""DE-XRECHNUNG"rail_id?stringDe eigen id van het verzendkanaal voor het document (de document-id van het toegangspunt, het KSeF-nummer, de download-id van ANAF). 1 tot 200 letters, cijfers en . _ : / @ + = # -.
^[A-Za-z0-9._:/@+=#-]{1,200}$client?stringDe eindklant die het heeft ontvangen. De sleutel van de beheerder noemt hem (weggelaten: de eigen local-eindklant van de beheerder); een sleutel van een eindklant mag hem weglaten of de eigen eindklant noemen, en elke andere geeft 403.
^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$Idempotency-Key*stringEen unieke sleutel per logisch verzoek (een UUID is prima). Een sleutel die met erp: begint (de erp:{connector}:{scope}:{entity}:{id} van een ERP-transportrecept, met de sleutel van de beheerder of van een eindklant) heeft geen venster; hij wordt met zijn eerste antwoord bewaard totdat de eindklant, of de factuur die hij heeft gemaakt, wordt verwijderd, zodat een gewijzigd document dat weken later opnieuw wordt aangeleverd nog steeds 409 idempotency-conflict krijgt. Zo'n sleutel wordt alleen aangenomen bij een ERP-connectorexport (POST /invoices met een connector die deze build leest, een export die een niet-leeg JSON-object is, en met de sleutel van de beheerder client); bij elk ander verzoek, een canoniek document, POST /invoices/xml of een annulering, geeft hij 400 idempotency-key-not-allowed en wordt niets bewaard, en een export met een getal van meer dan 40 tekens krijgt de 422 EI-SCHEMA die hij onder elke andere sleutel krijgt, eveneens onder geen enkele sleutel bewaard. Wanneer de beheerder een dead letter vrijgeeft (annuleert), verdwijnen de eerdere antwoorden over die factuur mee, die van de indiening en, sinds 0.35.0, die van een eerder geweigerde annulering, zodat een nieuwe poging van die annulering opnieuw loopt en 200 geeft met de factuur geannuleerd. Sinds 0.32.0 worden een 5xx-antwoord en een 422 connector-settings-missing niet bewaard, zodat hetzelfde verzoek met dezelfde sleutel opnieuw kan worden verzonden. Met de sleutel van de beheerder mag hij niet beginnen met client: (400), de vorm waaronder sleutels van eindklanten worden bewaard.
8 <= length <= 100body*stringapplication/xmlOpgeslagen, en in de wachtrij gezet voor de controle van het verzendkanaal tenzij die al is mislukt; of al aanwezig (duplicate_of).
application/json- response
Sinds 0.35.0. Een factuur die de eindklant via een verzendkanaal heeft ontvangen, zoals POST /received haar aannam. Net als Invoice
bevat ze geen factuurinhoud: geen verkoper, koper of bedragen.
id*string^rcv_[0-9a-f]{24}$invoice_ref*stringHet eigen factuurnummer van het bestand (BT-1; FA(3) Fa/P_2), anders de rail_id, anders de id.
invoice_number?stringroute*RouteHet verzendkanaal van het land. Dezelfde waarden als country_route in statusberichten.
"PEPPOL""PL-KSEF""RO-EFACTURA""FR-PA""DE-XRECHNUNG"client*stringenvironment*string"sandbox""production"state*string"received""validated""validation_failed"direction*"in""in"rail_id?stringDe eigen id van het verzendkanaal voor het document, zoals opgegeven bij POST /received.
document_sha256*string^[a-f0-9]{64}$duplicate_of?stringAlleen bij POST /received, wanneer het document al voor de eindklant en het verzendkanaal aanwezig was.
links?errors?array<>documents?array<>created_at*stringdate-timeupdated_at*stringdate-timecurl -X POST "https://example.com/received?route=PEPPOL" \ -H "Authorization: Bearer <your-api-key>" \ -H "Idempotency-Key: order-2026-0001" \ -H "Content-Type: application/xml" \ -d 'string'{ "id": "string", "invoice_ref": "string", "invoice_number": "string", "route": "PEPPOL", "client": "string", "environment": "sandbox", "state": "received", "direction": "in", "rail_id": "string", "document_sha256": "string", "duplicate_of": "string", "links": { "self": "string", "events": "string" }, "errors": [ { "code": "string" } ], "documents": [ { "kind": "received-xml", "sha256": "string", "href": "string" } ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z"}Ontvangen facturen weergeven en doorzoeken GET
Sinds 0.35.0. Dezelfde parameters en hetzelfde antwoord als GET /invoices, alleen voor ontvangen facturen; state is received, validated of validation_failed. Een sleutel van een eindklant ziet die van de eigen eindklant; de beheerder die van elke eindklant, of van één eindklant met client.
Een fout- of redencode opzoeken GET
Geeft het cataloguspunt voor een regel-ID, een foutcode van het verzendkanaal of een Franse redencode (ID's en aliassen).