Merchant Management Overview
Provision tax compliance for your customers with two models — self-managed merchants and TaxCloud-connected merchants.
Merchant Management lets platforms and SaaS businesses provision tax compliance for their own customers. You create a merchant for each seller on your platform, then manage that merchant’s compliance through Ziptax instead of asking every customer to set up tax tooling on their own.
Every merchant uses one of two compliance models. You choose the model at
creation time with the merchantType field on
POST /merchant/create, and you can
move a merchant to the other model later with setMerchantType on
POST /merchant/update.
Two compliance models
Self-managed (merchantType: "self-managed"): the merchant is active the
moment you create it, with
no TaxCloud invite. Your platform tracks the merchant’s nexus footprint on
Ziptax — physical locations and
economic thresholds — while the merchant remains
responsible for their own registration, filing, and remittance.
TaxCloud-connected (merchantType: "taxcloud", the API default):
creation kicks off the TaxCloud invite process. The merchant sets up their own
TaxCloud account and connects it, and TaxCloud handles compliance end to end —
registration, filing, and remittance — in the merchant’s own account, synced to
your platform.
Which model fits?
Start with self-managed if your merchants handle their own compliance, or
aren’t ready for a full-service filing relationship. You get merchant records
and nexus tracking on Ziptax without any onboarding step for the merchant, plus
cart tax calculation at checkout, and you can
invite a self-managed merchant to TaxCloud later. The choice is not permanent:
either model can be switched to the other with setMerchantType.
Choose TaxCloud-connected to offer full-service compliance — TaxCloud registers, files, and remits on the merchant’s behalf — and to record orders, exemption certificates, and refunds through the full Merchant Transactions set. This model requires the Enterprise plan.
Merchant statuses
merchantType is not returned by POST /merchant/get or
GET /merchant/list. The status field is how you tell the two models apart
on reads, including after a setMerchantType change:
Available resources
Create merchants that are active immediately and handle their own compliance.
Invite merchants to TaxCloud for full-service registration, filing, and remittance.
Track a self-managed merchant’s physical locations and nexus footprint.
Understand economic nexus and record the states where a merchant has crossed a threshold.
Calculate cart tax for a self-managed merchant with Ziptax’s own rate engine.
Calculate cart tax, record orders, manage exemption certificates, and issue refunds for a connected merchant.
Full request and response references for the Merchant endpoints.