EU E-Invoice API

Severity

string · enum
Enum values:
fatal
error
warning
info

fatal and error make a document invalid.

Finding

severity
​Severity · enum · required

fatal and error make a document invalid.

Enum values:
fatal
error
warning
info
ruleId
​string · required

Rule id of the rule set (e.g. BR-CO-15, BR-DE-15) or of this service (e.g. PDFA-6.2.4.3-2, XMP-CONFORMANCE-LEVEL, CALC-LINE-NET).

message
​string · required

Official rule text, or this service's explanation of what to fix.

xpath
​string

Location in the invoice XML (prefix notation).

source
​string

Layer that raised it: xsd:, schematron:, pdfa:veraPDF, pdf, xmp, xml, profile, calc, parse.

RulesetRef

id
​string · required
version
​string · required
release
​string
preview
​boolean

Present (true) only for an upcoming rule set used by /v1/preview/validate.

effectiveFrom
​string · date

Date from which the rule set is mandatory, if known.

Summary

fatal
​integer · min: 0 · required
error
​integer · min: 0 · required
warning
​integer · min: 0 · required
info
​integer · min: 0 · required

ValidationResponse

requestId
​string · required
valid
​boolean · required
​Summary · required
​Finding[] · required
format
​string · enum
Enum values:
xrechnung
en16931
zugferd
peppol-bis
ksef
fr-ctc
cius-ro
hr-cius
container
​string · enum
Enum values:
XML
PDF
syntax
​string · enum
Enum values:
CII
UBL
KSEF
FATTURAPA
profile
​string
guidelineId
​string

Specification 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).

attachmentName
​string

Name of the embedded invoice XML (PDFs only).

​RulesetRef[]

Difference

field
​string · required
rule
​string · required
lineId
​string
category
​string
declared
​string
computed
​string

Calculation

consistent
​boolean · required
​Difference[] · required

ParseResponse

requestId
​string · required
valid
​boolean · required
​Summary · required
​Finding[] · required
format
​string · enum
Enum values:
xrechnung
en16931
zugferd
peppol-bis
ksef
fr-ctc
cius-ro
hr-cius
container
​string · enum
Enum values:
XML
PDF
syntax
​string · enum
Enum values:
CII
UBL
KSEF
FATTURAPA
profile
​string
guidelineId
​string
attachmentName
​string
​RulesetRef[]

Syntax-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.

Example: {"invoiceNumber":"RE-2026-0042","issueDate":"2026-10-18","typeCode":"380","currency":"EUR","dueDate":"2026-11-17","buyerReference":"04011000-12345-34","seller":{"name":"Muster Software GmbH","vatId":"DE123456789","electronicAddress":{"value":"rechnung@muster-software.example","schemeId":"EM"},"address":{"line1":"Hauptstraße 1","city":"Berlin","postCode":"10115","countryCode":"DE"},"contact":{"name":"Erika Beispiel","phone":"+49 30 1234567","email":"buchhaltung@muster-software.example"}},"buyer":{"name":"Beispielamt der Stadt Musterstadt","electronicAddress":{"value":"04011000-12345-34","schemeId":"0204"},"address":{"line1":"Rathausplatz 5","city":"Musterstadt","postCode":"12345","countryCode":"DE"}},"payment":{"meansCode":"58","creditTransfers":[{"accountId":"DE02120300000000202051","accountName":"Muster Software GmbH"}],"terms":"Zahlbar innerhalb von 30 Tagen ohne Abzug."},"lines":[{"id":"1","quantity":"10","unitCode":"HUR","netAmount":"1000.00","price":{"netPrice":"100.00"},"vat":{"categoryCode":"S","rate":"19"},"item":{"name":"Beratungsleistung"}}],"vatBreakdown":[{"categoryCode":"S","rate":"19","taxableAmount":"1000.00","taxAmount":"190.00"}],"totals":{"lineNetTotal":"1000.00","taxExclusiveAmount":"1000.00","vatTotal":"190.00","taxInclusiveAmount":"1190.00","amountDue":"1190.00"}}
​Calculation

Problem

RFC 9457 problem details, plus `requestId` and type-specific members.
type
​string · uri · required
title
​string · required
status
​integer · required
detail
​string · required
instance
​string
requestId
​string
available
​string[]

unknown-ruleset, preview-ruleset - rule-set versions that can be pinned on this endpoint.

formats
​string[]

invalid-format - accepted values.

​object[]

schema-violation / invalid-for-format - one entry per offending value.

​Finding[]

generated-invoice-invalid - findings of the generated document.

​RulesetRef[]
maxBytes
​integer
retryAfterSeconds
​integer
timeoutSeconds
​integer

Health

status
​string · enum · required
Enum values:
UP
version
​string · required
​object[] · required

Formats

​object[] · required

InvoiceDate

string · date
Example: 2026-10-18

InvoiceCurrencyCode

string · pattern: ^[A-Z]{3}$

ISO 4217.

Example: EUR

InvoiceCountryCode

string · pattern: ^[A-Z]{2}$

ISO 3166-1 alpha-2.

Example: DE

InvoiceVatCategoryCode

string

UNTDID 5305 subset: S, Z, E, AE, K, G, O, L, M.

Example: S

InvoiceAmount

string · pattern: ^-?[0-9]{1,17}(\.[0-…

Monetary amount as a decimal string, at most 2 fraction digits (EN 16931).

Example: 1190.00

InvoiceUnitPrice

string · pattern: ^[0-9]{1,17}(\.[0-9]…

Unit price as a decimal string; non-negative. EN 16931 does not limit the fraction digits (up to 20 accepted).

Example: 12.3456

InvoiceQuantity

string · pattern: ^-?[0-9]{1,17}(\.[0-…

Quantity as a decimal string. EN 16931 does not limit the fraction digits (up to 20 accepted).

Example: 3

InvoicePercentage

string · pattern: ^[0-9]{1,3}(\.[0-9]{…

Percentage as a decimal string, e.g. "19" or "7.00".

Example: 19.00

InvoiceIdentifier

value
​string · minLength: 1 · required
schemeId
​string

Scheme identifier (ISO 6523 ICD for party IDs, EAS for electronic addresses).

InvoiceAddress

countryCode
​InvoiceCountryCode · pattern: ^[A-Z]{2}$ · required

ISO 3166-1 alpha-2.

Example: DE
line1
​string
line2
​string
line3
​string
city
​string
postCode
​string
countrySubdivision
​string

InvoiceContact

name
​string
phone
​string
email
​string

InvoicePeriod

start
​InvoiceDate · date
end
​InvoiceDate · date

InvoiceSeller

name
​string · minLength: 1 · required
tradingName
​string
​InvoiceIdentifier[]
​InvoiceIdentifier
vatId
​string
taxRegistrationId
​string

Local tax number (German Steuernummer).

additionalLegalInfo
​string
​InvoiceIdentifier
​InvoiceAddress
​InvoiceContact
​InvoiceOperator

The person who issued the invoice for the seller. Not an EN 16931 term: UBL cac:AccountingSupplierParty/cac:SellerContact, read and written only by the national formats that require it (Croatia: operator label HR-BT-4 and operator OIB HR-BT-5, both mandatory in hr-cius). Not the seller contact (BG-6).

InvoiceOperator

The person who issued the invoice for the seller. Not an EN 16931 term: UBL cac:AccountingSupplierParty/cac:SellerContact, read and written only by the national formats that require it (Croatia: operator label HR-BT-4 and operator OIB HR-BT-5, both mandatory in hr-cius). Not the seller contact (BG-6).
name
​string

Operator label or name (Croatia HR-BT-4).

id
​string

Operator identifier (Croatia: the operator's OIB, HR-BT-5).

InvoiceBuyer

name
​string · minLength: 1 · required
tradingName
​string
​InvoiceIdentifier
​InvoiceIdentifier
vatId
​string
​InvoiceIdentifier
​InvoiceAddress
​InvoiceContact

InvoiceDocumentAllowanceCharge

amount
​InvoiceAmount · pattern: ^-?[0-9]{1,17}(\.[0-… · required

Monetary amount as a decimal string, at most 2 fraction digits (EN 16931).

Example: 1190.00
vatCategoryCode
​InvoiceVatCategoryCode · required

UNTDID 5305 subset: S, Z, E, AE, K, G, O, L, M.

Example: S
baseAmount
​InvoiceAmount · pattern: ^-?[0-9]{1,17}(\.[0-…

Monetary amount as a decimal string, at most 2 fraction digits (EN 16931).

Example: 1190.00
percentage
​InvoicePercentage · pattern: ^[0-9]{1,3}(\.[0-9]{…

Percentage as a decimal string, e.g. "19" or "7.00".

Example: 19.00
vatRate
​InvoicePercentage · pattern: ^[0-9]{1,3}(\.[0-9]{…

Percentage as a decimal string, e.g. "19" or "7.00".

Example: 19.00
reason
​string
reasonCode
​string

UNTDID 5189 (allowances) or 7161 (charges).

InvoiceLineAllowanceCharge

amount
​InvoiceAmount · pattern: ^-?[0-9]{1,17}(\.[0-… · required

Monetary amount as a decimal string, at most 2 fraction digits (EN 16931).

Example: 1190.00
baseAmount
​InvoiceAmount · pattern: ^-?[0-9]{1,17}(\.[0-…

Monetary amount as a decimal string, at most 2 fraction digits (EN 16931).

Example: 1190.00
percentage
​InvoicePercentage · pattern: ^[0-9]{1,3}(\.[0-9]{…

Percentage as a decimal string, e.g. "19" or "7.00".

Example: 19.00
reason
​string
reasonCode
​string

InvoiceInvoiceLine

id
​string · minLength: 1 · required
quantity
​InvoiceQuantity · pattern: ^-?[0-9]{1,17}(\.[0-… · required

Quantity as a decimal string. EN 16931 does not limit the fraction digits (up to 20 accepted).

Example: 3
unitCode
​string · required

UN/ECE Recommendation 20/21 unit code, e.g. C62 (piece), HUR (hour), KGM.

Example: C62
netAmount
​InvoiceAmount · pattern: ^-?[0-9]{1,17}(\.[0-… · required

Monetary amount as a decimal string, at most 2 fraction digits (EN 16931).

Example: 1190.00
​object · required
​object · required
​object · required
note
​string
​InvoiceIdentifier
orderLineReference
​string
buyerAccountingReference
​string
​InvoicePeriod

NormalizedInvoice

Syntax-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.
invoiceNumber
​string · minLength: 1 · required
issueDate
​InvoiceDate · date · required
typeCode
​string · pattern: ^[0-9]{1,3}$ · required

UNTDID 1001 code, e.g. 380 commercial invoice, 381 credit note, 384 corrected invoice, 389 self-billed invoice, 326 partial invoice.

Example: 380
currency
​InvoiceCurrencyCode · pattern: ^[A-Z]{3}$ · required

ISO 4217.

Example: EUR
​InvoiceSeller · required
​InvoiceBuyer · required
​object · required
issueTime
​string · pattern: ^[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).

Example: 12:00:00
vatAccountingCurrency
​InvoiceCurrencyCode · pattern: ^[A-Z]{3}$

ISO 4217.

Example: EUR
taxPointDate
​InvoiceDate · date
vatPointDateCode
​string

UNTDID 2005 code (3, 35, 432).

dueDate
​InvoiceDate · date
buyerReference
​string

For XRechnung B2G this carries the Leitweg-ID.

projectReference
​string
contractReference
​string
purchaseOrderReference
​string
salesOrderReference
​string
receivingAdviceReference
​string
despatchAdviceReference
​string
tenderOrLotReference
​string
​InvoiceIdentifier
buyerAccountingReference
​string
​object

Process 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.

​object[]
​object[]
​object
​object
​object
​InvoicePeriod
​object
​object[]
​object[]
​InvoiceInvoiceLine[] · minItems: 1

Absent for profiles without line items (MINIMUM, BASIC WL).