---
title: "Add Product"
method: POST
path: "/v4/products"
tags: ["Products"]
---

# Add Product

`POST /v4/products`

Add a new product to the system. With this endpoint, you can add product details in the request body, allowing the system to store them in the database, making the product available for further use in your shipment requests.

## Request body

- object — Product
  - `SkuCode` string, required — A unique Stock Keeping Unit (SKU) code assigned to the product. This code is essential for tracking inventory, helping users identify specific products easily.
  - `Description` string, required — A brief summary providing details about the product, outlining its features, uses, and any pertinent information that helps users understand the product. <br /> <br />***Note**: If you use the data of the stored product in your create shipment requests, then this description will be used as the item description for customs purposes, detailing the specific item being shipped.*
  - `Value` number, double, required — The commercial value of the product. This field is important for inventory valuation and pricing strategies.
  - `Weight` string, required — The weight of the individual product in the unit of measure specified in the **WeightUnitOfMeasure** field. <br><br>***Note**: The maximum allowed weight is 1000 grams. For dutiable shipments, the minimum allowed weight is 0.001 Kg.*
  - `HSCode` string, nullable — The Harmonized System (HS) code used by customs to determine potential duties and taxes for the product. This code can be 6, 8, or 13 alphanumeric characters, depending on specific services or destinations. Some countries may also use the HS codes of other character lengths, such as 10 characters. <br><br>***Note**: Characters like space and dot are supported.*
  - `CountryOfOrigin` string, nullable — An abbreviation representing the country where the product was manufactured or produced, following the ISO 3166-1 alpha-2 standard, for example, "GB" for the United Kingdom. This information is important for customs declarations and compliance with import/export regulations.
  - `CurrencyCode` string, required — An abbreviation representing the 3 letter ISO currency code in which the product's **Value** is expressed (for example, "GBP" for British pounds, "EUR" for euros). This is essential for financial transactions and international trade.
  - `WeightUnitOfMeasure` 'KG' | 'Grams' — The unit of measurement for the weight provided, such as the product's **Weight**, indicating whether the weight is specified in kilograms (KG) or grams (G), ensuring clarity for shipping calculations.<br><br>***Note**: By default, this field is set to KG.*</br></br>
  - `ManufactureProductId` string, nullable — A unique manufacturer identifier for the item being shipped, for example, proprietary manufacturer code, model number, or internal code. <br><br>This field is used to reference the shipped item and supports carrier-specific requirements.
  - `StandardisedProductId` string, nullable — A globally recognised product identifier for the item being shipped, for example, GTIN, EAN, and UPC. <br><br>This field is used for standardised item identification and supports carrier-specific requirements for customs and risk assessment.
  - `Hazmat` object — Specifies the details whether the product is classified as hazardous material. This designation impacts shipping regulations and handling procedures.
    - `UNCode` string, nullable — The United Nations (UN) code assigned to the hazardous material, which denotes its classification for transport. This code is critical for safety and compliance during shipping. <br><br>***Note**: This field must be populated only for domestic shipments using class 9 dangerous goods.If provided, then **Quantity** and **UnitOfMeasure** must also be specified.*
    - `ProperShippingName` string, nullable — The official name designated for the hazardous material as required by regulations. This name is used to inform handlers of the nature of the hazard during transport.
    - `Class` string, required — The class number of the hazardous material as per UN regulations, indicating the potential risk associated with the product.
    - `Id8000Category` string, nullable — A specific category designation used for certain hazardous materials classified under Class 9, providing additional regulatory requirements for handling and transport. <br />Available values are the following: <br /><ul><li>Medicines</li><li>Perfume/Aftershave</li><li>Nail Varnish</li><li>Toiletry or Medicinal Aerosols</li></ul>
    - `Quantity` number, double, nullable — The quantity of the hazardous material in the specified **UnitOfMeasure**. This information is vital for compliance with shipping regulations pertaining to hazardous materials. <br><br>***Note**: This field is only required if **UnitOfMeasure** and **UNCode** is specified.*
    - `UnitOfMeasure` 'NONE' | 'L' | 'KG' — The unit of measurement for the quantity of hazardous material, for example, litres (for liquids) or kilograms (for solids). This provides clarity regarding the amount of hazardous goods present.<br><br>***Note**: This field is only required if **Quantity** and **UNCode** is specified.* </br></br>
    - `EmergencyActionCode` string, nullable — A code providing emergency response instructions for handling hazardous materials during transport.This code is critical for safety and risk management.
    - `HazchemNumber` string, nullable — A number that indicates the type of hazardous material and the precautions necessary for its transport. This helps in emergency situations through quick identification.
    - `SpecialistAdviceContactNumber` string, nullable — A contact number for expert advice regarding the handling and transport of hazardous materials. This information is crucial during emergencies or if unusual situations arise. <br /> <br />***Note:** If this information is not provided and the hazardous material is used in your **Create Shipment** request, then the contact number will be sent from the customer shipping account record.*

## Response `200`

The product was added successfully.

- AddProductResponse — AddProduct Response
  - `SkuCode` string, required — A unique Stock Keeping Unit (SKU) code assigned to the product. This code is essential for tracking inventory, helping users identify specific products easily.

## Other responses

- `400` — Invalid request response.
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error

---

[API](https://skmtc.dev/intersoftsapient/apis/sapient-core-api.md) · [All operations](https://skmtc.dev/intersoftsapient/apis/sapient-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/intersoftsapient/sapient-core-api/revisions/3315ad0b5875/schema)
