Introduction
Make sure to replace
<domain>with a value appropriate for your account in all requests to the API.
Welcome to Jazz Central API!
You can use our API to access data and services for your Jazz Central integration.
We have language examples for Shell and Python! You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.
Rate Limits
Here are our rate limits by endpoint below:
| Endpoint | Timeout Period | Rate |
|---|---|---|
| /api/token | 1 Hour | 30 / Minute |
| /api/v1/purchase-order | 1 Minute | 240 / Minute |
| /api/v1/product/inventory | 1 Minute | 240 / Minute |
| /api/v1/order/import | 1 Minute | 240 / Minute |
| /api/v1/order/status | 1 Hour | 240 / Minute |
| /api/v1/shipment/status | 1 Hour | 240 / Minute |
| /api/v1/order/return-merchandise-authorization | 1 Hour | 240 / Minute |
Authentication
Make sure to replace
<username>, and<password>with your own credentials.To request a token, use this code:
curl -X POST \
-d '{"username": "<username>", "password":"<password>"}' \
-H "Content-Type: application/json" \
https://<domain>.jazz-oms.com/api/token/
import requests
url = 'https://<domain>.jazz-oms.com/api/token/'
response = requests.post(url, headers={
'Content-Type': 'application/json'
}, json={
'username': '<username>',
'password': '<password>'
})
The token response JSON is structured like this:
{
"token": "<token>"
}
A token is required to interact with API end-points.
Tokens can be requested with credentials for an active user account.
Tokens remain valid for 15 minutes after the last request that uses them.
HTTP Headers
All requests beyond /api/token/ require these HTTP headers:
Authorization: Token <token>
Tenant: <tenant_code>
Content-Type: application/json
Pagination
All list endpoints return paginated results using the following structure:
{
"count": 100,
"next": "https://<domain>.jazz-oms.com/api/v1/...?limit=10&offset=10",
"previous": null,
"results": [...]
}
| Key | Description |
|---|---|
| count | Total number of records matching the query. |
| next | URL for the next page of results, or null if this is the last page. |
| previous | URL for the previous page of results, or null if this is the first page. |
| results | Array of result objects for the current page. |
Use the limit and offset query parameters to control pagination. The default limit is 10.
Orders
Get Order Status
This endpoint retrieves order statuses with various filters.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/order/status
Example request:
curl -X GET \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
"https://<domain>.jazz-oms.com/api/v1/order/status?order_number=ORD1234"
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/order/status'
response = requests.get(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'order_number': 'ORD1234'
})
Example response:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"order_number": "ORD1234",
"order_date": "2024-05-15 16:21:34",
"status": "SHIPPED",
"qty_ordered": 2,
"qty_shipped": 2,
"source_code": "WEB",
"detail_set": [
{
"line_number": 1,
"sku_code": "SKU-001",
"unit_price": "9.99",
"qty_ordered": 1,
"qty_shipped": 1
}
]
}
]
}
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| limit | 10 | Results per page. |
| offset | 0 | Results to skip (for pagination). |
| order_number | null | Filter to a specific order. Supports comma-separated values (e.g. ORD001,ORD002). |
| order_date | null | Filter to orders from a specific date (YYYY-MM-DD). Searches the full 24-hour period. |
| po_number | null | Filter to orders for a specific PO number. |
| start_date | null | Orders since this date (YYYY-MM-DD or ISO 8601). When status is set, filters by updated_at instead of created_at. |
| end_date | null | Orders up to this date (YYYY-MM-DD or ISO 8601). When status is set, filters by updated_at instead of created_at. |
| status | null | Filter by status: NEW, ALLOCATED, PRINTED, SHIPPED, CANCELED, CLOSED. |
| customer_number | null | Filter by customer number. |
Response Fields
| Field | Type | Description |
|---|---|---|
| order_number | string | The order number. |
| po_number | string | The purchase order number, if any. |
| order_date | string | Order timestamp (YYYY-MM-DD HH:MM:SS). |
| status | string | Current order status. |
| qty_ordered | integer | Total units ordered. |
| qty_canceled | integer | Total units canceled. |
| qty_allocated | integer | Total units allocated. |
| qty_backordered | integer | Total units backordered. |
| qty_printed | integer | Total units on printed pick tickets. |
| qty_shipped | integer | Total units shipped. |
| source_code | string | Source code for the order. |
| offer_code | string | Offer code for the order. |
| business_type_code | string | Business type code. |
| attributes | object | Custom order attributes. |
| detail_set | array | Array of line item detail objects. |
Detail Set Fields
| Field | Type | Description |
|---|---|---|
| line_number | integer | Line number on the order. |
| sku_code | string | SKU code for this line. |
| unit_cost | string | Unit cost. |
| unit_price | string | Unit selling price. |
| unit_discount | string | Discount applied per unit. |
| qty_ordered | integer | Units ordered on this line. |
| qty_canceled | integer | Units canceled on this line. |
| qty_allocated | integer | Units allocated on this line. |
| qty_backordered | integer | Units backordered on this line. |
| qty_printed | integer | Units on printed pick tickets. |
| qty_new | integer | Units in "new" status. |
| qty_shipped | integer | Units shipped on this line. |
| qty_returned | integer | Units returned on this line. |
| attributes | object | Custom line-level attributes. |
Import Order
This endpoint imports orders.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/order/import
Example import order request:
curl -X POST \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/order/import \
--data '{
"order_number": "ORD1234",
"order_date": "2024-07-19 16:32",
"ship_date": "2024-07-19",
"cancel_date": "2024-07-30",
"source_code": "WEB",
"offer_code": "WEB",
"business_type_code": "WEB",
"attributes": { "allocation_facility": "FBF01" },
"customer": {
"customer_number": "CUST001",
"first_name": "Jane",
"last_name": "Doe",
"email": "[email protected]",
"address1": "123 Main St",
"address2": "Suite 100",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US",
"company": "Example Corp",
"phone_number": "(555) 123-4567"
},
"shipto": [
{
"shipto_number": "1",
"first_name": "Jane",
"last_name": "Doe",
"company": "Example Corp",
"address": {
"customer_number": "CUST001",
"first_name": "Jane",
"last_name": "Doe",
"email": "[email protected]",
"address1": "123 Main St",
"address2": "Suite 100",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US",
"company": "Example Corp",
"phone_number": "(555) 123-4567"
},
"ship_code": "FEDEX_GND",
"shipping": 5.00,
"detail_set": [
{
"sku": "SKU-001",
"qty_ordered": 2,
"current_price": "9.99",
"attributes": { "final_sale": false }
}
],
"tax_percentage": 0,
"tax_amount": "0.00",
"total_amount": "24.98",
"subtotal_amount": "19.98",
"discounts_amount": "0.00",
"credits_debits_amount": "0.00"
}
],
"payment": [
{
"payment_number": "1",
"first_name": "Jane",
"last_name": "Doe",
"card_code": "VS",
"token": "tok_xxxxxxxxxxxx",
"last4": "4242",
"address": {
"address1": "123 Main St",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US"
},
"authorization": [
{ "auth_code": "AUTH123", "amount": "24.98" }
]
}
],
"notes": [
{ "note": "Customer requested gift wrap", "username": "api_user" }
]
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/order/import'
response = requests.post(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"order_number": "ORD1234",
"order_date": "2024-07-19 16:32",
"ship_date": "2024-07-19",
"cancel_date": "2024-07-30",
"source_code": "WEB",
"offer_code": "WEB",
"business_type_code": "WEB",
"attributes": {"allocation_facility": "FBF01"},
"customer": {
"customer_number": "CUST001",
"first_name": "Jane",
"last_name": "Doe",
"email": "[email protected]",
"address1": "123 Main St",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US"
},
"shipto": [{
"shipto_number": "1",
"first_name": "Jane",
"last_name": "Doe",
"address": {
"address1": "123 Main St",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US"
},
"ship_code": "FEDEX_GND",
"shipping": 5.00,
"detail_set": [{
"sku": "SKU-001",
"qty_ordered": 2,
"current_price": "9.99"
}],
"total_amount": "24.98",
"subtotal_amount": "19.98"
}],
"payment": [{
"payment_number": "1",
"card_code": "VS",
"token": "tok_xxxxxxxxxxxx",
"last4": "4242",
"authorization": [{"auth_code": "AUTH123", "amount": "24.98"}]
}]
})
The order import response JSON is structured like this:
{
"id": 12345,
"order_number": "ORD1234",
"status": "New",
"source_code": "WEB",
"qty_ordered": 2,
"total": "24.98",
"created_at": "2024-07-19T16:32:00Z",
"customer": { "customer_number": "CUST001", "first_name": "Jane", "last_name": "Doe" },
"shipto": [{ "shipto_number": "1", "ship_code": "FEDEX_GND", "detail_set": ["..."] }],
"payment": [{ "payment_number": "1", "card_type": {"code": "VS", "name": "Visa"} }]
}
Payload
| Key | Required | Default | Description |
|---|---|---|---|
| order_number | No | auto-assigned | The order number. If omitted, Jazz will auto-assign one. |
| order_date | Yes | null | Order timestamp. Supports multiple formats (see Date Formats below). |
| ship_date | No | null | Ship by date (YYYY-MM-DD). |
| cancel_date | No | null | Cancel by date (YYYY-MM-DD). |
| source_code | Yes | null | A valid source code configured in Jazz. |
| offer_code | No | null | Offer code for the order. |
| business_type_code | No | null | Business type code for the order. |
| po_number | No | null | Purchase order reference number. |
| hold_code | No | null | Place order on a single hold. |
| hold_codes | No | [] | Place order on multiple holds (array of hold code strings). |
| routing_required | No | null | Whether the order requires routing. |
| kitting_required | No | null | Whether the order requires kitting. |
| route_date | No | null | Routing date (YYYY-MM-DD). |
| pack_date | No | null | Pack by date (YYYY-MM-DD). |
| created_by | No | null | Username of the order creator. |
| modified_by | No | null | Username of last modifier. |
| tags | No | [] | Array of string tags for the order. |
| attributes | No | null | JSON object of custom order attributes. |
| customer | Yes | null | A customer object (see below). |
| shipto | Yes | null | Array of ShipTo objects (see below). |
| payment | No | null | Array of Payment objects (see below). |
| notes | No | null | Array of Note objects (see below). |
| order_appeasements | No | [] | Array of appeasement objects (see below). |
Date Formats
The following date input formats are accepted for date fields:
| Format | Example |
|---|---|
| YYYY-MM-DD | 2024-07-19 |
| YYYY-MM-DD HH:MM | 2024-07-19 16:32 |
| YYYY-MM-DDTHH:MM:SS | 2024-07-19T16:32:00 |
| YYYY-MM-DD HH:MM:SS-0500 | 2024-07-19 16:32:00-0500 |
| M/D/YY | 7/19/24 |
| M/D/YYYY | 7/19/2024 |
Customer
| Key | Required | Description |
|---|---|---|
| customer_number | Yes | Unique customer identifier. |
| first_name | No | First name of the customer. |
| last_name | No | Last name of the customer. |
| No | Email address. | |
| company | No | Company name. |
| phone_number | No | Phone number. |
| address1 | No | Address line 1. |
| address2 | No | Address line 2. |
| city | No | City. |
| state | No | State abbreviation. |
| zipcode | No | Postal code. |
| country | No | Country code (e.g. "US"). |
| attributes | No | Custom customer attributes (JSON object). |
| mia_attributes | No | MIA attributes (JSON object). |
ShipTo
| Key | Required | Description |
|---|---|---|
| shipto_number | Yes | Unique identifier for this ship-to address. |
| first_name | No | First name of the recipient. |
| last_name | No | Last name of the recipient. |
| company | No | Company name. |
| store_number | No | Store number (for retail integrations). |
| distribution_center_number | No | Distribution center number (for retail integrations). |
| address | Yes | Address object (same structure as Customer address). |
| ship_code | Yes | Shipping method code. |
| shipping | No | Shipping charge amount. |
| detail_set | Yes | Array of line item detail objects (see below). |
| tax_percentage | No | Tax percentage applied. |
| shipping_tax | No | Tax on shipping. |
| subtotal_amount | No | Subtotal before tax and shipping. |
| discounts_amount | No | Total discounts applied. |
| credits_debits_amount | No | Total credits and debits. |
| tax_amount | No | Total tax amount. |
| total_amount | No | Grand total for this ship-to. |
| packer_instructions | No | Free-form packing instructions. |
| attributes | No | Custom ship-to attributes (JSON object). |
ShipTo Attributes
| Key | Default | Description |
|---|---|---|
| carton_contents_required | false | Whether a carton content label should be printed. |
| carrier_account_number | null | Small parcel carrier account number for this order. |
| cpf_number | null | CPF number for international shipments. |
Address
| Key | Required | Description |
|---|---|---|
| customer_number | No | Customer identifier. |
| first_name | No | First name. |
| last_name | No | Last name. |
| No | Email address. | |
| company | No | Company name. |
| phone_number | No | Phone number. |
| address1 | Yes | Address line 1. |
| address2 | No | Address line 2. |
| city | Yes | City. |
| state | Yes | State abbreviation. |
| zipcode | Yes | Postal code. |
| country | Yes | Country code (e.g. "US"). |
| attributes | No | Custom address attributes (JSON object). |
| mia_attributes | No | MIA attributes (JSON object). |
Shipment Detail (Line Items)
| Key | Required | Default | Description |
|---|---|---|---|
| sku | Yes | null | The SKU code of the item. |
| qty_ordered | Yes | 0 | Number of units ordered. |
| current_price | No | null | Unit price. |
| local_tax | No | 0 | Local tax per unit. |
| state_tax | No | 0 | State tax per unit. |
| county_tax | No | 0 | County tax per unit. |
| goods_and_services_tax | No | 0 | GST per unit. |
| line_number | No | auto | Line number (auto-assigned if not provided). |
| override_reason_code | No | null | Reason code for price override. |
| override_price | No | null | Overridden price. |
| facilities | No | [] | Array of facility codes to restrict allocation. |
| attributes | No | null | Custom line attributes (JSON object). |
Payment
| Key | Required | Description |
|---|---|---|
| payment_number | Yes | Unique identifier for this payment. |
| first_name | No | First name on the payment method. |
| last_name | No | Last name on the payment method. |
| company | No | Company name. |
| address | No | Billing address object (same structure as Address). |
| card_code | No | Payment type identifier (e.g. "VS" for Visa, "MC" for Mastercard). |
| token | No | Payment token. |
| last4 | No | Last 4 digits of the payment method. |
| authorization | No | Array of authorization objects (see below). |
| attributes | No | Custom payment attributes (JSON object). |
Authorization
| Key | Required | Description |
|---|---|---|
| auth_code | Yes | The authorization code. |
| amount | Yes | The amount authorized. |
| attributes | No | Custom authorization attributes. |
Note
| Key | Required | Description |
|---|---|---|
| note | Yes | The note text. |
| username | No | Username of the note author. |
Appeasement
| Key | Required | Default | Description |
|---|---|---|---|
| appeasement_type_code | Yes | null | The appeasement type code. |
| amount | Yes | null | The appeasement amount. |
| settled | No | false | Whether the appeasement has been settled. |
Shipments
Get Shipment List
This endpoint retrieves shipment records with various filters.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/shipment/status
Example request:
curl -X GET \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
"https://<domain>.jazz-oms.com/api/v1/shipment/status?order_number=ORD1234"
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipment/status'
response = requests.get(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'order_number': 'ORD1234'
})
Example response:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"shipment_number": "SHP-001",
"status": "confirmed",
"ship_date": "2024-06-11",
"tracking_number": "1Z999AA10123456784",
"ship_code": "FEDEX_GND",
"order_number": "ORD1234",
"facility_code": "FBF01",
"address": {
"first_name": "Jane",
"last_name": "Doe",
"address1": "123 Main St",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US"
},
"shipment_detail": [
{
"order_line_number": 1,
"sku_code": "SKU-001",
"qty_shipped": 2
}
]
}
]
}
Query Parameters
| Parameter | Default | Format | Description |
|---|---|---|---|
| limit | 25 | integer | Results per page (max 250). |
| offset | 0 | integer | Results to skip (for pagination). |
| shipment_number | null | string | Filter to a specific shipment number. |
| order_number | null | string | Filter to a specific order number. |
| po_number | null | string | Filter to a specific PO number. |
| ship_date | null | YYYY-MM-DD | Filter to shipments from a specific date. |
| start_date | null | ISO 8601 | Shipments created since this date (e.g. 2024-01-01T00:00:00-0600). |
| end_date | null | ISO 8601 | Shipments created up to this date. |
| status | null | string | Filter by shipment status: confirmed or unconfirmed. |
| order_status | null | string | Filter by order status. When set, date filters apply to order.updated_at instead of created_at. |
| facility_code | null | string | Filter by facility code. |
| pick_ticket_number | null | string | Filter by pick ticket number. |
| carton_number | null | string | Filter by carton number. |
| is_fulfilled | null | boolean | Filter by order fulfillment status (true or false). |
| fulfilled_start | null | ISO 8601 | Orders fulfilled on or after this date. |
| fulfilled_end | null | ISO 8601 | Orders fulfilled on or before this date. |
| ordering | null | string | Sort results by id or created_at. Prefix with - for descending (e.g. -created_at). |
| search | null | string | Search across pick ticket and carton numbers. |
Response Fields
| Field | Type | Description |
|---|---|---|
| shipment_number | string | Unique shipment identifier. |
| status | string | Shipment status (e.g. "confirmed"). |
| created_at | datetime | When the shipment was created. |
| ship_date | date | The date the shipment was shipped. |
| weight | decimal | Total weight of the shipment. |
| width | decimal | Carton width. |
| height | decimal | Carton height. |
| depth | decimal | Carton depth. |
| carton_number | string | Carton identifier. |
| carton_code | string | Carton type code. |
| tracking_number | string | Carrier tracking number. |
| return_tracking_number | string | Return tracking number, if any. |
| ship_code | string | Shipping method code. |
| ship_code_description | string | Shipping method description. |
| pick_ticket_number | string | Pick ticket number. |
| order_number | string | Associated order number. |
| facility_code | string | Facility code where the shipment originated. |
| po_number | string | PO number from the order. |
| source_code | string | Source code from the order. |
| bill_of_lading_number | string | Bill of lading number, if applicable. |
| carrier_name | string | Carrier name. |
| order_attributes | object | Custom attributes from the order. |
| attributes | object | Custom shipment attributes. |
| bol_attributes | object | Bill of lading attributes. |
| fulfilled_at | datetime | When the order was fulfilled. |
| tms_selected_rate | object | TMS rate selection info, if applicable. |
| address | object | Ship-to address (first_name, last_name, company, address1, address2, city, state, zipcode, country). |
Shipment Detail Fields
| Field | Type | Description |
|---|---|---|
| order_line_number | integer | Line number from the original order. |
| pick_line_number | string | Line number from the pick ticket. |
| sku_code | string | SKU code shipped. |
| unit_cost | decimal | Unit cost. |
| unit_price | decimal | Unit price. |
| unit_discount | decimal | Unit discount. |
| qty_shipped | integer | Quantity shipped. |
| line_attributes | object | Custom line-level attributes. |
| detail_attributes | object | Order detail attributes. |
| lots | array | Lot number information (lot_number, quantity, expiration_date). |
| serial_numbers | array | Serial number information. |
| parent_sku | string | Parent SKU code if this is a kit component. |
Inventory
Get Inventory Levels
This endpoint retrieves inventory levels by SKU, Facility, and Business Type.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/product/inventory
Example request:
curl -X GET \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
"https://<domain>.jazz-oms.com/api/v1/product/inventory?sku__sku_code=SKU-001"
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/inventory'
response = requests.get(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'sku__sku_code': 'SKU-001'
})
Example response:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"item_code": "ITEM-001",
"sku_code": "SKU-001",
"facility_code": "FBF01",
"total_quantity": 1437,
"available_quantity": 1337,
"on_hand_quantity": 1337,
"qty_ordered": 50,
"barcode": "1234567890"
}
]
}
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| limit | 10 | Results per page. |
| offset | 0 | Results to skip (for pagination). |
| sku__sku_code | null | Filter to a specific SKU code. |
| sku_codes | null | Filter to multiple SKU codes (comma-separated, e.g. SKU001,SKU002). |
| sku_item_item_code | null | Filter by parent item code. |
| facility_code | null | Filter to a specific facility. |
| business_type_code | null | Filter to a specific business type. |
| since | null | ISO 8601 datestamp. Only returns SKUs with inventory updated since this date (e.g. 2024-05-21T00:00:00-05:00). |
| search | null | Search by SKU code or facility code (exact match). |
Response Fields
| Field | Type | Description |
|---|---|---|
| item_code | string | Parent item code. |
| sku_code | string | SKU code. |
| facility_code | string | Facility code. |
| total_quantity | integer | Total quantity (on-hand + inbound). |
| available_quantity | integer | Quantity available for allocation. |
| inbound_quantity | integer | Quantity inbound on open ASNs/POs. |
| on_hand_quantity | integer | Physical on-hand quantity. |
| nonsaleable_quantity | integer | Quantity marked as nonsaleable. |
| damaged_quantity | integer | Quantity marked as damaged. |
| qty_ordered | integer | Quantity currently ordered (open demand). |
| attributes | object | SKU attributes (hts_code, weight, dimensions, etc.). |
| barcode | string | Primary barcode for the SKU. |
| business_type_code | string | Business type, or null if not segmented. |
Get Inventory Snapshot
This endpoint retrieves daily inventory snapshot data for reconciliation. Compares client-reported quantities against system quantities.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/product/inventory-snapshot
Example request:
curl -X GET \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
"https://<domain>.jazz-oms.com/api/v1/product/inventory-snapshot?report_date=2024-01-15"
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/inventory-snapshot'
response = requests.get(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'report_date': '2024-01-15'
})
Example response:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"sku_code": "SKU-001",
"facility_code": "FBF01",
"report_date": "2024-01-15",
"client_quantity": 100,
"system_quantity": 100
}
]
}
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| limit | 10 | Results per page. |
| offset | 0 | Results to skip (for pagination). |
| report_date | yesterday | Date of snapshot to display (YYYY-MM-DD). Defaults to yesterday in the tenant's timezone. |
| search | null | Search by SKU code or report date. |
Response Fields
| Field | Type | Description |
|---|---|---|
| sku_code | string | SKU code. |
| facility_code | string | Facility code. |
| business_type_code | string | Business type code. |
| report_date | date | The snapshot date. |
| client_quantity | integer | Client-reported quantity. |
| client_damaged | integer | Client-reported damaged quantity. |
| client_nonsaleable | integer | Client-reported nonsaleable quantity. |
| system_quantity | integer | System (Jazz) quantity. |
| system_damaged | integer | System damaged quantity. |
| system_nonsaleable | integer | System nonsaleable quantity. |
PIX Transactions
This endpoint retrieves inventory transaction (PIX) records.
Transaction Types
| Type | Description |
|---|---|
| 100 | Receipts (inbound receiving) |
| 200 | Returns (customer returns) |
| 300 | Adjustments (inventory adjustments) |
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/product/pix
Example request:
curl -X GET \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
"https://<domain>.jazz-oms.com/api/v1/product/pix?transaction_type=100&limit=25"
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/pix'
response = requests.get(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'transaction_type': '100',
'limit': 25
})
Example response:
{
"count": 50,
"next": "https://<domain>.jazz-oms.com/api/v1/product/pix?limit=25&offset=25",
"previous": null,
"results": [
{
"id": "43949981",
"sku_code": "SKU-001",
"facility_code": "FBF01",
"quantity": 2,
"reason_code": "RCV",
"transaction_type": "100",
"po_number": "PO-001",
"created_at": "2024-01-25T14:18:23.625117-06:00",
"shipment_number": "ASN-001",
"saleability": "Saleable"
}
]
}
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| limit | 25 | Results per page (max 250). |
| offset | 0 | Results to skip (for pagination). |
| transaction_type | null | Filter by type: 100 (Receipts), 200 (Returns), 300 (Adjustments). |
| sku__sku_code | null | Filter to a specific SKU code. |
| sku_code | null | Filter by SKU code (alternative to sku__sku_code). |
| transaction_id | null | Filter to a specific transaction ID. |
| facility | null | Filter by facility code. |
| reason_code | null | Filter by reason code. Supports comma-separated values (e.g. RCV,ADJ) or null for null values. |
| since | null | ISO 8601 datestamp. Only transactions created since this date. |
| id | null | Filter by exact transaction record ID. |
| id__gt | null | Transactions with ID greater than this value (useful for incremental syncs). |
| id__gte | null | Transactions with ID greater than or equal to this value. |
| search | null | Search by transaction ID (exact match). |
| ordering | id | Sort results by id or created_at. Prefix with - for descending. |
Response Fields
| Field | Type | Description |
|---|---|---|
| id | string | Transaction record ID. |
| sku_code | string | SKU code. |
| facility_code | string | Facility code. |
| business_type_code | string | Business type, or null. |
| quantity | integer | Transaction quantity. |
| reason_code | string | Reason code for the transaction. |
| transaction_id | string | External transaction identifier. |
| transaction_type | string | Transaction type (100, 200, or 300). |
| po_number | string | PO number (for type 100 receipts). |
| order_number | string | Related order number, if applicable. |
| lot_number | string | Lot number, if lot-tracked. |
| lot_expiration | string | Lot expiration date. |
| created_at | datetime | Transaction timestamp. |
| shipment_number | string | ASN shipment number (for type 100 receipts). |
| rma_reference | string | RMA reference (for type 200 returns). |
| return_to_inventory | boolean | Whether the return was added back to inventory. |
| saleability | string | "Saleable", "Damaged", or "Nonsaleable". Null = Saleable. |
| note | string | Transaction note. |
| case_number | string | Case/container barcode (for type 100 receipts). |
| lock_code | string | Inventory lock code, if any. |
| order_po_number | string | PO number from the related order. |
| disposition_code | string | Disposition code (for type 200 returns). |
| original_sku | string | Original SKU before exchange (for returns). |
Advanced Ship Notices
This endpoint serves for both regular inbound shipment records as well as ASN receiving by barcode records.
Import ASN/Shipment
This endpoint imports ASNs.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/shipping/asn
Example ASN import request:
curl -X POST \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/shipping/asn \
--data '{
"shipment_number": "ASN-001",
"facility_code": "FBF01",
"vendor_id": "VEND01",
"arrival_at": "2024-08-15",
"shipped_at": "2024-08-10",
"shipment_type": "asn",
"details": [
{
"sku_code": "SKU-001",
"quantity": 100,
"line_number": "001",
"country_of_origin": "US"
}
]
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipping/asn'
response = requests.post(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"shipment_number": "ASN-001",
"facility_code": "FBF01",
"vendor_id": "VEND01",
"arrival_at": "2024-08-15",
"shipped_at": "2024-08-10",
"shipment_type": "asn",
"details": [{
"sku_code": "SKU-001",
"quantity": 100,
"line_number": "001"
}]
})
The ASN import response JSON:
{
"id": 96,
"shipment_number": "ASN-001",
"status": "open",
"facility": 1,
"arrival_at": "2024-08-15T00:00:00Z",
"shipped_at": "2024-08-10T00:00:00Z",
"shipment_type": "asn",
"created_at": "2024-08-01T18:30:16.026529Z",
"on_hold": false,
"details": [
{ "sku_code": "SKU-001", "quantity": 100, "received": 0, "status": "open" }
]
}
Payload Keys
| Key | Required | Default | Description |
|---|---|---|---|
| shipment_number | Yes | null | A unique identifier for the shipment. |
| facility_code | Yes | null | The destination facility code. |
| po_number | No | null | Purchase order number associated with the shipment. |
| load_number | No | null | Load number for the shipment. |
| vendor_id | No | null | Vendor code for the origin vendor. |
| seal_number | No | null | Seal number for the shipment. |
| arrival_at | No | null | Expected arrival date. |
| shipped_at | No | null | Date the shipment shipped. |
| ship_code | No | null | Shipping method code. |
| shipment_type | No | "asn" | Type of shipment: "asn" or "inbound". |
| business_type_code | No | null | Business type for receiving. |
| on_hold | No | false | Place the ASN on hold. |
| door_number | No | null | Dock door number. |
| trailer_number | No | null | Trailer number. |
| trailer_size | No | null | Trailer size (e.g. "53"). |
| carrier_email | No | null | Carrier notification email. |
| client_email | No | null | Client notification email. |
| attributes | No | null | Custom ASN attributes (JSON object). |
| details | Yes | null | Array of shipment detail lines (see below). |
Shipment Detail
| Key | Required | Default | Description |
|---|---|---|---|
| sku_code | Yes | null | The SKU code for this line. |
| quantity | Yes | null | Number of units to receive. |
| line_number | No | null | Line number for this detail. |
| po_number | No | null | PO number tied to this detail line. |
| case_barcode | No | null | Barcode for the case/container. Required for ASN receiving by barcode; null for standard shipments. |
| country_of_origin | No | null | Country of origin code for the case/detail. |
| business_type | No | null | Per-line business type override. |
| purchase_order_detail | No | null | ID of a specific PO detail line to link to. |
| attributes | No | null | Custom detail attributes (JSON object). |
Update ASN/Shipment
This endpoint updates ASNs. All fields are optional (partial update).
HTTP Request
PATCH https://<domain>.jazz-oms.com/api/v1/shipping/asn/<shipment_number>
Example request:
curl -X PATCH \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/shipping/asn/ASN-001 \
--data '{
"load_number": "LOAD-123",
"door_number": "D5",
"trailer_number": "TR-789"
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipping/asn/ASN-001'
response = requests.patch(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"load_number": "LOAD-123",
"door_number": "D5",
"trailer_number": "TR-789"
})
Payload Keys
All fields are optional for PATCH (partial update).
| Key | Required | Description |
|---|---|---|
| load_number | No | Load number for the shipment. |
| seal_number | No | Seal number for the shipment. |
| arrival_at | No | Expected arrival date. |
| shipped_at | No | Date the shipment shipped. |
| on_hold | No | Put or remove hold on the ASN. |
| door_number | No | Dock door assignment. |
| trailer_number | No | Trailer number. |
| trailer_size | No | Trailer size. |
| carrier_email | No | Carrier notification email. |
| client_email | No | Client notification email. |
| unloaded_date | No | Date the trailer was unloaded. |
| floor_location | No | Floor staging location. |
| trailer_picked_up_date | No | Date the trailer was picked up. |
| unload_plan_date | No | Planned unload date. |
| receive_plan_date | No | Planned receiving date. |
| putaway_at | No | When putaway was completed. |
| appointment | No | Appointment datetime. |
| arrived_at | No | Actual arrival datetime. |
| complete_by | No | Target completion datetime. |
| completed_at | No | Actual completion datetime. |
| details | No | Array of detail line updates/additions. |
Retrieve ASNs
This endpoint retrieves ASNs by shipment number, or lists ASNs with filters.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/shipping/asn/<shipment_number>
GET https://<domain>.jazz-oms.com/api/v1/shipping/asn
Example request:
curl -X GET \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
"https://<domain>.jazz-oms.com/api/v1/shipping/asn?status=OPEN&limit=25"
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipping/asn'
response = requests.get(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'status': 'OPEN',
'limit': 25
})
Example response:
{
"id": 164,
"shipment_number": "ASN-001",
"status": "open",
"facility_code": "FBF01",
"arrival_at": "2024-06-19T05:00:00Z",
"on_hold": false,
"detail": [
{
"item_code": "ITEM-001",
"sku_code": "SKU-001",
"barcode": "1234567890",
"quantity": 100,
"received": 0,
"status": "open"
}
]
}
Query Parameters (for list endpoint)
| Parameter | Default | Format | Description |
|---|---|---|---|
| limit | 10 | integer | Results per page (max 1000). |
| offset | 0 | integer | Results to skip (for pagination). |
| status | null | string | Filter by status: OPEN, CLOSED, RECEIVING. |
| status__ne | null | string | Exclude ASNs with this status (e.g. CLOSED). |
| shipped_since | null | ISO 8601 | ASNs shipped on or after this date. |
| created_since | null | ISO 8601 | ASNs created on or after this date. |
| updated_since | null | ISO 8601 | ASNs updated on or after this date. |
| arrived_since | null | ISO 8601 | ASNs with arrival on or after this date. |
| search | null | string | Search by shipment number, facility code, or status (exact match). |
Detail Fields
| Field | Type | Description |
|---|---|---|
| id | integer | Detail record ID. |
| item_code | string | Parent item code. |
| description | string | SKU description. |
| size_desc | string | Size description. |
| color_desc | string | Color description. |
| shipment_number | string | Parent shipment number. |
| po_number | string | PO number for this line. |
| sku_code | string | SKU code. |
| barcode | string | SKU barcode. |
| quantity | integer | Expected quantity. |
| received | integer | Quantity received so far. |
| case_barcode | string | Case barcode. |
| facility | string | Facility code. |
| line_number | string | Line number. |
| status | string | Line status (open, closed, receiving). |
| is_virtual | boolean | Whether the SKU is virtual. |
| case_xref | string | Case cross-reference barcode. |
| case_business_type_code | string | Business type from the case. |
| lot_number_required | boolean | Whether the SKU requires lot tracking. |
| sku_attributes | object | SKU attributes. |
| is_fifo_sku | boolean | Whether the SKU uses FIFO. |
| purchase_order_detail | integer | Linked PO detail ID. |
| business_type_code | string | Per-line business type. |
Purchase Orders
Retrieve Purchase Orders
This endpoint retrieves purchase orders by full or partial PO number.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/purchase-order
Example request:
curl -X GET \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
"https://<domain>.jazz-oms.com/api/v1/purchase-order?search=PO-001&status=OPEN"
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/purchase-order'
response = requests.get(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'search': 'PO-001',
'status': 'OPEN'
})
Example response:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"po_number": "PO-001",
"facility_code": "FBF01",
"order_date": "2024-07-01",
"status": "OPEN",
"vendor_code": "VEND01",
"qty_ordered": 100,
"qty_received": 0,
"detail": [
{
"line_number": 1,
"sku_code": "SKU-001",
"qty_ordered": 100,
"qty_received": 0,
"status": "OPEN",
"cost": "4.00"
}
]
}
]
}
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| limit | 10 | Results per page. |
| offset | 0 | Results to skip (for pagination). |
| search | null | Search by PO number, item code, SKU code, size code, color code, or barcode (exact match). |
| status | null | Filter by status: OPEN or CLOSED. |
| created_since | null | ISO 8601 datestamp. POs created on or after this date. |
| updated_since | null | ISO 8601 datestamp. POs updated on or after this date. |
PO Detail Fields
| Field | Type | Description |
|---|---|---|
| line_number | integer | Line number on the PO. |
| sku_code | string | SKU code. |
| item_code | string | Parent item code. |
| description | string | SKU description. |
| color_description | string | Color. |
| size_description | string | Size. |
| qty_ordered | integer | Units ordered. |
| qty_received | integer | Units received. |
| status | string | Line status (OPEN/CLOSED). |
| expected_date | date | Expected delivery date for this line. |
| requires_lot_number | boolean | Whether lot tracking is required. |
| client_line_num | string | Client-side line number. |
| vendor_part_num | string | Vendor part number. |
| cost | decimal | Unit cost. |
| business_type_code | string | Per-line business type. |
| allow_presales | boolean | Whether pre-sale allocation is allowed. |
| hts_codes | array | HTS tariff codes. |
| quota_categories | array | Quota categories. |
| duty_rates | array | Duty rates. |
| estimated_landed_cost | decimal | Estimated landed cost. |
| actual_landed_cost | decimal | Actual landed cost. |
| sku | object | Embedded SKU object. |
Import Purchase Order
This endpoint imports purchase orders.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/purchase-order
Example PO import request:
curl -X POST \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/purchase-order \
--data '{
"po_number": "PO-001",
"order_date": "2024-07-01",
"expected_date": "2024-07-15",
"vendor_code": "VEND01",
"facility_code": "FBF01",
"detail": [
{ "sku_code": "SKU-001", "qty_ordered": 100, "cost": "4.00" }
]
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/purchase-order'
response = requests.post(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"po_number": "PO-001",
"order_date": "2024-07-01",
"expected_date": "2024-07-15",
"vendor_code": "VEND01",
"facility_code": "FBF01",
"detail": [
{"sku_code": "SKU-001", "qty_ordered": 100, "cost": "4.00"}
]
})
Payload Keys
| Key | Required | Default | Description |
|---|---|---|---|
| po_number | Yes | null | Unique PO identifier. |
| vendor_code | Yes | null | Vendor code (must exist in Jazz). |
| order_date | No | null | PO date (YYYY-MM-DD). |
| expected_date | No | null | Expected arrival date. |
| facility_code | No | null | Destination facility code. |
| business_type_code | No | null | Business type for receiving. |
| factory_code | No | null | Factory/origin code. |
| po_type | No | null | PO type classification. |
| ship_mode | No | null | Shipping mode. |
| incoterm | No | null | Incoterms code. |
| po_notes | No | null | Free-text notes. |
| start_ship_date | No | null | Earliest ship date. |
| ship_by_date | No | null | Ship by date. |
| delivery_date | No | null | Target delivery date. |
| attributes | No | null | Custom PO attributes (JSON object). |
| detail | Yes | null | Array of PO detail lines (see below). |
Purchase Order Detail
| Key | Required | Default | Description |
|---|---|---|---|
| sku_code | Yes | null | SKU code (must exist in Jazz). |
| qty_ordered | Yes | null | Number of units ordered. |
| expected_date | No | null | Expected date for this line. |
| vendor_part_num | No | null | Vendor's part number. |
| client_line_num | No | null | Client-side line number reference. |
| cost | No | null | Unit cost. |
| business_type_code | No | null | Per-line business type override. |
| allow_presales | No | false | Allow pre-sale allocation against this PO line. |
| attributes | No | null | Custom line attributes (JSON object). |
Returns
Return Material Authorizations
This endpoint creates and manages Return Material Authorizations. RMAs processed through this endpoint will be available in Jazz to return against.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/order/return-merchandise-authorization
GET https://<domain>.jazz-oms.com/api/v1/order/return-merchandise-authorization
PATCH https://<domain>.jazz-oms.com/api/v1/order/return-merchandise-authorization/<reference>
Example RMA POST request:
curl -X POST \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/order/return-merchandise-authorization \
--data '{
"order_number": "ORD1234",
"reference": "RMA-001",
"details": [
{ "sku_code": "SKU-001", "quantity": 1, "reason_code": "DEFECTIVE" }
]
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/order/return-merchandise-authorization'
response = requests.post(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"order_number": "ORD1234",
"reference": "RMA-001",
"details": [
{"sku_code": "SKU-001", "quantity": 1, "reason_code": "DEFECTIVE"}
]
})
Example RMA response:
{
"id": 621,
"reference": "RMA-001",
"order_number": "ORD1234",
"status": "open",
"created_at": "2024-02-02T16:15:32.604025Z",
"details": [
{
"id": 395,
"sku_code": "SKU-001",
"quantity": 1,
"qty_returned": 0,
"reason_code": "DEFECTIVE",
"reason_description": "Defective Item"
}
]
}
Query Parameters (GET)
| Parameter | Default | Description |
|---|---|---|
| limit | 10 | Results per page. |
| offset | 0 | Results to skip (for pagination). |
| order_number | null | Filter by order number. |
| reference | null | Filter by RMA reference number. |
| status | null | Filter by status (open, processed, complete, canceled). |
| with_dispositions | 0 | Set to 1 to include disposition codes and quantities in the response. |
Payload Keys (POST)
| Key | Required | Description |
|---|---|---|
| order_number | Yes | The order number being returned against. |
| integration | No | Integration name (e.g. "JazzRMA"). |
| reference | Yes | Unique RMA reference number. |
| from_address | No | Return sender address object (see below). |
| attributes | No | Custom RMA attributes (JSON object). |
| details | Yes | Array of return detail objects (see below). |
From Address
| Key | Required | Description |
|---|---|---|
| address1 | No | Address line 1. |
| address2 | No | Address line 2. |
| city | No | City. |
| state | No | State abbreviation. |
| zipcode | No | Postal code (auto-uppercased). |
| country | No | Country code. |
| company | No | Company name. |
RMA Details
| Key | Required | Description |
|---|---|---|
| sku_code | Yes | SKU code of the item to return. |
| quantity | Yes | Quantity to return. |
| reason_code | No | Return reason code. |
| tracking_number | No | Tracking number for this return. |
| attributes | No | Custom detail attributes (JSON object). |
RMA Detail Response Fields
| Field | Description |
|---|---|
| detail_id | Internal order detail ID. |
| qty_returned | Units returned so far. |
| qty_reported | Units reported. |
| reason_description | Human-readable reason description. |
| sku_barcode | SKU barcode. |
| sku_description | SKU description. |
| sku_color_code / sku_color_description | Color info. |
| sku_size_code / sku_size_description | Size info. |
| sku_item_desc | Item description. |
| sku_retail_price | Retail price. |
| vendor_code | Vendor code. |
| lot_number | Lot number, if applicable. |
Returns Processing
This endpoint processes returns as scrap. Returns processed through this endpoint will never add inventory to the warehouse and will always process as 'scrap'.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/shipping/return
Example returns processing request:
curl -X POST \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/shipping/return \
--data '{
"facility_code": "FBF01",
"order_number": "ORD1234",
"items": [
{ "barcode": "1234567890", "quantity": 1, "reason_code": "DEFECTIVE" }
]
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipping/return'
response = requests.post(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"facility_code": "FBF01",
"order_number": "ORD1234",
"items": [{"barcode": "1234567890", "quantity": 1, "reason_code": "DEFECTIVE"}]
})
Payload Keys
| Key | Required | Description |
|---|---|---|
| facility_code | Yes | Facility code for the facility receiving the return. |
| order_number | Yes | The order number being returned. |
| items | Yes | Array of return items (see below). |
Items
| Key | Required | Default | Description |
|---|---|---|---|
| barcode | Yes | null | The barcode of the SKU to return. |
| quantity | Yes | 0 | The quantity to return (minimum: 1). |
| reason_code | Yes | null | Return reason code. |
SmartPost Returns Labels
This endpoint provides tracking numbers and FedEx SmartPost return shipping labels.
There are two modes of operation:
- Address-based: Provide full sender address and contact info.
- Order-based: Provide
order_numberinstead, and Jazz will look up the address.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/shipping/return-label/get-label
Example return label request:
curl -X POST \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/shipping/return-label/get-label \
--data '{
"full_name": "Jane Doe",
"address1": "123 Main St",
"city": "Dallas",
"state_abbr": "TX",
"zipcode": "75200",
"country_code": "US",
"reference": "RMA-001",
"label_image_type": "PDF"
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipping/return-label/get-label'
response = requests.post(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"full_name": "Jane Doe",
"address1": "123 Main St",
"city": "Dallas",
"state_abbr": "TX",
"zipcode": "75200",
"country_code": "US",
"reference": "RMA-001"
})
Example response:
{
"tracking_number": "02393000043424375158",
"label_image": "<base64-encoded-image-data>",
"label_queued": false
}
Payload Keys
| Key | Required | Default | Description |
|---|---|---|---|
| full_name | Yes* | null | First and last name of the sender. |
| address1 | Yes* | null | Sender address line 1. |
| city | Yes* | null | Sender city. |
| state_abbr | Yes* | null | 2-character state abbreviation. |
| zipcode | Yes* | null | Sender ZIP code. |
| country_code | Yes* | null | 2-character country code. |
| company_name | No | null | Sender company name. |
| phone_number | No | tenant default | Sender phone number. |
| address2 | No | null | Sender address line 2. |
| country_full | No | auto from code | Full country name (auto-determined from country_code if omitted). |
| reference | No | null | Reference string printed on the return label. |
| label_image_type | No | PNG | Label format: PNG or PDF. |
| order_number | No | null | Order number (alternative to providing address fields). |
*Required when not using order_number.
Response Fields
| Field | Type | Description |
|---|---|---|
| tracking_number | string | FedEx tracking number. |
| label_image | string | Base64-encoded label image in the requested format. |
| label_queued | boolean | Whether label generation was queued (async). |
Catalog
Create Items
This endpoint creates Items. Items are the parent product entity — SKUs (size/color variants) are children of Items.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/product/item
Example create item request:
curl -X POST \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/product/item \
--data '{
"item_code": "ITEM-001",
"description": "Example Item",
"status": "ACTIVE",
"original_price": "19.99",
"current_price": "19.99",
"cost": "8.00",
"vendor_code": "VEND01",
"attributes": {
"unit_weight": 0.5,
"dimension_1": 12.0,
"dimension_2": 8.0,
"dimension_3": 2.0
}
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/item'
response = requests.post(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"item_code": "ITEM-001",
"description": "Example Item",
"status": "ACTIVE",
"original_price": "19.99",
"current_price": "19.99",
"cost": "8.00",
"vendor_code": "VEND01",
"attributes": {"unit_weight": 0.5}
})
Payload Keys
| Key | Required | Default | Description |
|---|---|---|---|
| item_code | Yes | null | Unique item code (per tenant). |
| description | No | null | Item description. |
| status | No | null | ACTIVE or INACTIVE. |
| original_price | No | null | Original price. |
| current_price | No | null | Current selling price. |
| cost | No | null | Cost. |
| inventory_minimum | No | null | Minimum inventory level. |
| free_shipping | No | false | Whether the item gets free shipping. |
| non_taxable | No | false | Whether the item is tax-exempt. |
| is_gift_card | No | false | Whether this is a gift card item. |
| send_shipping_confirmation | No | false | Whether to send shipping confirmation emails. |
| drop_ship | No | false | Whether this is a drop-ship item. |
| backorderable | No | false | Whether the item can be backordered. |
| is_hazardous_material | No | false | Hazmat flag (affects shipping). |
| is_virtual | No | false | Virtual/digital item (no physical inventory). |
| vendor_code | No | null | Vendor code (must exist in Jazz). |
| attributes | No | null | Custom attributes (JSON object, see below). |
Item Attributes
| Key | Default | Description |
|---|---|---|
| hts_code_1 | null | Harmonized Tariff Schedule code. |
| brand | null | Brand name. |
| department_code | null | Department code. |
| class_code | null | Tax/classification class code. |
| class_description | null | Class description. |
| unit_weight | 0 | Gross weight per unit. |
| dimension_1 | 0 | Length in inches. |
| dimension_2 | 0 | Width in inches. |
| dimension_3 | 0 | Height in inches. |
| lot_number_required | false | Whether to enable lot number tracking. |
| country_of_origin | null | Country code (2 or 3-letter ISO code). |
Create SKUs
This endpoint creates SKUs. The parent Item must already exist in Jazz.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/product/sku
Example create SKU request:
curl -X POST \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/product/sku \
--data '{
"sku_code": "SKU-001",
"item_code": "ITEM-001",
"description": "Example Product - Red / Large",
"barcode": "718020133065",
"original_price": "19.99",
"current_price": "19.99",
"cost": "8.00",
"color_code": "RED",
"color_description": "Red",
"size_code": "LG",
"size_description": "Large",
"status": "ACTIVE",
"barcodes": [
{ "barcode": "MASTER001", "case_quantity": 100, "type": "MASTER" },
{ "barcode": "INNER001", "case_quantity": 10, "type": "INNER" }
],
"attributes": { "unit_weight": 0.5, "dimension_1": 12.0 }
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/sku'
response = requests.post(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"sku_code": "SKU-001",
"item_code": "ITEM-001",
"description": "Example Product - Red / Large",
"barcode": "718020133065",
"color_code": "RED",
"color_description": "Red",
"size_code": "LG",
"size_description": "Large",
"status": "ACTIVE",
"attributes": {"unit_weight": 0.5}
})
Payload Keys
| Key | Required | Default | Description |
|---|---|---|---|
| sku_code | Yes | null | Unique SKU code (per tenant). |
| item_code | Yes | null | Parent item code (must exist in Jazz). |
| description | No | null | SKU description. |
| barcode | No | auto-generated | Primary barcode. Auto-generated if omitted. |
| original_price | No | 0 | Original price. |
| current_price | No | 0 | Current selling price. |
| cost | No | 0 | Cost. |
| color_code | No | null | Color code. |
| color_description | No | null | Color description. |
| size_code | No | null | Size code. |
| size_description | No | null | Size description. |
| backorderable | No | false | Whether this SKU can be backordered. |
| clearance | No | false | Whether this SKU is on clearance. |
| uses_inventory | No | true | Whether this SKU uses physical inventory. |
| status | No | null | ACTIVE or INACTIVE. |
| inventory_threshold | No | 0 | Minimum inventory threshold. |
| box_quantity | No | 1 | Quantity per box. |
| hold_type | No | null | Place SKU on hold. |
| commodity_type | No | null | Commodity classification. |
| adult_signature_required | No | false | Require adult signature on delivery. |
| insert_sku | No | false | Mark as insert SKU. |
| assigned_business_type | No | null | Assign to a specific business type code. |
| barcodes | No | [] | Array of additional barcodes (see below). |
| attributes | No | null | Custom SKU attributes (JSON object, see below). |
Barcodes
| Key | Required | Description |
|---|---|---|
| barcode | Yes | The barcode value. |
| case_quantity | Yes | Units per case. Must be > 1 for MASTER and INNER types. |
| type | Yes | Barcode type: XREF, INNER, or MASTER. |
| dimension_1 | No | Case dimension 1 (length). |
| dimension_2 | No | Case dimension 2 (width). |
| dimension_3 | No | Case dimension 3 (height). |
| case_weight | No | Case weight. |
| cube | No | Cube measurement. |
Barcode Rules:
- Only one
MASTERbarcode per SKU. - Only one
INNERbarcode per SKU. - Multiple
XREFbarcodes are allowed. MASTERcase_quantity must be a multiple ofINNERcase_quantity.case_quantityfor MASTER and INNER must be greater than 1.
SKU Attributes
| Key | Default | Description |
|---|---|---|
| unit_weight | 0 | Gross weight per unit. |
| dimension_1 | 0 | Length in inches. |
| dimension_2 | 0 | Width in inches. |
| dimension_3 | 0 | Height in inches. |
| tax_code | null | Tax code for this SKU. |
| web_size | null | Web-facing size code. |
Read-Only Response Fields
These fields are returned in responses but cannot be set via the API:
| Field | Description |
|---|---|
| is_kit | Whether this is a KIT SKU. |
| is_virtual | Whether this is a virtual item (from parent item). |
| lot_number_required | Whether lot tracking is required (from parent item). |
| serial_required | Whether serial tracking is required (from parent item). |
| serial_regex | Serial number regex pattern (from parent item). |
| is_nested | Whether this item may be nested (from parent item). |
| may_contain_items | Whether this item may contain other items (from parent item). |
| tenant_code | Tenant code. |
| vendor_code | Vendor code (from parent item). |
| vendor_name | Vendor name (from parent item). |
| created_at | Creation timestamp. |
| updated_at | Last update timestamp. |
Update SKUs
This endpoint updates existing SKUs. This is a partial update — only send the fields you want to change.
The required fields are sku_code and barcode.
Attributes are merged with existing values (not replaced entirely). To clear an attribute, explicitly set it to null.
HTTP Request
PATCH https://<domain>.jazz-oms.com/api/v1/product/sku/<sku_code>
Example request:
curl -X PATCH \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/product/sku/SKU-001 \
--data '{
"sku_code": "SKU-001",
"barcode": "718020133065",
"current_price": "14.99",
"clearance": true
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/sku/SKU-001'
response = requests.patch(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"sku_code": "SKU-001",
"barcode": "718020133065",
"current_price": "14.99",
"clearance": True
})
Payload Keys
Same fields as Create SKUs. Only sku_code and barcode are required.
Get SKU Info
This endpoint retrieves SKU details with various filters.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/product/sku
Example request:
curl -X GET \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
"https://<domain>.jazz-oms.com/api/v1/product/sku?sku_code=SKU-001"
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/sku'
response = requests.get(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'sku_code': 'SKU-001'
})
Example response:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 546008,
"sku_code": "SKU-001",
"item_code": "ITEM-001",
"description": "Example Product - Red / Large",
"barcode": "718020133065",
"color_code": "RED",
"size_code": "LG",
"original_price": "19.99",
"current_price": "19.99",
"cost": "8.00",
"status": "ACTIVE",
"vendor_code": "VEND01",
"attributes": {
"unit_weight": 0.5
}
}
]
}
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| limit | 25 | Results per page (max 250). |
| offset | 0 | Results to skip (for pagination). |
| sku_code | null | Filter to a specific SKU code. Supports comma-separated values (e.g. SKU001,SKU002). |
| barcode | null | Filter to a specific barcode. |
| item__item_code | null | Filter to a specific item code. |
| item_code | null | Filter by item code. Supports comma-separated values. |
| color_code | null | Filter by color code. |
| size_code | null | Filter by size code. |
| vendor | null | Filter by vendor code. |
| since | null | ISO 8601 datestamp. Only SKUs created or updated since this date. |
| search | null | Search by SKU code, description, barcode, or item code. |
| ordering | null | Sort results by id, sku_code, barcode, or item__item_code. Prefix with - for descending. |
| minimal | 0 | Set to 1 for minimal response (id, sku_code, barcode, size, color, description only). |
| for_barcode | 0 | Set to 1 for price tag format (includes item details and customer_sku). |
| hts | 0 | Set to 1 to include HTS/tariff fields (fabric_type, fabric_content, hts_code_quota_category). |
Marketing
Create Source Code
This endpoint creates Source Codes, which control order routing and billing configuration.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/marketing/source
Example request:
curl -X POST \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/marketing/source \
--data '{
"source_code": "WEB_2024",
"description": "Website Orders 2024",
"offer_code": "WEB",
"start_promotion": "2024-01-01 00:00",
"end_promotion": "2024-12-31 23:59",
"billing_type": 1
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/marketing/source'
response = requests.post(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"source_code": "WEB_2024",
"description": "Website Orders 2024",
"offer_code": "WEB",
"start_promotion": "2024-01-01 00:00",
"end_promotion": "2024-12-31 23:59",
"billing_type": 1
})
Payload Keys
| Key | Required | Default | Description |
|---|---|---|---|
| source_code | Yes | null | Unique source code identifier. |
| description | No | null | Description of the source. |
| offer_code | No | null | Associated offer code (must exist in Jazz). |
| start_promotion | No | null | Promotion start date/time (YYYY-MM-DD HH:MM). |
| end_promotion | No | null | Promotion end date/time (YYYY-MM-DD HH:MM). |
| billing_type | No | null | Billing type ID: 1 = B2C, 2 = B2B. |
| packing_instructions | No | null | Packing instructions for this source. |
| allocation_facility | No | null | Force allocation to a specific facility ID. |
| price_group_name | No | null | Assign to a price group by name. |
| attributes | No | null | Custom source attributes (JSON object). |
Paygate
Payment Authorization
Use this endpoint to retrieve payment auth tokens via Paygate for use in Jazz Central. All requests to this endpoint MUST come from white-listed IPs. Please contact us for details.
Example request:
curl -X POST https://pg.jazz-oms.com/soap/ver15 \
--header 'Content-Type: text/xml' \
--data '<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://jazz-oms.com/paygate">
<SOAP-ENV:Body>
<ns1:authorize>
<encrypted_key>YOUR_API_KEY</encrypted_key>
<mode>prod</mode>
<ident>YOUR_USERNAME</ident>
<name>
<first>Jane</first>
<last>Doe</last>
<phone>5551234567</phone>
<email>[email protected]</email>
</name>
<address>
<line1>123 Main St</line1>
<city>Dallas</city>
<province>TX</province>
<postalcode>75240</postalcode>
<country>US</country>
</address>
<card>
<type>VS</type>
<number>4111111111111111</number>
<expiry_year>2026</expiry_year>
<expiry_month>12</expiry_month>
<cvv>123</cvv>
</card>
<amount>39.97</amount>
<reference>ORDER-REF-001</reference>
</ns1:authorize>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>'
Example response:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://jazz-oms.com/paygate">
<SOAP-ENV:Body>
<ns1:authorizeResponse>
<authorizeReturn>
<transaction_id>0000000000245179812</transaction_id>
<remote_transaction_id>60139125246</remote_transaction_id>
<response_code>200</response_code>
<auth_code>RDE0R4</auth_code>
<avs>Y</avs>
<csc>P</csc>
<amount>39.97</amount>
<auxiliary/>
<storage_transaction_id/>
</authorizeReturn>
</ns1:authorizeResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Available Domains
| Domain | Description |
|---|---|
| pg-qa01.jazz-oms.com | Testing environment. |
| pg.jazz-oms.com | Production environment. |
Card Types
| Code | Description |
|---|---|
| VS | Visa |
| MC | Mastercard |
| AX | American Express |
| DS | Discover |
Order Cancels
Get Order Cancel Transactions
This endpoint retrieves order cancel transaction records. Each record represents a single line cancellation event.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/order/cancels
Example request:
curl -X GET \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
"https://<domain>.jazz-oms.com/api/v1/order/cancels?limit=25&sku_code=SKU-001"
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/order/cancels'
response = requests.get(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'limit': 25,
'sku_code': 'SKU-001'
})
Example response:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"transaction_id": 1234567,
"created_at": "2024-04-26T23:29:20.225975-06:00",
"order_number": "ORD1234",
"line_number": "1",
"sku_code": "SKU-001",
"barcode": "1234567890",
"reason_code": "012",
"quantity": 1
}
]
}
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| limit | 25 | Results per page (max 250). |
| offset | 0 | Results to skip (for pagination). |
| since | null | ISO 8601 datestamp. Transactions on or after this date (e.g. 2024-01-15T00:00:00-05:00). |
| order_number | null | Filter to a specific order number. |
| reason_code | null | Filter by cancel reason code. |
| sku_code | null | Filter by SKU code. |
Response Fields
| Field | Type | Description |
|---|---|---|
| transaction_id | integer | Unique transaction identifier. |
| created_at | datetime | Transaction timestamp. |
| order_number | string | The order that was canceled. |
| line_number | string | The order line number. |
| sku_code | string | SKU code of the canceled item. |
| barcode | string | Barcode of the canceled item. |
| reason_code | string | Cancel reason code. |
| quantity | integer | Number of units canceled. |
Vendors
Add Vendors
This endpoint creates vendors.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/vendor
Example request:
curl -X POST \
-H "Tenant: <tenant_code>" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/vendor \
--data '{
"vendor_code": "VEND01",
"name": "A Manufacturing Co",
"address1": "10300 Sanden Dr",
"city": "Dallas",
"state": "TX",
"zipcode": "75244",
"country": "US",
"terms": "net30"
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/vendor'
response = requests.post(url, headers={
'Tenant': '<tenant_code>',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"vendor_code": "VEND01",
"name": "A Manufacturing Co",
"address1": "10300 Sanden Dr",
"city": "Dallas",
"state": "TX",
"zipcode": "75244",
"country": "US",
"terms": "net30"
})
Payload Keys
| Key | Required | Default | Description |
|---|---|---|---|
| vendor_code | Yes | null | Unique vendor code (per tenant). |
| name | Yes | null | Vendor display name. |
| address1 | No | null | Address line 1. |
| address2 | No | null | Address line 2. |
| city | No | null | City. |
| state | No | null | State. |
| zipcode | No | null | Postal code. |
| country | No | null | Country code (auto-uppercased). |
| terms | No | null | Payment terms (e.g. "net30"). |
| ship_code | No | null | Default shipping method. |
| fob | No | null | FOB terms. |
| time_to_deliver | No | null | Expected delivery time in days. |
| vendor_group_id | No | null | Assign to a vendor group (by ID). |
| attributes | No | null | Custom vendor attributes (JSON object). |
Read-Only Response Fields
| Field | Description |
|---|---|
| vendor_group | Vendor group name. |
| vg_id | Vendor group ID. |
| uses_edi | Whether the vendor group uses EDI. |
| agent | Agent name. |
| agent_code | Agent code. |
| agent_commission | Agent commission rate. |
Errors
Jazz Central API uses the following HTTP status codes to indicate problems:
| Error Code | Meaning |
|---|---|
| 400 | Bad Request -- Your request is invalid. |
| 401 | Unauthorized -- You are not authorized. |
| 403 | Forbidden -- You do not have permission to access the requested resource. |
| 404 | Not Found -- The specified resource could not be found. |
| 405 | Method Not Allowed -- You tried to access a resource with an invalid method. |
| 406 | Not Acceptable -- You requested a format that isn't JSON. |
| 410 | Gone -- You requested a deprecated feature. |
| 429 | Too Many Requests -- You're making too many requests! Slow down! |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |
| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |