# Upsert a customer tax registration by tax id

> POST /customers/{customer_id}/tax-registrations

Source: https://docs.trykintsugi.com/reference/2026-07-21/upsert-a-customer-tax-registration-by-tax-id

POST /customers/{customer_id}/tax-registrations

Upsert a customer tax registration by tax id

Create or update a tax registration. Send `countryCode` and `taxType` together to validate `taxId` against that pair; omit both to derive from `taxId` and the customer's country. Always `200`. `400` if `taxId` is invalid, mismatched, or only one field is sent. `404` if the customer doesn't exist.

Category: Customers

Path parameters:
customer_id (string, required) - The unique identifier of the customer.

Request body:
taxId (string, required) - The tax registration number. When countryCode and taxType are both omitted, they are derived from this value together with the customer's own country.
countryCode (string) - Country the registration is valid in, ISO 3166-1 alpha-2. Send this together with taxType to validate taxId against an explicit pair instead of deriving one.
taxType (PublicCustomerTaxTypeEnum) - Kind of tax the registration is for. Send this together with countryCode.
  allowed values: gst, hst, gst_hst, qst, pst, rst, vat, unknown

Response fields:
id (string, required) - Kintsugi's unique identifier for the registration.
countryCode (string, required) - Country the registration is valid in, ISO 3166-1 alpha-2.
taxType (PublicCustomerTaxTypeEnum, required) - Kind of tax the registration is for.
  allowed values: gst, hst, gst_hst, qst, pst, rst, vat, unknown
taxId (string, required) - The tax registration number itself.
isValid (boolean, required) - Whether the tax id passed validation for its country and type. Derived by Kintsugi; not accepted on write.

Response statuses: 200, 400, 401, 403, 404, 409, 422

---

Index of every page: https://docs.trykintsugi.com/llms.txt
