NAV
shell python
  • Introduction
  • Rate Limits
  • Authentication
  • HTTP Headers
  • Pagination
  • Orders
  • Shipments
  • Inventory
  • Advanced Ship Notices
  • Purchase Orders
  • Returns
  • Catalog
  • Marketing
  • Paygate
  • Order Cancels
  • Vendors
  • Errors
  • 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.
    email 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.
    email 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:

    1. Address-based: Provide full sender address and contact info.
    2. Order-based: Provide order_number instead, 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:

    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.