# Create a product

> POST /products

Source: https://docs.trykintsugi.com/reference/2026-07-21/create-a-product

POST /products

Create a product

Create a product in the resolved organization. Idempotent on `externalId` and `source`: sending the same values again returns the existing product unchanged and responds `200` instead of creating a duplicate. If the match is a product you previously deleted, it is restored (not duplicated) so its tax history stays attached to it; a restored product re-enters classification and its `status` returns to `PENDING`, so it is not used in tax calculation until it is approved again. The product is not otherwise updated by this call; use `PATCH /products/{productId}` to update. `source` accepts only the curated public values. `status` does not accept ARCHIVED; archive an existing product with `DELETE /products/{productId}`.

Category: Products

Request body:
externalId (string, required) - Your stable identifier for the product. Creating another product with the same externalId and source returns the existing product (200) instead of a duplicate; use PATCH to update it. The same externalId can still appear on products synced from your connections.
name (string, required) - Human-readable product name.
description (string) - Optional product description.
status (PublicProductCreateStatusEnum) - Approval status of the product's tax classification. ARCHIVED is not accepted here: archive an existing product with DELETE /products/{id}.
  allowed values: APPROVED, PARTIALLY_APPROVED, PENDING
productCategory (PublicProductCategoryEnum, required) - Top-level tax category for the product.
  allowed values: Digital, Misc, Physical, Services
productSubcategory (string, required) - Tax subcategory display label within the category (e.g. 'General Clothing', 'B2B SaaS'). Together with productCategory it resolves to a product tax code; an unrecognized pair returns 400.
taxExempt (boolean, required) - Whether the product is treated as tax-exempt by tax calculation. This is the effective exemption flag applied to transactions.
source (string) - Origin system of the product (e.g. API, SHOPIFY). Defaults to OTHER. Must be a supported public source; unsupported values are rejected.
  allowed values: ACUMATICA, AIRWALLEX, AMAZON, API, APPLE_APP_STORE, BESTBUY, BIGCOMMERCE, BILL_COM, BUNNY, CAMPFIRE, CHARGEBEE, CHECKOUTCHAMP (and 58 more, see the reference page)
[truncated, see the reference page]

---

Index of every page: https://docs.trykintsugi.com/llms.txt
