PEPPOL BIS Billing 3.0 — the Swedish spec
PEPPOL BIS Billing 3.0 is the single format imposed for B2G invoicing in Sweden since 1 April 2019. The CIUS Sweden adds a dozen national SE-* rules maintained by DIGG and SFTI, and coexists with the SveFaktura legacy (pre-PEPPOL national format used 2003-2019).
PEPPOL BIS Billing 3.0 specification
PEPPOL BIS Billing 3.0 was adopted in Sweden as the single format replacing SveFaktura SFTI (see below). Specification hierarchy:
- UBL 2.1 (XML syntax, OASIS) — root
- EN 16931 (European semantics, CEN) — core
- PEPPOL BIS Billing 3.0 (PEPPOL profile, OpenPEPPOL) — profile
- CIUS Sweden (national rules DIGG/SFTI) — SE-* extensions
Sweden automatically adopts each semi-annual OpenPEPPOL release (May / November). No local freeze as in France (FNFE-MPE). No parallel spec as in Germany with XRechnung.
CIUS Sweden — SE-* rules
The CIUS Sweden (Core Invoice Usage Specification) is jointly maintained by DIGG (legal aspect) and SFTI (retail/industry business aspect). It adds a dozen national business rules without modifying the semantic model:
| Rule | Description | Severity |
|---|---|---|
SE-R-001 | BT-29 (sender orgnummer) at schemeID 0007 mandatory if sender country = SE | fatal |
SE-R-002 | BT-49 (receiver orgnummer) at schemeID 0007 mandatory if receiver country = SE | fatal |
SE-R-003 | SE orgnummer must be 10 digits with valid Luhn checksum | fatal |
SE-R-004 | BT-31 (sender VAT) in SE + 12-character format if applicable | fatal |
SE-R-005 | BT-84 (PayeeFinancialAccount/ID) SE IBAN 24 characters or Bankgiro 7-8 digits or Plusgiro 1-7 digits | fatal |
SE-R-006 | BT-83 (PaymentID) — Bankgirot OCR reference (25-character reference including checksum) | warning |
SE-R-007 | VAT code AE (reverse charge) with Swedish exemption text mandatory if sender country = SE | fatal |
SE-R-008 | BT-3 (InvoiceTypeCode) limited to 380 (invoice), 381 (credit note), 384 (correcting invoice), 386 (prepayment) | fatal |
SE-R-009 | BT-23 (Buyer reference) mandatory for B2G — often kommun/region registration number | fatal |
SE-R-010 | Currency SEK or EUR mandatory | warning |
SE-R-011 | BT-90 (BIC) mandatory if foreign IBAN (non-SE) | warning |
SE-R-012 | Invoice date (BT-2) cannot be > 90 days in the past | warning |
SveFaktura legacy (2003-2019)
Before PEPPOL, Sweden used SveFaktura, a national e-invoicing format developed in 2003 by the SFTI project for the public sector and industry. SveFaktura was used for 16 years before being gradually replaced by PEPPOL BIS:
- Origin: published by SFTI (Single Face To Industry), a collective bringing together Ekonomistyrningsverket (ESV), SKL (now SKR) and Verva (former e-government office).
- Technical format: XML based on EDIFACT D96A INVOIC (with a custom schema), no EN 16931 alignment (which didn't exist in 2003).
- Adoption: ~90% of Swedish B2G invoices were in SveFaktura in 2015 (before the PEPPOL pivot).
- Versions: SveFaktura 1.0 (2003), SveFaktura 1.1 (2009), SveFaktura 1.2 (2015 — last version before deprecation).
- Deprecation: announced by DIGG in 2017, official support withdrawn on 1 April 2019 (entry into force of Lag 2018:1277 mandate). Some residual SveFaktura flows until 2022.
SveFaktura → PEPPOL UBL mapping
For migration, DIGG and SFTI published a SveFaktura 1.2 → PEPPOL BIS Billing 3.0 mapping guide. Main mappings:
SveFaktura/Header/Invoice/InvoiceNumber→cbc:ID(BT-1)SveFaktura/Header/Invoice/InvoiceDate→cbc:IssueDate(BT-2)SveFaktura/Header/Invoice/DueDate→cbc:DueDate(BT-9)SveFaktura/Parties/Supplier/OrganisationNumber→cac:PartyLegalEntity/cbc:CompanyID[@schemeID=0007](BT-30)SveFaktura/Parties/Buyer/OrganisationNumber→cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID[@schemeID=0007](BT-47)SveFaktura/Payment/Bankgiro→cbc:IDinPayeeFinancialAccount(BT-84) with ID schemeID="SE:BANKGIRO"SveFaktura/Lines/Line/Description→cac:Item/cbc:Name(BT-153)
The full guide is available on sfti.se with samples and transformation XSLT.
SFTI — Single Face To Industry
SFTI (Single Face To Industry) is a Swedish public-private cooperation collective founded in 2003 to standardise electronic exchanges between the public sector and its suppliers. Members:
- Public side: Ekonomistyrningsverket (ESV), SKR (Sveriges Kommuner och Regioner), Upphandlingsmyndigheten, DIGG.
- Private side: Svenskt Näringsliv (employer confederation), Svensk Handel (commerce), Företagarna (SMEs), plus about fifty ERP vendors (Visma, Fortnox, Hogia, Briljant Ekonomi).
- Current role: co-maintenance of CIUS Sweden, publication of business guides, training for ERP vendors. Monthly technical forum.
- Documentation: sfti.se — PEPPOL guides in Swedish, sectoral mappings, Schematron schemas.
SE invoice sample
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>SE-INV-2026-00412</cbc:ID>
<cbc:IssueDate>2026-05-21</cbc:IssueDate>
<cbc:DueDate>2026-06-20</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>SEK</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>2026-PO-9821</cbc:BuyerReference>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0007">5560330923</cbc:EndpointID>
<cac:PartyName><cbc:Name>Acme Sverige AB</cbc:Name></cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Sveavägen 100</cbc:StreetName>
<cbc:CityName>Stockholm</cbc:CityName>
<cbc:PostalZone>11346</cbc:PostalZone>
<cac:Country><cbc:IdentificationCode>SE</cbc:IdentificationCode></cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>SE556033092301</cbc:CompanyID>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Acme Sverige AB</cbc:RegistrationName>
<cbc:CompanyID schemeID="0007">5560330923</cbc:CompanyID>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="0007">2120000282</cbc:EndpointID>
<cac:PartyName><cbc:Name>Kammarkollegiet</cbc:Name></cac:PartyName>
<cac:PartyTaxScheme>
<cbc:CompanyID>SE212000028201</cbc:CompanyID>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:PaymentMeans>
<cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
<cbc:PaymentID>SE-INV-2026-00412</cbc:PaymentID>
<cac:PayeeFinancialAccount>
<cbc:ID>SE3550000000054910000003</cbc:ID>
<cac:FinancialInstitutionBranch>
<cbc:ID>ESSESESS</cbc:ID>
</cac:FinancialInstitutionBranch>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="SEK">2500.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="SEK">10000.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="SEK">2500.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="SEK">10000.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="SEK">10000.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="SEK">12500.00</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="SEK">12500.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="SEK">10000.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Consulting service - May 2026</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="SEK">5000.00</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</Invoice>