Skip to content

Sender tax identity mismatch

The invoice tax mode and the sender's registered Tax Identifier inventory must agree. getpeppr checks both directions before submitting the document.

Do not guess from the Peppol scheme. In sandbox, read GET /v1/identity and apply sandboxFirstSend.line. It returns a compatible O/0 or AE/0 integration profile, or a blocking reason when the identity is not ready.

Why the send was refused

The Peppol network identifies the party charging VAT by its VAT number. When an invoice carries any VAT — including a zero rate, an exemption reason, or a reverse charge — the sending identity must have one registered, or the document cannot be built.

The sender identity comes from your account's registered Peppol identity, never from the from field of the invoice. Supplying a VAT number in the payload does not satisfy this check — the provider rebuilds the supplier party from the registered identity.

Sandbox identities are not all shaped alike. Some carry only a routing identifier; others also carry a Tax Identifier. The preflight reads the exact provider inventory instead of inferring tax status from country or scheme.
422 — tax-bearing invoice, no Tax Identifier
{
  "error": "This sender has no Tax Identifier, so a tax-bearing invoice cannot be sent. Use the O/0 profile returned by GET /v1/identity or register the sender's tax identifier. The invoice was not sent.",
  "code": "sender_tax_identifier_missing",
  "docs": "https://getpeppr.dev/docs/error-handling/sender-vat-missing"
}
422 — O/0 invoice, Tax Identifier present
{
  "error": "This sender has a Tax Identifier, so the outside-scope integration fixture is not compatible. Use the reverse-charge AE/0 profile returned by GET /v1/identity. The invoice was not sent.",
  "code": "outside_scope_sender_has_tax_identifier",
  "docs": "https://getpeppr.dev/docs/error-handling/sender-vat-missing"
}

Option 1 — register a VAT number

  1. 1Open the Peppol identity page in the console and choose Add identifier.
  2. 2Pick the VAT scheme for your country and enter the number in the format that scheme expects. Ireland, Germany and the United Kingdom require the country letters inside the value. The scheme table gives the exact shape of each one.
  3. 3Retry the send. The gateway resolves the registered identity and injects it into the outgoing supplier party.
Adding a VAT number complements your other registered identifiers, it never replaces them. A Dutch supplier, for example, must keep a KVK or OIN registered as well. See NL-R-003.

Option 2 — send outside the scope of VAT

An invoice where every line is outside the scope of VAT needs no sender VAT number, in sandbox or in production. On each line, set vatCategory to "O" and vatRate to 0.

It still needs a Peppol identity, which is a different thing from a VAT number. A sandbox account already has one, created at signup. A production account with no registered identifier at all is refused before the invoice is read, whatever its VAT category. That refusal carries the code peppol_identity_incomplete.

This is a tax classification, not a workaround. Use it when the transaction genuinely falls outside VAT, or for integration testing. Marking a VAT-bearing sale as out of scope produces a document that the network accepts and that reports no VAT to your buyer.
If the sender already carries a Tax Identifier, Storecove does not accept the O/0 integration fixture. Use the AE/0 profile returned by GET /v1/identity for the first-send diagnostic, then use the real tax category for real invoices.
Out-of-scope invoice
{
  "number": "INV-001",
  "to": { "peppolId": "9925:BE0314595348", "companyName": "Acme NV",
          "street": "Rue du Test 1", "city": "Brussels",
          "postalCode": "1000", "country": "BE" },
  "lines": [
    {
      "description": "Consulting",
      "quantity": 1,
      "unitPrice": 100,
      "vatRate": 0,
      "vatCategory": "O"
    }
  ]
}

If you send on behalf of your own customers

In platform mode the sender is the customer Legal Entity selected by the sender field, not your own identity — so pointing at your account's Peppol identity page would be a false trail. New Legal Entities register a VAT identifier automatically where one can be derived. If the entity is verified and the error persists, contact support rather than adding anything to your own identity. See Sub-tenant Lifecycle.