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
keywith 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_identifierwith 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:
- USPS
- UPS
- FedEx
- OSMWorldwideV2
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.
- first_name
- last_name
- company_name
- address
- address_2
- city
- state
- zip_code
- country
- telephone
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.
- first_name
- last_name
- company_name
- address
- address_2
- city
- state
- zip_code
- country
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.
- quantity: Integer of 1 or greater.
- decoration_type: The decoration type for the item. Options currently include: 'dtg', 'dtf', 'embroidery', 'laser_etching', and 'none'
- sku: Internal Turbine SKU. Optional if attributes below are provided. The sku or attributes need to match a Turbine 'print_sku' or the order will be rejected.
- attributes (optional if sku provided): If the sku is not provided, the attributes must be provided. Not all combinations are available. Refer to the Turbine SKUs list provided for your account.
- style: Short identifier matching Turbine garment style.
- color: Short identifier matching Turbine colors by style.
- size: Short identifier matching Turbine size by style.
- product_sku (optional): An identifier used in Turbine to create a product that includes a 'sku' and 'designs'. Must be pre-created in Turbine and will bypass the sku lookup.
- customer_sku (optional): For your internal tracking. Can be the item purchase order or a descriptive name for the item. This will be returned in order status notifications for each item.
- item_reference_number (optional): For your internal tracking. Can be the item purchase order or a descriptive name for the item.
- tech_pack_url (optional): URL to a tech pack or garment spec sheet. Turbine will retrieve it asynchronously from this url.
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.
- placement: Unspecified is default and will result in a default placement print for the sku type. Print locations are approximate and any placement within the artwork can affect the position. Common default placements include:
- 'Full Front' - Artwork will be printed on the front and center of the garment.
- 'Full Back' - Artwork will be printed on the back and center of the garment.
- 'Left Chest' - Artwork will be printed on the front and left chest area of the garment.
- 'Right Chest' - Artwork will be printed on the front and right chest area of the garment.
- 'Neck' - Artwork will be printed on the interior neck area of the garment.
For a complete list of all available print placement locations, see Print Placement Locations in the Appendix.
- art_url: URL of print ready art. If art_file is not available locally, we will retrieve it asynchronously from this url. Supported formats include but are not limited to: PNG, TIFF, DST, and JPG. (Note: Transparent files are required for most decoration processes.)
- thumbnail_url: URL to mockup or preview image of the product. We will retrieve it asynchronously from this url.
- art_file (optional): Filename for print ready art. We will retrieve asynchronously from the art_url and name the retrieved file with this art_file name.
- identifier (optional): Unique identifier string for the design. If matched to an existing identifier in your account, then the design will be reused.
- underbase (optional): true (default) or false. Indicate whether a white underbase layer should be applied to the print for certain decoration types.
- width (optional): decimal value in inches (in) to scale the artwork.
- height (optional): decimal value in inches (in) to scale the artwork.
- note (optional): Any additional information for the artwork team to review if using artwork customization or review.
- x_offset (optional): integer in millimeters (mm) to place the artwork horizontally from the origin point of the printer. Only supported by some DTG printers.
- y_offset (optional): integer in millimeters (mm) to place the artwork vertically from the origin point of the printer. Only supported by some DTG printers.
- stitch_count (required for embroidery decoration type): integer value of the stitch count for embroidery designs.
design_process_steps (optional) : Array of one or more color steps for the design. Required for embroidery decoration type.
- ordinal: Integer value of the step order.
- color_code: PMS or Pantone color code for the thread color.
- color_name: Name of the thread color.
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.
- tag_code: Unique identifier string for a custom tag. If matched to an existing identifier in your account, then the custom tag settings will be reused.
- tag_type: Type of custom tag to notify team of application type ie. 'hang tag', 'sticker'
- image: Location of preview image of the custom tag. We will retrieve the image asynchronously from this url.
- printable: Should this tag be printed on a label and affixed to the garment after production? Defaults to: false
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.
- identifier: Unique identifier string for an insert. If matched to an existing identifier in your account, then the insert graphic will be reused.
- preview_url: Location of preview image. We will retrieve the image asynchronously from this url.
easy_post_object (optional) : JSON representing overrides for easy post object values.
- customs_info
- contents_type: Contents declaration for international customs - Recommended values are: ["merchandise", "gift"]
- customs_item_value: Float value of items to declare at customs, defaults to 5.00 if not specified.
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:
- received - Order has been received and is enqueued.
- production_hold - Order production location is being evaluated for optimal production.
- intake_hold - Order is being reviewed for address, artwork and inventory availability.
- open - The order is in production.
- completed - All items in the order have been printed.
- shipped - The order has been packaged and shipped.
- canceled - The order was canceled on request.
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
- id: Internal item id.
- location_id: The id of the fulfillment location.
- customer_sku: Customer-provided SKU name if provided.
- sku_id: Internal sku id number in Turbine.
- description: A description of the item garment type or sku.
- workflow_state: Item workflow state can be:
- production_hold - The item production location is being evaluated for optimal production.
- intake_hold - Item order is being reviewed for address, artwork and inventory availability.
- open - The item is in production.
- completed - The item has been printed.
- shipped - The item has been shipped.
- canceled - The item was canceled on request.
- quantity: The quantity ordered of an item.
- client_item_num: The customer id number for the item to reference.
- original_sku_id: The sku_id for the item. Used to store the sku id if replacement occurs via API or manually.
- neck_tag: Whether the item has a neck tag - true or false.
- printable: Is the item or sku printable or non-decorated - true or false.
- issues: Item level issues preventing production.
sku : The sku of the item to be produced
- id: The internal sku id.
- brand: The brand of the sku item.
- identifier: The string based identifier for the sku. Typically in style_color_size format.
- supplier_identifier: The style string for the sku item.
- color: The color of the sku item.
- size: The size of the sku item.
- weight: The weight of the sku used for shipping calculations.
- fleece: For garment skus whether the garment is fleece. Impacts the inventory and printing systems - true or false.
- replacement_sku: A replacement sku to use if the original sku ordered is out of stock or unorderable.
- garment_provider: The supplier used for the sku to replenish inventory.
- gtin: The global trade identification number of the sku to automate ordering and replenishment.
- case_quantity: The number of skus included in an ordered case. Used in the inventory system.
designs : The designs attached to an item for use in printing
- id: The internal design id.
- location: The print location for the artwork - Front Center, Front Neck Center, Back Center
- art: The file name of the artwork or design.
- art_uri: The url of the printable artwork to be fetched to print.
- thumbnail_uri: The url of the image of the decorated product to be fetched to print and quality control.
- width: The width in inches of the artwork.
- height: The height in inches of the artwork.
- resolution_ppi: The calculated pixels per inch of the artwork file.
jobs : The jobs generated for production based on the item data submitted. Jobs are each unit to be produced.
- id: The internal job id.
- location_id: The id of the fulfillment location.
- workflow_state: Job workflow state can be:
- intake_hold - Job is being reviewed for address, artwork and inventory availability.
- pending - Job is in a queue ready to be assigned to a pick batch
- open - The job is in production.
- labeled - Job is in a pick batch waiting to be picked.
- picked - Job has been picked and assigned to an inventory unit. Ready to print.
- scanned - Job has been scanned by an operator at the printer.
- printed - Job has been printed and passed quality control.
- completed - The job has been printed and is ready for consolidation or shipping.
- shipped - The job has been shipped.
- canceled - The job was canceled on request.
- print_state: If a job has multiple prints - front and back - the print state is used to track the state - front_printed and back_printed.
- rip_processed: Has the job gone through the RIP software and ready to print - true or false.
- issues: Job level issues preventing production.
shipments : Shipments generated to fulfill an order
- shipping_carrier: The name of the shipping carrier.
- shipping_method: Shipping method returned by the shipping provider.
- tracking_number: Tracking number returned by the shipping provider for the package.
- search_link: Link to shipping carrier website for tracking information and progress.
- postage_amount: The cost in postage to ship an order when available from the carrier.
- delivered: If tracking allows, a boolean with delivery confirmation.
- shipping_label_url: A presigned url to the shipping label generated for shipment.
address : Current delivery address for the order.
- ship_to_first_name
- ship_to_last_name
- ship_to_company_name
- ship_to_address
- ship_to_address_2
- ship_to_city
- ship_to_state
- ship_to_zip_code
- ship_to_country
- ship_to_email
- ship_to_telephone
order_status_notes : Manual and automated notes created during the production of an order
- note: The text contents of the note created by our production staff or inventory system.
- created_at: Timestamp of the date the note was created.
service_requests : A list of all order service requests in Turbine for an order
- reason: The reason provided for the service request.
- items_count: The number of items affected by the service request reason.
- created_at: Timestamp of the date the note was created.
- workflow_state: The status of the service request. Service Request workflow state can be:
- open - The service request is open and enqueued to be reviewed.
- rejected - A Turbine employee has rejected the request with a follow-up.
- approved - The request has been approved and next steps are provided.
- closed - The request has been closed and can be completed or reopened.
- canceled - Customer has canceled the request.
- completed - The request has been closed and now completed. A request can still be reopened if not satisfactory.
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 |
| 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
- name: The selected package type name
- dimensions: The empty box dimensions (length, width, height, weight in oz)
- parcel: The actual shipping parcel with total weight (box + items)
Rates Array
Each rate object contains:
- carrier: Shipping carrier name (e.g., "USPS", "UPS", "FedEx")
- service: Service level (e.g., "Priority", "Ground", "Express")
- rate: Shipping cost as a string
- currency: Currency code (typically "USD")
- est_delivery_days: Estimated delivery days
- delivery_days: Actual delivery days
- delivery_date: Expected delivery date/time (ISO 8601 format)
- delivery_date_guaranteed: Whether delivery date is guaranteed
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
- SKU lookup follows this hierarchy:
- Global SKU by identifier (case-insensitive)
- Location-specific SKU by identifier
- Account-level SkuAlias
- Global SkuAlias
- The system automatically selects the best package type based on item quantity and decoration types
- If no EasyPost configuration exists for the account, the endpoint returns an error
- Rates are calculated in real-time from EasyPost and may vary based on current carrier pricing
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
Print Placement Locations
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. |