---
title: "Create product"
method: POST
path: "/v1/products"
tags: ["Products"]
---

# Create product

`POST /v1/products`

The Create Product API allows users to manually create a new product
    in the system. This includes specifying product details such as category,
    subcategory, and tax exemption status, etc. You can
    retrieve supported categories and subcategories from the
    [GET /products/categories endpoint](/reference/api/products/get-product-categories),
    or browse the full catalog with descriptions and examples in the
    [Product Categories guide](/docs/guides/product-categories)

## Headers

- `x-organization-id` string, nullable, required — The unique identifier for the organization making the request

## Request body

- ProductCreateManual
  - `external_id` string, required — A unique external identifier for the product.
  - `name` string, required — The name of the product.
  - `description` string, nullable — A description of the product.
  - `status` 'APPROVED' | 'PARTIALLY_APPROVED' | 'PENDING' | 'ARCHIVED'
  - `product_category` 'Digital' | 'Misc' | 'Physical' | 'Services', required — Top-level tax category for a product.
  - `product_subcategory` union, required — The subcategory of the product.
    - 'UNKNOWN' | 'SAAS' | 'DIGITAL_GENERAL' | 'B2B_SAAS' | 'SOFTWARE_ON_PERSONAL_PROPERTY' | 'SOFTWARE_DOWNLOADED' | 'CUSTOM_SOFTWARE_ON_PERSONAL_PROPERTY' | 'CUSTOM_SOFTWARE_DOWNLOADED' | 'CUSTOMIZATION_OF_SOFTWARE' | 'B2C_SAAS' | 'IAAS' | 'SERVICE_GENERAL' | 'PROFESSIONAL_SERVICE' | 'TANGIBLE_PROPERTY_SERVICE' | 'REAL_PROPERTY_SERVICE' | 'BUSINESS_SERVICE' | 'PERSONAL_SERVICE' | 'AMUSEMENT_SERVICE' | 'MEDICAL_SERVICES' | 'SECURITY_SERVICES_ELECTRONIC_MONITORING' | 'FACILITY_MAINTENANCE_REAL_PROPERTY_LABOR_ONLY' | 'COMMERCIAL_RENOVATION_CAPITAL_IMPROVEMENT_LABOR' | 'COMMERCIAL_CONSTRUCTION_EXISTING_BUILDINGS_LABOR' | 'PHYSICAL_GENERAL' | 'GENERAL_CLOTHING' | 'CATERING' | 'GROCERY_FOOD' | 'LEASES_AND_RENTALS_MOTOR_VEHICLES' | 'LEASES_AND_RENTALS_TANGIBLE_MEDIA_PROPERTY' | 'MACHINERY' | 'RAW_MATERIALS' | 'UTILITIES_FUEL' | 'MEDICAL_DEVICES' | 'MEDICINES' | 'NEWSPAPERS' | 'PERIODICALS' | 'GENERAL_OCCASIONAL_SALES' | 'MOTOR_VEHICLES_OCCASIONAL_SALES' | 'GENERAL_OPTIONAL_MAINTENANCE_CONTRACTS' | 'PARTS_PURCHASED_OPTIONAL_MAINTENANCE_CONTRACTS' | 'GENERAL_POLLUTION_CONTROL_EQUIPMENT' | 'GENERAL_TRADE_INS' | 'FOOD_VENDING_MACHINE' | 'MERCHANDISE_VENDING_MACHINE' | 'SUPPLEMENTS' | 'FEMININE_HYGIENE' | 'ORAL_HYGIENE' | 'BEVERAGE_NUTRITION_LABEL_ENERGY_SHOTS_AND_DRINKS' | 'DIETARY_SUPPLEMENTS_SUPPLEMENT_FACTS_LABEL_RETAIL' | 'ADVERTISING_MEDIA_INSERT_DISTRIBUTED_BY_NEWSPAPER' | 'ADVERTISING_MEDIA_INSERT_DISTRIBUTED_BY_MAIL_PACKAGE' | 'MAINTENANCE_SERVICES_MATERIALS' | 'NUTRITION_BARS' | 'SHIPPING' | 'GIFT_CARD' | 'CREDIT_CARD_SURCHARGES' | 'CREDIT_CARD_FEES' | 'MISCELLANEOUS_EXEMPT' | 'DISCOUNT' | 'GIFT_WRAPPING' | 'HANDLING' | 'TAX' | 'DANCE_LESSONS'
    - string
  - `tax_exempt` boolean, required — Specifies whether the product is tax-exempt.
  - `source` 'BIGCOMMERCE' | 'BESTBUY' | 'BUNNY' | 'CHARGEBEE' | 'SHOPIFY' | 'SHOPLINE' | 'ECWID' | 'STRIPE' | 'AMAZON' | 'TIKTOK' | 'CUSTOM' | 'UNKNOWN' | 'IMPORT' | 'ZUORA' | 'APIDECK' | 'QUICKBOOKS' | 'API' | 'APPLE_APP_STORE' | 'GOOGLE_APP_STORE' | 'WALMART' | 'PAYPAL' | 'NETSUITE' | 'XERO' | 'MAXIO' | 'RECURLY' | 'SALESFORCE' | 'ETSY' | 'EBAY' | 'WIX' | 'SQUARESPACE' | 'WOOCOMMERCE' | 'MAGENTO' | 'MACYS' | 'BILLING_PLATFORM' | 'DEEL' | 'RIPPLING' | 'GUSTO' | 'FACEBOOK' | 'OTHER' | 'ORDWAY' | 'INSTAGRAM' | 'PINTEREST' | 'WAYFAIR' | 'WISH' | 'POS' | 'TARGET' | 'NEWEGG' | 'GROUPON' | 'GOOGLE_EXPRESS' | 'NOCNOC' | 'MERCADO_LIBRE' | 'MODALYST' | 'NORDSTROM' | 'FAIRE' | 'SHOPWARE' | 'ZOHO' | 'SAGE-INTACCT' | 'AIRWALLEX' | 'ORB' | 'ZENSKAR' | 'MICROSOFT_DYNAMICS_365' | 'KICKSTARTER' | 'INTERNAL_ERP' | 'RILLET' | 'CAMPFIRE' | 'KILL_BILL' | 'PROVISION' | 'VERTEX_O_SERIES' | 'CHECKOUTCHAMP' | 'DUALENTRY' | 'ODOO' | 'BILL_COM' | 'INTUIT_ENTERPRISE_SUITE' | 'ACUMATICA'

## Response `200`

Successfully created product

- ProductRead
  - `id` string, required
  - `external_id` string, required
  - `sku` string[], nullable, required
  - `code` string, required
  - `name` string, required
  - `description` string, nullable, required
  - `status` 'APPROVED' | 'PARTIALLY_APPROVED' | 'PENDING' | 'ARCHIVED', required
  - `product_category` string, required — Main category of the product. For example, Physical, Digital, etc. You can retrieve supported categories from [GET /products/categories endpoint](/reference/api/products/get-product-categories)
  - `product_subcategory` string, required — Subcategory of the product. For example, General Clothing, UNKNOWN, etc. You can retrieve supported subcategories from [GET /products/categories endpoint](/reference/api/products/get-product-categories)
  - `tax_exempt` boolean, required
  - `source` 'BIGCOMMERCE' | 'BESTBUY' | 'BUNNY' | 'CHARGEBEE' | 'SHOPIFY' | 'SHOPLINE' | 'ECWID' | 'STRIPE' | 'AMAZON' | 'TIKTOK' | 'CUSTOM' | 'UNKNOWN' | 'IMPORT' | 'ZUORA' | 'APIDECK' | 'QUICKBOOKS' | 'API' | 'APPLE_APP_STORE' | 'GOOGLE_APP_STORE' | 'WALMART' | 'PAYPAL' | 'NETSUITE' | 'XERO' | 'MAXIO' | 'RECURLY' | 'SALESFORCE' | 'ETSY' | 'EBAY' | 'WIX' | 'SQUARESPACE' | 'WOOCOMMERCE' | 'MAGENTO' | 'MACYS' | 'BILLING_PLATFORM' | 'DEEL' | 'RIPPLING' | 'GUSTO' | 'FACEBOOK' | 'OTHER' | 'ORDWAY' | 'INSTAGRAM' | 'PINTEREST' | 'WAYFAIR' | 'WISH' | 'POS' | 'TARGET' | 'NEWEGG' | 'GROUPON' | 'GOOGLE_EXPRESS' | 'NOCNOC' | 'MERCADO_LIBRE' | 'MODALYST' | 'NORDSTROM' | 'FAIRE' | 'SHOPWARE' | 'ZOHO' | 'SAGE-INTACCT' | 'AIRWALLEX' | 'ORB' | 'ZENSKAR' | 'MICROSOFT_DYNAMICS_365' | 'KICKSTARTER' | 'INTERNAL_ERP' | 'RILLET' | 'CAMPFIRE' | 'KILL_BILL' | 'PROVISION' | 'VERTEX_O_SERIES' | 'CHECKOUTCHAMP' | 'DUALENTRY' | 'ODOO' | 'BILL_COM' | 'INTUIT_ENTERPRISE_SUITE' | 'ACUMATICA', required
  - `connection_id` string, nullable, required
  - `classification_failed` boolean, nullable, required
  - `store_name` string, nullable
  - `source_taxonomy_type` string, nullable
  - `source_taxonomy_code` string, nullable
  - `source_taxonomy_id` string, nullable
  - `source_taxonomy_name` string, nullable
  - `source_taxonomy_categories` object[], nullable
  - `source_taxonomy_metadata` object, nullable

## Other responses

- `401` — Unauthenticated request.
- `422` — Validation error
- `500` — Internal server error

## Changes

- **2026-08-29** `6ba4f4c774c3` — 74 breaking, 15 warning, 30 info
  - added the new required `header` request parameter `x-organization-id`
  - removed the enum value `ADVERTISING_MEDIA_INSERT_DISTRIBUTED_BY_MAIL_PACKAGE` of the request property `product_subcategory`
  - removed the enum value `ADVERTISING_MEDIA_INSERT_DISTRIBUTED_BY_NEWSPAPER` of the request property `product_subcategory`
  - removed the enum value `AMUSEMENT_SERVICE` of the request property `product_subcategory`
  - …115 more
  - …this revision’s changelog is incomplete

[Change history](https://skmtc.dev/trykintsugi/apis/tax-platform/changes/v1/products/post.md)

---

[API](https://skmtc.dev/trykintsugi/apis/tax-platform.md) · [All operations](https://skmtc.dev/trykintsugi/apis/tax-platform/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/trykintsugi/tax-platform/revisions/6ba4f4c774c3/schema)
