Skip to main content
Selected platforms can ask Bahn to invoice an end business. Your platform keeps order ownership and pricing. The named business pays Bahn. Bahn staff must enable this arrangement for your platform account. Customers cannot enable it themselves. Contact Bahn support to agree the setup.

Choose the billing arrangement

Include invoice_recipient only when Bahn should invoice the end business. Without it, normal account billing applies, including on enabled platforms. Omit ordered_for, which assigns the order to another Bahn customer. Read Platform ordering for that arrangement. Naming an invoice recipient does not grant order access. Recipients must be VAT-registered businesses established in EU countries outside Finland. Their VAT number and invoice address must identify the same country. Bahn validates VAT registration through VIES in production.

Create the order

Use your ordering-channel credential. Add this object to Create an order. The reference defines every field and includes a complete Enabled platform: invoice the end business request. For a price check, omit both ordered_for and invoice_recipient to use the platform’s pricing.
business_id is the national company-registration identifier. vat_id is the separate EU VAT number, including its country prefix. German businesses supply their USt-IdNr. The example VAT number is for sandbox testing. Supply the registered company name, responsible contact, postal address, and invoice email. Optional e_invoicing supplies both the Finvoice address and operator code. Bahn creates a separate English invoice for each order, with zero VAT under EU service reverse charge.

Read billing progress

Creation and Get an order return invoicing with the accepted recipient and current progress. Normal account billing returns invoicing: null. invoice_exported_at is null until an export is confirmed. language is EN and vat_treatment is eu_reverse_charge. Accepted details are fixed for that order. Later orders do not redirect earlier invoices. Contact Bahn for corrections.

Recover from a failure

Customer setup or export failure never makes the platform the payer. Do not remove invoice_recipient or use a new key to recover an unknown result. Read Errors and retries for general recovery rules.

Test the arrangement

The sandbox enforces the same permissions and request rules. VAT checks are simulated: valid syntax passes, except all-zero numbers such as DE000000000. Test with and without invoice_recipient, invalid registration, and a retry with the original key. Sandbox billing data stays separate. Simulated VAT checks do not prove production registration.