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 |
/rma/ | 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/'
token = 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 0888f9c3ac006b860d6e5aba294c9782f181a9bd
Tenant: DEMO
Orders
Get Order Status
Make sure to replace
<order_number>
with your own value and/or use different parameters.
curl -X GET \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/order/status?order_number=<order_number>
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/order/status'
token = requests.get(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'order_number': '<order_number>'
})
The order list response JSON is structured like this:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"order_number": "<order_number>",
"po_number": null,
"order_date": "2018-05-15 16:21:34",
"status": "SHIPPED",
"qty_ordered": 1,
"qty_canceled": 0,
"qty_allocated": 0,
"qty_backordered": 0,
"qty_printed": 0,
"qty_shipped": 1,
"source_code": "WEB",
"offer_code": "WEB",
"business_type_code": "WEB",
"detail_set": [
{
"line_number": 1,
"sku_code": "DEMO-123",
"qty_ordered": 1,
"qty_canceled": 0,
"qty_allocated": 0,
"qty_backordered": 0,
"qty_printed": 0,
"qty_new": 0,
"qty_shipped": 1,
"qty_returned": 0
}
]
}
]
}
This endpoint retrieves order statuses with various filters.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/order/status
Query Parameters
Parameter | Default | Description |
---|---|---|
limit | 10 | The number of results to return per page. |
order_number | null | If provided, the result will be limited to a specific order. |
order_date | null | If provided, the result will be limited to orders from a specific date. |
po_number | null | If provided, the result will be limited to orders for a specific PO |
start_date | null | If set, the result will be limited to orders since the input date. |
end_date | null | If set, the result will be limited to orders up to the input date. |
status | null | Possible values = NEW, SHIPPED, PRINTED, ALLOCATED, CANCELED |
Import Order
curl -X POST \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/order/import
--data '{
"order_number": "ORD1234",
"order_date": "2018-07-19 16:32",
"ship_date": "2018-07-19",
"attributes": {
"allocation_facility": "FBF01"
},
"cancel_date": "2018-07-30",
"po_number": null,
"source_code": "SOURCE_001",
"customer": {
"customer_number": "1",
"first_name": "First",
"last_name": "Last",
"email": "[email protected]",
"address1": "#1 Example Ave",
"address2": "Suite #1",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US",
"attributes": None,
"mia_attributes": None,
"company": "Example Corp",
"phone_number": "(999) 999-9999",
},
"shipto": [
{
"shipto_number": "1",
"first_name": "First",
"last_name": "Last",
"company": "Example Corp",
"address": {
"customer_number": "1",
"first_name": "First",
"last_name": "Last",
"email": "[email protected]",
"address1": "#1 Example Ave",
"address2": "Suite #1",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US",
"attributes": None,
"mia_attributes": None,
"phone_number": "(999) 999-9999",
},
"ship_code": "SHP_001",
"shipping": 5,
"store_number": "12345",
"distribution_center_number": "12345",
"detail_set": [
{
"sku": "SKU_144",
"qty_ordered": 2,
"current_price": "5.59",
"local_tax": 0,
"state_tax": 0,
"county_tax": 0,
"goods_and_services_tax": 0,
"attributes": {
"final_sale": true,
"allocation_facility": "FBF01"
}
},
{
"sku": "SKU_143",
"qty_ordered": 1,
"current_price": "5.59",
"local_tax": 0,
"state_tax": 0,
"county_tax": 0,
"goods_and_services_tax": 0,
"attributes": {
"final_sale": true
}
}
],
"tax_percentage": 0,
"shipping_tax": 0,
"subtotal_amount": "16.77",
"discounts_amount": "0.00",
"credits_debits_amount": "0.00",
"tax_amount": "0.00",
"total_amount": "21.77",
"packer_instructions": "Poly-bag before packing",
"attributes": {
"carton_contents_required": False,
"carrier_account_number": "XXX",
"cpf_number" "XXX"
}
}
],
"payment": [
{
"payment_number": "1",
"first_name": "First",
"last_name": "Last",
"address": {
"customer_number": "1",
"first_name": "First",
"last_name": "Last",
"email": "[email protected]",
"address1": "#1 Example Ave",
"address2": "Suite #1",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US",
"attributes": None,
"mia_attributes": None,
"company": "Example Corp",
"phone_number": "(999) 999-9999",
},
"card_code": "VS",
"token": "0000",
"last4": "9999",
"authorization": [
{
"auth_code": "12345",
"amount": "21.77"
}
]
}
]
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/order/import'
token = requests.post(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"order_number": "ORD1234",
"order_date": "2018-07-19 16:32",
"ship_date": "2018-07-19",
"attributes": {
"allocation_facility": "FBF01"
},
"cancel_date": "2018-07-30",
"po_number": null,
"source_code": "SOURCE_001",
"customer": {
"customer_number": "1",
"first_name": "First",
"last_name": "Last",
"email": "[email protected]",
"address1": "#1 Example Ave",
"address2": "Suite #1",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US",
"attributes": None,
"mia_attributes": None,
"company": "Example Corp",
"phone_number": "(999) 999-9999",
},
"shipto": [
{
"shipto_number": "1",
"first_name": "First",
"last_name": "Last",
"company": "Example Corp",
"address": {
"customer_number": "1",
"first_name": "First",
"last_name": "Last",
"email": "[email protected]",
"address1": "#1 Example Ave",
"address2": "Suite #1",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US",
"attributes": None,
"mia_attributes": None,
"company": "Example Corp",
"phone_number": "(999) 999-9999",
},
"ship_code": "SHP_001",
"shipping": 5,
"store_number": "12345",
f"distribution_center_number": "12345",
"detail_set": [
{
"sku": "SKU_144",
"qty_ordered": 2,
"current_price": "5.59",
"local_tax": 0,
"state_tax": 0,
"county_tax": 0,
"goods_and_services_tax": 0
},
{
"sku": "SKU_143",
"qty_ordered": 1,
"current_price": "5.59",
"local_tax": 0,
"state_tax": 0,
"county_tax": 0,
"goods_and_services_tax": 0
}
],
"tax_percentage": 0,
"shipping_tax": 0,
"subtotal_amount": "16.77",
"discounts_amount": "0.00",
"credits_debits_amount": "0.00",
"tax_amount": "0.00",
"total_amount": "21.77",
"packer_instructions": "Poly-bag before packing",
"attributes": {
"carton_contents_required": False
"carrier_account_number": "XXX"
}
}
],
"payment": [
{
"payment_number": "1",
"first_name": "First",
"last_name": "Last",
"address": {
"customer_number": "1",
"first_name": "First",
"last_name": "Last",
"email": "[email protected]",
"address1": "#1 Example Ave",
"address2": "Suite #1",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US",
"attributes": None,
"mia_attributes": None,
"company": "Example Corp",
"phone_number": "(999) 999-9999",
},
"card_code": "VS",
"token": "0000",
"last4": "9999",
"authorization": [
{
"auth_code": "12345",
"amount": "21.77"
}
]
}
]
}
)
The order import response JSON is structured like this:
{
"order_number": "ORD1234",
"po_number": null,
"attributes": null,
"order_date": "2018-07-19 16:33:25",
"customer": {
"customer_number": "1",
"first_name": "First",
"last_name": "Last",
"email": "[email protected]",
"address1": "#1 Example Ave",
"address2": "Suite #1",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US",
"attributes": null,
"mia_attributes": null,
"company": "Example Corp",
"phone_number": "(999) 999-9999"
},
"shipto": [
{
"shipto_number": "1",
"first_name": "First",
"last_name": "Last",
"company": null,
"address": {
"customer_number": "1",
"address1": "#1 Example Ave",
"address2": "Suite #1",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US",
"attributes": null,
"email": "[email protected]",
"phone_number": "(999) 999-9999"
},
"ship_code": "SHP_001",
"shipping": "5.0000",
"local_tax": "0.0000",
"county_tax": "0.0000",
"state_tax": "0.0000",
"goods_and_services_tax": "0.0000",
"shipping_tax": "0.0000",
"detail_set": [
{
"line_number": 1,
"sku": "SKU_144",
"sku_description": "SKU #144",
"sku_cost": 5.24,
"qty_ordered": 2,
"qty_canceled": 0,
"qty_allocated": 0,
"qty_backordered": 0,
"qty_printed": 0,
"qty_new": 2,
"qty_shipped": 0,
"current_price": "5.59",
"discount": "0.00",
"local_tax": "0.0000",
"county_tax": "0.0000",
"state_tax": "0.0000",
"attributes": null,
"total": "11.18",
"item_code": "ITEM_029",
"override_reason_code": null,
"override_price": null,
"facilities": [],
"pick_ticket_numbers": [],
"qty_returned": 0,
"sku_color": "",
"sku_size": "",
"kit_detail": null,
"kit_lines": [],
"is_kit": false,
"is_waved": false
},
{
"line_number": 2,
"sku": "SKU_143",
"sku_description": "SKU #143",
"sku_cost": 5.24,
"qty_ordered": 1,
"qty_canceled": 0,
"qty_allocated": 0,
"qty_backordered": 0,
"qty_printed": 0,
"qty_new": 1,
"qty_shipped": 0,
"current_price": "5.59",
"discount": "0.00",
"local_tax": "0.0000",
"county_tax": "0.0000",
"state_tax": "0.0000",
"attributes": null,
"total": "5.59",
"item_code": "ITEM_029",
"override_reason_code": null,
"override_price": null,
"facilities": [],
"pick_ticket_numbers": [],
"qty_returned": 0,
"sku_color": "",
"sku_size": "",
"kit_detail": null,
"kit_lines": [],
"is_kit": false,
"is_waved": false
}
],
"packer_instructions": "Poly-bag before packing",
"attributes": {
"carton_contents_required": false
},
"ship_date": null,
"ship_code_description": "Ship Code #1",
"tax_percentage": "0.0000",
"tax_amount": "0.00",
"total_amount": "21.77",
"subtotal_amount": "16.77",
"discounts_amount": "0.00",
"credits_debits_amount": "0.00"
}
],
"payment": [
{
"payment_number": "1",
"first_name": "First",
"last_name": "Last",
"company": null,
"card_type": {
"code": "VS",
"name": "Visa",
"description": "Visa"
},
"last4": "9999",
"token": "0000",
"address": {
"customer_number": "1",
"address1": "#1 Example Ave",
"address2": "Ste 115",
"city": "Dallas",
"state": "TX",
"zipcode": "75240",
"country": "US",
"attributes": null,
"email": "[email protected]",
"phone_number": "(999) 999-9999"
},
"attributes": null,
"authorization": [
{
"auth_code": "12345",
"amount": "21.77",
"attributes": null
}
],
"non_settling": false
}
],
"notes": [],
"total": "21.77",
"shipping": "5.00",
"tax": "0.00",
"subtotal": "16.77",
"qty_ordered": 3,
"qty_canceled": 0,
"qty_allocated": 0,
"qty_backordered": 0,
"qty_printed": 0,
"qty_shipped": 0,
"status": "New",
"holds": [],
"salesperson": null,
"source_code": "SOURCE_001",
"discount": "0.00",
"cancel_date": null,
"qty_returned": 0,
"order_appeasements": [],
"credits_debits": "0.00",
"offer_code": "OFFER_001",
"business_type_code": "Web",
"shipping_tax": "0.00",
"client_order_date": "2018-07-19T16:32:00Z"
}
This endpoint imports orders.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/order/import
Payload
Key | Default | Description |
---|---|---|
order_number | null | The order number for this order. If removed from the payload an order number will by assigned by Jazz. |
order_date | null | Order timestamp. |
ship_date | null | Optional ship by date. |
cancel_date | null | Optional cancel by date. |
source_code | null | A unique identifier for the source of this order. |
customer | null | A JSON representation of a customer. |
shipto | null | A JSON array of ShipTo objects. |
payment | null | A JSON array of Payment objects. |
Payload Objects
ShipTo
Key | Default | Description |
---|---|---|
shipto_number | null | A unique identifier for this address. |
first_name | null | The first name of the customer. |
last_name | null | The last name of the customer. |
address | null | An address object. |
ship_code | null | A code describing the shipping method. |
shipping | null | The price of shipping. |
detail_set | null | An array of Shipment Details. |
tax_percentage | null | The percentage of tax applied to this order. |
shipping_tax | null | The tax applied for shipping. |
subtotal_amount | null | The subtotal of the order. |
discounts_amount | null | The total amount of discounts applied to the order. |
credits_debits_amount | null | The total credits and debits applied to the order. |
tax_amount | null | The total amount of tax applied to the order. |
total_amount | null | The sum of charges applied to the order. |
store_number | null | Used for certain integrations. |
distribution_center_number | null | Used for certain integrations. |
packer_instructions | null | Free-form text instructions to the packer. |
attributes | null | JSON object describing any additional attributes that apply to the order. |
ShipTo Attributes
Key | Default | Description |
---|---|---|
carton_contents_required | false | A boolean field to determine if a carton content label is printed. |
carrier_account_number | null | Small Parcel Carrier Account Number specific to this order. |
Address
Key | Default | Description |
---|---|---|
customer_number | null | The numeric id of this customer. |
first_name | null | The first name of the recipient. |
last_name | null | The last name of the recipient. |
null | The email address of the recipient. | |
company | null | The name of the company of the recipient. |
phone_number | null | The phone number of the recipient. |
address1 | null | The destination address line 1. |
address2 | null | The destination address line 2. |
city | null | The destination city. |
state | null | The abbreviation of the destination state. |
zipcode | null | The destination postal code. |
country | null | The destination country. |
attributes | null | JSON object describing any additional attributes that apply to this address. |
mia_attributes | null | JSON object describing any additional mia attributes that apply to this address. |
Shipment Detail
Key | Default | Description |
---|---|---|
sku | null | The sku code of the item. |
qty_ordered | 0 | The number of units ordered. |
current_price | null | The unit price. |
local_tax | 0 | The local tax applied to the units. |
state_tax | 0 | The state tax applied to the units. |
county_tax | 0 | The county tax applied to the units. |
goods_and_services_tax | 0 | The goods and services tax applied to the units. |
Payment
Key | Default | Description |
---|---|---|
payment_number | null | The numeric id of this payment. |
first_name | null | The first name of the customer. |
last_name | null | The last name of the customer. |
address | null | The billing address of this payment method. |
card_code | null | The identified for this payment type. |
token | null | The token for this payment. |
last4 | null | The last 4 digits of the payment method. |
authorization | null | An array of authorization objects. |
Authorization
Key | Default | Description |
---|---|---|
auth_code | null | The authorization code of this authorization. |
amount | null | The amount authorized. |
Shipments
Get Shipment List
Make sure to replace
<order_number>
with your own value and/or use different parameters.
curl -X GET \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/shipment/status?order_number=<order_number>
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipment/status'
token = requests.get(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'order_number': '<order_number>'
})
The shipment list response JSON is structured like this:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"shipment_number": "1000001",
"status": "confirmed",
"created_at": "2021-06-10T16:45:59.958134Z",
"ship_date": "2018-04-13",
"weight": "2.94",
"carton_number": "1000001",
"carton_code": "100001",
"tracking_number": "1234567890123456",
"return_tracking_number": "1234567890123456",
"ship_code": "fedex_ground",
"ship_code_description": "FedEx Ground",
"source_code": "source",
"shipment_detail": [
{
"order_line_number": "1",
"pick_line_number": "1",
"sku_code": "DEMO-123",
"qty_shipped": 1,
"line_attributes": {
"custom_value": "insert detail"
}
],
"pick_ticket_number": "1000000001",
"bill_of_lading_number": "0000000000245179812",
"order_number": "<order_number>"
}
]
}
This endpoint retrieves order statuses with various filters.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/shipment/status
Query Parameters
Parameter | Default | Syntax | Description |
---|---|---|---|
limit | 10 | 10 | The number of results to return per page. |
shipment_number | null | A100 | If provided, the result will be limited to a specific shipment. |
order_number | null | A100 | If provided, the result will be limited to a specific order. |
ship_date | null | YYYY-MM-DD | If provided, the result will be limited to shipments from a specific date. |
po_number | null | A100 | If provided, the result will be limited to orders for a specific PO |
start_date | null | YYYY-MM-DDTHH:MM:SS-0600 | If set, the result will be limited to shipments since the input date. |
end_date | null | YYYY-MM-DDTHH:MM:SS-0600 | If set, the result will be limited to shipments up to the input date. |
Inventory
Get Inventory Levels
curl -X GET \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/product/inventory?limit=10
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/inventory'
token = requests.get(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'limit': 10
})
The inventory response JSON is structured like this:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"item_code": "DEMO",
"sku_code": "DEMO",
"facility_code": "FBF01",
"total_quantity": 1437,
"available_quantity": 1337,
"inbound_quantity": 100,
"on_hand_quantity": 1337,
"attributes": {
"hts_code_1": null,
"harmonized_cd": "1776.07.0400",
"hazmat_cd": null,
"size_class": 0.0357,
},
"barcode": "1234567890",
"business_type_code": null
},
]
}
This endpoint retrieves inventory by SKU, Facility, Business Type.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/product/inventory
Query Parameters
Parameter | Default | Description |
---|---|---|
limit | 10 | The number of results to return per page. |
sku__sku_code | null | If provided, the result will be limited to a single SKU. |
facility_code | null | If provided, the result will be limited to inventory levels from a specific Facility. |
business_type_code | null | If provided, the result will be limited to a single Business Type |
since | null | If set to a valid ISO 8601 datestamp, the result will only contain inventory levels for SKUs that have had inventory transactions since the input date (e.g. 2018-05-21T00:00:00-05:00). |
Pix Transactions
curl -X GET \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/product/pix?limit=10
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/pix'
token = requests.get(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'limit': 25
})
The inventory response JSON is structured like this:
{
"count": 50,
"next": "https://fbflurry.jazz-oms.com/api/v1/product/pix?limit=25&offset=50",
"previous": "https://fbflurry.jazz-oms.com/api/v1/product/pix?limit=25&offset=0",
"results": [
{
"id": "43949981",
"sku_code": "SKU_CODE",
"facility_code": "FACILITY_CODE",
"business_type_code": null,
"quantity": 2,
"reason_code": "REASON_CODE",
"transaction_id": null,
"transaction_type": "TRANSACTION_TYPE",
"po_number": null,
"order_number": null,
"lot_number": null,
"lot_expiration": null,
"created_at": "2024-01-25T14:18:23.625117-06:00",
"shipment_number": null,
"rma_reference": null,
"return_to_inventory": true,
"saleability": "SALEABILITY",
"note": null,
"case_number": null
}
]
}
This endpoint retrieves inventory by SKU, Facility, Business Type. The 3 types of TRANSACTION_TYPEs located in the response are below:
TRANSACTION_TYPE | Description |
---|---|
100 | Receipts |
200 | Returns |
300 | Adjustments |
Key | Default | Description |
---|---|---|
sku_code | - | The sku code for this detail line. |
reason_code | - | For most transactions, this will show the reason code related to the move. |
po_number | null | If transaction_type is 100, this will show the purchase order received against if there was one. |
order_number | null | If the transaction can be related to an order, the order number will show here. |
shipment_number | null | If transaction_type is 100, this will show the ASN shipment number provided on the receipt. |
rma_reference | null | If transaction_type is 200, this will show the RMA referenced with the return. |
saleability | null | Options are "Saleable", "Damaged", "Nonsaleable". Assume NULL = "Saleable". |
case_barcode | null | If transaction_type is 100, this will show the container barcode received. |
line_number | null | The line number for this shipment detail. |
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/product/pix
Query Parameters
Parameter | Default | Description |
---|---|---|
limit | 10 | The number of results to return per page. |
transaction_type | null | If provided, the results will be limited to the transaction_type indicated. |
sku__sku_code | null | If provided, the result will be limited to a single SKU. |
transaction_id | null | If provided, the result will be limited to a single transaction. |
search | null | If provided, the result will be limited to transaction ids including the provided value |
since | null | If set to a valid ISO 8601 datestamp, the result will only contain inventory transactions for SKUs that have had inventory transactions since the input date (e.g. 2018-05-21T00:00:00-05:00). |
Advanced Ship Notices
This endpoint serves for both regular inbound shipment records as well as ASN receiving by barcode records.
Import ASN/Shipment
curl -X POST \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/shipping/asn
--data '{
"shipment_number": "3160111",
"facility_code": "FBF01",
"po_number": null,
"load_number": null,
"vendor": "ABC123",
"seal_number": null,
"arrival_at": "2020-02-22",
"shipped_at": "2020-02-20",
"details":
[{
"sku_code": "210642386548765",
"po_number": null,
"case_barcode": null,
"line_number": "001001",
"quantity": 33,
"country_of_origin": "US"
}]
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipping/asn'
token = requests.post(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"shipment_number": "3160111",
"facility_code": "FBF01",
"po_number": null,
"load_number": null,
"seal_number": null,
"arrival_at": "2020-02-22",
"shipped_at": "2020-02-20",
"details":
[{
"sku_code": "210642386548765",
"po_number": null,
"case_barcode": null,
"line_number": "001001",
"quantity": 33,
"country_of_origin": "US"
}]
})
The asn import response JSON is structured like this:
{
"arrival_at": "2020-04-22T09:20:08-05:00",
"carrier_number": null,
"created_at": "2020-03-11T18:30:16.026529Z",
"created_by": 2,
"facility": 1,
"id": 96,
"load_number": null,
"seal_number": null,
"ship_code": null,
"po_number": null,
"shipped_at": "2020-04-20T09:20:08Z",
"shipment_number": "10050",
"status": "open",
"updated_at": null,
"updated_by": null,
"shipment_type": "asn",
"details": [{
"advance_ship_notice": 96,
"status": "open",
"sku": 440496,
"quantity": 33,
"received": 0,
"line_number": "001001",
"po_number": null,
"case": 13800,
"po_number": null,
"case_barcode": "r9"
}]
}
This endpoint imports ASNs.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/shipping/asn
Payload Keys
Key | Default | Description |
---|---|---|
shipment_number | 1 | A unique identifier for the shipment. |
facility_code | FBF01 | The facility for the shipment. |
load_number | null | The load number for the shipment. Can be left null. |
vendor | null | Vendor code for the origin vendor. |
seal_number | null | The seal number for the shipment. Can be left null. |
arrival_at | null | The expected arrival date of the shipment. |
shipped_at | null | The date that the shipment shipped. |
detail | null | A JSON Array of purchase order details. |
Payload Objects
Shipment Detail
Key | Default | Description |
---|---|---|
sku_code | 1 | The sku code for this detail line. |
po_number | null | The Purchase Order tied to this shipment detail. Can be left null. |
case_barcode | null | To allow for ASN receiving, a barcode must be provided for the quantity. Can be left null for normal shipment records. |
line_number | null | The line number for this shipment detail. |
quantity | null | The number of units to ship. |
Country of Origin | null | Sets the COO for the Case/Detail line. |
Update ASN/Shipment
curl -X PATCH \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/shipping/asn/<shipment_number>
--data '{
"load_number": null,
"seal_number": null,
"arrival_at": "2020-02-22",
"shipped_at": "2020-02-20",
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipping/asn/<shipment_number'
token = requests.patch(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"load_number": null,
"seal_number": null,
"arrival_at": "2020-02-22",
"shipped_at": "2020-02-20",
})
This endpoint updates ASNs.
HTTP Request
PATCH https://<domain>.jazz-oms.com/api/v1/shipping/asn/<shipment_number>
Payload Keys
Key | Default | Description |
---|---|---|
load_number | null | The load number for the shipment. Can be left null. |
seal_number | null | The seal number for the shipment. Can be left null. |
arrival_at | null | The expected arrival date of the shipment. |
shipped_at | null | The date that the shipment shipped. |
Retrieve ASNs
curl -X GET \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/shipping/asn/<shipment-number>
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipping/asn/<shipment-number>'
token = requests.get(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
})
The ASN response JSON is structured like this:
{
"arrival_at": "2020-06-19T05:00:00Z",
"carrier_number": null,
"created_at": "2020-06-19T22:11:29.533753Z",
"created_by": 213,
"facility_code": "FBF01",
"facility": 1,
"id": 164,
"load_number": null,
"po_number": null,
"seal_number": null,
"ship_code": "SMRTT",
"shipped_at": "2020-06-19T05:00:00Z",
"shipment_number": "SHIPMENT_X",
"status": "open",
"updated_at": "2020-06-19T22:11:29.653474Z",
"updated_by": null,
"shipment_type": "inbound",
"cases": [],
"detail": [
{
"id": 13885,
"item_code": "ITEM_X",
"description": "Description",
"size_desc": "Size",
"color_desc": "Color",
"shipment_number": "SHIPMENT_X",
"po_number": null,
"sku_code": "SKU_CODE",
"barcode": "BARCODE",
"quantity": 15,
"received": 0,
"case_barcode": null,
"facility": "FBF01",
"line_number": "1",
"status": "open",
"is_virtual": false
}
],
"on_hold": false,
"attributes": {}
}
This endpoint retrieves ASNs using the shipment number. It call also be used with the query parameters below as in /api/v1/shipping/asn?query=XXX
Query Parameters
Parameter | Format | Description |
---|---|---|
status | open, closed, receiving | Return ASNs under the current status. |
shipped_since | Date | Gives all ASNs with a shipment since date. |
created_since | Date | Gives all ASNs created since date. |
updated_since | Date | Gives all ASNs updated since date. |
arrived_since | Date | Gives all ASNs with an arrival since date. |
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/shipping/asn/<shipment-number>
Purchase Orders
Make sure to replace
<purchase_order_number>
with your own value and/or use different parameters.
Retrieve Purchase Orders
curl -X GET \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/purchase-order?search=<purchase_order_number>
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/purchase-order'
token = requests.get(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'search': '<purchase_order_number>'
})
The purchase order response JSON is structured like this:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"po_number": "001",
"facility_code": "FBF01",
"order_date": "2018-05-02",
"expected_date": "2018-05-01",
"attributes": null,
"detail": [
{
"line_number": 1,
"sku_code": "0249953",
"qty_ordered": 6,
"description": "Long Sleeve Tuck In Shirt",
"attributes": null,
"color_description": "Red",
"size_description": "Medium",
"qty_received": 0,
"status": "CLOSED",
"expected_date": null,
"item_code": "0249953",
"requires_lot_number": false,
"sku": {
"id": 3745,
"sku_code": "0249953",
"description": "Long Sleeve Tuck In Shirt",
"barcode": "718020133065",
"color_code": "100",
"color_description": "Red",
"size_code": "1000",
"size_description": "Medium",
"original_price": "16.03",
"current_price": "16.03",
"cost": "4.00",
"backorderable": false,
"clearance": false,
"attributes": null,
"status": "ACTIVE",
"inventory_threshold": 0,
"mia_attributes": {},
"uses_inventory": true,
"tenant": 3,
"item": 9
}
}
],
"vendor_code": "01",
"vendor": "A Manufacturing Co",
"status": "OPEN"
}
]
}
This endpoint retrieves purchase orders by full or partial purchase order numbers.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/purchase-order
Query Parameters
Parameter | Default | Description |
---|---|---|
status | OPEN/CLOSED | Return POs under the current status. |
created_since | Date | Gives all POs created since date. |
updated_since | Date | Gives all POs updated since date. |
search | null | If provided, the result will be limited those which fully or partially match the provided value. |
Import Purchase Order
curl -X POST \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/purchase-order
--data '{
"po_number": "001",
"order_date": "2018-07-01",
"expected_date": "2018-07-01",
"business_type_code": "web",
"vendor_code": "VEND",
"facility_code": "FBF01",
"detail": [
{
"vendor_part_num": "TEST",
"client_line_num": "1"
"sku_code": "SKU_001",
"qty_ordered": 100,
"attributes": "",
"expected_date": "2018-07-01"
}
]
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/purchase-order'
token = requests.post(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"po_number": "001",
"order_date": "2018-07-01",
"expected_date": "2018-07-01",
"business_type_code": "web",
"vendor_code": "VEND",
"facility_code": "FBF01",
"detail": [
{
"vendor_part_num": "TEST",
"client_line_num": "1",
"sku_code": "SKU_001",
"qty_ordered": 100,
"attributes": "",
"expected_date": "2018-07-01"
}
]
})
The purchase order import response JSON is structured like this:
{
"po_number": "001",
"facility_code": "FBF01",
"order_date": "2018-07-01",
"expected_date": "2018-07-01",
"attributes": null,
"detail": [
{
"line_number": 1,
"sku_code": "SKU_001",
"qty_ordered": 100,
"description": "SKU #1",
"attributes": null,
"color_description": "",
"size_description": "",
"qty_received": 0,
"status": "OPEN",
"expected_date": "2018-07-01",
"item_code": "ITEM_001",
"requires_lot_number": false,
"sku": {
"id": 2,
"sku_code": "SKU_001",
"description": "SKU #1",
"barcode": "BAR_001",
"color_code": "",
"color_description": "",
"size_code": "",
"size_description": "",
"original_price": "8.57",
"current_price": "8.57",
"cost": "8.64",
"backorderable": false,
"clearance": false,
"attributes": null,
"status": "ACTIVE",
"inventory_threshold": 0,
"mia_attributes": null,
"uses_inventory": true,
"tenant": 2,
"item": 2
}
}
],
"vendor_code": "VEND",
"vendor": "Vendor",
"status": "OPEN"
}
This endpoint imports purchase orders.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/purchase-order
Payload Keys
Key | Default | Description |
---|---|---|
vendor_code | null | A unique identifier for the vendor. |
po_number | null | A unique identifier for this purchase order. |
order_date | null | The date of the purchase order. |
expected_date | null | The date the purchase order is expected to arrive. |
business_type_code | null | Specify the Business Type inventory should be received into. |
facility_code | null | A unique identifier for the facility of this purchase order. |
detail | null | A JSON Array of purchase order details. |
Payload Objects
Purchase Order Detail
Key | Default | Description |
---|---|---|
vendor_part_num | null | The vendor part number for this detail line. |
client_line_num | null | Line number for customer reference that is different than the PO line number. |
sku_code | null | The sku code of the ordered units. |
qty_ordered | null | The number of units ordered. |
attributes | null | JSON object describing any additional attributes for this order. |
expected_date | null | The expected date of delivery. |
Returns
Make sure to supply complete and correct data and/or use different parameters.
Return Material Authorizations
curl -X POST \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/order/return-merchandise-authorization
--data '{
"order_number": "ORD1234",
"integration": "Jazz RMA",
"reference": "RMAREF123",
"details": [{
"sku_code": "SKU_CODE",
"quantity": "1",
"reason_code": "REASON_CODE",
"tracking_number": "TRACKING123"
}]
}'
The RMA import response JSON is structured like this:
{
"id": 621,
"reference": "RMAREF1234",
"order_number": "EHP14156",
"status": "open",
"details": [
{
"id": 395,
"created_at": "2021-02-02T16:15:32.604025Z",
"updated_at": null,
"detail_id": 324874,
"quantity": 1,
"qty_returned": 0,
"reason_code": "REASON_CODE",
"reason_description": "Return",
"attributes": { "sku": "SKU_CODE" },
"vendor_code": null
}
],
"from_address": 190072,
"attributes": {},
"integration": "JazzRMA"
}
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/order/return-merchandise-authorization'
token = requests.post(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"order_number": "ORD1234",
"integration": "JazzRMA",
"reference": "RMAREF123",
"details": [{
"sku_code": "SKU_CODE",
"quantity": "1",
"reason_code": "REASON_CODE",
"tracking_number": "TRACKING123"
}]
})
This endpoint creates 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
Payload Keys
Key | Default | Description |
---|---|---|
order_number | null | The order number that the RMA is in reference to. |
integration | null | The integration that this RMA will use to return results. |
reference | null | The RMA number or reference number. |
Payload Objects
Details
Key | Default | Description |
---|---|---|
sku_code | null | The sku_code of the SKU to Return. |
quantity | 0 | The quantity of that SKU to Return. |
reason_code | null | The return reason code to indicate why it was returned. |
tracking_number | null | The tracking number given to this RMA. |
Returns Processing
curl -X POST \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/shipping/return
--data '{
"facility_code": "FBF01",
"order_number": "TEST",
"items": [{
"barcode": "TEST",
"quantity": 1,
"reason_code": "TEST"
}]
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipping/return'
token = requests.post(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"facility_code": "FBF01",
"order_number": "TEST",
"items": [{
"barcode": "TEST",
"quantity": 1,
"reason_code": "TEST"
}]
})
This endpoint processes Returns. Returns processed through this endpoint will never add inventory to the warehouse indicated and will always process the return as 'scrap'.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/shipping/return
Payload Keys
Key | Default | Description |
---|---|---|
facility_code | null | The Facility Code for the facility that the return will be mailed to. |
order_number | null | The order number that the return is in reference to. |
items | null | A JSON Array of items to return. |
Payload Objects
Items
Key | Default | Description |
---|---|---|
barcode | null | The Barcode of the SKU to Return. |
quantity | 0 | The quantity of that SKU to Return. |
reason_code | null | The return reason code to indicate why it was returned. |
SmartPost Returns Labels
curl -X POST \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/shipping/return-label/get-label
--data '{
"full_name": "First Last",
"company_name": "Example Corp",
"phone_number": "999-999-9999",
"address1": "123 Main St",
"address2": "Suite 100",
"city": "Dallas",
"state_abbr": "TX",
"zipcode": "75200",
"country_code": "US",
"country_full": "United States",
"reference": "ABC 123",
"label_image_type": "PNG"
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/shipping/return-label/get-label'
token = requests.post(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"full_name": "First Last",
"company_name": "Example Corp",
"phone_number": "999-999-9999",
"address1": "123 Main St",
"address2": "Suite 100",
"city": "Dallas",
"state_abbr": "TX",
"zipcode": "75200",
"country_code": "US",
"country_full": "United States",
"reference": "ABC 123",
"label_image_type": "PNG"
})
The return label response JSON is structured like this:
{
"tracking_number": "02393000043424375158",
"label_image": <base64-encoded image data in the requested format>
}
If an error occurs, the response JSON will look something like this:
{
"errors": ["full_name value is required", "address1 value is required"]
}
This endpoint provides tracking numbers and FedEx SmartPost Returns labels for return shipments to the FBFlurry warehouse.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/shipping/return-label/get-label
Payload Keys
FedEx requires complete address and contact information for the sender of the package; i.e., the customer sending the return.
Key | Default | Description |
---|---|---|
full_name | null | The first and last name of the sender. |
company_name | null | The company name of the sender -- this may be empty. |
phone_number | null | The phone number of the sender. |
address1 | null | The first address line for the sender. |
address2 | null | The second address line for the sender -- this may be empty. |
city | null | The city name for the sender. |
state_abbr | null | The 2-character state abbreviation for the sender. |
zipcode | null | The ZIP code for the sender. |
country_code | null | The 2-character country code for the sender. |
country_full | null | The full country name for the sender. If this is empty, Jazz will attempt to determine it from the country_code. |
reference | null | A reference string for the return shipment. This will appear on the return label. |
label_image_type | null | The format for the label image. Supported options are PNG and PDF; PNG is the default. |
Catalog
Create Items
curl -X POST \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/product/item
--data '{
"status": "ACTIVE",
"item_code": "item_code",
"description": "item_desc",
"original_price": "5",
"cost": "4",
"inventory_minimum": null,
"free_shipping": "0",
"non_taxable": "0",
"is_gift_card": "0",
"send_shipping_confirmation": "0",
"drop_ship": "0",
"is_hazardous_material": "0",
"vendor_code": null,
"attributes": {
"department_code": null,
"class_code": null,
"hts_code_1": "100.00.0000",
"brand": null,
"class_description": null,
"unit_weight": 0,
"dimension_1": 0,
"lot_number_required": false,
"country_of_origin": "US",
}
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/item'
token = requests.post(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"status": "ACTIVE",
"item_code": "item_code",
"description": "item_desc",
"original_price": "5",
"cost": "4",
"inventory_minimum": null,
"free_shipping": "0",
"non_taxable": "0",
"is_gift_card": "0",
"send_shipping_confirmation": "0",
"drop_ship": "0",
"is_hazardous_material": "0",
"vendor_code": null,
"attributes": {
"department_code": null,
"class_code": null,
"hts_code_1": "100.00.0000",
"brand": null,
"class_description": null,
"unit_weight": 0,
"dimension_1": 0,
"lot_number_required": false,
"country_of_origin": "US",
}
})
This endpoint imports Items.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/product/item
Payload Keys
Key | Default | Description |
---|---|---|
Status | null | 'ACTIVE' or 'INACTIVE' to set the status of the item. |
item_code | null | The Item Code to be used for the item. |
description | null | The description of the item. |
original_price | null | The original Price of the item. |
cost | null | The Cost of the item. |
inventory_minimum | null | The minimum level of inventory to keep for this item. |
free_shipping | 0 | 1 or 0 to set True / False. |
non_taxable | 0 | 1 or 0 to set True / False. |
is_gift_card | 0 | 1 or 0 to set True / False. |
send_shipping_confirmation | 0 | 1 or 0 to set True / False. |
drop_ship | 0 | 1 or 0 to set True / False. |
is_hazardous_material | 0 | 1 or 0 to set True / False. |
vendor_code | 0 | The Vendor Code for this item. |
attributes | null | A JSON Array of attributes. |
Payload Objects
Attributes
Key | Default | Description |
---|---|---|
hts_code_1 | null | Current location to indicate a Harmonized Code. |
brand | null | The Brand of the item. |
class_code | null | The Class Code for tax purposes. |
class_description | null | The description of the class. |
department_code | null | The department code of the item. |
unit_weight | 0 | The gross weight of 1 unit. |
dimension_1 | 0 | The dimensions of 1 unit in inches. |
lot_number_required | false | true / false Boolean setting that sets whether the item uses Lot Numbers. |
country_of_origin | null | The Country Code of the Country of Origin. |
Create SKUs
curl -X POST \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/product/sku
--data '{
"sku_code": "sku_code",
"description": "sku_desc",
"barcode": "barcode",
"original_price": "5",
"current_price": "4",
"cost": "3",
"color_code": "08",
"color_description": "Red",
"size_code": "05",
"size_description": "Large",
"backorderable": true,
"inventory_threshold": null,
"box_quantity": "1",
"uses_inventory": true,
"clearance": null,
"status": "ACTIVE",
"is_kit": null,
"item_code": "item_code",
"attributes": {
"unit_weight": 0,
"dimension_1": 0,
"tax_code": "PC040100",
"web_size": "12/14"
}
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/sku'
token = requests.post(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"sku_code": "sku_code",
"description": "sku_desc",
"barcode": "barcode",
"original_price": "5",
"current_price": "4",
"cost": "3",
"color_code": "08",
"color_description": "Red",
"size_code": "05",
"size_description": "Large",
"backorderable": true,
"inventory_threshold": null,
"box_quantity": "1",
"uses_inventory": true,
"clearance": null,
"status": "ACTIVE",
"is_kit": null,
"item_code": "item_code",
"attributes": {
"unit_weight": 0,
"dimension_1": 0,
"tax_code": "PC040100",
"web_size": "12/14"
}
})
This endpoint imports SKUs. You must have the appropriate Item already in Jazz to import the SKU.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/product/sku
Payload Keys
Key | Default | Description |
---|---|---|
sku_code | null | The Sku Code to be used for the item. |
description | null | The description for the sku. |
barcode | null | The unique barcode for the sku. |
original_price | 0 | The original Price of the sku. |
current_price | 0 | The Current price of the sku. |
cost | 0 | The Cost of the sku. |
color_code | null | The color code for the sku. |
color_description | null | The color description for the sku. |
size_code | null | The size code for the sku. |
size_description | null | The size description for the sku. |
backorderable | true | true / false Boolean setting which sets whether the sku is backorderable or not. |
inventory_threshold | 0 | The minimum level of inventory to keep for the sku. |
box_quantity | 1 | The quantity per box for the sku. |
uses_inventory | true | true / false Boolean setting which sets whether the sku uses inventory or not. |
status | null | 'ACTIVE' or 'INACTIVE' to set the status of the sku. |
is_kit | null | Set to 'yes' if the sku is a KIT sku. |
item_code | null | The item code to tie the sku to. The item must already be set up in Jazz. |
attributes | null | A JSON Array of attributes. |
Payload Objects
Attributes
Key | Default | Description |
---|---|---|
unit_weight | 0 | The gross weight of 1 unit. |
dimension_1 | 0 | The dimensions of 1 unit in inches. |
tax_code | null | The individual tax code for the sku. |
web_size | null | Web facing size code for the sku. |
Update SKUs
curl -X PATCH \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/product/sku/sku_code
--data '{
"sku_code": "sku_code",
"description": "sku_desc",
"barcode": "barcode",
"original_price": "5",
"current_price": "4",
"cost": "3",
"color_code": "08",
"color_description": "Red",
"size_code": "05",
"size_description": "Large",
"backorderable": true,
"inventory_threshold": null,
"box_quantity": "1",
"uses_inventory": true,
"clearance": null,
"status": "ACTIVE",
"is_kit": null,
"item_code": "item_code",
"attributes": {
"unit_weight": 0,
"dimension_1": 0,
"tax_code": "PC040100",
"web_size": "12/14"
}
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/sku/sku_code'
token = requests.patch(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"sku_code": "sku_code",
"description": "sku_desc",
"barcode": "barcode",
"original_price": "5",
"current_price": "4",
"cost": "3",
"color_code": "08",
"color_description": "Red",
"size_code": "05",
"size_description": "Large",
"backorderable": true,
"inventory_threshold": null,
"box_quantity": "1",
"uses_inventory": true,
"clearance": null,
"status": "ACTIVE",
"is_kit": null,
"item_code": "item_code",
"attributes": {
"unit_weight": 0,
"dimension_1": 0,
"tax_code": "PC040100",
"web_size": "12/14"
}
})
This endpoint to update SKUs. The only required fields for this endpoint are sku_code and barcode.
HTTP Request
PATCH https://<domain>.jazz-oms.com/api/v1/product/sku/sku_code
Payload Keys
Key | Default | Description |
---|---|---|
sku_code | null | The Sku Code to be used for the item. |
description | null | The description for the sku. |
barcode | null | The unique barcode for the sku. |
original_price | 0 | The original Price of the sku. |
current_price | 0 | The Current price of the sku. |
cost | 0 | The Cost of the sku. |
color_code | null | The color code for the sku. |
color_description | null | The color description for the sku. |
size_code | null | The size code for the sku. |
size_description | null | The size description for the sku. |
backorderable | true | true / false Boolean setting which sets whether the sku is backorderable or not. |
inventory_threshold | 0 | The minimum level of inventory to keep for the sku. |
box_quantity | 1 | The quantity per box for the sku. |
uses_inventory | true | true / false Boolean setting which sets whether the sku uses inventory or not. |
status | null | 'ACTIVE' or 'INACTIVE' to set the status of the sku. |
is_kit | null | Set to 'yes' if the sku is a KIT sku. |
item_code | null | The item code to tie the sku to. The item must already be set up in Jazz. |
attributes | null | A JSON Array of attributes. |
Payload Objects
Attributes
Key | Default | Description |
---|---|---|
unit_weight | 0 | The gross weight of 1 unit. |
dimension_1 | 0 | The dimensions of 1 unit in inches. |
tax_code | null | The individual tax code for the sku. |
web_size | null | Web facing size code for the sku. |
Get SKU Info
Make sure to replace
<sku_code>
with your own value and/or use different parameters.
curl -X GET \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/product/sku?sku_code=<sku_code>
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/sku'
token = requests.get(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'sku_code': '<sku_code>'
})
The sku list response JSON is structured like this:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"sku_code": "demo1",
"is_kit": false,
"description": "demo1",
"barcode": "demo1",
"attributes": null,
"item_code": "CVMERCH9527",
"barcodes": [
{
"id": 604053,
"sku": 546008,
"barcode": null,
"case_quantity": 100,
"type": "MASTER",
"dimension_1": null,
"dimension_2": null,
"dimension_3": null,
"tenant": 11,
"case_weight": null
},
{
"id": 604052,
"sku": 546008,
"barcode": null,
"case_quantity": 5,
"type": "INNER",
"dimension_1": null,
"dimension_2": null,
"dimension_3": null,
"tenant": 11,
"case_weight": null
},
{
"id": 604050,
"sku": 546008,
"barcode": "demo1",
"case_quantity": 1,
"type": "XREF",
"dimension_1": null,
"dimension_2": null,
"dimension_3": null,
"tenant": 11,
"case_weight": null
}
],
"color_code": null,
"color_description": null,
"size_code": null,
"size_description": null,
"original_price": "1.00",
"current_price": "1.00",
"cost": "1.00",
"backorderable": false,
"clearance": false,
"uses_inventory": true,
"status": "ACTIVE",
"inventory_threshold": 0,
"mia_attributes": {},
"lot_number_required": false,
"serial_required": false,
"created_at": "2019-11-12 11:49:25",
"updated_at": "2019-11-12 11:49:25",
"box_quantity": 1,
"is_virtual": false
}
]
}
This endpoint retrieves sku details with various filters.
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/product/sku
Query Parameters
Parameter | Default | Description |
---|---|---|
limit | 10 | The number of results to return per page. |
sku_code | null | If provided, the result will be limited to a specific sku code. |
barcode | null | If provided, the result will be limited to a specific sku barcode. |
item__item_code | null | If provided, the result will be limited to a specific item code. |
color_code | null | If provided, the result will be limited to a specific color code. |
size_code | null | If set, the result will be limited to a specific size code. |
Paygate Calls
Payment Authorization
curl -X POST https://<domain>.jazz-oms.com/soap/ver15 \
--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>{{ API_KEY }}</encrypted_key>
<mode>prod</mode>
<ident>{{ USERNAME }}</ident>
<name>
<first>Christopher</first>
<last>Walken</last>
<phone>2140123456</phone>
<email>[email protected]</email>
</name>
<address>
<line1>10300 Sanden Dr</line1>
<line2>Suite 200</line2>
<city>Dallas</city>
<province>TX</province>
<postalcode>75238</postalcode>
<country>US</country>
</address>
<card>
<type>VS</type>
<number>4111111111111111</number>
<expiry_year>2021</expiry_year>
<expiry_month>04</expiry_month>
<cvv>123</cvv>
</card>
<amount>40.99</amount>
<reference>TEST20200311195539</reference>
<auxiliary/>
<ship_info>
<shipfirst>Christopher</shipfirst>
<shiplast>Walken</shiplast>
<shipphone>2140123456</shipphone>
<shipemail>[email protected]</shipemail>
<shipline1>10300 Sanden Dr</shipline1>
<shipline2>Suite 100</shipline2>
<shipcity>Dallas</shipcity>
<shipprovince>TX</shipprovince>
<shippostalcode>75238</shippostalcode>
<shipcountry>US</shipcountry>
</ship_info>
<storecardexpdate/>
</ns1:authorize>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>'
The payment auth response XML is structured like this:
<?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>40.99</amount>
<auxiliary/>
<storage_transaction_id/>
</authorizeReturn>
</ns1:authorizeResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
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.
API_KEY and USERNAME to be provided as needed.
Available Domains
Domain | Description |
---|---|
pg-qa01 | Testing environment. |
pg | Production environment. |
Order Cancels
Get Order Cancel Transactions
This endpoint provides cancel transaction records. Records can be filtered by SKU, Order Number, and Reason Code. A transaction ID can be provided to return only the given transaction.
Get the first 10 cancels using curl
curl -X GET \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/order/cancels?limit=10
Get the first 10 cancels for SKU 12345 using Python
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/order/cancels'
token = requests.get(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, params={
'limit': 10,
'sku_code': '12345'
})
Example response:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"transaction_id": 1234567,
"created_at": "2021-04-26T23:29:20.225975-06:00",
"order_number": "123456789",
"line_number": "1",
"sku_code": "SKU12345",
"barcode": "1234567890",
"reason_code": "012",
"quantity": 1
}
]
}
HTTP Request
GET https://<domain>.jazz-oms.com/api/v1/order/cancels
Query Parameters
Parameter | Default | Description |
---|---|---|
limit | 10 | The number of results to return per page. |
since | null | If set to a valid ISO 8601 datestamp, the results will be limited to transactions occurring on or after the given date and time. |
order_number | null | If provided, the results will be limited to transactions for the given order. |
reason_code | null | If provided, the result will be limited to transactions for the given reason. |
sku_code | null | If provided, the results will be limited to transactions for the given SKU. |
Vendors
Add Vendors
curl -X POST \
-H "Tenant: DEMO" \
-H "Content-Type: application/json" \
-H "Authorization: Token <token>" \
https://<domain>.jazz-oms.com/api/v1/vendor
--data '{
"vendor_code": "ABC123",
"name": "Vendor A",
"address1": "10300 Sanden Dr",
"address2": "Ste 100",
"city": "Dallas",
"state": "TX",
"zipcode": "75244",
"country": "US",
"terms": "net30",
"ship_code": "FEDEX"
}'
import requests
url = 'https://<domain>.jazz-oms.com/api/v1/product/sku'
token = requests.post(url, headers={
'Tenant': 'DEMO',
'Content-Type': 'application/json',
'Authorization': 'Token <token>'
}, json={
"vendor_code": "ABC123",
"name": "Vendor A",
"address1": "10300 Sanden Dr",
"address2": "Ste 100",
"city": "Dallas",
"state": "TX",
"zipcode": "75244",
"country": "US",
"terms": "net30",
"ship_code": "FEDEX"
})
This endpoint imports vendors.
HTTP Request
POST https://<domain>.jazz-oms.com/api/v1/vendor
Payload Keys
Key | Default | Description |
---|---|---|
vendor_code | null | This is the code to use for the vendor. |
name | null | Name of the vendor |
address1 | null | Address line 1 |
address2 | null | Address line 2 |
city | null | Vendor city |
state | null | Vendor state |
zipcode | null | Vendor zipcode |
country | null | Vendor country |
terms | null | Vendor terms |
ship_code | null | Shipping method |
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. |