Skip to content

Sender identity has no VAT number

An invoice that carries VAT can only be sent from an identity that has a VAT number registered. This applies in sandbox exactly as it does in production.

Two ways forward. Register a VAT number on your Peppol identity, or send invoices that are outside the scope of VAT. Both are described below. The second needs no VAT number — it still needs a Peppol identity, which a sandbox account already has. In production, an account with no registered identifier at all is refused before the invoice is even read, whatever its VAT category.

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 is not more permissive here. The test Peppol ID created for you at signup is a routing identifier: it tells the network where to deliver, and carries no tax identity. It is enough to send, not enough to charge VAT.
422 — pre-send check (production)
{
  "error": "peppol_identity_incomplete",
  "message": "Your sender identity has no VAT number registered. Peppol requires one to send invoices that include VAT — add your VAT on the Peppol identity page. (Invoices outside the scope of VAT, where each line uses vatCategory \"O\", do not need one.) Your sender identity comes from your account's registered Peppol Identity, not the invoice 'from' field. Adding a VAT complements your other registered identifiers — it never replaces them (Dutch suppliers, for example, must also keep a KVK or OIN registered).",
  "docs": "https://getpeppr.dev/docs/error-handling/sender-vat-missing"
}
422 — refused at registration
{
  "error": "Your sender identity has no VAT number registered. Peppol requires one to send invoices that include VAT — add your VAT on the Peppol identity page. (Invoices outside the scope of VAT, where each line uses vatCategory \"O\", do not need one.) Your sender identity comes from your account's registered Peppol Identity, not the invoice 'from' field. Adding a VAT complements your other registered identifiers — it never replaces them (Dutch suppliers, for example, must also keep a KVK or OIN registered).",
  "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.
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.