1. Catalog
  2. Create SKUs
POST
/skus
curl --request POST \
     --url https://sandbox.masonhub.co/dragonfly-cosmetics-demo/api/v1/skus \
     --header 'Authorization: Bearer <token>' \
     --header 'Content-Type: application/json' \
     --data '{
  "customer_identifier": "<string>",
  "customer_bar_code": "<string>",
  "vendor_style": "<string>",
  "brand_name": "<string>",
  "product_name": "<string>",
  "product_category": "<string>",
  "dim_weight": 123.45,
  "dim_length": 123.45,
  "dim_width": 123.45,
  "dim_height": 123.45,
  "vendor_bar_code": "<string>",
  "bar_codes": "<value>",
  "product_sub_category": "<string>",
  "product_description": "<string>",
  "dim_volume": 123.45,
  "unit_cost": 123.45,
  "price": 123.45,
  "pick_style": "<string>",
  "special_instructions": "<string>",
  "is_kit": true,
  "kit_skus": []
}'

Create one or more SKUs in the MasonHub catalog system. SKUs are the foundation of your product catalog and contain all the information needed for storage, fulfillment, and shipping.

SKUs can be created individually or in batches. For large catalog uploads, consider batching up to 100 SKUs per request.

​
Request Body

The request body accepts an array of SKU objects. Each SKU object supports the following fields:

​
Required Fields

customer_identifier
required
string

Unique customer SKU identifier. This is your primary reference for the SKU.

customer_bar_code
required
string

Primary customer-assigned barcode for warehouse scanning.

vendor_style
required
string

Vendor style code. Must be 1-40 characters.

brand_name
required
string

Brand name for the product.

product_name
required
string

Product name/title.

product_category
required
string

Product category classification (e.g., “Apparel”, “Electronics”).

dim_weight
required
number

Weight in pounds.

dim_length
required
number

Length in inches.

dim_width
required
number

Width in inches.

dim_height
required
number

Height in inches.

​
Optional Fields

vendor_bar_code
string

Vendor’s original barcode.

bar_codes
string[]

Additional barcodes for the SKU. Useful for multiple UPC codes or regional variations.

product_sub_category
string

Product subcategory for finer classification.

product_description
string

Detailed product description.

dim_volume
number

Volume in cubic inches. Calculated automatically if not provided.

unit_cost
number

Unit cost for the SKU.

price
number

Retail price for the SKU.

pick_style
string

Pick strategy for inventory allocation. Options:

  • FIFO - First In, First Out (default)
  • FEFO - First Expired, First Out
  • LIFO - Last In, First Out
special_instructions
string

Special handling instructions for warehouse operations.

is_kit
boolean

Whether this SKU is a kit composed of multiple child SKUs.

kit_skus
array

Array of component SKUs for kits. Each item requires customer_identifier and quantity.

curl -X POST "https://app.masonhub.co/{account}/api/v1/skus" \
  -H "Authorization: Bearer your_jwt_token" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "customer_identifier": "pants4523",
      "customer_bar_code": "2345687902",
      "vendor_bar_code": "39485627389",
      "bar_codes": ["85962198623", "3459189485324"],
      "vendor_style": "FP-pants",
      "brand_name": "Freddie'\''s Pants",
      "product_name": "Fancy Pants",
      "product_category": "Apparel",
      "product_sub_category": "pants",
      "product_description": "Very fancy pants with stripes",
      "dim_weight": 0.75,
      "dim_length": 4,
      "dim_width": 2.2,
      "dim_height": 0.5,
      "unit_cost": 80,
      "price": 160
    }
  ]'
{
  "records_submitted": 1,
  "records_processed": 1,
  "records_failed": 0,
  "records_succeeded": 1,
  "results": [
    {
      "system_id": "550e8400-e29b-41d4-a716-446655440000",
      "customer_identifier": "pants4523",
      "status": "success"
    }
  ]
}

​
Kit SKUs

MasonHub supports kit SKUs - parent SKUs composed of multiple child SKUs. There are two types:

  • Pre-built Kits

  • Kit-to-Ship

Characteristics:

  • Already assembled at the warehouse
  • Child units not available for individual sale
  • Faster processing and shipping
  • Single inventory tracking unit

Best for: Gift sets, promotional bundles, pre-configured packages

​
Kit SKU Example

{
  "customer_identifier": "kit00001",
  "customer_bar_code": "1234567890",
  "vendor_style": "KIT-outfit",
  "brand_name": "Freddie's",
  "product_name": "Shirt and Pants Combo",
  "product_category": "Apparel",
  "product_description": "Complete outfit kit",
  "is_kit": true,
  "kit_skus": [
    {
      "customer_identifier": "shirt-001",
      "quantity": 1
    },
    {
      "customer_identifier": "pants-001",
      "quantity": 1
    }
  ],
  "dim_weight": 1.25,
  "dim_length": 12,
  "dim_width": 10,
  "dim_height": 3
}

Child SKUs must exist in the catalog before creating a kit SKU that references them.

​
Barcode Management

SKUs support multiple barcode associations:

FieldDescription
customer_bar_codePrimary customer barcode (required, must be unique)
vendor_bar_codeVendor’s barcode (optional, must be unique)
bar_codesArray of additional barcodes (all must be unique)

All barcodes must be globally unique across the system. The API will return a 409 error if duplicate barcodes are detected.

​
Best Practices

​
Next Steps

After setting up your catalog, proceed to: