BillKit/DocsConsole
Customers

Set customer VAT number

Set or clear a business customer's VAT registration number.

POST/v1/customers/{customer_id}/vat_number
Operation set_customer_vat_number·Scope customers:write·OpenAPI v1.1.0

Parameters

ParameterDescription
customer_idstring · pathrequiredId of the customer, which starts cus_.
country_codestring | nulloptionalTwo-letter ISO 3166-1 country code to set on the customer first, stored uppercase. VIES checks the number against the customer's country. At most 2 characters.
vat_numberstring | nulloptionalThe VAT registration number, with its two-letter country prefix (NL123456789B01). It is checked against VIES, and a number VIES rejects returns 400 and is not stored. null clears the number. At most 64 characters.

Returns

Returns a CustomerResponse object.

Errors

StatusCause
400The request was refused (type: invalid_request_error): a required parameter is missing (parameter_missing), one failed validation (parameter_invalid) or is not one the operation takes (parameter_unknown), and param names it.
401No credential, or one that does not authenticate.
402The account is suspended (tenant_suspended), or the payment provider refused a charge or refund the call made (type: payment_error, code: payment_refused).
403Authenticated, but not allowed: missing scope (insufficient_scope), a key of the wrong mode (mode_mismatch), or a refused origin. Needs the customers:write scope.
404No such object in this account and mode.
409Conflicts with the object's current state (state_conflict, or a more specific code), or an operation still in flight (operation_pending).
413The request body is larger than the API accepts.
429Rate limited. Retry-After says when to try again.
500Something failed on BillKit's side (type: api_error). Retry with the same Idempotency-Key.
502The payment provider failed or did not answer.
503Temporarily unable to serve. reason says whether the request was attempted.
Request · curl
curl -X POST https://api.billkit.eu/v1/customers/cus_9XKp2vQ1/vat_number \
  -H "Authorization: Bearer $BILLKIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Request body · every field
{
  "country_code": "NL",
  "vat_number": "string"
}
Response · 200 OK
{
  "country_code": "NL",
  "created": 1789392000,
  "email": "ada@example.com",
  "id": "cus_9XKp2vQ1",
  "livemode": false,
  "metadata": {
    "key": "value"
  },
  "name": "Ada Lovelace",
  "object": "customer",
  "provisional": false,
  "stats": {
    "currency": "EUR",
    "lifetime_cents": 1900,
    "object": "customer.stats",
    "subscription_count": 0
  },
  "test_clock_id": "tc_9XKp2vQ1",
  "vat_number": "string",
  "vat_number_validated": false
}