ATverify

buyer_vat_not_registered

The buyer_vat number passed to /decide is invalid or not registered with the registry.

HTTP 400 · Bad Request

Example response

{
  "error": {
    "code": "buyer_vat_not_registered",
    "message": "buyer_vat 'FR00000000000' is not a registered business."
  },
  "meta": {
    "request_id": "a1b2c3d4-...",
    "latency_ms": 0
  }
}

What happened

POST /v1/decide validates the buyer_vat against the registry before computing the VAT treatment. If the buyer's VAT number is invalid (bad format or not registered), this error is returned. /decide requires a verified buyer. An unregistered buyer means the transaction is likely B2C.

How to fix

  1. Call GET /v1/validate?vat_number=<buyer_vat> first. If valid: false, the buyer is not a registered business.
  2. If the buyer is unregistered, treat the transaction as B2C and apply the seller's standard rate (see GET /v1/rates/:country).
  3. If you believe the VAT number is valid but getting this error, the buyer may be temporarily deregistered or the registry may be lagging.

Common mistakes

  • Not pre-validating the buyer: always validate the buyer VAT before calling /decide to avoid this error in production.
  • Using test magic numbers for the buyer: test magic numbers simulate valid/invalid responses but are not "registered" in the VIES sense that /decide checks.
  • Passing a buyer in a country where the registry is slow to update: new businesses can take days to appear in VIES after registration.