> ## Documentation Index
> Fetch the complete documentation index at: https://developer.transactbridge.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Product

> Products define the specific goods or services the partner is offering to its customers. Products can be physical goods, digital goods, SaaS subscriptions, etc. The products also have compliance data embedded within them, which allows proper tax calculations per item based.

Products are not mandatory for any kind of partner, but using products to create a catalogue and then using those product objects to create sessions and subscriptions allows efficient operations.

This API is used to create a product for both physical goods, digital goods and subscription based services.

A Product object accommodates all the compliance data for calculating indirect taxes as well for physical products.



## OpenAPI

````yaml /api-reference/Products/product.json post /product/v1.0/createProduct
openapi: 3.0.3
info:
  title: Product
  description: API's to add and get product information.
  version: 1.0.0
servers:
  - url: https://sandbox-api.transactbridge.com
    description: Sandbox Environment
  - url: https://api.transactbridge.com
    description: Production Environment
security:
  - ApiKeyAuth: []
    SignatureAuth: []
paths:
  /product/v1.0/createProduct:
    post:
      tags:
        - Product
      summary: Create Product
      description: >-
        Products define the specific goods or services the partner is offering
        to its customers. Products can be physical goods, digital goods, SaaS
        subscriptions, etc. The products also have compliance data embedded
        within them, which allows proper tax calculations per item based.


        Products are not mandatory for any kind of partner, but using products
        to create a catalogue and then using those product objects to create
        sessions and subscriptions allows efficient operations.


        This API is used to create a product for both physical goods, digital
        goods and subscription based services.


        A Product object accommodates all the compliance data for calculating
        indirect taxes as well for physical products.
      operationId: createProduct
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - referenceId
                - name
              properties:
                referenceId:
                  type: string
                  maxLength: 128
                  description: >-
                    Your unique ID for the product. Send it as
                    items[].productReferenceId when you create a billing session
                    or subscription. Max 128 characters.
                name:
                  type: string
                  description: >-
                    Product name. Used as the item name if the billing session
                    or subscription item doesn't send one.
                description:
                  type: string
                  description: >-
                    Product description. Used as the item description if the
                    item doesn't send one.
                price:
                  type: number
                  description: >-
                    Product price. In a billing session it replaces the item
                    amount when isStaticQuotePrice is true.
                currCode:
                  type: string
                  description: Currency of price. Defaults to your settlement currency.
                isStaticQuotePrice:
                  type: boolean
                  description: >-
                    If true, a billing session uses the product price instead of
                    the amount in the request. Can only be set when you create
                    the product.


                    isStaticQuotePrice can't be changed through Update Product,
                    so set them when you create the product.
                taxIncPrice:
                  type: boolean
                  description: >-
                    If true, price already includes tax. Needed for
                    tax-inclusive billing sessions that use a fixed product
                    price. Can only be set when you create the product.

                     taxIncPrice can't be changed through Update Product, so set them when you create the product.
                availableStock:
                  type: number
                  description: >-
                    Units in stock. A billing session is rejected if the
                    quantity is more than the stock (only when
                    isStaticQuotePrice is false).
                active:
                  type: boolean
                  description: >-
                    true makes the product usable. Inactive products are
                    rejected in billing sessions and subscriptions.
                shippable:
                  type: boolean
                  description: >-
                    true for physical goods. One billing session can't have both
                    shippable and non-shippable products.
                hsnCode:
                  type: string
                  description: >-
                    HSN code of the product. Sets the tax category for the
                    product.Required if shippable is true
                userTaxId:
                  type: string
                  description: >-
                    ID of the tax category used to calculate tax on this
                    product.
                isKycEnabled:
                  type: boolean
                  description: >-
                    If true, the customer must complete KYC before paying for
                    this product.
                thumbnail:
                  type: string
                  format: uri
                  description: >-
                    Image URL. Used as the item image if the item doesn't send
                    one.
                images:
                  type: array
                  items:
                    type: string
                  description: >-
                    List of image URLs. Used if there is no thumbnail and the
                    item doesn't send an image.
                meta:
                  type: object
                  properties:
                    param1:
                      type: string
                      maxLength: 256
                      description: Custom field for your own use. Max 256 characters each.
                    param2:
                      type: string
                      maxLength: 256
                      description: Custom field for your own use. Max 256 characters each.
                    param3:
                      type: string
                      maxLength: 256
                      description: Custom field for your own use. Max 256 characters each.
                shippableData:
                  type: object
                  description: If shippable is true then shippable data is mandatory
                  additionalProperties: false
                  properties:
                    partNumber:
                      type: string
                      description: Part number of the product.
                    eccn:
                      type: string
                      description: Export Control Classification Number.
                    hsCode:
                      type: string
                      description: HS code of the product.
                    weight:
                      type: string
                      description: Weight of the product.
                    weightUnit:
                      type: string
                      enum:
                        - KG
                        - G
                        - LB
                        - OZ
                    length:
                      type: string
                      description: Length of the product.
                    width:
                      type: string
                      description: Width of the product.
                    height:
                      type: string
                      description: Height of the product.
                    dimensionUnit:
                      type: string
                      enum:
                        - CM
                        - MM
                        - IN
      responses:
        '200':
          description: Contains the product object created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/createProduct'
components:
  schemas:
    createProduct:
      type: object
      properties:
        status:
          type: string
          description: The response from the API
        sub_status:
          type: string
          description: Used for internal purposes only
        data:
          type: object
          description: Contains the product object created.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Merchant API Key
    SignatureAuth:
      type: apiKey
      in: header
      name: x-signature
      description: Generated request signature

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.