Skip to content

Set merchant tax configuration

POST
/merchants/tax-config
curl --request POST \
--url https://quikstik-core.fly.dev/merchants/tax-config \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: 2489E9AD-2EE2-8E00-8EC9-32D5F69181C0' \
--data '{ "jurisdiction": "example", "rate_bps": 1, "offerings": [ { "offering_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "tax_class": "taxable" } ] }'

Operator-scoped, authoritative provisioning of a merchant’s tax configuration: the jurisdiction rate (basis points) and per-offering taxability. Resolves against operator effect authority; this is not a customer surface. Replaces the tenant’s rate and upserts each listed offering’s taxability.

x-tenant-id
required
string format: uuid

Tenant identifier (UUID).

Authn/authz semantics are intentionally TBD for this contract slice; this header exists to keep the contract explicitly multi-tenant from day 0.

Media typeapplication/json
object
jurisdiction
required

Jurisdiction label (e.g. “ME”).

string
>= 1 characters
rate_bps
required

Merchant tax rate in basis points (550 = 5.50%).

integer
<= 10000
offerings

Per-offering taxability to upsert (may be empty to set the rate only).

Array<object>
object
offering_id
required
string format: uuid
tax_class
required
string
Allowed values: taxable exempt

Tax configuration applied

Malformed tax configuration (empty jurisdiction, rate over ceiling, or a taxable offering under a zero rate)