Documents
Validate, parse and generate e-invoices.
Validate an e-invoice (XRechnung, EN 16931, ZUGFeRD / Factur-X, French rules, Peppol BIS, CIUS-RO, KSeF, FatturaPA)
The format is detected from the content: CII or UBL XML, KSeF FA(3) or FatturaPA XML, or a PDF with an embedded
factur-x.xml. For a seller in France the French rules (BR-FR) run in addition. For PDFs,
PDF/A-3 conformance (veraPDF), the attachment and the Factur-X XMP metadata are checked as well. Send the
document as the raw body or as multipart with a part named file.
query Parameters
rulesetPin a rule-set version instead of the default, as <id>@<version> (see GET /v1/formats). Repeat the parameter or separate values with commas. Preview versions (status preview) can only be pinned on /v1/preview/validate; elsewhere they give 400 preview-ruleset.
Headers
AuthorizationThe Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.
Validate an e-invoice (XRechnung, EN 16931, ZUGFeRD / Factur-X, French rules, Peppol BIS, CIUS-RO, KSeF, FatturaPA) › Request Body
Validate an e-invoice (XRechnung, EN 16931, ZUGFeRD / Factur-X, French rules, Peppol BIS, CIUS-RO, KSeF, FatturaPA) › Responses
Validation result (also for invalid documents).
formatcontainersyntaxprofileguidelineIdSpecification identifier (BT-24) found in the document; for KSeF the form code (KodFormularza/@kodSystemowy, e.g. FA (3)); for FatturaPA the versione attribute (FPR12, FPA12).
attachmentNameName of the embedded invoice XML (PDFs only).
Validate against the upcoming rule sets before they become mandatory (paid plans)
Like /v1/validate, but where the rule-set owner (KoSIT, FeRD) has published an upcoming release that is not
in force yet, the document is validated against that release instead. Use it to find out early whether your
invoices will still pass. Rule sets used this way are marked preview: true in rulesets, with the date from
which they become mandatory (effectiveFrom) when it is known. Documents that no upcoming release covers are
validated against the rules in force and get an info finding PREVIEW-NONE; this is also the case while no
upcoming release has been published (GET /v1/formats lists them with status: preview).
ruleset pins may name preview and current versions. The verdict of /v1/validate is never affected.
query Parameters
rulesetPin a rule-set version instead of the default, as <id>@<version> (see GET /v1/formats). Repeat the parameter or separate values with commas. Preview versions (status preview) can only be pinned on /v1/preview/validate; elsewhere they give 400 preview-ruleset.
Headers
AuthorizationThe Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.
Validate against the upcoming rule sets before they become mandatory (paid plans) › Request Body
Validate against the upcoming rule sets before they become mandatory (paid plans) › Responses
Validation result against the upcoming rule sets (also for invalid documents).
formatcontainersyntaxprofileguidelineIdSpecification identifier (BT-24) found in the document; for KSeF the form code (KodFormularza/@kodSystemowy, e.g. FA (3)); for FatturaPA the versione attribute (FPR12, FPA12).
attachmentNameName of the embedded invoice XML (PDFs only).
Parse an invoice into normalized JSON, with validation and recomputed totals
Validates like /v1/validate and returns the invoice in the normalized EN 16931 model
(schema) plus calculation. Totals are recomputed
server-side: differences in BT-106…BT-115 and the VAT breakdown are listed exactly; line net amounts and VAT
amounts per category are additionally checked with a tolerance of 0.01 (CALC-* warnings). Content outside
EN 16931 (for example ZUGFeRD EXTENDED) is not mapped and listed in a PARSE-UNMAPPED finding.
query Parameters
rulesetPin a rule-set version instead of the default, as <id>@<version> (see GET /v1/formats). Repeat the parameter or separate values with commas. Preview versions (status preview) can only be pinned on /v1/preview/validate; elsewhere they give 400 preview-ruleset.
Headers
AuthorizationThe Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.
Parse an invoice into normalized JSON, with validation and recomputed totals › Responses
Parse result. invoice is absent if the document cannot be read as CII or UBL.
formatcontainersyntaxprofileguidelineIdattachmentNameSyntax-neutral representation of an EN 16931 invoice or credit note. Output of POST /v1/parse and input of POST /v1/generate. Each property carries its EN 16931 business term in 'x-bt'. Code-list values are validated by the rule sets, not by this schema.
Generate XRechnung, EN 16931, ZUGFeRD / Factur-X, CIUS-RO, Peppol BIS, KSeF FA(3) or FatturaPA from normalized JSON
Input is the normalized invoice (the same schema /v1/parse returns). BT-24 is set from format; BT-23
(context.businessProcessType) is taken from the input when given. en16931-cii and en16931-ubl write plain
EN 16931 (BT-24 urn:cen.eu:en16931:2017), e.g. for France, where BT-23 must be a billing framework code such
as S1 and the French rules apply to sellers in France. hr-cius-ubl writes the Croatian eRačun: BT-23 must be
P1-P12 or P99:..., and issueTime and seller.operator (name and OIB) are required by the Croatian rules;
VAT categories S (25, 13, 5 %), Z, E, AE, K, G and O are supported. Every generated document is validated before it is
returned; if it is not valid, the response is 422 with the
findings and no document. For PDF formats a neutral layout is rendered, or send multipart with your own
PDF/A-1, -2 or -3 in the part pdf and the XML is embedded into it.
query Parameters
formatHeaders
AuthorizationThe Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.
Generate XRechnung, EN 16931, ZUGFeRD / Factur-X, CIUS-RO, Peppol BIS, KSeF FA(3) or FatturaPA from normalized JSON › Request Body
invoiceNumberissueDatetypeCode^[0-9]{1,3}$ · requiredUNTDID 1001 code, e.g. 380 commercial invoice, 381 credit note, 384 corrected invoice, 389 self-billed invoice, 326 partial invoice.
currency^[A-Z]{3}$ · requiredISO 4217.
issueTime^[0-9]{2}:[0-9]{2}:[…Issue time hh:mm:ss. Not an EN 16931 term: read from and written to UBL cbc:IssueTime only by the national formats that require it (Croatia: HR-BT-2, mandatory in hr-cius).
vatAccountingCurrency^[A-Z]{3}$ISO 4217.
taxPointDatevatPointDateCodeUNTDID 2005 code (3, 35, 432).
dueDatebuyerReferenceFor XRechnung B2G this carries the Leitweg-ID.
projectReferencecontractReferencepurchaseOrderReferencesalesOrderReferencereceivingAdviceReferencedespatchAdviceReferencetenderOrLotReferencebuyerAccountingReferenceProcess context detected by /parse. On /generate, BT-24 (specificationIdentifier) is set from the 'format' parameter (a conflicting value is rejected with 400); BT-23 (businessProcessType) is taken from the input when given, e.g. the French billing framework code such as S1 or B1 (BR-FR-08), and otherwise defaults per format.
Absent for profiles without line items (MINIMUM, BASIC WL).
Generate XRechnung, EN 16931, ZUGFeRD / Factur-X, CIUS-RO, Peppol BIS, KSeF FA(3) or FatturaPA from normalized JSON › Responses
The generated, validated document.