E-invoicing in Finland in short
Finland has had e-invoices between businesses for a long time without requiring them. The Act on electronic invoicing (241/2019) gives a right instead: since 1 April 2020 a contracting authority or a business with a turnover above 10,000 euros may ask another one of them to send its invoices as e-invoices (section 4). Contracting authorities have to receive and process e-invoices: central government since 1 April 2019, all others since 1 April 2020 (section 3). The act counts as an e-invoice one that follows the European standard EN 16931.
Most Finnish software sends Finvoice, the banks' format published by Finance Finland, or TEAPPSXML, from Tieto. Version 3.0 of each is built to carry the content of the European standard, but the State Treasury points out that an invoice in Finvoice 3.0 is not conformant just because of the format: the sender has to fill it in so it is. Public buyers also receive Peppol BIS Billing 3.0; the State Treasury is the Finnish Peppol authority. Cross-border invoices between EU businesses become electronic by 1 July 2030, under the ViDA directive.
How to check a Finnish invoice
- Open the validator with the Finvoice 3.0 profile. A file with the Finvoice document element picks it on its own.
- Paste the XML or drop the file, then press Validate.
- For an invoice that goes over Peppol, pick Peppol BIS 3.0 Invoice or the credit note one.
What is checked
First the Finvoice 3.0 schema, then our rules, written from Finance Finland's Finvoice 3.0 implementation guidelines: the total with VAT is the total without VAT plus the VAT (XV-FI-01), the VAT total is the sum of the VAT breakdown (XV-FI-04), each rate's base is the sum of its rows (XV-FI-06), a credit note has no positive total (XV-FI-08), a Finnish or RF payment reference has a valid check digit (XV-FI-09) and so does the IBAN (XV-FI-10). A business ID (Y-tunnus) with a wrong check digit, a Finnish VAT number that doesn't match one, and an amount to pay that differs from the total are warnings.
Amounts are read with the decimal comma Finvoice uses. A Peppol BIS invoice is checked against the UBL 2.1 schema, the EN 16931 rules and the Peppol rules.
Profiles to check with
- Finvoice 3.0: The Finnish banks' e-invoice format, sent between companies and to consumers' online banks. Validate
- Peppol BIS Billing 3.0 Invoice: A Peppol invoice checked the way an access point does: UBL 2.1 schema, EN 16931 rules and the Peppol BIS Billing 3.0 rules. Validate
- Peppol BIS Billing 3.0 Credit Note: A Peppol credit note checked against the UBL 2.1 schema, the EN 16931 rules and the Peppol BIS Billing 3.0 rules. Validate
- EN 16931 Invoice (UBL): A UBL invoice checked against the schema and the business rules of the European e-invoicing standard EN 16931: mandatory fields, code lists and totals. Validate
- EN 16931 Invoice (CII): A Cross Industry Invoice checked against the D16B schema and the EN 16931 business rules: the XML inside Factur-X and ZUGFeRD (EN 16931 profile). Validate
Rules invoices break most
Each one has a page with what it checks, its test and, for many, how to fix it.
XV-FI-01: InvoiceTotalVatIncludedAmount (…) must be InvoiceTotalVatExcludedAmount + InvoiceTotalVatAmount (… + …) (Finvoice 3.0 guidelines, 14).XV-FI-04: InvoiceTotalVatAmount (…) must be the sum of VatRateAmount in the VAT breakdown (…) (Finvoice 3.0 guidelines, 14).XV-FI-06: VatBaseAmount of the … % rate (…) must be the sum of RowVatExcludedAmount of the rows at that rate (…) (Finvoice 3.0 guidelines, 14).XV-FI-08: A credit note (INV02) always has a zero or negative total; InvoiceTotalVatIncludedAmount is … (Finvoice 3.0 guidelines, 10.5).XV-FI-09: The payment reference '…' has no valid check digit: a Finnish reference number (SPY) ends in a 7-3-1 check digit, an international one (ISO, RF) has ISO 11649 c...XV-FI-10: The IBAN '…' is not valid: its check digits do not match, or a Finnish IBAN is not 18 characters (Finvoice 3.0 guidelines, 13).
Questions
Is the invoice uploaded?
No. The schema check and the rules both run in your browser. Only the API and URL monitors validate on our servers.
Are these the official Finvoice rules?
No. The Finvoice Schematron of the Finnish e-invoicing forum is sold under licence. Our rules are written from Finance Finland's implementation guidelines, which are free to use, and were tried on Finance Finland's sample invoices.
Does a valid Finvoice 3.0 file meet the European standard?
Not by itself. The State Treasury reminds that a Finvoice 3.0 invoice follows EN 16931 only when the sender fills in what the standard asks for. For a public buyer, a Peppol BIS invoice checked here against the EN 16931 rules is the safer route.
Can I ask my supplier for an e-invoice?
Yes, if both businesses have a turnover above 10,000 euros, or you are a contracting authority: since 1 April 2020 the Act on electronic invoicing lets you ask for invoices that follow the European standard.
Can I check invoices from code?
Yes: the API and the command-line client with --schema finvoice-3.0, or --schema auto for a folder of mixed invoices.
Official sources
- Finlex: Act on electronic invoicing 241/2019 (in Finnish)
- Finance Finland: Finvoice standard
- State Treasury: e-invoicing guide for municipalities (in Finnish)
- State Treasury: e-invoicing indicators 2025 (in Finnish)
Other countries
- French e-invoice validator
- German e-invoice validator: XRechnung and ZUGFeRD
- Belgian e-invoice validator: Peppol BIS
- KSeF invoice validator: FA(3)
- Croatian eRačun validator
- RO e-Factura validator
- FatturaPA validator
- UAE e-invoice validator (PINT AE)
- InvoiceNow validator (PINT SG)
- JP PINT validator
- Australian e-invoice validator (PINT A-NZ)
- Spanish e-invoice validator
- Dutch e-invoice validator: SI-UBL 2.0 and NLCIUS
- Danish e-invoice validator: OIOUBL 2.1
- Norwegian e-invoice validator: EHF
- Swedish e-invoice validator: Peppol BIS
- Austrian e-invoice validator for e-Rechnung.gv.at
- Czech e-invoice validator: ISDOC
- Portuguese e-invoice validator: CIUS-PT
- ZATCA e-invoice validator (FATOORA)