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, or browse the full catalog with descriptions and examples in the Product Categories guide.

Idempotent on ``(organization_id, external_id, source)`` for connectionless
creates (CP-4726): a re-POST of an existing identity returns ``200``. A live
match is unchanged; a previously deleted match is revived (status returns to
``PENDING``). Use PUT to update fields.
post/v1/products

Request

  • Base URL
    https://api.trykintsugi.com
  • URL
    https://api.trykintsugi.com/v1/products
  • Auth
    API key in header X-API-KEY

Headers

x-organization-idstring nullable required

The unique identifier for the organization making the request

Request body

external_idstring required

A unique external identifier for the product.

namestring required

The name of the product.

descriptionstring nullable

A description of the product.

status'APPROVED' | 'PARTIALLY_APPROVED' | 'PENDING' | 'ARCHIVED'
product_category'Physical' | 'Digital' | 'Misc' | 'Services' required

Top-level tax category for a product.

product_subcategorystring required

Tax subcategory display label within the category (e.g. 'General Clothing'). Together with product_category it resolves to a product tax code; an unrecognized pair on a new product returns 400. List supported values from GET /products/categories.

tax_exemptboolean 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' | 'FRESHBOOKS' | 'OTHER' | 'ORDWAY' | 'INSTAGRAM' | 'PINTEREST' | 'WAYFAIR' | 'WISH' | 'POS' | 'TARGET' | 'NEWEGG' | 'GROUPON' | 'GOOGLE_EXPRESS' | 'NOCNOC' | 'MERCADO_LIBRE' | 'MODALYST' | 'NORDSTROM' | 'FAIRE' | 'FRISBII_BILLING' | 'SHOPWARE' | 'ZOHO' | 'ZOHO_BOOKS' | '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' | 'PLENTYONE' | 'HYPERLINE' | 'OPENMETER' | 'SALEOR'

Example request

{
  "product_subcategory": "General Clothing"
}

Response

An existing product matched on external_id and source; no new product was created. A live match is returned unchanged. A previously deleted match is revived and re-enters classification (its status returns to PENDING), so it may differ from its pre-deletion state.

idstring required
external_idstring required
skustring[] nullable required
codestring required
namestring required
descriptionstring nullable required
status'APPROVED' | 'PARTIALLY_APPROVED' | 'PENDING' | 'ARCHIVED' required
product_categorystring required

Main category of the product. For example, Physical, Digital, etc. You can retrieve supported categories from GET /products/categories endpoint

product_subcategorystring required

Tax subcategory display label of the product (e.g. 'General Clothing'). List supported values from GET /products/categories.

tax_exemptboolean 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' | 'FRESHBOOKS' | 'OTHER' | 'ORDWAY' | 'INSTAGRAM' | 'PINTEREST' | 'WAYFAIR' | 'WISH' | 'POS' | 'TARGET' | 'NEWEGG' | 'GROUPON' | 'GOOGLE_EXPRESS' | 'NOCNOC' | 'MERCADO_LIBRE' | 'MODALYST' | 'NORDSTROM' | 'FAIRE' | 'FRISBII_BILLING' | 'SHOPWARE' | 'ZOHO' | 'ZOHO_BOOKS' | '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' | 'PLENTYONE' | 'HYPERLINE' | 'OPENMETER' | 'SALEOR' required
connection_idstring nullable required
classification_failedboolean nullable required
store_namestring nullable
source_taxonomy_typestring nullable
source_taxonomy_codestring nullable
source_taxonomy_idstring nullable
source_taxonomy_namestring nullable
source_taxonomy_categoriesobject[] nullable
source_taxonomy_metadataobject nullable

Example response

{
  "product_subcategory": "General Clothing"
}

Changes

    • breaking

      removed subschema #2 from the request property anyOf list

    • breaking

      the request property type changed from no type to string

    • warning

      added the new SALEOR enum value to the response property for the response status

    • warning

      added the new SALEOR enum value to the response property for the response status

    • info

      added the new SALEOR enum value to the request property