Bulk SKU Creation API
Inventory APIs
Bulk SKU Creation API
Create multiple SKUs (Stock Keeping Units) in your inventory in a single request
Bulk SKU Creation API
Documentation Index
Fetch the complete documentation index at: https://docs.pazy.io/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Bulk SKU Creation API lets you add up to 100 SKUs in a single request. Each SKU can have a name and an optional item code. The item code is especially useful for matching line items in purchase orders to your inventory catalog.Authentication
All requests require an API key in the request headers. Headers:Request
Content-Type:application/json
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
skus | array | Yes | List of SKUs to create. Minimum 1, maximum 100 items per request |
SKU Object
Each item in theskus array must contain:
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Display name of the SKU (1–128 characters) |
itemCode | string | No | Item code for the SKU (1–256 characters) |
unit | string | No | Unit of measurement, e.g. pcs, kg, litre (max 32 characters) |
rate | number | No | Default unit rate or price for the SKU |
hsnSac | string | No | HSN or SAC code for GST classification (max 16 characters) |
Tip:itemCodeis matched case-insensitively against purchase order line items —SKU-001andsku-001are treated as the same code.
Code Examples
Success Response
HTTP Status:200 OK
Response Fields
| Field | Type | Description |
|---|---|---|
ok | boolean | true when the request was processed (even if some SKUs failed) |
data | object | Summary of the bulk operation |
data.total | number | Total number of SKUs submitted |
data.successCount | number | Number of SKUs successfully created |
data.failureCount | number | Number of SKUs that failed to create |
data.created | array | List of successfully created SKUs |
data.failed | array | List of SKUs that failed to create |
Created SKU Object
| Field | Type | Description |
|---|---|---|
name | string | Display name of the SKU |
itemCode | string | null | Item code of the SKU (null if not provided) |
unit | string | null | Unit of measurement (null if not provided) |
rate | number | null | Default unit rate (null if not provided) |
hsnSac | string | null | HSN/SAC code (null if not provided) |
Failed SKU Object
| Field | Type | Description |
|---|---|---|
name | string | Name of the SKU that failed |
itemCode | string | null | Item code of the SKU that failed |
error | string | Reason for failure |
Response Example
Partial Success Response
If some SKUs fail (e.g., due to a database constraint), the API still returns200 OK and reports which succeeded and which failed:
Error Responses
Missing Required Fields
HTTP Status:400 Bad Request
Exceeding Maximum Batch Size
HTTP Status:400 Bad Request
SKU Name Too Long
HTTP Status:400 Bad Request
Authentication Errors
HTTP Status:401 Unauthorized
Permission Errors
HTTP Status:403 Forbidden
Linking SKUs to Purchase Order Line Items
Once you have created SKUs in your inventory, you can link purchase order line items to them by supplyingskuName or skuCode on each line item when creating or updating a purchase order.
Matching priority
When both fields are provided,skuCode takes priority over skuName. If the skuCode match fails, the system does not fall back to skuName for the same item — a separate warning is returned.
Matching rules
| Field | Match strategy |
|---|---|
skuCode | Exact match, case-insensitive |
skuName | Exact match, case-insensitive |
Purchase order line item with SKU linking
When a SKU cannot be matched
If a SKU cannot be found, the purchase order is still created and the response includes askuMatchWarnings array describing which line items could not be linked:
A missing SKU match is a warning, not an error — the purchase order is created successfully regardless.
Best Practices
- Use a consistent, human-readable
itemCodescheme (e.g.,CATEGORY-NUMBER) so that external systems can reliably match line items - Send SKUs in bulk before creating purchase orders to ensure all line items can be matched
- Keep SKU names unique within your organisation to avoid ambiguity when matching by
skuName - SKU
nameis limited to 128 characters — ensure your names stay within this limit - Always prefer
skuCodeoverskuNamefor matching — codes are more stable than display names - Populate
hsnSacfor items subject to GST to ensure correct tax classification downstream - Handle
skuMatchWarningsin your integration to detect and remediate unmatched line items