ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

Finland — Verkkolasku, Finvoice and eInvoice right

Finland has a mature verkkolasku (e-invoicing) operator ecosystem since 2000. The historic Finvoice format (Pankkiyhdistys) coexists with PEPPOL BIS Billing 3.0. The 2019 eInvoice Act gives B2B buyers the legal right to demand an EN 16931 e-invoice since 1 April 2020 — a de facto quasi-mandate.

Regulatory timeline

  • 1 January 2000 — Verkkolasku birth. Finnish banks (Nordea, OP, S-Pankki, Aktia) collectively launch the first B2B e-invoicing services, based on Finvoice 1.0 format (Pankkiyhdistys).
  • 1 December 2010 — B2G Valtiokonttori. Finnish State (Valtiokonttori) mandates e-invoicing for all its suppliers. Format Finvoice 1.2 or TEAPPSXML.
  • 1 January 2017 — Finvoice 3.0. Major update aligned with ISO 20022 and EN 16931 (coming), with Soap Body envelope and standardised header for intermediaries.
  • 4 April 2019 — Act 241/2019 eInvoice Act. Finland transposes EU Directive 2014/55 and goes further: the B2B buyer (company or administration) has the right to demand an EN 16931 compliant e-invoice. The supplier cannot refuse.
  • 1 April 2020 — eInvoice right entry into force. The right for buyers to demand an EN 16931 e-invoice becomes effective. Pivot format: PEPPOL BIS Billing 3.0 or Finvoice 3.0.
  • 1 January 2022 — TEAPPSXML deprecated. Tieto announces end of TEAPPSXML support; users migrate to Finvoice 3.0 or PEPPOL BIS.
  • 11 March 2025 — EU ViDA adoption. Finland supports strict ViDA 2030 alignment; no national early adoption planned.
  • 1 July 2030 — ViDA-aligned B2B mandate (planned). Final convergence: all intra-EU B2B exchanges must be in EN 16931 format — Finvoice/PEPPOL alignment in progress.

Deep dives — 10 dedicated pages

Ten dedicated pages drill into every dimension of the Finnish e-invoicing ecosystem — the pioneering reforms (Finvoice 2003, Valtiokonttori B2G 2010, Act 241/2019 right-to-receive 2020, Real-Time Economy), the technical specifications (Tieke operators, Y-tunnus PRH, Vero.fi APIs), and the real-world B2B usage that long pre-dates and coexists with EU regulation (retail S/K EDIFACT, industrial OFTP2, ALV regimes).

Pioneering reforms

Technical specs

  • Tieke — 30+ accredited operators · Tieke network: operating banks (OP, Nordea, Danske, Aktia, S-Pankki) + pure-players (Apix, Maventa, Procountor, Liaison, Pagero, Basware). Routing via OVT-tunnus 12-17 chars, ICD 0037 PEPPOL prefix.
  • Y-tunnus — PRH legal identifier · Unique Finnish company legal identifier (NNNNNNN-N, 7 digits + check), operated by PRH + Vero.fi via YTJ. PEPPOL ICD 0037, FI prefix for intra-EU VAT. Public checksum algorithm.
  • Vero.fi — VAT integration + OmaVero APIs · Verohallinto tax administration: OmaVero portal, monthly ALV returns, intra-EU VIES reporting, public APIs apitietopalvelu.vero.fi (REST + OAuth2). RTE pre-filling since 2024.

Real-world B2B usage

Technical schema

The Finnish ecosystem is multi-format with strong weight of verkkolasku operators acting as intermediator between ERPs. Routing uses the 0037 + Y-tunnus prefix as Finvoice address, and the PEPPOL EndpointID with schemeID 0216 (NemHandel reserved for DK).

  • Finvoice 3.0: Finnish XML, namespace http://www.finvoice.info/2017, version 3.0, MessageTransmissionDetails envelope with FromIntermediator/ToIntermediator (operator BIC codes).
  • PEPPOL BIS Billing 3.0: standard European UBL 2.1, EndpointID schemeID 0216 or 0037 (Y-tunnus).
  • Y-tunnus: 7 digits + dash + 1 checksum (modulo 11), assigned by PRH (Patentti- ja rekisterihallitus). Unique business identifier.
  • VAT ID: FI + 8 digits (Y-tunnus without dash), VIES validation.
  • VAT rates: 25.5 % standard (since September 2024, previously 24 %), 14 % reduced (food, restaurants, water, OTC medicines), 10 % super-reduced (books, culture, passenger transport, hospitality), 0 % (exports).

Structure of a Finvoice 3.0 invoice:

xmlfinvoice-3p0.xml
<?xml version="1.0" encoding="UTF-8"?>
<Finvoice xmlns="http://www.finvoice.info/2017"
          Version="3.0">
  <MessageTransmissionDetails>
    <MessageSenderDetails>
      <FromIdentifier>FI0000000001</FromIdentifier>
      <FromIntermediator>NDEAFIHH</FromIntermediator>
    </MessageSenderDetails>
    <MessageReceiverDetails>
      <ToIdentifier>003700000002</ToIdentifier>
      <ToIntermediator>OKOYFIHH</ToIntermediator>
    </MessageReceiverDetails>
    <MessageDetails>
      <MessageIdentifier>FI-2026-MSG-00000142</MessageIdentifier>
      <MessageTimeStamp>2026-04-15T10:30:00</MessageTimeStamp>
    </MessageDetails>
  </MessageTransmissionDetails>
  <SellerPartyDetails>
    <SellerPartyIdentifier>0000000-1</SellerPartyIdentifier>
    <SellerOrganisationName>Ediverse Demo Suomi Oy</SellerOrganisationName>
    <SellerOrganisationTaxCode>FI00000001</SellerOrganisationTaxCode>
  </SellerPartyDetails>
  <BuyerPartyDetails>
    <BuyerPartyIdentifier>0000000-2</BuyerPartyIdentifier>
    <BuyerOrganisationName>Customer Demo Suomi Oy</BuyerOrganisationName>
  </BuyerPartyDetails>
  <InvoiceDetails>
    <InvoiceTypeCode CodeListAgencyIdentifier="SPY">INV01</InvoiceTypeCode>
    <InvoiceTypeText>Lasku</InvoiceTypeText>
    <OriginCode>Original</OriginCode>
    <InvoiceNumber>FI-2026-00000142</InvoiceNumber>
    <InvoiceDate Format="CCYYMMDD">20260415</InvoiceDate>
    <InvoiceTotalVatExcludedAmount AmountCurrencyIdentifier="EUR">1000.00</InvoiceTotalVatExcludedAmount>
    <InvoiceTotalVatAmount AmountCurrencyIdentifier="EUR">255.50</InvoiceTotalVatAmount>
    <InvoiceTotalVatIncludedAmount AmountCurrencyIdentifier="EUR">1255.50</InvoiceTotalVatIncludedAmount>
  </InvoiceDetails>
  <PaymentTermsDetails>
    <PaymentTermsFreeText>14 päivää netto</PaymentTermsFreeText>
    <InvoiceDueDate Format="CCYYMMDD">20260429</InvoiceDueDate>
  </PaymentTermsDetails>
</Finvoice>

Submission flow

The Finnish model is 4-corner with intermediator. The issuer goes through their verkkolasku operator (often their bank or a dedicated player like Apix or Maventa). The operator resolves the recipient via its directory (Verkkolaskuosoitteisto) or via PEPPOL SML/SMP. The Finvoice format is transmitted in SOAP/HTTPS and PEPPOL in AS4.

textfi-verkkolasku-flow.txt
┌──────────────┐    ┌────────────────────┐    ┌──────────────┐
│ Supplier     │───>│ Verkkolasku        │───>│ Buyer        │
│ (ERP, Fin-   │    │ operator (Apix,    │    │ (Visma,      │
│  voice/UBL)  │    │ Maventa, Pagero,   │    │  Procountor) │
│              │    │ Tieto)             │    │              │
└──────────────┘    └─────────┬──────────┘    └──────┬───────┘
                              │ Finvoice / PEPPOL     │
                              ▼                       ▼
                  ┌────────────────────┐    ┌──────────────┐
                  │ Bank (Nordea, OP,  │    │ Financial    │
                  │ S-Pankki)          │    │ admin        │
                  │ + PEPPOL AP        │    │              │
                  └────────────────────┘    └──────────────┘

The TIEKE gateway (Tieke.fi) maintains a central Verkkolaskuosoitteisto directory mapping Y-tunnus to operators and intermediators. Finnish banks play a key role as historic operators (Nordea, OP, S-Pankki, Aktia) and many companies still invoice through their bank.

Validation

  • VERO — Verohallinto: vero.fi — Finnish Tax Administration, MyTax, VAT rules, archiving.
  • Valtiokonttori — State Treasury: valtiokonttori.fi — central State, B2G, Handi (federal accounting system).
  • TIEKE — Tietoyhteiskunnan kehittämiskeskus: tieke.fi — standardisation forum, Verkkolaskuosoitteisto directory, operator certification.
  • Finance Finland (FFI / Pankkiyhdistys): finanssiala.fi — Finvoice standard editor, specifications, XSD schemas.
  • PRH — Patentti- ja rekisterihallitus: prh.fi — Patent Office and Business Register, Y-tunnus assignment.

Common pitfalls

  1. Mandatory intermediator in Finvoice. A Finvoice invoice must indicate the BIC code of the issuing operator (FromIntermediator) AND the receiving operator (ToIntermediator). Without it, the TIEKE directory rejects routing. Retrieve the recipient's intermediator via the Verkkolaskuosoitteisto lookup service before emission.
  2. VAT 25.5% since September 2024. The Finnish standard rate moved from 24% to 25.5% on 1 September 2024 (Act 524/2024). Verify the invoice effective date (VAT issue date = chargeability date by default); wrong rate = PEPPOL BR-S-08 or Finvoice Schematron rejection.
  3. Y-tunnus modulo 11 checksum. The Y-tunnus (Business ID) uses a specific modulo 11 algorithm for the final check digit. A typo may pass a standard Luhn validation but be rejected by VERO/PRH. Use the official Y-tunnus validation library.
  4. Addressing 0037 vs 0216 vs intermediator. Verkkolasku identifiers have several formats: raw Y-tunnus (1234567-8), prefixed 0037 (003712345678), prefixed 0216 (Finnish PEPPOL). The EndpointID in PEPPOL BIS must use schemeID 0037 (TIEKE recommendation since 2022) or 0216 (legacy compatibility).
  5. 6-year archiving Kirjanpitolaki. The Finnish Accounting Act (Kirjanpitolaki 1336/1997) imposes 6-year retention after the end of the fiscal year. Structured format mandatory (Finvoice or UBL); a PDF alone is not compliant for companies since 2020.
  • EN 16931 — European semantic comparison (Finvoice 3.0 is compliant).
  • PEPPOL — European network, BIS Billing 3.0 format used in parallel with Finvoice.
  • Sweden — Nordic neighbour on PEPPOL via DIGG.
  • Denmark — Nordic neighbour with NemHandel/OIOUBL.
  • Norway — Nordic neighbour with EHF.
  • Official sources: vero.fi, valtiokonttori.fi, tieke.fi.