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.
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.
{
"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"
}{
"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
- 1Open the Peppol identity page in the console and choose Add identifier.
- 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.
- 3Retry the send. The gateway resolves the registered identity and injects it into the outgoing supplier party.
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.
GET /v1/identity for the first-send diagnostic, then use the real tax category for real invoices.{
"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.