Taxes API

Manage tax rates (VAT, sales tax, etc.). All routes require Authorization: Bearer <access_token>. Create and set-default require admin role. List and get require view_products. Base path: <API_BASE_URL>/taxes.

Taxes

Query active_only: use 1, true, or yes (default) to filter active only; 0 or false for all.

POST /taxes

Create tax. Permission: admin. Body: name (required), rate (required, 0–100), country (optional, 2-letter ISO e.g. KE), is_default (optional, default false).

GET /taxes

List taxes. Permission: view_products. Response: {"taxes": [{"id", "name", "rate", "country", "is_default", "is_active", "created_at"}, ...]}.

GET /taxes/default

Get default tax. Permission: view_products. 404 if no default set.

PUT /taxes/<id>/default

Set tax as default. Permission: admin. 404 if tax not found.

GET /taxes/country/<code>

Get tax by country code. Permission: view_products. code is 2-letter ISO (e.g. KE, US). 404 if no tax for that country.

Common responses

401 if missing or invalid token. 403 if user lacks admin (for write) or view_products (for read). 404 if tax not found.