Update product
Updates a product and returns the full record. Allows partial update: send only the fields to change, omitted fields are left unchanged, and passing tax_codes: [] clears the product specific codes so organization default applies. source_id, source, source_account_id and the timestamps are immutable. source_updated_at cannot move backwards - a stale value is a 422 carrying the current one. Answers 404 for an unknown id or one owned by another account. Last-write-wins; no idempotency guarantee.
Partial updates
This endpoint only updates the fields you provide; omitted fields are left unchanged.Authorizations
Path Parameters
The product's Taxwire id (a prd_-prefixed ULID).
Body
The fields to change on a product.
A direct partial update: every field is optional, an omitted field is left unchanged, and the endpoint makes no idempotency or side-effect guarantees beyond writing what is sent. Only mutable fields listed here.
New product name. Non-blank; omit to leave unchanged.
"Organic Coffee Beans"
New description; null clears it. Omit to leave unchanged.
"12 oz bag of roasted coffee beans"
New source category; null clears it. Omit to leave unchanged. Not a tax code and never used in a calculation.
"Food & Beverage > Coffee"
Replace the assigned tax codes. [] clears the override so the company default applies; omit to leave unchanged.
New source-system watermark. Timezone-aware, an older value than current is rejected with 422. Not clearable; omit to leave unchanged.
"2026-09-14T19:58:12Z"
Response
Successful Response
A product in your Taxwire catalog and the tax codes assigned to it.
Taxwire's stable identifier for the product.
"prd_01J9Z8Q4E7K2M3N4P5R6S7T8U9"
Your identifier for the product in the system it came from (a SKU, a Stripe product id).
"SKU-123"
"prd_2344536"
The system the product came from. taxwire for products you send directly to this API.
business_central, campfire, maxio, monetizenow, netsuite, quickbooks, rillet, salesbricks, shopify, stripe, taxwire, xero "taxwire"
"stripe"
The account the product belongs to within source, for sources that have more than one. __default__ when the source has a single account.
"acct_234234"
The product's name.
"Organic Coffee Beans"
The tax codes actually used for the product during a calculation: tax_codes when set, otherwise your organization default. Never empty.
When Taxwire first stored the product.
"2026-09-14T20:00:00Z"
When the product was last changed in Taxwire. Equals created_at until the first change.
"2026-09-14T20:00:00Z"
The product's description, if any.
"12 oz bag of roasted coffee beans"
The product's category in the source system, kept for identification. Not a tax code and never used in a calculation.
"Food & Beverage > Coffee"
The tax codes you assigned to the product. Empty means no product-level assignment, so the organization default applies.
When the product last changed in the source system, as reported by the sender. Null when unknown.
"2026-09-14T19:58:12Z"