errorcodelistSEPeppol BIS 3.0

PEPPOL-EN16931-R049:Swedish organization number MUST be in the correct format

Fix: Emit the Swedish org number as exactly 10 numeric digits with a valid Luhn check digit — no hyphen, no century prefix, no spaces. Upload your invoice to fix this automatically.

PEPPOL-EN16931-R049 fires when a party's legal entity ID (BT-30 / cac:PartyLegalEntity/cbc:CompanyID) declares scheme 0007 (Swedish Organisationsnummer) but the value isn't a valid Swedish org number — 10 digits, all numeric, passing the Luhn checksum. In newer Peppol releases this rule was renamed PEPPOL-COMMON-R049, but the EN16931 label is still returned by many national validators and corporate ingest pipelines.

Severity
Fatal
Rule set
Peppol BIS 3.0
Country
SE
Fix type
AUTO-FIX
Confidence
85%

Engine Classification

normalize-swedish-orgno

Confidence: 85% · Applied automatically in pipeline

What is PEPPOL-EN16931-R049?

PEPPOL-EN16931-R049 is a fatal validation rule defined in the Peppol BIS 3.0 specification (SE national rules). It validates the CompanyID. It requires string-length(.) = 10, that every character is a digit, and that the number passes the Swedish Luhn-based check digit. Values like '556677-8899' (with a hyphen), '5566778899X' (11 characters), or '5566778890' (wrong check digit) all fail. element in the UBL invoice XML.

When this rule fires, the invoice is rejected by Peppol access points and never reaches the buyer.

Target path: The assertion runs on cac:PartyLegalEntity/cbc:CompanyID[@schemeID='0007']. It requires string-length(.) = 10, that every character is a digit, and that the number passes the Swedish Luhn-based check digit. Values like '556677-8899' (with a hyphen), '5566778899X' (11 characters), or '5566778890' (wrong check digit) all fail.

Why This Error Matters

The Swedish org number is the primary identifier used by Bolagsverket, Skatteverket and every Swedish B2G buyer to match the invoice to the correct legal entity. A malformed number means the buyer can't post the invoice against a supplier record, and Peppol Authority Sweden's validators reject the file at ingress.

PEPPOL-EN16931-R049 is a hard failure — the invoice must be corrected and re-sent before it can reach the recipient.

Invoice Navigator can automatically correct this error in your pipeline. The fix is applied with full audit evidence, so your compliance trail remains intact.

Validator Behavior

  • ·Causes invoice rejection
  • ·Rejected by PEPPOL Access Points
  • ·Error returned: PEPPOL-EN16931-R049
  • ·Specification: Peppol BIS 3.0

How to Fix It

1.

2.

3.

4.

Before / After

Failing XML
<cac:PartyLegalEntity>
  <cbc:CompanyID schemeID="0007">556677-8899</cbc:CompanyID>
</cac:PartyLegalEntity>
Corrected XML
<cac:PartyLegalEntity>
  <cbc:CompanyID schemeID="0007">5566778899</cbc:CompanyID>
</cac:PartyLegalEntity>

Technical Reference

XPathThe assertion runs on cac:PartyLegalEntity/cbc:CompanyID[@schemeID='0007']. It requires string-length(.) = 10, that every character is a digit, and that the number passes the Swedish Luhn-based check digit. Values like '556677-8899' (with a hyphen), '5566778899X' (11 characters), or '5566778890' (wrong check digit) all fail.
SpecPeppol BIS 3.0
Strategynormalize-swedish-orgno

Code Example

<!-- Wrong -->
<cac:PartyLegalEntity>
  <cbc:CompanyID schemeID="0007">556677-8899</cbc:CompanyID>
</cac:PartyLegalEntity>

<!-- Fixed -->
<cac:PartyLegalEntity>
  <cbc:CompanyID schemeID="0007">5566778899</cbc:CompanyID>
</cac:PartyLegalEntity>

Common Causes

  • ·ERP displays the org number with a hyphen ('XXXXXX-XXXX') for humans and forgot to strip it for XML output.
  • ·Source system stores 12-digit format including the century; export template copies all 12 characters.
  • ·Someone entered the org number by hand and typo'd the check digit.
  • ·@schemeID accidentally set to '0007' for a non-Swedish supplier (e.g. a Danish CVR).

Seeing this in production? The API handles PEPPOL-EN16931-R049 automatically. See the fix response →

Frequently Asked Questions

Exactly 10 digits, all numeric, with a valid Luhn check digit — no hyphen, no spaces, no century prefix.

Yes — the rule was moved from the EN16931 schematron to the COMMON namespace, but the assertion is identical. Older validators return PEPPOL-EN16931-R049; newer ones return PEPPOL-COMMON-R049.

cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID with @schemeID='0007'. The customer's org number goes in cac:AccountingCustomerParty using the same structure.

For hyphen and century-prefix cases, yes — the value can be normalized deterministically. If the Luhn check fails after normalization, we return an input-fix prompt because the underlying number is wrong at source.

Related Errors

Related Content

Last updated: 14 July 2026

Share this guide:

Validate your invoice

Drop your XML here to check for PEPPOL-EN16931-R049

Auto-fix PEPPOL-EN16931-R049 in seconds

Upload your invoice and we fix this error automatically. Financial fields are never touched.