# Add Customs Product

This operation creates a customs product and returns its identifier. Use this identifier in shipment APIs to prefill customs item fields (HS tariff code, origin country, unit price, weight, quantity).
> Note: Support for this capability in the Rate Shipment and Create Shipment APIs is under active development. It is targeted for upcoming release.

Endpoint: POST /api/v1/customsproduct
Version: 1.0.0
Security: bearerAuth

## Request fields (application/json):

  - `description` (string, required)
    Description of the product.
    Example: "This is description of the product"

  - `originCountryCode` (string, required)
    ISO country code of the product origin.
    Example: "US"

  - `hsTariffCode` (string)
    Harmonized System (HS) tariff code.
    Example: "hsc01"

  - `quantity` (integer, required)
    Quantity of the product.
    Example: 1

  - `unitPrice` (number, required)
    Unit price of this item.
    Example: 10

  - `itemId` (string)
    Unique identifier for the commodity.
    Example: "item1"

  - `url` (string)
    Product page URL for this item.
    Example: "abc"

  - `productDimensions` (object, required)
    Physical details of the product (Item).

  - `productDimensions.length` (number)
    Length of the product.
    Example: 10

  - `productDimensions.height` (number)
    Height of the product.
    Example: 10

  - `productDimensions.width` (number)
    Width of the product.
    Example: 10

  - `productDimensions.dimUnit` (string)
    Unit of measurement for dimensions.
    Enum: "IN", "CM"

  - `weightUnit` (string)
    Unit of weight.
    Enum: "OZ", "GM"

  - `weight` (number)
    Weight of the product(Item).
    Example: 10

## Response 201 fields (application/json):

  - `customsProductId` (string)
    The generated customs product identifier that can be used as customs items for international shipments. The items/properties defined here can only be used in the [customsItems](https://docs.sendpro360.pitneycloud.com/openapi/shipping/shipment/createshipmentv2#shipment/createshipmentv2/t=request&path=&oneof=0/customs/customsitems) array.
    Example: "cp00000922010"

## Response 400 fields (application/json):

  - `errors` (array)
    List of errors.

  - `errors.errorCode` (string)
    This error can be validation_error or internal_error or not_found or already_exists
    Example: "validation_error"

  - `errors.errorDescription` (string)
    The HTTP 400 Bad Request response status code indicates that the server cannot process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
    Example: "Customs Product not found"

## Response 401 fields (application/json):

  - `message` (string, required)
    This is HTTP 401 Unauthorized response status code, that indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource.


## Response 500 fields
