NAV
json

Introduction

Welcome to the Turbine API documentation. If you have any questions please contact: admin@240tech.com

Format

This API supports JSON for requests and responses.

Authentication

Each request requires an API key in the request header. Each account is assigned an API key. Contact support for your API key.

Name: Authorization
Value: Token token=<key>

Notice: You must replace key with your personal 16-24 character API key.

Account Identifier (Optional)

You can optionally include an account identifier in the request header. This is useful for tracking requests by account. Contact support for your account identifier.

Name: X-Account-Identifier
Value: <account_identifier>

Notice: You must replace account_identifier with your account identifier.

New Order

Submit a new order request.

New Order Request

POST https://turbine-sandbox.240tech.com/api/v3/orders
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Sample JSON request body with required fields: JSON

New Order Parameters

Example

{
  "type": "order",
  "account_id": 1,
  "location_id": 1,
  "account_zip": "92704",
  "purchase_order": "1729598549",
  "order_reference_number": "1729598549-1",
  "federal_tax_identifier": "123555567",
  "ship_provider": "USPS",
  "ship_method": "First",
  "ship_to": {
    "first_name": "Bob",
    "last_name": "Smith",
    "company_name": "The Turbine",
    "address": "123 Main St",
    "address_2": "Apt 1",
    "city": "Portland",
    "state": "OR",
    "zip_code": "97034",
    "country": "US",
    "email": "johnsmith@gmail.com",
    "telephone": "800-555-1212"
  },
  "ship_from": {
    "first_name": "",
    "last_name": "",
    "company_name": "240 Tech",
    "address": "1915 S Susan St",
    "address_2": "",
    "city": "Santa Ana",
    "state": "CA",
    "zip_code": "92704",
    "country": "US"
  },
  "shipping_label_url": "https://clientdomain.com/shipments/shipping-label.pdf",
  "packing_slip_url": "https://clientdomain.com/shipments/packing-slip.pdf",
  "addtl_ship_docs_url": "https://clientdomain.com/shipments/customs-declaration.pdf",
  "production_priority": "normal",
  "items": [
    {
      "customer_sku": "574247-15",
      "item_reference_number": "574247-15",
      "decoration_type": "dtg",
      "sku": "BC3001-BLACK-L",
      "product_sku": "DTF-GHOSTTEE-BC3001-BLACK-L",
      "quantity": "1",
      "attributes": {
        "style": "BC3001",
        "color": "BLACK",
        "size": "L"
      },
      "tech_pack_url": "https://clientdomain.com/wp-content/assets/tech-pack.pdf",
      "custom_tags": [
        {
          "tag_code": "NewTag",
          "tag_type": "hang tag",
          "image": "https://s3.amazonaws.com/pms-masters/2/IN.HO/BRJZ02101/M/S.png",
          "printable": false
        },
        {
          "tag_code": "ExistingTag"
        }
      ],
      "designs": [
        {
          "placement": "Front Center",
          "art_file": "art.tif",
          "identifier": "UUID-1234567890",
          "art_url": "https://clientdomain.com/wp-content/assets/art.tif",
          "thumbnail_url": "https://clientdomain.com/wp-content/assets/thumbnail.jpg",
          "underbase": true,
          "x_offset": 20,
          "y_offset": 10,
          "width": 12.0,
          "height": 14.0,
          "stitch_count": 0,
          "note": "This is a note for the artwork team to review.",
          "design_process_steps": [
            {
              "ordinal": 1,
              "color_code": "2297",
              "color_name": "Snow White"
            },
            {
              "ordinal": 2,
              "color_code": "1825",
              "color_name": "Summer Sun"
            }
          ]
        }
      ]
    }
  ],
  "inserts": [
    {
      "identifier": "insert-card-10-off-spring",
      "preview_url": "https://clientdomain.com/wp-content/assets/insert.jpg"
    }
  ],
  "easy_post_object": {
    "customs_info": {
      "contents_type": "gift"
    },
    "customs_item_value": 10.00
  }
}

type : Set to order

account_id : Assigned during your account setup. Contact support for your account number. We use this to verify your order submissions.

location_id (optional) : For Turbine installations with more than one fulfillment location, the location_id can be used to override the default production location. Please talk to your account manager about using the location override function. Location id will default to 1 and use internal routing logic if not set.

account_zip : Assigned during your account setup. Contact support for your account zip. We use this to verify your order submissions.

purchase_order : Any purchase order or internally assigned identifier. Must be unique to each order submission.

ship_provider : The shipping provider to be used for the order. Common providers include:

For a complete list of all available shipping providers, see Shipping Providers in the Appendix.

ship_method (optional) : Describe service level for shipping provider. Please contact support for a list of supported methods by provider.

shipping_label_url (optional) : The url of a pre-paid shipping label for this order. Turbine will request the label and prepare it for our shipping system at the time of order print completion. Accepted formats include: JPG, GIF, PNG and PDF.

packing_slip_url (optional) : The url of a packing slip document. Turbine will request the document and prepare it for our shipping system at the time of order print completion. Accepted formats include: JPG, GIF, PNG and PDF. If needed please contact your Turbine account manager as an additional cost may incur.

addtl_ship_docs_url (optional) : The url of a additional shipping documents for this order. Turbine will request the document and prepare it for our shipping system at the time of order print completion. Accepted formats include: JPG, GIF, PNG and PDF. If needed please contact your Turbine account manager as an additional cost may incur.

ship_to : Provide as much information as possible. Address information is verified at the time of order print completion. Missing data can delay an order from entering production.

ship_from (optional) : Company name or first and last name are required. Address fields are required to override account level ship from address for shipping labels.

order_notes (optional) : Any additional information for this order.

order_reference_number (optional) : Internal reference number or string.

federal_tax_identifier (optional) : Federal Tax Identifier number or string to be used with international shipments to the EU for Import VATS.

production_priority : normal (default) or rush. Rush orders will incur an additional fee to expedite the production of the order.

items : Array of one or more items.

designs : Array of one or more designs to use to decorate an item. Turbine will fetch unique artwork files with each order to ensure artwork updates are incorporated.

For a complete list of all available print placement locations, see Print Placement Locations in the Appendix.

design_process_steps (optional) : Array of one or more color steps for the design. Required for embroidery decoration type.

custom_tags (optional) : Array of one or more custom application tags to apply to an item in an order. Custom tags must be prearranged with the Turbine as they are physical goods and may incur an additional charge per item.

inserts (optional) : Array of one or more inserts to apply to an order. Inserts must be prearranged with the Turbine as they are physical goods and may incur an additional charge per insert.

easy_post_object (optional) : JSON representing overrides for easy post object values.

New Order Response

Status Code 200 OK

{
  "status": "ok",
  "message": "Order <order_id> successfully created.",
  "order": <order_id>,
  "purchase_order": <purchase_order>,
  "items": [
    <item_id>,
    <item_id>
  ]
}

Status Code 200 OK

Failed New Order Response Examples

Status Code 422 Unprocessable Entity

Defective SKU in Order Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "Defective SKU cannot be used in production. SKU: <sku_name>"
}

Duplicate Order Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "Validation failed: Purchase order has already been taken.",
  "order": <order_id>
}

Invalid Embroidery Data - Stitch Count Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "Embroidery item in this order is missing stitch count data that is required for vendor fulfillment."
}

Invalid Embroidery Data - Design Process Steps Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "Embroidery item in this order is missing valid design process steps that is required for vendor fulfillment. Error: 'error_message'"
}

Invalid Product Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "Product found but the SKU attached to the product was not found. Possibly the product wasn't configured correctly. SKU: 'product_sku'"
}

Missing Items Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "Order is missing one or more items."
}

Missing Decoration Type Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "Supplied decoration type: 'decoration_type' cannot be found to process this item."
}

Missing Designs Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "Item is missing one or more designs."
}

Missing Design URL Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "Item is printable but the design is missing an art: 'true' and thumbnail: 'true' URI."
}

Missing Quantity Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "Item quantity must be greater than zero."
}

Missing Skus Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "SKU cannot be found to process this item. SKU: <sku_name>"
}

Order Status

Request status of a single order

Order Status Arguments

id : Internal order id used by Turbine.

purchase_order : Customer purchase order provided with the order.

Order Status Request by Order ID

GET https://turbine-sandbox.240tech.com/api/v3/orders/<order_id>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Example Request by Order ID

GET https://turbine-sandbox.240tech.com/api/v3/orders/6724120
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Order Status Request by Purchase Order

GET https://turbine-sandbox.240tech.com/api/v3/orders/show?purchase_order=<purchase_order>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Example Request by Purchase Order

GET https://turbine-sandbox.240tech.com/api/v3/orders/show?purchase_order=5697626056
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Order Status Example Response

{
  "id": 6724120,
  "purchase_order": "5697626056",
  "location": "Santa Ana",
  "received_at": "2020-02-01T23:00:24.691 -07:00",
  "created_at": "2020-02-01T23:56:24.691 -07:00",
  "shipped_at": "2020-02-02T12:21:24.691 -07:00",
  "canceled_at": "2020-02-02T12:21:24.691 -07:00",
  "status": "completed",
  "client_amount": 5.25,
  "order_notes": "Job 10315476 - 5000_RED_L on order in the following purchase order(s) | PO: 131671 - Arriving: 02/01/20 - From: Alpha Broder | ",
  "fulfillment_notes": "",
  "items": [
    {
      "id": 7,
      "location_id": 1,
      "customer_sku": "125737211",
      "sku_id": 3668,
      "description": "T-SHIRT",
      "workflow_state": "intake_hold",
      "quantity": 1,
      "client_item_num": null,
      "original_sku_id": 3668,
      "neck_tag": false,
      "printable": true,
      "issues": "",
      "sku": {
          "id": 3668,
          "brand": "Hanes",
          "identifier": "5250_BLACK_L",
          "supplier_identifier": "5250",
          "color": "BLACK",
          "size": "L",
          "weight": "7.3",
          "fleece": false,
          "replacement_sku": null,
          "garment_provider": "Alpha Broder",
          "gtin": null,
          "case_quantity": 72
      },
      "designs": [
        {
            "id": 5,
            "location": "Front Center",
            "art": "PR106086.tif",
            "art_uri": "https://dl.dropboxusercontent.com/s/afp48fo08nvmcay/PR106086.tif",
            "thumbnail_uri": "https://dl.dropboxusercontent.com/s/s46uxz9pf13f29x/PR106086_0775_NAV.jpg",
            "width": "11.0",
            "height": "13.28",
            "resolution_ppi": "300.0"
        }
      ],
      "jobs": [
        {
            "id": 19,
            "location_id": 1,
            "workflow_state": "intake_hold",
            "print_state": null,
            "rip_processed": false,
            "issues": "Job 19 - 5250_BLACK_L is not assigned to an inventory bin for picking.,Job 19 - cannot be fulfilled as 5250_BLACK_L is out of stock and needs to be ordered."
        }
      ]
    }
  ],
  "shipments": [
    {
      "shipping_carrier": "DHL",
      "shipping_method": "Smartmail Expedited",
      "tracking_number": "9374869903500930473876",
      "search_link": "https://webtrack.dhlglobalmail.com/?trackingnumber=9374869903500930473876",
      "delivered": false,
      "postage_amount": 6.25,
      "shipping_label_url": "https://turbine-demo.s3.us-west-1.amazonaws.com/shipment_labels/16/9047527/9047527-3258.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI2I4LYRQFXLAY2RA%2F20210616%2Fus-west-1%2Fs3%2Faws4_request&X-Amz-Date=20210616T163532Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=71bf3edfa6ce4b9689c218e8ad8b113ca280f8fabd815d211c983b219720f1f6"
    }
  ],
  "order_status_notes": [
    {
      "note": "Job 10315476 - 5000_RED_L on order in the following purchase order(s) | PO: 131622 - Arriving: 02/06/20 - From: Alpha Broder |",
      "created_at": "2020-02-05T11:53:08-08:00"
    }
  ],
  "service_requests": [
    {
      "reason": "Order status inquiry",
      "workflow_state": "open",
      "items_count": 1,
      "created_at": "2020-02-10T15:20:14-08:00"
    }
  ]
}

id : Internal order id.

purchase_order : Customer purchase order number or string.

location : The name of the location where the order will be produced.

received_at : The timestamp of when the order was submitted via the API.

created_at : The timestamp of when the order was released to production.

shipped_at : The timestamp of when the order was shipped. Present if the order has been shipped.

canceled_at : The timestamp of when the order was canceled. Present if the order has been canceled.

status : Order status can be:

client_amount : Order cost expected to be billed to client. Note: This can change as the order changes within our system and does not typically include the shipping carrier charges.

order_notes : The latest order status note. A full list of notes is also available.

fulfillment_notes : A list of issues that are blocking the order or items from production. Our automated systems will update this list and customer service will contact the account when it is possible to rectify.

items : The items that comprise an order

sku : The sku of the item to be produced

designs : The designs attached to an item for use in printing

jobs : The jobs generated for production based on the item data submitted. Jobs are each unit to be produced.

shipments : Shipments generated to fulfill an order

address : Current delivery address for the order.

order_status_notes : Manual and automated notes created during the production of an order

service_requests : A list of all order service requests in Turbine for an order

Order Status Response (no order found)

Status Code 404 Not Found

{
  "status": "not_found",
  "message": "An order with that ID cannot be located"
}

Multiple Order Status

Request status of 100 most recent orders, with pagination.

Multiple Order Status Request

GET https://turbine-sandbox.240tech.com/api/v3/orders
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Example Request

GET https://turbine-sandbox.240tech.com/api/v3/orders
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Multiple Order Status Response

{
  "orders": [
    {
      "order": {
        "id": 6724120,
        "purchase_order": "5697626056",
        "location": "California",
        "received_at": "2020-02-01T23:00:24.691 -07:00",
        "created_at": "2020-02-01T23:56:24.691 -07:00",
        "shipped_at": "2020-02-02T12:21:24.691 -07:00",
        "status": "completed",
        "client_amount": 5.25,
        "order_notes": "Job 10315476 - 5000_RED_L on order in the following purchase order(s) | PO: 131671 - Arriving: 02/01/20 - From: Alpha Broder | ",
        "fulfillment_notes": "",
        "items": [
          {
            "id": 7,
            "location_id": 1,
            "customer_sku": "125737211",
            "sku_id": 3668,
            "description": "T-SHIRT",
            "workflow_state": "intake_hold",
            "quantity": 1,
            "client_item_num": null,
            "original_sku_id": 3668,
            "neck_tag": false,
            "printable": true,
            "issues": "",
            "sku": {
                "id": 3668,
                "brand": "Hanes",
                "identifier": "5250_BLACK_L",
                "supplier_identifier": "5250",
                "color": "BLACK",
                "size": "L",
                "weight": "7.3",
                "fleece": false,
                "replacement_sku": null,
                "garment_provider": "Alpha Broder",
                "gtin": null,
                "case_quantity": 72
            },
            "designs": [
              {
                  "id": 5,
                  "location": "Front Center",
                  "art": "PR106086.tif",
                  "art_uri": "https://dl.dropboxusercontent.com/s/afp48fo08nvmcay/PR106086.tif",
                  "thumbnail_uri": "https://dl.dropboxusercontent.com/s/s46uxz9pf13f29x/PR106086_0775_NAV.jpg",
                  "width": "11.0",
                  "height": "13.28",
                  "resolution_ppi": "300.0"
              }
            ],
            "jobs": [
              {
                  "id": 19,
                  "location_id": 1,
                  "workflow_state": "intake_hold",
                  "print_state": null,
                  "rip_processed": false,
                  "issues": "Job 19 - 5250_BLACK_L is not assigned to an inventory bin for picking.,Job 19 - cannot be fulfilled as 5250_BLACK_L is out of stock and needs to be ordered."
              }
            ]
          }
        ],
        "shipments": [
          {
            "shipping_carrier": "DHL",
            "shipping_method": "Smartmail Expedited",
            "tracking_number": "9374869903500930473876",
            "search_link": "https://webtrack.dhlglobalmail.com/?trackingnumber=9374869903500930473876",
            "delivered": false
          }
        ],
        "order_status_notes": [
          {
            "note": "Job 10315476 - 5000_RED_L on order in the following purchase order(s) | PO: 131622 - Arriving: 02/06/20 - From: Alpha Broder |",
            "created_at": "2020-02-05T11:53:08-08:00"
          }
        ],
        "service_requests": [
          {
            "reason": "Order status inquiry",
            "workflow_state": "open",
            "items_count": 1,
            "created_at": "2020-02-10T15:20:14-08:00"
          }
        ]
      },
      {
        "order": {
          "id": 998,
          "purchase_order": "987654321",
          "created_at": "2018-06-30T23:00:25.492-07:00",
          "status": "open",
    ...
}

Notice: For element details, please refer to the Order Status request above.

Additional Parameters

To retrieve a list of orders, optional url parameters listed below can be used in conjunction to retrieve a filtered list of orders:

order_status : The status of the orders to retrieve. Order status can be received, open, packaged, shipped and canceled.

created_at_min : Show orders created after date (format: 02-25-2018).

created_at_max : Show orders created before date (format: 02-26-2018).

limit : Amount of results. Default is 100. Maximum is 200.

page : The page number to retrieve the next list orders based on specified parameters.

Example Request with Parameters

GET https://turbine-sandbox.240tech.com/api/v3/orders?order_status=<order_status>&limit=<limit_number>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Example Request with Filters

GET https://turbine-sandbox.240tech.com/api/v3/orders?order_status=shipped&limit=50
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Order Notifications

Notice: If you would prefer that the Turbine system send order notifications instead of polling for order status please contact your Turbine representative. We can POST order notifications as the order status updates through to shipped.

Update Order

Submit an order change request for the shipping carrier, shipping method, pre-provided label, shipping address or production priority.

Update Order Request

PUT https://turbine-sandbox.240tech.com/api/v3/orders/<order_id>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Update Order Example Request

PUT https://turbine-sandbox.240tech.com/api/v3/orders/7048816
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Update Order Parameters

Example

{
  "ship_provider": "UPS",
  "ship_method": "Ground",
  "shipping_label_url": "https://client.domain.com/label_file.png",
  "packing_slip_url": "https://client.domain.com/packing_slip.pdf",
  "production_priority": "rush",
  "ship_to": {
    "first_name": "Customer",
    "last_name": "Name",
    "company_name": "",
    "address": "1915 S Susan St",
    "address_2": "",
    "city": "Santa Ana",
    "state": "",
    "zip_code": "92704",
    "country": "US",
    "email": "customer@domain.com",
    "telephone": "5555555555"
  },
  "ship_from": {
    "first_name": "Customer",
    "last_name": "Name",
    "company_name": "",
    "address": "1915 S Susan St",
    "address_2": "",
    "city": "Santa Ana",
    "state": "",
    "zip_code": "92704",
    "country": "US"
  }
}

Update Order Example Response

Response Parameters

status : Response type (ok, unprocessable_entity). Expected status codes are: [200, 422].

message : Message string describing success or reason for failure.

order : The id of the order requested.

Success

{
  "status": "ok",
  "message": "Order 7048816 successfully updated.",
  "order": 7048816
}

Failure

{
  "status": "unprocessable_entity",
  "message": "This order is already packaged or shipped and cannot be updated.",
  "order": 7048816
}

Cancel Order

Submit an order cancellation request.

Order Cancel Request

DELETE https://turbine-sandbox.240tech.com/api/v3/orders/<order_id>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Order Cancel Example Request

DELETE https://turbine-sandbox.240tech.com/api/v3/orders/7048816
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Order Cancel Example Response

Response Parameters

status : Response type (ok, unprocessable_entity). Expected status codes are: [200, 422].

message : Message string describing success or reason for failure.

order : The id of the order requested.

Success

{
  "status": "ok",
  "message": "Order 7048816 successfully canceled.",
  "order": 7048816
}

Failure

{
  "status": "unprocessable_entity",
  "message": "This order is already canceled.",
  "order": 7048816
}
{
  "status": "unprocessable_entity",
  "message": "This order is already in production and cannot be canceled.",
  "order": 7048816
}

Item Status

Request status of a single item

Item Status Arguments

id : Internal item id used by Turbine.

client_item_num : Customer client item number provided with the item.

Item Status Request by Item ID

GET https://turbine-sandbox.240tech.com/api/v3/items/<item_id>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Example Request by Item ID

GET https://turbine-sandbox.240tech.com/api/v3/items/6724120
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Item Status Request by Client Item Number

GET https://turbine-sandbox.240tech.com/api/v3/items/show?client_item_num=<client_item_num>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Example Request by Client Item Number

GET https://turbine-sandbox.240tech.com/api/v3/items/show?client_item_num=5697626056
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Item Status Example Response

{
    "id": 7,
    "location_id": 1,
    "customer_sku": "125737211",
    "sku_id": 3668,
    "description": "T-SHIRT",
    "workflow_state": "intake_hold",
    "quantity": 1,
    "client_item_num": null,
    "original_sku_id": 3668,
    "neck_tag": false,
    "printable": true,
    "issues": "",
    "sku": {
        "id": 3668,
        "brand": "Hanes",
        "identifier": "5250_BLACK_L",
        "supplier_identifier": "5250",
        "color": "BLACK",
        "size": "L",
        "weight": "7.3",
        "fleece": false,
        "replacement_sku": null,
        "garment_provider": "Alpha Broder",
        "gtin": null,
        "case_quantity": 72
    },
    "designs": [
        {
            "id": 5,
            "location": "Front Center",
            "art": "PR106086.tif",
            "art_uri": "https://dl.dropboxusercontent.com/s/afp48fo08nvmcay/PR106086.tif",
            "thumbnail_uri": "https://dl.dropboxusercontent.com/s/s46uxz9pf13f29x/PR106086_0775_NAV.jpg",
            "width": "11.0",
            "height": "13.28",
            "resolution_ppi": "300.0"
        }
    ],
    "jobs": [
        {
            "id": 19,
            "location_id": 1,
            "workflow_state": "intake_hold",
            "print_state": null,
            "rip_processed": false,
            "issues": "Job 19 - 5250_BLACK_L is not assigned to an inventory bin for picking.,Job 19 - cannot be fulfilled as 5250_BLACK_L is out of stock and needs to be ordered."
        }
    ],
    "created_at": "2021-07-27T11:42:55-07:00"
}

Notice: For element details, please refer to the Order Status request above.

Order Status Response (no order found)

Status Code 404 Not Found

{
  "status": "not_found",
  "message": "An item with that ID cannot be located."
}

Update Item

Submit an update to an existing item.

Update Item Request

PUT https://turbine-sandbox.240tech.com/api/v3/items/2
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Update Item Request by Client Item Number

PUT https://turbine-sandbox.240tech.com/api/v3/items/update?client_item_num=<client_item_num>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Update Item Body

Example

{ "sku": "5250_BLACK_XL" }

sku : The sku identifier to update the item sku. Will be used to search for a valid sku.

Update Item Response

Status Code 200 OK

{
  "status": "ok",
  "message": "Item <item_id> successfully updated.",
  "item": <item_id>
}

Status Code 200 OK

Failed Update Item Response Examples

Status Code 422 Unprocessable Entity

Sku Not Found Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "The sku could not be found or is already updated for this item.",
  "item": <item_id>
}

Status Code 422 Unprocessable Entity

Item In Production Status Code 422 Unprocessable Entity

{
  "status": "unprocessable_entity",
  "message": "This item is already in production and cannot be changed.",
  "item": <item_id>
}

Cancel Item

Submit an item cancellation request.

Item Cancel Request

DELETE https://turbine-sandbox.240tech.com/api/v3/items/<item_id>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Item Cancel Example Request

DELETE https://turbine-sandbox.240tech.com/api/v3/items/2
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Item Cancel Example Response

Response Parameters

status : Response type (ok, unprocessable_entity). Expected status codes are: [200, 422].

message : Message string describing success or reason for failure.

item : The id of the item requested.

Success

{
  "status": "ok",
  "message": "Item 7048816 successfully canceled.",
  "item": 2
}

Failure

{
  "status": "unprocessable_entity",
  "message": "This item is already canceled.",
  "item": 2
}
{
  "status": "unprocessable_entity",
  "message": "This item is already in production and cannot be canceled.",
  "item": 2
}

Job Status

Request status of a single job

Job Status Arguments

id : Internal job id used by Turbine.

Job Status Request by Job ID

GET https://turbine-sandbox.240tech.com/api/v3/jobs/<job_id>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Example Request by Job ID

GET https://turbine-sandbox.240tech.com/api/v3/jobs/6724120
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Job Status Example Response

{
    "id": 19,
    "location_id": 1,
    "workflow_state": "intake_hold",
    "print_state": null,
    "rip_processed": false,
    "issues": "Job 19 - 5250_BLACK_L is not assigned to an inventory bin for picking.,Job 19 - cannot be fulfilled as 5250_BLACK_L is out of stock and needs to be ordered.",
    "sku": {
        "id": 3668,
        "brand": "Hanes",
        "identifier": "5250_BLACK_L",
        "supplier_identifier": "5250",
        "color": "BLACK",
        "size": "L",
        "weight": "7.3",
        "fleece": false,
        "replacement_sku": null,
        "garment_provider": "Alpha Broder",
        "gtin": null,
        "case_quantity": 72
    },
    "stock": {
        "id": 67253,
        "sku_identifier": "5250_BLACK_L",
        "sku_gtin": null,
        "sku_volume_tier": "C",
        "location_id": 1,
        "location_name": "Santa Ana",
        "quantity": 0,
        "amt_on_order": 0,
        "expected_etas": []
    },
    "created_at": "2021-07-27T11:43:03-07:00"
}

Notice: For element details, please refer to the Order Status request above.

Order Status Response (no order found)

Status Code 404 Not Found

{
  "status": "not_found",
  "message": "A job with that ID cannot be located."
}

Cancel Job

Submit an job cancellation request.

Job Cancel Request

DELETE https://turbine-sandbox.240tech.com/api/v3/jobs/<job_id>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Job Cancel Example Request

DELETE https://turbine-sandbox.240tech.com/api/v3/jobs/2
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Job Cancel Example Response

Response Parameters

status : Response type (ok, unprocessable_entity). Expected status codes are: [200, 422].

message : Message string describing success or reason for failure.

job : The id of the job requested.

Success

{
  "status": "ok",
  "message": "job 7048816 successfully canceled.",
  "job": 2
}

Failure

{
  "status": "unprocessable_entity",
  "message": "This job is already canceled.",
  "job": 2
}
{
  "status": "unprocessable_entity",
  "message": "This job is already in production and cannot be canceled.",
  "job": 2
}

Quote Status

Retrieve a list of updated quote invoice numbers.

Updated Quote List Request

updated_after : (Optional) ISO 8601 timestamp of the last updated quote. If not provided, the API will return all quotes updated in the last 24 hours.

GET https://turbine-sandbox.240tech.com/api/v3/quotes?updated_after=<ISO 8601 timestamp>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Updated Quote List Example Response

{
  "quotes": [
    "74",
    "75",
    "76"
  ]
}

Quote Status Request

Request status of a single quote

invoice_number : Internal quote id used by Turbine.

Quote Status Request by Invoice Number

GET https://turbine-sandbox.240tech.com/api/v3/quotes/<invoice_number>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Example Request by Invoice Number

GET https://turbine-sandbox.240tech.com/api/v3/quotes/74
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Quote Status Example Response

{
    "quote_id": "74",
    "customer_name": "Joe Dangen",
    "customer_email": "joe@dangen.com",
    "quote_creation_date": "2025-07-29T11:45:33-05:00",
    "quote_status": "open",
    "total": 300.3,
    "products": [
        {
            "decoration_type": "dtg",
            "sku_style_color": "BC3001",
            "sizes": [
                [
                    "XS",
                    "0"
                ],
                [
                    "S",
                    "0"
                ],
                [
                    "M",
                    "2"
                ],
                [
                    "L",
                    "20"
                ],
                [
                    "XL",
                    "20"
                ],
                [
                    "2XL",
                    "0"
                ],
                [
                    "3XL",
                    "0"
                ],
                [
                    "4XL",
                    "0"
                ],
                [
                    "5XL",
                    "0"
                ]
            ],
            "total_quantity": 42,
            "blank_price": 4.15,
            "decoration_price": 3.0,
            "description": "Black Butterfly",
            "total": 300.3
        }
    ]
}

quote_id : Internal quote id.

customer_name : Customer name.

customer_email : Customer email.

quote_creation_date : The timestamp of when the quote was created.

quote_status : The status of the quote.

total : The total dollar amount of the quote.

products : An array of products in the quote.

products.decoration_type : The type of decoration on the product.

products.sku_style_color : The style and color of the product.

products.sizes : An array of sizes in the product.

products.sizes[].size : The size of the product.

products.sizes[].quantity : The quantity of the size in the product.

products.total_quantity : The total units quantity of the product.

products.blank_price : The price of the blank product.

products.decoration_price : The price of the decoration on the product.

products.description : The description of the product.

products.total : The total price of the product in the quote.

Quote Status Response (no quote found)

Status Code 404 Not Found

{
  "status": "not_found",
  "message": "A quote with this id cannot be located in your account."
}

SKU Search

Search for available SKUs based on various criteria such as brand, supplier identifier, color, and size.

SKU Search Request

GET https://turbine-sandbox.240tech.com/api/v3/skus/search
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Query Parameters

brand (optional) : The brand name to filter by (e.g., "AS Colour")

supplier_identifier (optional) : The supplier's identifier for the SKU (e.g., "AC5081")

color (optional) : The color name to filter by (e.g., "ECRU")

size (optional) : The size to filter by (e.g., "S", "M", "L", "XL")

SKU Search Example Request

GET https://turbine-sandbox.240tech.com/api/v3/skus/search?brand=AS Colour&supplier_identifier=AC5081&color=ECRU&size=S
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

SKU Search Example Response

Response Parameters

id : The serialized id for the SKU.

identifier : The full SKU identifier string.

brand : The brand name of the garment.

short_brand : Abbreviated brand name.

supplier_identifier : The supplier's identifier for this SKU.

manufacturer_identifier : The manufacturer's identifier for this SKU.

style : The style name of the garment.

garment_type : The type of garment (e.g., "T-SHIRT").

size : The size of the garment.

sleeve : The sleeve type (e.g., "LS" for long sleeve).

description : Additional description of the SKU (may be null).

color : The color name of the garment.

hex_color : The hex color code (may be null).

gender : The target gender for the garment (e.g., "UNISEX").

weight : The weight of the garment.

garment_provider : The provider/manufacturer of the garment.

fleece : Boolean indicating if the garment is fleece.

has_pocket : Boolean indicating if the garment has pockets.

high_volume : Boolean indicating if this is a high-volume SKU.

discontinued : Boolean indicating if the SKU is discontinued.

defective : Boolean indicating if the SKU is defective.

gtin : Global Trade Item Number (may be null).

harmonization_tariff_schedule : Tariff schedule information (may be null).

fabric_content : Information about fabric composition (may be null).

case_quantity : Quantity per case.

minimum_quantity : Minimum order quantity.

volume_tier : Volume tier classification ("A", "B", or "C").

order_product : Boolean indicating if this SKU can be ordered.

always_stocked : Boolean indicating if this SKU is always in stock.

replacement_sku : ID of replacement SKU if this one is discontinued (may be null).

max_width : Maximum print width (may be null).

max_height : Maximum print height (may be null).

printable : Boolean indicating if the SKU is printable.

premium_fabric : Boolean indicating if this is premium fabric.

premium_style : Boolean indicating if this is a premium style.

ovaljet_double_spray : Boolean for OvalJet double spray capability.

include_in_zero_linear_feet_report : Boolean for reporting purposes.

oj_priority : OvalJet priority setting (may be null).

y_offset : Y-axis offset for printing (may be null).

table_type : Type of table used for processing.

created_at : Timestamp when the SKU was created.

updated_at : Timestamp when the SKU was last updated.

location : Location information (may be null indicating a global sku).

[
    {
        "id": 197022,
        "identifier": "AC5081-ECRU-S",
        "brand": "AS Colour",
        "short_brand": "AC",
        "supplier_identifier": "AC5081",
        "manufacturer_identifier": "AC5081",
        "style": "HEAVY L/S TEE",
        "garment_type": "T-SHIRT",
        "size": "S",
        "sleeve": "LS",
        "description": null,
        "color": "ECRU",
        "hex_color": null,
        "gender": "UNISEX",
        "weight": "8.2",
        "garment_provider": "AS Colour",
        "fleece": false,
        "has_pocket": false,
        "high_volume": false,
        "discontinued": false,
        "defective": false,
        "gtin": null,
        "harmonization_tariff_schedule": null,
        "fabric_content": null,
        "case_quantity": 0,
        "minimum_quantity": 1,
        "volume_tier": "C",
        "order_product": true,
        "always_stocked": false,
        "replacement_sku": null,
        "max_width": null,
        "max_height": null,
        "printable": true,
        "premium_fabric": false,
        "premium_style": false,
        "ovaljet_double_spray": false,
        "include_in_zero_linear_feet_report": true,
        "oj_priority": null,
        "y_offset": null,
        "table_type": "Standard pallet",
        "created_at": "2025-08-05T13:51:36.914-05:00",
        "updated_at": "2025-08-26T12:20:05.675-05:00",
        "location": null
    }
]

Single SKU Lookup

Retrieve detailed information for a specific SKU by its unique identifier.

Single SKU Request

GET https://turbine-sandbox.240tech.com/api/v3/skus/<sku_id>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Path Parameters

sku_id : The serialized id of the SKU to retrieve.

Single SKU Example Request

GET https://turbine-sandbox.240tech.com/api/v3/skus/197022
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Single SKU Example Response

The response contains the same structure as individual items in the SKU search response, but returns a single SKU object instead of an array.

{
    "id": 197022,
    "identifier": "AC5081-ECRU-S",
    "brand": "AS Colour",
    "short_brand": "AC",
    "supplier_identifier": "AC5081",
    "manufacturer_identifier": "AC5081",
    "style": "HEAVY L/S TEE",
    "garment_type": "T-SHIRT",
    "size": "S",
    "sleeve": "LS",
    "description": null,
    "color": "ECRU",
    "hex_color": null,
    "gender": "UNISEX",
    "weight": "8.2",
    "garment_provider": "AS Colour",
    "fleece": false,
    "has_pocket": false,
    "high_volume": false,
    "discontinued": false,
    "defective": false,
    "gtin": null,
    "harmonization_tariff_schedule": null,
    "fabric_content": null,
    "case_quantity": 0,
    "minimum_quantity": 1,
    "volume_tier": "C",
    "order_product": true,
    "always_stocked": false,
    "replacement_sku": null,
    "max_width": null,
    "max_height": null,
    "printable": true,
    "premium_fabric": false,
    "premium_style": false,
    "ovaljet_double_spray": false,
    "include_in_zero_linear_feet_report": true,
    "oj_priority": null,
    "y_offset": null,
    "table_type": "Standard pallet",
    "created_at": "2025-08-05T13:51:36.914-05:00",
    "updated_at": "2025-08-26T12:20:05.675-05:00",
    "location": null
}

Stock Check

Request the current inventory status by SKU identifier.

Stock Check Request

GET https://turbine-sandbox.240tech.com/api/v3/stocks/<sku_identifier>
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Stock Check Example Request

GET https://turbine-sandbox.240tech.com/api/v3/stocks/2001_BLACK_S
Content-Type: application/json
Authorization: Token token=<16-24 character API key>

Stock Check Example Response

Response Parameters

id : The id of the sku queried.

sku_identifier : The string identifier of the sku.

sku_gtin : The GTIN (Global Trade Item Number) of the sku.

sku_volume_tier : The volume tier of the sku. The tiers are: A, B, C, with A being the highest volume tier and C being the lowest.

location_id : The id of the stock warehouse location.

location_name : The name of the stock warehouse location.

quantity : The quantity of stock on hand.

amt_on_order : The quantity of stock on order and arriving from a garment provider.

expected_etas : An array indicating the delivery dates for replenishment of the sku inventory.

{
  "stocks": [
    {
      "id": 2174,
      "sku_identifier": "BC3001-BLACK-XL",
      "sku_gtin": "00821780001020",
      "sku_volume_tier": "A",
      "location_id": 2,
      "location_name": "Cedar Park, TX",
      "quantity": 57,
      "amt_on_order": 0,
      "expected_etas": [
        "2025-08-01T15:32:23.000-07:00"
      ]
    },
    {
      "id": 20658,
      "sku_identifier": "G2000_BLACK_L",
      "sku_gtin": "00821780001021",
      "sku_volume_tier": "B",
      "location_id": 38,
      "location_name": "Orange, CA",
      "quantity": 1000,
      "amt_on_order": 0,
      "expected_etas": []
    }
  ]
}

Shipping Rates

Calculate Shipping Rates

{
  "to_address": {
    "name": "John Doe",
    "company": "Test Company Inc",
    "street1": "123 Main Street",
    "street2": "Suite 100",
    "city": "San Francisco",
    "state": "CA",
    "zip": "94105",
    "country": "US",
    "phone": "415-123-4567",
    "email": "john@testcompany.com",
    "residential": false
  },
  "from_address": {
    "name": "Custom Warehouse",
    "company": "240tech Shipping",
    "street1": "999 Warehouse Dr",
    "city": "Dallas",
    "state": "TX",
    "zip": "75201",
    "phone": "214-555-0199"
  },
  "skus": [
    {
      "sku_code": "QTT200-AZALEA-OS",
      "quantity": 10,
      "decoration_type_name": "Screen Print"
    },
    {
      "sku_code": "QTT200-BLACK-OS",
      "quantity": 5
    }
  ],
  "location_id": 1
}

The above command returns JSON structured like this:

{
  "package": {
    "name": "Small Box",
    "dimensions": {
      "length": 12.0,
      "width": 9.0,
      "height": 3.0,
      "weight": 1.5
    },
    "parcel": {
      "length": 12.0,
      "width": 9.0,
      "height": 3.0,
      "weight": 39.0
    }
  },
  "rates": [
    {
      "carrier": "USPS",
      "service": "Priority",
      "rate": "8.45",
      "currency": "USD",
      "est_delivery_days": 2,
      "delivery_days": 2,
      "delivery_date": "2024-08-16T17:00:00Z",
      "delivery_date_guaranteed": false
    },
    {
      "carrier": "USPS",
      "service": "Express",
      "rate": "28.50",
      "currency": "USD",
      "est_delivery_days": 1,
      "delivery_days": 1,
      "delivery_date": "2024-08-15T12:00:00Z",
      "delivery_date_guaranteed": true
    },
    {
      "carrier": "UPS",
      "service": "Ground",
      "rate": "12.75",
      "currency": "USD",
      "est_delivery_days": 3,
      "delivery_days": 3,
      "delivery_date": "2024-08-17T23:00:00Z",
      "delivery_date_guaranteed": false
    }
  ]
}

This endpoint calculates shipping rates for a set of SKUs using EasyPost. The system automatically determines the appropriate package type based on the items and calculates rates from multiple carriers.

HTTP Request

POST https://turbine-sandbox.240tech.com/api/v3/shipments/calculate_rates

Parameters

Parameter Required Description
to_address true Destination address object
from_address false Origin address object (uses account default if not provided)
skus true Array of SKU objects with quantities
location_id false Specific location ID to use (defaults to account's first location)

Address Object

Parameter Required Description
name false Recipient name
company false Company name
street1 true Primary street address
street2 false Apartment, suite, or additional address info
city true City name
state true State/province code (2 letters)
zip true Postal/ZIP code
country false Country code (defaults to "US")
phone false Contact phone number
email false Contact email address
residential false Whether address is residential (affects some carrier rates)

SKU Object

Parameter Required Description
sku_code true SKU identifier (can be SKU identifier or SkuAlias)
quantity true Number of items
decoration_type_name false Name of decoration type (e.g., "Screen Print", "Embroidery")

Response Fields

The response contains two main sections:

Package Object

Rates Array

Each rate object contains:

Error Responses

Status Code Meaning
422 Unprocessable Entity -- Missing required parameters, SKU not found, or no suitable package type
503 Service Unavailable -- EasyPost API error
404 Not Found -- SKU or location not found
401 Unauthorized -- Invalid or missing API token

Notes

Errors

Error Code Meaning
401 Unauthorized -- Please check the Auth Token is valid and present in the HTTP header.
404 Not Found
422 Unprocessable Entity
500 Bad Request - Please check the JSON validity of the request here: https://jsonlint.com/.

Appendix

The following table lists all available print placement locations supported by Turbine. Print locations are approximate and artwork dimensions can affect the final position on the garment.

Placement Description
Back Layer A secondary print layer on the back of the garment, typically used for layered or multi-color designs.
Back Oversize An oversized print area covering a large portion of the back of the garment, ideal for DTF graphics.
Front Layer A secondary print layer on the front of the garment, typically used for layered or multi-color designs.
Front Oversize An oversized print area covering a large portion of the front of the garment, ideal for DTF graphics.
Full Back Artwork will be printed on the back and center of the garment in a standard full-size print area.
Full Front Artwork will be printed on the front and center of the garment in a standard full-size print area.
Left Chest Artwork will be printed on the front left chest area of the garment, commonly used for logos and small designs.
Left Hem Artwork will be printed near the bottom left hem of the front of the garment.
Left Leg Artwork will be printed on the left leg area, typically used for pants, shorts, or joggers.
Left Sleeve Artwork will be printed on the left sleeve of the garment.
Neck Artwork will be printed on the interior or exterior neck area of the garment, often used for inside neck labels or back neck prints.
Pouch Pocket Artwork will be printed on the pouch pocket area, typically found on hoodies and sweatshirts.
Right Chest Artwork will be printed on the front right chest area of the garment.
Right Hem Artwork will be printed near the bottom right hem of the front of the garment.
Right Leg Artwork will be printed on the right leg area, typically used for pants, shorts, or joggers.
Right Sleeve Artwork will be printed on the right sleeve of the garment.
Unknown A catch-all placement for custom or non-standard print locations. Contact support for configuration.
Yoke Artwork will be printed on the yoke area, which is the upper back section across the shoulders.

Shipping Providers

The following table lists all available shipping providers supported by Turbine.

Provider Description
AsendiaUsa, Globegistics Asendia USA international shipping service for lightweight packages and e-commerce shipments.
DhlEcs DHL eCommerce Solutions for cost-effective international e-commerce shipping.
DHLExpress DHL Express for time-definite international shipping with faster delivery times.
FedEx FedEx shipping services for domestic and international delivery.
OSMWorldwideV2 OSM Worldwide parcel delivery service for domestic shipments.
Pre-Paid Customer-provided pre-paid shipping label. Turbine will use the label URL provided in the order.
UPS, UPSDAP Standard UPS shipping services for domestic delivery.
UPSMailInnovations UPS Mail Innovations for lightweight packages utilizing USPS for final mile delivery.
USPS United States Postal Service for domestic and international mail and package delivery.
WillCall Customer or designated party will pick up the order at the fulfillment location.