How to Map Stripe Invoice JSON to Germany's EN 16931 E-Invoice Standard
Germany requires domestic B2B businesses to issue structured e-invoices compliant with the EN 16931 standard, with phased deadlines beginning January 2027 for high-turnover issuers and full rollout by 2028. Stripe's invoicing system does not natively produce legally compliant German e-invoice files, so developers must build a webhook that maps Stripe's Invoice JSON fields to the required CEN business terms (BT-*). The mapping targets two supported syntaxes: UBL 2.1 under XRechnung 3.0.2 and CII XML under ZUGFeRD 2.5.2/Factur-X 1.09.2, both conforming to the EN 16931 profile. Notably, since January 2025, all German businesses — including small-scale Kleinunternehmer — are already legally obligated to be able to receive e-invoices, with no exceptions. Key implementation details include dividing Stripe's integer cent amounts by 100 using decimal arithmetic and correctly setting identifiers such as BT-24 and BT-23 to avoid validation failures under KoSIT's XRechnung rules.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in