{"method":"POST","path":"https://api.revcent.com/v2/products","summary":"Create A Product","description":"Create a product. View markdown documentation at https://revcent.com/documentation/markdown/mcp/operation/CreateProduct.md for an in-depth overview of this operation.","operationId":"CreateProduct","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The product name.","type":"string"},"description":{"description":"The product description.","type":"string"},"description_html":{"description":"The product description in HTML format.","type":"string"},"enabled":{"description":"Whether the product is currently enabled.","type":"boolean"},"sku":{"description":"The product SKU.","type":"string"},"url":{"description":"The product URL at a third party shop.","type":"string"},"image_url":{"description":"The product image URL. Only jpg/jpeg/png supported. RevCent will download, compress and host the image within the RevCent CDN for optimal delivery. A product image can then be used in email templates, and are accessible via the RevCent CDN url. This should be a direct URL to an image file, not a webpage. If the product is associated with a third party shop, it is recommended to set this property to the product image from the third party shop.","type":"string"},"internal_id":{"description":"The product internal ID. If the product is associated with a third party shop, it is extremely important to set this property to the ID of the product from the third party shop.","type":"string"},"price":{"description":"The product price.","type":"number"},"price_trial":{"description":"The products' trial expiration price. Default is the product price.","type":"number"},"price_subscription":{"description":"The products subscription renewal price. Default is the product price.","type":"number"},"trial_shipping_setting":{"description":"If the product is a trial, the shipping settings. Default is trial_expiration.","type":"string","enum":["trial_expiration","trial_creation","both_trial_expiration_creation"]},"trial_days":{"description":"The total number of days a trial will last if the product is purchased.","type":"integer"},"cost":{"type":"number","format":"float","description":"Your estimated cost for the product. This is used for your internal tracking and reporting in RevCent and is not required to be sent."},"is_shippable":{"description":"Indicates whether the product is shippable.","type":"boolean"},"shipping_attributes":{"type":"object","additionalProperties":false,"description":"Contains shipping details for the product.","properties":{"weight":{"description":"The product weight in pounds.","type":"string"},"length":{"description":"The product length in inches.","type":"string"},"width":{"description":"The product width in inches.","type":"string"},"height":{"description":"The product height in inches.","type":"string"},"fulfillment_account":{"type":"string","description":"The 20 character ID of the fulfillment account associated with the product. This is required if the product is shippable. Get a list of user fulfillment accounts using the GetFulfillmentAccounts operation, and assign the appropriate fulfillment account to the product when creating or editing a product."}}},"additional_id":{"description":"An array of additional IDs for the product.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the additional ID.","type":"string"},"value":{"description":"The value of the additional ID.","type":"string"}}}},"third_party_shop":{"type":"string","description":"The 20 character ID of the third party shop associated with the product. This is required if the product is associated with a third party shop."},"subscription_profile":{"type":"string","description":"The 20 character ID of the subscription profile associated with the product. This is required if the product is a subscription product. Get a list of subscription profiles using the GetSubscriptionProfiles operation, and assign the appropriate subscription profile to the product when creating or editing a product."},"parent_product":{"type":"string","description":"The ID of the parent product associated with the product, if the product is a child product. This value can be the internal_id or a 20 character RevCent ID of an existing product."},"is_bundle_product":{"description":"Indicates whether the product is a bundle of other products.","type":"boolean"},"bundle_settings":{"description":"The specific bundle settings, if this is a bundle product.","type":"object","additionalProperties":false,"properties":{"products":{"description":"An array of products included in the bundle.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20},"quantity":{"description":"The quantity for the specific product within the bundle.","type":"integer"},"price":{"description":"The price for the specific product within the bundle.","type":"number","format":"float"}}}},"unbundle_method":{"description":"How the bundle product will be unbundled. Either on sale or at fulfillment.","type":"string","enum":["unbundle_at_fulfillment","unbundle_at_sale"]}}},"product_group":{"description":"An array of product group IDs the product is within.","type":"array","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20}},"google_product_category":{"type":"string","description":"The Google product category ID for the product. This is used for product listings including agentic commerce such as ChatGPT Instant Checkout. The product category should be the most specific category possible that accurately describes the product. A list of valid product categories with ID's can be found here: <a href=\"https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt\" target=\"_blank\">https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt</a>"},"msrp":{"type":"number","description":"The MSRP of the product. Optional, meant for display purposes."},"is_price_sale":{"type":"boolean","description":"Whether the product is currently on sale. Optional, meant for display purposes."},"price_sale":{"type":"number","description":"The sale price of the product, if is_price_sale is true. Optional, meant for display purposes. Does not affect the actual price used for transactions, which is determined by the price field."},"is_discount":{"type":"boolean","description":"Whether the product is currently discounted. Optional, meant for display purposes."},"discount_rate":{"type":"number","description":"The discount rate of the product, if is_discount is true. Optional, meant for display purposes."},"in_stock":{"type":"boolean","description":"Whether the product is currently in stock. Optional, meant for display purposes."},"stock":{"type":"integer","description":"The current stock quantity of the product. Optional, meant for display purposes."},"brand":{"type":"string","description":"The product brand. Optional, meant for display purposes."},"material":{"type":"string","description":"The product material. Optional, meant for display purposes."},"age_group":{"type":"string","description":"The product age group. Optional, meant for display purposes.","enum":["adult","kids","toddler","infant","newborn"]},"condition":{"type":"string","description":"The product condition. Optional, meant for display purposes.","enum":["new","used","refurbished"]},"rating_value":{"type":"number","format":"float","description":"The product rating value. Optional, meant for display purposes. If provided, should be a value between 0 and 5."},"rating_count":{"type":"integer","description":"The product rating count. Optional, meant for display purposes."},"upc":{"type":"string","description":"The product UPC. Recommended if wishing to list via agentic commerce."},"isbn":{"type":"string","description":"The product ISBN."},"asin":{"type":"string","description":"The product ASIN."},"mpn":{"type":"string","description":"The product MPN."},"ean":{"type":"string","description":"The product EAN."}},"required":["name","price","sku"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time"},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1]},"product_id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20},"result":{"type":"string"}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time"},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","enum":[0]},"error_code":{"description":"The specific error code.","type":"string"},"message":{"description":"A human readable description of the error.","type":"string"},"result":{"description":"A description of the API call result.","type":"string"}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}