Tax Rates
Tax rates let you define reusable tax configurations that can be applied to invoices, payment links, and product plans. Tax is calculated and displayed to the customer at checkout.
Create a tax rate
POST
/tax-ratesRequest body
| Parameter | Type | Required | Description |
|---|---|---|---|
displayName | string | Yes | Display name (1–100 chars, e.g. "VAT") |
percentage | number | Yes | Tax percentage (0–100) |
inclusive | boolean | No | Whether tax is included in the price |
jurisdiction | string | No | Tax jurisdiction (max 50, e.g. "US-CA") |
description | string | No | Description (max 500) |
List tax rates
GET
/tax-ratesQuery parameters
| Parameter | Type | Description |
|---|---|---|
includeInactive | "true" | "false" | Include archived/inactive tax rates |
Retrieve a tax rate
GET
/tax-rates/:idUpdate a tax rate
PUT
/tax-rates/:id| Parameter | Type | Required | Description |
|---|---|---|---|
displayName | string | No | Updated display name |
percentage | number | No | Updated percentage |
inclusive | boolean | No | Updated inclusive flag |
jurisdiction | string | No | Updated jurisdiction |
description | string | No | Updated description |
isActive | boolean | No | Active/archived |
Archive a tax rate
DELETE
/tax-rates/:idArchives a tax rate (soft delete). Returns 204 No Content.
Response object
All responses are wrapped in { "success": true, "data": ... }. The list endpoint returns a flat array (not paginated). Delete returns 204 No Content.
TaxRate fields
idstringUnique tax rate UUIDmerchantIdstringMerchant this tax rate belongs todisplayNamestringDisplay name (e.g. 'VAT', 'Sales Tax')percentagenumberTax percentage (0–100)inclusivebooleanWhether tax is included in the pricejurisdictionstring | nullTax jurisdiction (e.g. 'US-CA')descriptionstring | nullAdditional descriptionisActivebooleanWhether the tax rate is activecreatedAtstringISO 8601 creation timestampupdatedAtstringISO 8601 last-update timestamp