Getting Started with Dubow Integration API
Use this documentation to submit orders, validate payloads before sending, track order and invoice status, and configure webhook callbacks for automated updates.
1. Authenticate
Send every request with a valid Authorization block containing
UserID and Password.
2. Build the order
Include customer, contact, PO, manifest, shipping, product, size, and design details.
3. Validate rules
Use the preflight checklist before sending to avoid common product, PO, date, and design errors.
4. Track results
Use status endpoints or webhook URLs for order, shipment, and invoice visibility.
- Version: 1.5
- Author: Renato Cordeiro & Jake Scherfenberg
- Created: April 8, 2016
- Update: May 29, 2026
If you have any questions that are beyond the scope of this help file, Please feel free to email via Contact Support Page.
Find the Right Answer Faster
Use this section when you need to build, test, or troubleshoot an integration order. The detailed field glossary remains available lower in the page, but these tools are designed around the questions customers usually ask during implementation.
Copy a working payload
Start from minimal, full, inventory, no-decoration, personalization, associated design, status, invoice, or webhook examples.
ExamplesTroubleshoot an error
Search common backend validation messages, likely causes, and fixes.
ErrorsFind a field
Look up where each field is used, whether it is required, and what customers should send.
Field RulesFollow a recipe
Use step-by-step recipes for existing designs, design URLs, inventory, personalization, and webhooks.
RecipesWorking Payload Examples
Use these examples as starting points. Replace sample credentials, customer IDs, contact IDs, design IDs, colorway IDs, ship methods, and URLs with account-specific values.
Minimal order using an existing design
Use this when the design and colorway already exist in Dubow/DOTS.
{
"Authorization": {
"UserID": 1234,
"Password": "abcd"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO-EXISTING-1001",
"OrderStatusNotificationUrl": "https://yourdomain.com/webhooks/status",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"IsResidential": true,
"ShipToAddress": {
"Address1": "Jane Customer",
"Address3": "123 Main Street",
"City": "Minneapolis",
"State": "MN",
"Zip": "55401",
"Country": "US",
"PhoneNumber": "555-123-4567",
"EmailAddress": "customer@example.com"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract",
"Color": "Black"
},
"LineItemSizes": [
{ "Quantity": 12, "SizeAsString": "M" }
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest"
}
}
]
}
]
}
]
}
]
}
Minimal order using a design URL
Use this when the customer is providing new art by URL instead of referencing an existing Dubow design.
{
"Authorization": {
"UserID": 1234,
"Password": "abcd"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO-URL-1002",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "John Customer",
"Address3": "456 Oak Ave",
"City": "Brooklyn",
"State": "NY",
"Zip": "11201",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract",
"Color": "Navy"
},
"LineItemSizes": [
{ "Quantity": 24, "SizeAsString": "L" }
],
"Designs": [
{
"DesignTypeName": "DigitalPrint",
"FilePath": "https://cdn.example.com/art/customer-logo.png",
"CustomerDesignCode": "CUSTOMER-LOGO-001",
"Urls": [
{
"Url": "https://cdn.example.com/mockups/customer-logo-back.png",
"Description": "Back preview"
}
],
"IntegrationColorway": {
"GarmentLocationName": "Full Back"
}
}
]
}
]
}
]
}
]
}
Inventory order
Inventory product lookup should be clear and inventory line items should contain only one size entry.
{
"Authorization": {
"UserID": 1234,
"Password": "abcd"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO-INVENTORY-1003",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "Inventory Recipient",
"Address3": "789 Lake Road",
"City": "Chicago",
"State": "IL",
"Zip": "60601",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"CustomerProductName": "INV-SKU-001",
"Description": "Inventory Item",
"ProcurementType": "Inventory"
},
"LineItemSizes": [
{ "Quantity": 1, "SizeAsString": "M" }
]
}
]
}
]
}
]
}
NoDecoration order
Use this for undecorated items. Designs are omitted intentionally.
{
"Authorization": {
"UserID": 1234,
"Password": "abcd"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO-NODEC-1004",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "Blank Goods Recipient",
"Address3": "100 Market Street",
"City": "Dallas",
"State": "TX",
"Zip": "75201",
"Country": "US"
},
"LineItems": [
{
"NoDecoration": true,
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract",
"Color": "White"
},
"LineItemSizes": [
{ "Quantity": 6, "SizeAsString": "XL" }
]
}
]
}
]
}
]
}
Personalization example
Personalization applies to the full quantity of the line item. Use separate line items for unique names or numbers per unit.
{
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest"
},
"Customizations": [
{
"DesignTypeName": "Direct to Film",
"Font": "Block",
"Color": "White",
"Position": "Full Back",
"Width": 10,
"Height": 12,
"Notes": "Center between shoulders",
"TextLines": [
{ "LineNumber": 1, "Text": "SCHERFENBERG" },
{ "LineNumber": 2, "Text": "12" }
]
}
]
}
]
}
Associated design with multiple locations
Use slash-separated locations in the same child-design order used by the associated design.
{
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 7009594,
"IntegrationColorway": {
"ColorwayID": 8598247,
"GarmentLocationName": "Left Chest/Right Chest"
}
}
]
}
Line item with services
Use this when an item needs handling services such as polybag or hangtag.
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{ "Quantity": 12, "SizeAsString": "L" }
],
"Services": [
{ "Name": "polybag" },
{ "Name": "hangtag" }
]
}
Invoice status request
Use this to check billing and invoice details for a submitted PO.
{
"Authorization": {
"UserID": 1234,
"Password": "abcd"
},
"RequestItems": [
{ "CustomerPo": "PO-EXISTING-1001" }
]
}
Order callback URLs
Use callback URLs when your system can receive automatic status or shipment updates.
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO-WEBHOOK-1001",
"OrderStatusNotificationUrl": "https://yourdomain.com/webhooks/order-status",
"ShipmentNotificationUrl": "https://yourdomain.com/webhooks/shipment",
"Manifests": []
}
Order status request
Use this if the customer is polling instead of relying only on automatic webhooks.
{
"Authorization": {
"UserID": 1234,
"Password": "abcd"
},
"RequestItems": [
{ "CustomerPo": "PO-EXISTING-1001" }
]
}
Common Customer Workflows
Existing design
- Confirm customer rights to the
DesignID. - Send
DesignID. - Send
IntegrationColorway.ColorwayID. - Send
GarmentLocationName. - Send at least one size with quantity greater than zero.
New artwork by URL
- Send
DesignTypeName. - Send
FilePathfor the art file. - Send
CustomerDesignCodeas the customer's art reference. - Send
IntegrationColorway.GarmentLocationName. - Add preview URLs when available.
Inventory item
- Use
ProcurementType: Inventory. - Use a clear inventory SKU lookup.
- Send only one
LineItemSizeentry for Dubow-owned inventory. - Omit designs when inventory workflow applies.
Personalization
- Add
Customizations[]inside a design. - Add one or more
TextLines[]. - Use separate line items for unique personalization per unit.
- Include customization
DesignTypeNamewhen needed.
Field Finder
Use this condensed table for quick lookup. The full field glossary remains below for deeper reference.
| Field | Object | Required | Purpose |
|---|---|---|---|
Authorization.UserID |
Authorization | Yes | Assigned Dubow API user ID. |
Authorization.Password |
Authorization | Yes | Assigned API password. Do not expose client-side. |
CustomerID |
Order | Yes | Dubow customer/company ID. |
ContactID |
Order | Yes | Active contact belonging to the customer. |
PoNumber |
Order | Yes | Customer PO. Must be unique for the customer. |
OrderStatusNotificationUrl |
Order | No | Webhook endpoint for automatic order status updates. |
ShipMethodAbbreviation |
Manifest | Yes | Carrier/method code such as UPSG. |
IntegrationProduct.ProductName |
Product | Conditional | Dubow product style, often paired with Mill. |
IntegrationProduct.Mill |
Product | Conditional | Manufacturer used to disambiguate product names. |
IntegrationProduct.ProcurementType |
Product | Yes | Contract, Inventory, or Custom. |
LineItemSizes[].Quantity |
LineItemSize | Yes | Must be greater than zero. |
Designs[].DesignID |
Design | Existing design | Internal Dubow design identifier. |
Designs[].FilePath |
Design | Design URL | Artwork URL/path for new design submission. |
Designs[].CustomerDesignCode |
Design | Design URL | Customer's reference for the artwork. |
IntegrationColorway.ColorwayID |
IntegrationColorway | Existing design | Required when using DesignID. |
IntegrationColorway.GarmentLocationName |
IntegrationColorway | Yes | Placement such as Left Chest or Full Back. |
Customizations[].TextLines |
Customization | Personalization | Text content for names, numbers, or other personalization. |
Before Contacting Dubow Support
For faster troubleshooting, include the information below. Do not send production passwords by email.
| Item | Why it helps | |
|---|---|---|
| ☐ | Environment used | Sandbox, production, or cloud endpoint. |
| ☐ | CustomerID, ContactID, and PoNumber |
Identifies the account and order attempt. |
| ☐ | Endpoint and timestamp | Helps locate logs and reproduce timing-sensitive issues. |
| ☐ | Full JSON request and response | Shows payload structure and validation output. |
| ☐ | Product lookup values | Include ProductID, ProductName, Mill, or
CustomerProductName. |
| ☐ | Artwork identifiers | Include DesignID, ColorwayID,
CustomerDesignCode, and file URLs if relevant. |
| ☐ | Shipping method and address example | Needed for manifest or shipment problems. |
Authentication
All requests to the Dubow API must include a valid UserID and
Password inside the Authorization block. This is required in JSON
format. The Authentication credentials can be received from Dubow by contacting the IT
Department.
Warning
Use sandbox credentials only in test. Do not embed production credentials client side or in public repos.
Field Rules
| Field | Type | Required | Description |
|---|---|---|---|
UserID |
int | Yes | Your assigned Dubow integration user ID |
Password |
string | Yes | Your Dubow-provided integration password |
{
"Authorization": {
"UserID": 1234,
"Password": "MySecurePassword"
}
}
Common Authentication Errors
Unauthorized. Please check UserID and Password.: Happens when credentials are missing or incorrect.- Make sure
Content-Typeis set toapplication/json. - Use test credentials only in sandbox environments; live credentials should be kept secure.
Preflight Validation Checklist
Use this checklist before submitting an order. These checks reflect common backend validation rules and the most frequent causes of rejected payloads.
Order header
Orderscontains at least one order.CustomerID,ContactID, andPoNumberare present.PoNumberis unique for the customer.
Customer access
- The authenticated
UserIDmatches the customer or parent customer. ContactIDexists, belongs to the customer, and is active.- The customer is not blocked by credit-limit validation.
Manifest
- Each order has at least one manifest.
- Each manifest has one or more line items.
DateToShip, when provided, is after the order date.
Line item
- Each line item has an
IntegrationProduct. - Each line item has at least one
LineItemSize. - Every quantity is greater than zero.
Product
- Product identifiers resolve to one product only.
- Use
ProductNamewithMillwhen names are shared across vendors. - Inventory parts use only one size row.
Design
- Decorated items include
Designs. - Existing designs include valid
DesignIDand colorway data. - New artwork includes
FilePathand/orCustomerDesignCode.
Backend Processing Rules
Some submitted values are validated, normalized, or used to drive internal DMS behavior after the request is received.
| Area | Behavior | Customer impact |
|---|---|---|
PoNumber |
Trimmed before use. Values longer than the supported storage length are shortened. | Keep PO values concise and unique. Avoid relying on characters near the end of very long PO strings. |
SecondaryPo |
Trimmed and length-limited. | Use this for alternate references, not long notes. |
EndUserPo |
Trimmed and stored as a short end-user reference. | Use a compact value rather than a long freeform string. |
OrderStatusNotificationUrl |
Stored as the callback for order status events. | Use a stable, public HTTPS endpoint that can accept POST requests. |
ShipmentNotificationUrl |
Stored separately from the order status callback when supplied. | Use this when shipment-specific notification routing differs from general order status routing. |
| Customer profile | Some behavior is customer-profile driven, including turn time, auto integration approval, dynamic part creation, and customer-specific charges. | Your Dubow onboarding team can confirm which customer-profile rules apply to your integration. |
Dates and Scheduling
Requested dates are treated as scheduling inputs. Dubow may adjust dates to satisfy business-day and customer-profile rules.
| Field | Behavior | Recommendation |
|---|---|---|
Manifests[].DateToShip |
Parsed as a date. Time-of-day is ignored. The final ship date may be moved to the next business day and may be pushed out by the customer turn-time rule. | Submit the desired ship date, then use order status or webhooks to read the final scheduled date. |
Manifests[].DateDropDead |
Parsed as a date. It cannot be earlier than the order date, ship date, or scheduled date. | Use this only when there is a true deadline later than or equal to the requested ship date. |
| Business days | Dates can be normalized to the next business day. | Avoid sending weekend or same-day ship dates unless explicitly approved. |
Note
The default production turn-time rule may be overridden by customer profile. Confirm your customer profile settings with Dubow during onboarding.
Order Creation
Use this endpoint to submit one or more orders to Dubow. Each order requires authentication and must contain at least one manifest with one or more valid decorated line items.
Endpoint
- URL:
https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new - Method: POST
- Headers:
Content-Type: application/json
Field Rules
| Field | Type | Required | Description |
|---|---|---|---|
Authorization |
object | Yes | Contains UserID and Password. |
Authorization.UserID |
integer | Yes | Provided by Dubow. This is your API user ID. |
Authorization.Password |
string | Yes | Provided by Dubow. API user password. |
Orders |
array<IntegrationOrder> | Yes | One or more orders to create. |
Orders[].CustomerID |
integer | Yes | Provided by Dubow. This is the CompanyID in DMS. |
Orders[].ContactID |
integer | Yes | Provided by Dubow. This is the Customer/ContactID in DMS. |
Orders[].PoNumber |
string | Yes | Customer-provided Purchase Order Number. |
Orders[].Manifests |
array<Manifest> | Yes | At least one manifest is required and each must contain at least one
LineItem. |
Orders[].ReturnAddress |
object | No | Optional return address for the order. |
Orders[].OrderStatusNotificationUrl |
string (URL) | No | Optional webhook callback URL for order status updates. See Webhook section. |
Orders[].SecondaryPo |
string | No | Secondary purchase order reference. |
Orders[].EndUserPo |
string | No | End user PO reference if applicable. |
Orders[].BulkShip |
boolean | No | Enable Bulk shipping to ship multiple orders together. |
Orders[].Notes |
string | No | Order-level notes. |
{
"Authorization": {
"UserID": 1234,
"Password": "abcd"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO10001",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "John Smith",
"Address3": "123 Main St",
"City": "Minneapolis",
"State": "MN",
"Zip": "55401",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 1,
"SizeAsString": "M"
}
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest",
"Urls": [
{
"Url": "https://www.abcxyz.com/preview.jpg",
"Description": "Left Chest Preview"
}
]
}
}
]
}
]
}
]
}
]
}
{
"Authorization": {
"UserID": 1234,
"Password": "abcd"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO10002",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "Jane Doe",
"Address3": "456 Oak Ave",
"City": "Brooklyn",
"State": "NY",
"Zip": "11201",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 2,
"SizeAsString": "L"
}
],
"Designs": [
{
"DesignTypeName": "DigitalPrint",
"FilePath": "https://azbycx.com/images/686388.png",
"CustomerDesignCode": "686388",
"Urls": [
{
"Url": "https://azbycx.com/images/686388-5250-black-back.png",
"Description": "Back Preview"
}
],
"IntegrationColorway": {
"GarmentLocationName": "FULL Back"
}
}
]
}
]
}
]
}
]
}
{
"Authorization": {
"UserID": 1234,
"Password": "abcd"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO20001",
"ReturnAddress": {
"Address1": "Returns Dept",
"Address3": "123 Circle Court",
"City": "Minneapolis",
"State": "MN",
"Zip": "55401",
"Country": "US",
"PhoneNumber": "555-123-4567",
"EmailAddress": "returns@example.com"
},
"OrderStatusNotificationUrl": "https://example.com/status-hook",
"CommitLater": true,
"IsTestOrder": true,
"SecondaryPo": "PO-ALT-002",
"EndUserPo": "ENDUSER-202",
"Notes": "Urgent rush order - notify on any delays.",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"IsResidential": true,
"ShipToAddress": {
"Address1": "ATTN John Smith",
"Address3": "852 1st Ave",
"City": "Brooklyn",
"State": "NY",
"Zip": "11201",
"Country": "US",
"PhoneNumber": "555-999-8888",
"EmailAddress": "john@example.com"
},
"LineItems": [
{
"Name": "SKU-ABC",
"RetailPrice": 22.50,
"HarmonizedCode": "610910",
"NoDecoration": false,
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 3,
"SizeAsString": "XL"
}
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest",
"Urls": [
{
"Url": "https://www.abcxyz.com/preview.jpg",
"Description": "Left Chest Preview"
}
]
}
}
]
}
]
}
]
}
]
}
{
"Authorization": {
"UserID": 1234,
"Password": "abcd"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO20002",
"OrderStatusNotificationUrl": "https://example.com/status-hook",
"IsTestOrder": false,
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "John Doe",
"Address3": "512 Elm Street",
"City": "Chicago",
"State": "IL",
"Zip": "60601",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 5,
"SizeAsString": "S"
}
],
"Designs": [
{
"DesignTypeName": "DigitalPrint",
"FilePath": "https://azbycx.com/images/686388.png",
"CustomerDesignCode": "686388",
"Urls": [
{
"Url": "https://azbycx.com/images/686388-5250-black-back.png",
"Description": "Back Preview"
}
],
"IntegrationColorway": {
"GarmentLocationName": "FULL Back"
}
}
]
}
]
}
]
}
]
}
Order Status
Use this Webhook/Endpoint to retrieve the current status of orders submitted to Dubow. Status updates can also be received via webhook if configured.
Tip
If you include OrderStatusNotificationUrl in the Order Creation request, you
will receive automatic status updates via webhook and do not need to poll the status
endpoint.
Webhook Endpoint (Automatic)
Include OrderStatusNotificationUrl in your Order Creation request and we will
POST status updates to that URL.
Status Check Endpoint (Manual)
- URL:
https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/status - Method: POST
- Headers:
Content-Type: application/json
Call Fields
| Field | Type | Required | Description |
|---|---|---|---|
Authorization |
object | Yes | Container for UserID and Password. |
Authorization.UserID |
integer | Yes | API user identifier. |
Authorization.Password |
string | Yes | API user password. |
RequestItems |
array | Yes | One or more request objects used to look up order status. |
RequestItems[].CustomerPo |
string | Yes | Purchase Order Number. |
Response Fields
| Field | Type | Required | Description |
|---|---|---|---|
ResponseSummary |
object | Always | Includes IsSuccess, Errors, and
Authorization result for the call. |
ResponseSummary.Authorization.TransactionID |
string|null | No | Transaction identifier, may be null. |
ResponseSummary.Authorization.UserID |
integer | No | Authenticated user ID. |
ResponseSummary.Authorization.Password |
null | No | Redacted in responses. |
ResponseSummary.Authorization.IsAuthenticated |
boolean | Always | Authentication success flag. |
Orders |
array | When IsSuccess is true |
Collection of order summaries. |
Orders[].CustomerPo |
string | No | Customer PO number. |
Orders[].OrderID |
integer | No | Internal Dubow order identifier. |
Orders[].CustomerID |
integer | No | Customer identifier. |
Orders[].ReceivingStatus |
string | No | Receiving state, for example No. |
Orders[].ShippingStatus |
string | No | Shipping state, for example No. |
Orders[].IsInvoiced |
boolean | No | Whether the order has been invoiced. |
Orders[].IsCanceled |
boolean | No | Whether the order has been canceled. |
Orders[].OrderStatus |
string | No | Current stage of the order. See OrderStatus values. |
Orders[].UniqueTrackingNumbers |
array<UniqueTrackingNumber> | No | Distinct tracking numbers for the order. See “UniqueTrackingNumbers item fields”. |
Orders[].LineItems |
array<LineItem> | No | Per-line item progress details. See “Line item fields returned.” |
Date format
Date fields in this response use the Microsoft JSON date format, for example
/Date(1757566800000-0500)/.
OrderStatus values
| Value | Description |
|---|---|
Entered |
Order has been entered into our system. |
Partially Received |
Product has been received but not for the entire order. |
Received |
All product for the order has been received. |
Order in Production |
Order has entered production. |
Produced |
Order has been fully produced. |
QA |
Order has passed Quality Assurance. |
Partially QA'd |
Some of the product on the order has passed Quality Assurance. |
Partially Shipped |
Some of the product on the order has been shipped. |
Shipped |
The entire order has been shipped. |
Invoiced |
Order has been invoiced and may be awaiting payment. |
Canceled |
Order was canceled. |
Line item fields returned
| Field | Type | Required | Description |
|---|---|---|---|
Orders[].LineItems[].LineItemName |
string | No | Display name of the item. |
Orders[].LineItems[].Requested |
integer | No | Quantity requested. |
Orders[].LineItems[].Received |
integer | No | Quantity received. |
Orders[].LineItems[].BackOrdered |
integer | No | Quantity on back order. |
Orders[].LineItems[].Shipped |
integer | No | Quantity shipped. |
Orders[].LineItems[].Damaged |
integer | No | Quantity damaged. |
Orders[].LineItems[].ArtNotReceived |
boolean | No | Artwork has not been received. |
Orders[].LineItems[].ArtBeingProcessed |
boolean | No | Artwork is in processing. |
Orders[].LineItems[].WaitingForApproval |
boolean | No | Awaiting approval. |
Orders[].LineItems[].OnHold |
boolean | No | On hold status. |
Orders[].LineItems[].DateToShip_Orig |
string | No | Original ship date in Microsoft JSON format. |
Orders[].LineItems[].DateToShip |
string | No | Current ship date in Microsoft JSON format. |
Orders[].LineItems[].DateArtCompleted |
string | No | Artwork completion date in Microsoft JSON format. |
Orders[].LineItems[].ReceivingHistory |
array|null | No | Receiving events for the line item, null when none. |
Orders[].LineItems[].IsShippable |
boolean | No | True if the line item can be shipped. |
Orders[].LineItems[].LineItemID |
integer | No | Line item identifier. |
Orders[].LineItems[].IsScheduled |
boolean | No | True if the line is scheduled in production. |
UniqueTrackingNumbers item fields
| Field | Type | Required | Description |
|---|---|---|---|
Orders[].UniqueTrackingNumbers[].TrackingNumber |
string | Yes | The carrier’s tracking number. |
Orders[].UniqueTrackingNumbers[].DateShipped |
string (ISO 8601) | No | Shipment timestamp, for example 2025-08-04T12:51:00. |
Orders[].UniqueTrackingNumbers[].ShipMethodName |
string | No | Readable service name, for example FedEx 2 day or
UPS Ground. |
Orders[].UniqueTrackingNumbers[].ShipperReference |
string | No | Reference provided by the shipper, useful for label or shipment lookup. |
Webhook Alternative
If you include OrderStatusNotificationUrl in your order request, Dubow will
push order status updates automatically to that endpoint.
{
"Authorization": {
"UserID": 1234,
"Password": "ABCDEFG"
},
"RequestItems": [
{
"CustomerPo": "9223111"
}
]
}
{
"ResponseSummary": {
"IsSuccess": true,
"Errors": [],
"Authorization": {
"TransactionID": null,
"UserID": 1234,
"Password": null,
"IsAuthenticated": true
}
},
"Orders": [
{
"CustomerPo": "8675309",
"OrderID": 12345678,
"ReceivingStatus": "No",
"ShippingStatus": "No",
"IsInvoiced": false,
"IsCanceled": false,
"LineItems": [
{
"LineItemName": "LK8000 -PORT AUTHORITY® LADIES EZCOTTON™ POLO",
"Requested": 2,
"Received": 0,
"BackOrdered": 2,
"Shipped": 0,
"Damaged": 0,
"ArtNotReceived": false,
"ArtBeingProcessed": false,
"WaitingForApproval": false,
"OnHold": false,
"DateToShip_Orig": "/Date(1754024400000-0500)/",
"DateToShip": "/Date(1757566800000-0500)/",
"DateArtCompleted": "/Date(1659378840000-0500)/",
"ReceivingHistory": null,
"IsShippable": false,
"LineItemID": 11111111,
"IsScheduled": false
},
{
"LineItemName": "LK8000 -PORT AUTHORITY® LADIES EZCOTTON™ POLO",
"Requested": 1,
"Received": 0,
"BackOrdered": 1,
"Shipped": 0,
"Damaged": 0,
"ArtNotReceived": false,
"ArtBeingProcessed": false,
"WaitingForApproval": false,
"OnHold": false,
"DateToShip_Orig": "/Date(1754024400000-0500)/",
"DateToShip": "/Date(1757566800000-0500)/",
"DateArtCompleted": "/Date(1659378840000-0500)/",
"ReceivingHistory": null,
"IsShippable": false,
"LineItemID": 18043817,
"IsScheduled": false
}
],
"UniqueTrackingNumbers": [
{
"TrackingNumber": "111111111111111111111",
"DateShipped": "2025-08-04T12:51:00",
"ShipMethodName": "Fed Ex 2 day",
"ShipperReference": "16413892"
},
{
"TrackingNumber": "2222222222222",
"DateShipped": "2025-08-04T12:51:00",
"ShipMethodName": "Fed Ex Ground",
"ShipperReference": "16413893"
}
],
"CustomerID": 1234,
"OrderStatus": "Entered"
}
]
}
Invoice Status
Use this endpoint to retrieve invoicing and billing status for your submitted orders. This is useful for reconciliation, accounts payable, and reporting workflows.
Endpoint
- URL:
https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/invoice - Method: POST
- Headers:
Content-Type: application/json
Field Rules
| Field | Type | Required | Description |
|---|---|---|---|
Authorization |
object | Yes | Contains UserID and Password. |
Authorization.UserID |
integer | Yes | API user identifier. |
Authorization.Password |
string | Yes | API user password. (Spelling matches current field label in this section.) |
RequestItems |
array | Yes | One or more request objects for invoice lookup. |
RequestItems[].CustomerPo |
string | Yes | Purchase Order Number. |
Response Fields
| Field | Type | Required | Description |
|---|---|---|---|
OrderID |
integer | No | Internal Dubow order identifier. |
CustomerID |
integer | No | Customer identifier. |
IsInvoiced |
boolean | No | Whether the order has been invoiced. |
IsCanceled |
boolean | No | Whether the order has been canceled. |
ShippingTotal |
number | No | Total shipping charges. |
DecorationTotal |
number | No | Total decoration charges. |
GarmentTotal |
number | No | Total garment charges. |
Services |
number | No | Total for services. |
Total |
number | No | Grand total for the invoice. |
AmountDue |
number | No | Outstanding balance. |
AmountPaid |
number | No | Amount already paid. |
AmountCredited |
number | No | Credits applied. |
AmountDebited |
number | No | Debits applied. |
DateInvoiced |
string (ISO 8601) | No | Date and time the invoice was created. |
LineItems |
array | No | Collection of invoiced line items. |
{
"ResponseSummary": {
"IsSuccess": true,
"Errors": [],
"Authorization": {
"TransactionID": null,
"UserID": 12345,
"Password": null,
"IsAuthenticated": true
}
},
"Invoices": [
{
"OrderID": 8675309,
"CustomerPO": "111111",
"IsInvoiced": false,
"IsCanceled": false,
"ShippingTotal": 0,
"DecorationTotal": 0.00,
"GarmentTotal": 0.00,
"Services": 0.00,
"Total": 0.0000,
"AmountDue": 0.0000,
"AmountPaid": 0.0000,
"AmountCredited": 0.0000,
"AmountDebited": 0.0000,
"LineItems": [
{
"LineItemName": null,
"PartName": "LK8000 ",
"GarmentLocationName": "LEFT CHEST",
"CustomerDesignCode": null,
"DesignID": "55555",
"IsService": false,
"DecorationTotal": 0.00,
"GarmentTotal": 0.00,
"Services": 0,
"Total": 0.00
},
{
"LineItemName": null,
"PartName": "LK8000 ",
"GarmentLocationName": "LEFT CHEST",
"CustomerDesignCode": null,
"DesignID": "55555",
"IsService": false,
"DecorationTotal": 0.00,
"GarmentTotal": 0.00,
"Services": 0,
"Total": 0.00
}
],
"DateInvoiced": null
}
]
}
Manifests
A manifest groups one or more line items being shipped to the same address with a shared shipping method. Each order must contain at least one manifest.
Field Rules
| Field | Type | Required | Description |
|---|---|---|---|
ShipMethodAbbreviation |
string | Yes | Carrier and method code. See available ship methods |
ShipToAddress |
object | Yes | Complete destination address for the shipment. |
LineItems |
array<LineItem> | Yes | One or more decorated items included in the shipment. |
IsResidential |
boolean | No | Residential address flag. |
ThirdPartyAccountNumber |
string | No | Account number for third‑party shipping billing. |
PackingSlipUrl |
string (URL) | No | Link to a PDF packing slip to include in the carton. |
Notes |
string | No | Manifest‑level instructions or notes. |
{
"ShipMethodAbbreviation": "UPSG",
"IsResidential": true,
"ThirdPartyAccountNumber": "123456789",
"PackingSlipUrl": "https://files.example.com/slips/po1001.pdf",
"Notes": "Pack with extra padding",
"ShipToAddress": {
"Address1": "ATTN John Smith",
"Address3": "123 1st ST",
"City": "Austin",
"State": "TX",
"Zip": "73301",
"Country": "US",
"PhoneNumber": "555-222-3333",
"EmailAddress": "john@example.com"
}
}
Order Header
Every order needs CustomerID, ContactID, PoNumber,
and at least one manifest.
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO10001",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "Jane Customer",
"Address3": "123 Main Street",
"City": "Minneapolis",
"State": "MN",
"Zip": "55401",
"Country": "US"
},
"LineItems": []
}
]
}
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO10002",
"SecondaryPo": "STORE-ORDER-4455",
"EndUserPo": "ENDUSER-7788",
"OrderStatusNotificationUrl": "https://yourdomain.com/webhooks/order-status",
"ShipmentNotificationUrl": "https://yourdomain.com/webhooks/shipment",
"Manifests": []
}
Transactional Data provides critical order-level details that ensure accurate processing and tracking.
CustomerID
A unique identifier for the customer associated with the order. This is required for customer-specific data mapping.
- Type: Integer
- Example:
12345
PONumber
The primary purchase order number for the transaction. Used to reference orders within the system.
- Type: String
- Example:
PO123456
SecondaryPO
Additional purchase order numbers for reference. Useful for orders linked to multiple POs.
- Type: String (optional)
- Example:
PO654321
EndUserPO
A purchase order number provided by the end user, if applicable. This is often used for drop shipping scenarios.
- Type: String
- Example:
ENDUSER123
ContactID
An identifier for the main contact associated with the order. Ensures direct communication for order issues or clarifications.
- Type: Integer
- Example:
4544
Order Notes
Freeform text for any special instructions or notes related to the order.
- Type: String (optional)
- Example:
Full Front needs to be 4 inches down from collar.
Products & Line Items
A line item represents a product being decorated and shipped. Each manifest must contain at least one valid line item.
Field Rules
| Field | Type | Required | Description |
|---|---|---|---|
IntegrationProduct |
object | Yes | Product details for the decorated item. |
LineItemSizes |
array<LineItemSize> | Yes | One or more sizes and quantities for this item. |
Designs |
array<Design> | Yes | One or more decoration designs applied to this item. |
Name |
string | No | SKU or unique identifier. |
NoDecoration |
boolean | No | Set to true if this item does not require decoration. |
Notes |
string | No | Per-line-item notes shown to production. |
RetailPrice |
number | No | MSRP or end-customer visible price. |
HarmonizedCode |
string | No | International customs classification. |
Services |
array<string> | No | Additional service codes to apply (for example folding). |
Designs |
array<Design> | Conditional | Required unless NoDecoration is true. |
IntegrationProduct
Use one clear product lookup method. Avoid mixing identifiers that could resolve to different products.
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract",
"Color": "Black"
}
}
{
"IntegrationProduct": {
"CustomerProductName": "CUSTOM-HOODIE-001",
"Description": "Customer supplied fleece hoodie",
"ProcurementType": "Custom",
"Color": "Heather Gray"
}
}
This object identifies which product is being decorated and how it is sourced.
| Field | Type | Required | Description |
|---|---|---|---|
ProductName |
string | Yes* | Product identifier (e.g. 2000) |
Mill |
string | Conditional | Required if duplicate ProductName exist from multiple
manufacturers; Garment manufacturer |
Description |
string | Yes | Text description of the product |
ProcurementType |
string | Yes | Contract, Inventory, or Custom |
CustomerProductName |
string | Conditional | Used only if customer is enabled for part creation. Unlike
ProductName, which errors if missing, this field allows dynamic
part creation. |
VendorProductName |
string | No | Vendor style number |
ProductTypeName |
string | No | Category name (e.g. Apparel, Tote) |
Color |
string | No | Color description |
ProductID |
int | No | Internal Dubow ID |
Notes |
string | No | Internal product notes |
Urls |
array | No | Array of preview or mockup images |
Product Lookup Priority and Ambiguity Rules
Dubow resolves the product to a single internal part before the order can be created. Use the most specific identifier available and avoid sending conflicting identifiers.
| Recommended order | Field pattern | Best use |
|---|---|---|
| 1 | ProductID |
Use when Dubow has provided the internal product ID. |
| 2 | ProductName + Mill |
Use for catalog products where the same style number may exist under multiple mills. |
| 3 | CustomerProductName |
Use when Dubow has mapped your SKU to a Dubow product or when dynamic part creation is enabled. |
| 4 | VendorProductName + Mill |
Use when the vendor style is the known lookup value. |
Avoid conflicting identifiers
If multiple product identifiers are provided and they resolve to different internal products, the request can fail because the product is ambiguous.
Dynamic Part Creation
Some customers are configured for automatic part creation through integration. This is customer-profile controlled and is not enabled for every customer.
| Requirement | Description |
|---|---|
CustomerProductName |
Required. Used to create or look up the customer-specific product. |
Description |
Required. Used as the new product description. |
Color |
Required. Used as the product color. |
| Customer profile setting | Dynamic part creation must be enabled by Dubow for the customer. |
Created part naming
When dynamic creation is enabled, Dubow creates the internal product using a
DYN- prefix followed by the submitted CustomerProductName.
ProcurementType Values
| Value | Description |
|---|---|
Contract |
You supply the garments and Dubow decorates and ships per your manifests. |
Inventory |
Items are fulfilled from Dubow in-house inventory when available. |
Custom |
Dubow procures product from your specified vendor; include detailed
Description in IntegrationProduct.
|
LineItemSizes
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 3,
"SizeAsString": "M"
},
{
"Quantity": 2,
"SizeAsString": "L"
}
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest"
}
}
]
}
{
"IntegrationProduct": {
"CustomerProductName": "INV-HAT-BLK",
"Description": "Inventory Black Hat",
"Color": "Black",
"ProcurementType": "Inventory"
},
"LineItemSizes": [
{
"Quantity": 1,
"SizeAsString": "OSFA"
}
],
"NoDecoration": true
}
This is an array defining how many of each size are being ordered.
| Field | Type | Required | Description |
|---|---|---|---|
Quantity |
integer | Yes | Number of units for the given size. |
SizeAsString |
string | Yes | Size label such as XL. |
Tip
Sizes are case-insensitive and format-flexible. Common formats like 3XL,
3X-LARGE, and 3X-LARGE TALL will all be normalized internally.
NoDecoration and Inventory Decision Table
| Scenario | Are Designs required? |
Notes |
|---|---|---|
| Decorated contract or custom item | Yes | Send one or more design blocks with placement details. |
NoDecoration is true |
No | Use only for undecorated items. |
ProcurementType is Inventory |
No, depending on workflow | Inventory workflows may not require design data. |
Decorated item with missing Designs |
Invalid | The request can fail unless NoDecoration is true or the inventory
workflow applies. |
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 1,
"SizeAsString": "M"
}
]
}
{
"Name": "SKU-ABC",
"RetailPrice": 19.99,
"HarmonizedCode": "610910",
"NoDecoration": false,
"Notes": "This is a test item.",
"IntegrationProduct": {
"ProductName": "2000",
"CustomerProductName": "ALT-2000",
"VendorProductName": "G5000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract",
"ProductTypeName": "Apparel",
"Color": "Black",
"ProductID": 123456,
"Notes": "Custom branded variant",
"Urls": [
{
"Url": "https://example.com/product.jpg",
"Description": "Mockup"
}
]
},
"LineItemSizes": [
{
"Quantity": 3,
"SizeAsString": "XL"
},
{
"Quantity": 2,
"SizeAsString": "L"
}
],
"Services": [
{ "Name": "BAG2 - POLY BAG" }
]
}
Designs
A design object defines what decoration to apply to a product. Each line item
should include one or more designs unless NoDecoration is set to true.
Screen print minimum
Screen print designs require a minimum quantity of 24 units per colorway. Orders below this minimum may be rejected during validation.
Requirements
Existing design: DesignTypeName, DesignID, and
IntegrationColorway are required.
Design via URL: DesignTypeName, FilePath
and/or CustomerDesignCode, and IntegrationColorway are
required. Keep examples exactly as shown.
Field Rules
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 1,
"SizeAsString": "M"
}
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest"
}
}
]
}
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 2,
"SizeAsString": "L"
}
],
"Designs": [
{
"DesignTypeName": "Direct to Film",
"FilePath": "https://cdn.example.com/art/logo.png",
"CustomerDesignCode": "LOGO-001",
"IntegrationColorway": {
"GarmentLocationName": "Full Front"
}
}
]
}
| Field | Type | Required | Description |
|---|---|---|---|
DesignTypeName |
string | Yes (Design via URL) | Decoration method name used in examples, for example Embroidery.
|
DesignID |
integer | Yes (Existing Design) | Internal design identifier when referencing an existing design. |
FilePath |
string (URL or path) | Yes (Design via URL) | Location of the artwork file when submitting via URL. |
CustomerDesignCode |
string | Yes (Design via URL) | Your reference code for the artwork when submitting via URL. |
IntegrationColorway |
object | Yes | Placement and preview information for the decoration. |
Urls |
array<UrlRef> | No | Optional previews or mockups that accompany the design. |
Customizations |
array<Customization> | No | Name and number personalizations for this placement. See Customizations. |
Association/Dual Designs:
DesignID may reference an associated design (a design that contains multiple
child design numbers).
When you send a DesignID for an associated design, you must provide
GarmentLocationName as a single string with one
location per child design, in the same order, separated by a forward slash “/”.
Tip: Find the correct associated DesignID and ColorwayID in DOTS (search by title, code, or keyword) and
paste them into your
payload to avoid mismatches.
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 7009594
"IntegrationColorway": {
"ColorwayID": 8598247
"GarmentLocationName": "Left Chest/Right Chest"
}
}
]
IntegrationColorway
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 24,
"SizeAsString": "M"
}
],
"Designs": [
{
"DesignTypeName": "Screen Print",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Full Front",
"Colors": [
{
"Ordinal": 1,
"Color": "Super White",
"Map": "Text"
},
{
"Ordinal": 2,
"Color": "Black",
"Map": "Icon"
}
]
}
}
]
}
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 1,
"SizeAsString": "XL"
}
],
"Designs": [
{
"DesignTypeName": "Direct to Film",
"FilePath": "https://cdn.example.com/art/back-logo.png",
"CustomerDesignCode": "BACK-LOGO-001",
"IntegrationColorway": {
"GarmentLocationName": "Full Back",
"Urls": [
{
"Url": "https://cdn.example.com/mockups/back-logo-preview.png",
"Description": "Full back placement preview"
}
]
}
}
]
}
This object defines where and how the design will be applied. It is always required, even when submitting art via URL.
| Field | Type | Required | Description |
|---|---|---|---|
ColorwayID |
integer | Yes/No | Only Required when using Designs[].DesignID. |
CustomerColorwayCode |
integer | Yes/No | Only Required when using Designs[].CustomerDesignCode. |
Colors |
array<Colors> | Conditional | Thread or ink colors for this placement. Required for Embroidery and Screen Print when you need to specify thread/ink colors. Omit for methods that do not use thread/ink color assignments. |
GarmentLocationName |
string | Yes | Placement such as Left Chest or FULL Back. |
Urls |
array<UrlRef> | No | Preview images or references shown in examples. |
Colors (ThreadBreaks/Ink Colors)
Use this array inside IntegrationColorway to define specific thread or ink
colors.
| Field | Type | Required | Description |
|---|---|---|---|
Color |
string | Yes | Thread or ink color name, for example Super White. |
Ordinal |
integer | Yes | Position or needle index for the color. Start at 1 and keep unique
within the placement. |
Map |
string | Yes | Short description of what is in specified ordinal. (eg "Icon", "Text", "Trim") |
Customizations (Personalizations)
Use this array inside Designs to define individual name/number customizations.
Important Note
Personalization will be used on the full quantity of the current integration
product object.
For example, if the line item quantity is 5, and there is 1 customization defined, that
same customization will be applied to all 5 items.
To have different customizations for each item, you must create separate integration
products for each unique customization.
| Field | Type | Required | Description |
|---|---|---|---|
DesignTypeName |
string | No | Decoration method requested for personalization. See Decoration method List. |
Font |
string | No | Preferred font name for the personalization. |
Color |
string | No | Requested thread or ink color. |
Position |
string | No | Placement reference on the product, for example Left Chest. |
Width |
number | No | Suggested maximum width in inches. |
Height |
number | No | Suggested maximum height in inches. |
Notes |
string | No | Special handling instructions. |
Urls |
array<UrlRef> | No | Preview images or mockups related to the customization. |
TextLines |
array<TextLine> | Required for name/number | Lines of text to render for player names or numbers. |
TextLines Format:
| Field | Type | Required | Description |
|---|---|---|---|
LineNumber |
integer | Yes | Sequence number of the text line, for example 1, 2
|
Text |
string | Yes | Text to be rendered on the product. |
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 7009594,
"IntegrationColorway": {
"ColorwayID": 8598247,
"GarmentLocationName": "Left Chest"
},
"Customizations": [
{
"Font": "Script",
"Color": "WHITE",
"Position": "RIGHT CHEST",
"DesignTypeName": "Direct to Film",
"Width": 0,
"Height": 0,
"Urls": [
{
"Url": "https://www.abcxyz.com/designfile.png"
}
],
"TextLines": [
{
"LineNumber": 1,
"Text": "John Doe, CPA"
},
{
"LineNumber": 2,
"Text": "North Region Manager"
}
]
},
{
"Font": "Script",
"Color": "WHITE",
"Position": "FULL BACK",
"DesignTypeName": "Direct to Film",
"Width": 0,
"Height": 12,
"Urls": [
{
"Url": "https://www.abcxyz.com/designfile.png"
}
],
"TextLines": [
{
"LineNumber": 1,
"Text": "88"
}
]
}
]
}
]
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest"
}
}
]
"Designs": [
{
"DesignTypeName": "DigitalPrint",
"FilePath": "https://cdn.example.com/art/abc123.png",
"CustomerDesignCode": "ABC123",
"IntegrationColorway": {
"GarmentLocationName": "Full Back"
}
}
]
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest",
"Urls": [
{
"Url": "https://example.com/leftchest-preview.jpg",
"Description": "Preview for Left Chest"
}
]
},
"Urls": [
{
"Url": "https://example.com/mockup.jpg",
"Description": "Full mockup"
}
]
}
]
"Designs": [
{
"DesignTypeName": "Embroidery",
"FilePath": "https://cdn.example.com/art/logo456.DST",
"CustomerDesignCode": "LOGO456",
"Urls": [
{
"Url": "https://cdn.example.com/mockup-logo456.jpg",
"Description": "Front and back view"
}
],
"IntegrationColorway": {
"GarmentLocationName": "Full Front",
"Urls": [
{
"Url": "https://cdn.example.com/front-location-preview.jpg",
"Description": "Preview for Front"
}
],
"Colors": [
{
"Color": "Super White",
"Pantone": "1001",
"Ordinal": 1
},
{
"Color": "Black",
"Pantone": "1800",
"Ordinal": 2
}
]
}
}
]
Manifests/Shipping Information
Shipping details are defined within the Manifests array of each
order. Each order must include at least one manifest, and each manifest must include a
complete ShipToAddress and at least one line item.
Field Rules
A manifest groups the destination, ship method, and line items being shipped together.
{
"ShipMethodAbbreviation": "UPSG",
"IsResidential": true,
"ShipToAddress": {
"Address1": "Jane Customer",
"Address3": "123 Main Street",
"City": "Minneapolis",
"State": "MN",
"Zip": "55401",
"Country": "US",
"PhoneNumber": "555-123-4567",
"EmailAddress": "customer@example.com"
},
"LineItems": []
}
{
"ShipMethodAbbreviation": "FEDEXG",
"ThirdPartyAccountNumber": "123456789",
"PackingSlipUrl": "https://files.example.com/packing-slip.pdf",
"Notes": "Include packing slip in carton",
"ShipToAddress": {
"Address1": "Receiving Department",
"Address3": "500 Warehouse Blvd",
"City": "Austin",
"State": "TX",
"Zip": "73301",
"Country": "US"
},
"LineItems": []
}
| Field | Type | Required | Description |
|---|---|---|---|
ShipMethodAbbreviation |
string | Yes | Carrier and method code. See available ship methods |
ShipToAddress |
object | Yes | Complete destination address for the shipment. |
LineItems |
array | Yes | One or more decorated items included in the shipment. |
IsResidential |
boolean | No | Residential address flag. |
ThirdPartyAccountNumber |
string | No | Account number for third-party shipping billing. |
PackingSlipUrl |
string (URL) | No | Link to a PDF packing slip to include in the carton. |
Notes |
string | No | Manifest-level instructions or notes. |
ShipToAddress Fields
This is a nested object required inside each manifest. The more complete the address, the more accurate the label and delivery rate.
Required Fields
| Field | Type | Required | Description |
|---|---|---|---|
Address1 |
string | Yes | Recipient or attention line (for example the person or department). |
Address3 |
string | Yes | Street address line as used in examples. |
City |
string | Yes | City. |
State |
string | Yes | State or province 2-letter code. **Only Required when Country is "US"** |
Zip |
string | Yes | Postal code. |
Country |
string | Yes | 2-letter country code, for example US. |
Address2 |
string | No | Optional Additional Recipient or attention line (for example the person or department) |
Address4 |
string | No | Optional delivery information such as apartment, suite, unit, floor, or building name. Also used for “Care Of” or company names if Address1 is a personal name. |
Address5 |
string | No | Optional Extra locality details that don’t fit in City/State/ZIP, such as districts, suburbs, villages, or neighborhoods (often needed for non-U.S. addresses) |
PhoneNumber |
string | No | Contact number for delivery |
EmailAddress |
string | No | Contact email |
Ship Methods
Select the carrier/service for each manifest using ShipMethodAbbreviation. Use
the Shipping Methods XML feed to get the exact
abbreviations supported.
| Field | Type | Required | Description |
|---|---|---|---|
ShipMethodAbbreviation |
string | Yes | Carrier/service code from the Shipping Methods feed. Use the exact abbreviation shown there. |
Shipping Methods feed (XML)
https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/shipmethods
Use this feed to look up valid abbreviations before setting
ShipMethodAbbreviation.
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"IsResidential": true,
"PackingSlipUrl": "https://files.example.com/slip.pdf",
"ThirdPartyAccountNumber": "123456789",
"Notes": "Pack with air pillows and label clearly",
"ShipToAddress": {
"Address1": "ATTN JOHN DOE",
"Address2": "IT Dept",
"Address3": "123 1st Street N",
"City": "Duluth",
"State": "MN",
"Zip": "55802",
"Country": "US",
"PhoneNumber": "555-123-4567",
"EmailAddress": "John@example.com"
},
"LineItems": [
{
"Name": "Tee-Black-XL",
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Black Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 1,
"SizeAsString": "XL"
}
],
"Designs": [ ... ]
}
]
}
]
Include callback URLs in the order request when you want Dubow to push updates instead of relying only on polling.
{
"OrderStatusNotificationUrl": "https://yourdomain.com/webhooks/order-status",
"ShipmentNotificationUrl": "https://yourdomain.com/webhooks/shipment"
}
{
"received": true,
"message": "Webhook accepted"
}
Webhooks
See Order Status section for more information.
Webhooks allow you to receive real-time updates about your orders without polling the API. Simply include a webhook URL in your order submission to be notified when key events occur.
How to Use
- Include
OrderStatusNotificationUrlorShipmentNotificationUrlin yourIntegrationOrder - These fields function identically. Dubow will send the same JSON payload to either
- Must be a valid HTTPS URL that can accept JSON POST payloads
Best Practices
- Return HTTP 200 OK to acknowledge receipt
- Log payloads and timestamps for reconciliation
- Implement retry logic in case of delivery failure or timeout
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 12,
"SizeAsString": "M"
}
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest"
}
}
],
"Services": [
{
"Name": "polybag"
},
{
"Name": "hangtag"
}
]
}
{
"Authorization": {
"UserID": 1234,
"Password": "abcd"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "PO-SERVICES-1001",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "Jane Customer",
"Address3": "123 Main Street",
"City": "Minneapolis",
"State": "MN",
"Zip": "55401",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 12,
"SizeAsString": "M"
}
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest"
}
}
],
"Services": [
{
"Name": "polybag"
},
{
"Name": "hangtag"
}
]
}
]
}
]
}
]
}
Optional Services
You can request optional add-on services at the line item level using the
Services array. These services support finishing, packaging, and branding
enhancements.
How to Apply Services
- Services are applied per line item using the
Servicesarray - Each entry should be a recognized Dubow service code
- Multiple services can be combined where compatible
Available Service Codes
| Field | Description |
|---|---|
BAG2 - POLY BAG |
Fold garment and polybag it |
HANGTAG |
Attach hang tag to garment |
INSERT |
Insert custom flyer or packing slip |
NAME1 |
Personalization on order |
PICNPAC |
Special sorting before shipping |
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Black Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 2,
"SizeAsString": "XL"
}
],
"Services": [
{ "Name": "BAG2 - Poly Bag" },
{ "Name": "INSERT" }
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest"
}
}
]
}
Troubleshooting
If your request contains invalid or incomplete data, Dubow’s API will return a structured response containing helpful error messages to aid troubleshooting.
Response Structure
All error responses follow this format:
{
"ResponseSummary": {
"IsSuccess": false,
"Errors": [
{
"Message": "Description of the problem."
},
...
]
}
}
Common Error Messages and How to Fix Them
Use the search box or type filters to quickly narrow the table. This replaces the separate Error Lookup section so customers have one place for troubleshooting.
| Type | Error Message or Symptom | Likely Cause | How to Fix |
|---|---|---|---|
| Auth | Unauthorized. Please check UserID and Password. |
The Authorization block is missing, incorrect, or using credentials
for the wrong environment. |
Confirm Authorization.UserID, Authorization.Password,
and whether you are calling sandbox or production. |
| Auth | Invalid Authorization UserId |
The request user ID is missing, zero, or not recognized. | Use the assigned Dubow API UserID. If using a child customer, the
authenticated user must be allowed to submit for that customer. |
| Order | Orders list is Empty |
The request did not include any orders in Orders[]. |
Send at least one order object inside the Orders array. |
| Order | A PoNumber (Purchase Order Number) was not given. |
The order is missing PoNumber or it is blank. |
Send a non-empty, unique PoNumber for every order. |
| Order | This PO already exists in our system. Duplicate? |
The submitted PoNumber already exists for that customer. |
Use a unique PoNumber. For resubmits, use a revision value such as
PO12345-REV1. |
| Order | Duplicate order. This PONumber already exists. |
Same as duplicate PO. The customer PO has already been accepted or created. | Do not resend the same PO unless directed. Use a new PO value when submitting a replacement order. |
| Order | Duplicate PONumber for CustomerID |
Duplicate PO for the submitted CustomerID. |
Use a unique PoNumber for the customer. |
| Order | Is not a valid CustomerID. |
The submitted CustomerID does not exist. |
Confirm the customer/company ID with Dubow. |
| Order | is not a valid child customer |
The authenticated user is not allowed to submit orders for the requested child customer. | Use the correct child customer or request that Dubow assign access to the authenticated parent customer. |
| Order | Customer is in excess of their Credit Limit. |
The account is blocked by a credit limit rule. | Contact Dubow support or accounting before resubmitting. |
| Order | is not a valid ContactID. |
The submitted ContactID does not exist. |
Confirm the contact ID with Dubow. |
| Order | The Contact's owning Customer is not the specified Customer. |
The contact exists but belongs to a different customer. | Use a ContactID that belongs to the submitted
CustomerID. |
| Order | Contact is not active. |
The contact exists but is inactive. | Use an active contact assigned to the same customer. |
| Order | The Order didn't contain any Manifests. |
The order did not include Manifests[]. |
Add at least one manifest with shipping and line item details. |
| Payload | Unable to parse payload |
The request body is not valid JSON or the content type is wrong. | Validate the JSON and send Content-Type: application/json. |
| Payload | One or more required fields are missing or invalid |
A required field is missing, misspelled, or using the wrong type. | Compare your payload with the required examples and field reference. |
| Shipping | An IntegrationManifest cannot be scheduled to ship on a date earlier than or equal to the day it is placed
|
DateToShip is today or in the past. |
Use a future valid ship date and account for Dubow turn time rules. |
| Shipping | An IntegrationManifest cannot have a deadline date earlier or equal to the day it is placed.
|
DateDropDead is today or in the past. |
Use a future deadline date. |
| Shipping | Each IntegrationManifest must define at least one LineItems. |
The manifest has no LineItems[]. |
Add at least one line item to every manifest. |
| Shipping | ShipMethodAbbreviation is required |
The manifest is missing a ship method. | Include a valid ShipMethodAbbreviation from available
ship methods. |
| Shipping | Missing Address1 or Zip on ShipToAddress |
The shipping address is incomplete. | Provide the required shipping address fields listed in the shipping section. |
| Shipping | Address must have at least one of Address1,2,3 |
No address line was supplied. | Provide a complete ShipToAddress. Keep using the stricter address
requirements documented above. |
| Product | A ProductName was given without a Mill and no match or multiple was found
|
ProductName is ambiguous or not found. |
Include Mill, use ProductID, or confirm product
mapping from Lookup Lists. |
| Product | A ProductName was given with a Mill and no match or multiple was found
|
The product and mill combination did not resolve. | Verify the product style and mill combination in Lookup Lists. |
| Product | A VendorProductName was given with a Mill and no match or multiple was found
|
The vendor product lookup failed. | Verify VendorProductName and Mill, or use another
supported product lookup path. |
| Product | An Invalid ProductID was specified |
The submitted ProductID does not exist. |
Use a valid Dubow product ID from the product lookup list. |
| Product | Each IntegrationProduct must unambiguously specify a Product |
Multiple product identifiers resolve to different products. | Use one clear lookup method, or make sure all product fields resolve to the same part. |
| Product | Cannot lookup inventory. SKU does not exist or multiple in the system.
|
The inventory SKU is missing, inactive, or ambiguous. | Confirm the SKU with Dubow or use a more specific product identifier. |
| Product | Not possible to dynamically create an integration product |
The customer is not enabled for dynamic part creation, or required fields are missing. | Confirm setup with Dubow and include CustomerProductName,
Description, and Color. |
| Product | [PartNumber] is an inactive part. |
The product exists but is inactive. | Remove the item or contact Dubow to verify availability. |
| Size | Each LineItem must have at least one LineItemSize to define size and quantity.
|
The line item is missing LineItemSizes[]. |
Add at least one size row with quantity. |
| Size | LineItem for Dubow Owned Inventory Part should not contain more than 1 LineItemSize.
|
A Dubow-owned inventory line item has multiple size rows. | Send one size row only or split inventory products into separate line items. |
| Size | Each LineItemSize must have a quantity greater than 0. |
Quantity is zero, negative, or missing. | Set every LineItemSizes[].Quantity value to a positive integer.
|
| Size | Quantity must be greater than 0 |
Quantity is zero, negative, or missing. | Use positive integer quantities. |
| Size | Each LineItemSize must specify a SizeIndex either in string or integer enumeration.
|
The line item size cannot be determined. | Send a valid SizeAsString or SizeIndex. |
| Size | An unambiguous size cannot be determined for all LineItems. |
The supplied size text cannot be mapped. | Use a supported size format such as XL, 2XLT, or
Medium. |
| Size | SizeAsString value is not recognized |
The size value is not recognized. | Use a supported size format from the documentation. |
| Design | No IntegrationDesigns included with LineItem X but NoDecoration does not equal true
|
A decorated item is missing Designs[]. |
Add Designs[], set NoDecoration: true, or use the
inventory workflow. |
| Design | Missing Design Reference |
The design did not include DesignID,
CustomerDesignCode, DesignCode, or
FilePath. |
Provide a valid existing design reference or send a design URL workflow with
DesignTypeName. |
| Design | Could not use DesignID, DesignCode or CustomerDesignCode... |
No existing design could be resolved and no valid design type was provided for new art. | Use a valid design reference or include DesignTypeName for new art.
|
| Design | DesignID does not exist. |
The submitted design ID is not valid. | Confirm the design in DOTS or use a valid CustomerDesignCode or
design URL workflow. |
| Design | DesignID not found or not valid for account |
The design is missing or not assigned to the customer. | Use a valid, customer-authorized DesignID. |
| Design | Customer does not have rights to DesignID |
The design exists but is not available to the submitted customer. | Use a customer-owned design or request Dubow to assign rights. |
| Design | Cannot resolve DesignCode |
The submitted design code did not resolve to a design. | Use a valid DesignID, DesignCode,
CustomerDesignCode, or design URL workflow. |
| Design | DesignTypeName is required |
New art or design resolution needs a decoration type. | Set DesignTypeName in the design block, for example
Embroidery. |
| Design | There are multiple colorways for this design, but no colorway was provided. Please provide a colorway.
|
The design has multiple colorways and none was selected. | Send IntegrationColorway.ColorwayID with the existing
DesignID. |
| Design | ColorwayID not found or not associated with DesignID |
The colorway is invalid or does not belong to the design. | Verify the ColorwayID belongs to the specified
DesignID. |
| Design | Incorrect number of thread breaks (Ordinal) called for Design ####. - X of Y Colors Received
|
The submitted color ordinals do not match the design's thread breaks. | Update IntegrationColorway.Colors[] ordinals to match the design.
|
| Design | Design #### is an associated design and requires additional locations in "GarmentLocationName" split by a "/" for each location
|
An associated design requires multiple locations in order. | Send slash-separated locations such as Full Front/Full Back. |
| Design | FilePath is not a valid URL |
The art URL is malformed or inaccessible. | Use a properly formatted, publicly accessible https:// link. |
| Design | Design FilePath and DesignID cannot be used together |
The payload mixes an existing design with new-art submission. | Choose either existing design fields or design URL fields, not both. |
| Design | CustomerDesignCode already used on another design |
The customer design code is not unique. | Use a unique CustomerDesignCode or reuse the existing design
reference if intended. |
| Design | Less than 24qty used per colorway for screen print. |
Screen print line quantity is below the minimum. | Increase the quantity to at least 24 units per colorway or use another approved decoration method. |
| Services | A service code was provided that is not supported |
The service name/code does not map to a valid service part. | Use only valid service codes listed in the Additional Services section. |
| Payload | TEST URL! This error will only appear on test requests. |
The test endpoint is returning its test-mode confirmation message. | No production action is needed. Use this only to verify test behavior. |
| Payload | TrackingNumber cannot be blank when OrderStatus is Shipped |
A shipped status update is missing tracking information. | Provide a valid TrackingNumber when sending or consuming shipped
updates. |
HTTP Status Codes
| Status | Meaning | When it happens | Notes |
|---|---|---|---|
200 |
OK | Successful request with IsSuccess true. |
|
400 |
Bad Request | Malformed JSON or missing required fields. | |
401 |
Unauthorized | Invalid Authorization credentials. |
|
404 |
Not Found | Endpoint or resource not found. | |
429 |
Too Many Requests | Rate limit exceeded. | Add retry-after guidance if applicable. |
500 |
Server Error | An unexpected error occurred. | Include a reference ID if you return one. |
Best Practices
- Always inspect
ResponseSummary.IsSuccessbefore processing - Log errors with
ResponseSummary.Errors[].Message - Validate your payload against field requirements before submission
- Use test mode with realistic payloads before sending live orders
{
"ResponseSummary": {
"IsSuccess": false,
"Errors": [
{
"Message": "A ProductName was given without a Mill and no match or multiple was found: 'PR-10000-Black-M'"
},
{
"Message": "Each IntegrationProduct must unambiguously specify a Product: PR-10000-Black-M."
},
{
"Message": "No IntegrationDesigns included with Lineitem PR-10000-Black-M but NoDecoration does not equal true."
},
{
"Message": "TEST URL! This error will only appear on test requests."
}
]
}
}
Sandbox & Test Mode
Use unique PO values for every test. Keep customer, contact, product, and design values aligned with the test account setup.
{
"Authorization": {
"UserID": 1234,
"Password": "test-password"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "SANDBOX-SMOKE-1001",
"IsTestOrder": true,
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "Sandbox Test",
"Address3": "123 Test Street",
"City": "Minneapolis",
"State": "MN",
"Zip": "55401",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Basic Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 1,
"SizeAsString": "M"
}
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest"
}
}
]
}
]
}
]
}
]
}
Dubow’s integration environment supports full-featured testing without affecting live orders or production. You can validate payloads, test error handling, and preview responses using all the exact same information in this documentation.
How to Use Test Mode
- Contact your CSR to request Test Credentials
- Use the test environment endpoint noted in the Endpoints & Lookup Lists
- Test orders are accepted and validated but are never routed to the production environment
- Some responses will contain the message:
TEST URL! This error will only appear on test requests. - You can simulate real orders with full data, including designs and manifests
What You Can Test
- Validation errors for missing fields
- Design handling (FilePath and DesignID logic)
- Webhook callbacks (with your own test URL)
- OrderStatus API behavior and responses
Best Practices
- Use unique PoNumbers (prefixed with
TEST-or similar) to avoid conflicts - Do not mix test orders with live artwork or production POs as they will not be processed
- Use
OrderStatusNotificationUrlpointing to a test endpoint to verify webhook behavior
Full Payload Examples
These examples show complete, valid orders using different design submission types and multiple manifests.
{
"Authorization": {
"UserID": 1111,
"Password": "abc123"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "ORDER-0001",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "John Smith",
"Address3": "123 Test St",
"City": "Duluth",
"State": "MN",
"Zip": "55802",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Black Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 2,
"SizeAsString": "XL"
}
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 111111111,
"GarmentLocationName": "Left Chest"
}
}
]
}
]
}
]
}
]
}
{
"Authorization": {
"UserID": 1111,
"Password": "abc123"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "ORDER-0002",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "Jane Doe",
"Address3": "456 Demo Ave",
"City": "Minneapolis",
"State": "MN",
"Zip": "55401",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "White Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{
"Quantity": 3,
"SizeAsString": "L"
}
],
"Designs": [
{
"DesignTypeName": "DigitalPrint",
"FilePath": "https://cdn.example.com/art/image1.png",
"CustomerDesignCode": "ABC123",
"IntegrationColorway": {
"GarmentLocationName": "Full Back"
}
}
]
}
]
}
]
}
]
}
{
"Authorization": {
"UserID": 1111,
"Password": "abc123"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "ORDER-0003",
"OrderStatusNotificationUrl": "https://yourserver.com/webhook",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"IsResidential": true,
"ShipperReference": "REF-001",
"PackingSlipUrl": "https://files.example.com/slip1.pdf",
"DateToShip": "2024-05-10",
"DateDropDead": "2024-05-15",
"TaxID": "123-45-6789",
"ShipToAddress": {
"Address1": "Jake Smith",
"Address3": "101 Main St",
"Address4": "Suite A",
"City": "Chicago",
"State": "IL",
"Zip": "60601",
"Country": "US",
"PhoneNumber": "555-123-4567",
"EmailAddress": "contact@example.com"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Black Tee",
"ProcurementType": "Contract",
"CustomerProductName": "TEE-BLK",
"VendorProductName": "GLD2000",
"Color": "Black",
"ProductTypeName": "Apparel",
"Notes": "Ship ASAP"
},
"LineItemSizes": [
{ "Quantity": 1, "SizeAsString": "XL" },
{ "Quantity": 2, "SizeAsString": "L" }
],
"Services": [
{ "Name": "BAG2 - POLY BAG" }
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 8675309,
"IntegrationColorway": {
"ColorwayID": 1111111,
"GarmentLocationName": "Left Chest",
"Urls": [
{
"Url": "https://cdn.example.com/mockup-left.jpg",
"Description": "Left Chest Preview"
}
],
"Customizations": [
{
"Font": "Arial",
"Color": "White",
"Position": "Left Chest",
"Width": 3.5,
"Height": 1.0,
"Notes": "Use bold",
"TextLines": [
{
"LineNumber": 1,
"Text": "Jake"
}
]
}
]
}
}
]
}
]
},
{
"ShipMethodAbbreviation": "USPS1ST",
"ShipToAddress": {
"Address1": "John Doe",
"Address3": "202 Broadway",
"City": "New York",
"State": "NY",
"Zip": "10007",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "5000",
"Mill": "Gildan",
"Description": "Navy Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{ "Quantity": 5, "SizeAsString": "M" }
],
"Designs": [
{
"DesignTypeName": "Embroidery",
"DesignID": 1234567,
"IntegrationColorway": {
"ColorwayID": 1111112,
"GarmentLocationName": "Right Sleeve"
}
}
]
}
]
}
]
}
]
}
{
"Authorization": {
"UserID": 1111,
"Password": "abc123"
},
"Orders": [
{
"CustomerID": 1234,
"ContactID": 5678,
"PoNumber": "ORDER-0004",
"OrderStatusNotificationUrl": "https://webhook.site/full-test",
"Manifests": [
{
"ShipMethodAbbreviation": "UPSG",
"ShipToAddress": {
"Address1": "Walter Smith",
"Address3": "789 Sample Blvd",
"City": "Orlando",
"State": "FL",
"Zip": "32801",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "2000",
"Mill": "Gildan",
"Description": "Red Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{ "Quantity": 3, "SizeAsString": "2XL" }
],
"Designs": [
{
"DesignTypeName": "DigitalPrint",
"FilePath": "https://cdn.example.com/art/redtee.png",
"CustomerDesignCode": "REDTEE2024",
"Urls": [
{
"Url": "https://cdn.example.com/mockup-red.png",
"Description": "Front Preview"
}
],
"IntegrationColorway": {
"GarmentLocationName": "Full Front"
}
}
]
}
]
},
{
"ShipMethodAbbreviation": "FEDEX2DAY",
"ShipToAddress": {
"Address1": "John Smith",
"Address3": "900 Example Pkwy",
"City": "Seattle",
"State": "WA",
"Zip": "98101",
"Country": "US"
},
"LineItems": [
{
"IntegrationProduct": {
"ProductName": "64000",
"Mill": "Gildan",
"Description": "Heather Tee",
"ProcurementType": "Contract"
},
"LineItemSizes": [
{ "Quantity": 6, "SizeAsString": "S" }
],
"Designs": [
{
"DesignTypeName": "DigitalPrint",
"FilePath": "https://cdn.example.com/art/heather.png",
"CustomerDesignCode": "HTR2024",
"IntegrationColorway": {
"GarmentLocationName": "Back"
}
}
]
}
]
}
]
}
]
}
Field Glossary / Schema Index
This glossary consolidates all request and response objects. Use the bracket notation to
understand where arrays occur, for example Orders[].Manifests[].LineItems[].
Authorization (request)
Path: Authorization (top-level in request bodies)
| Field | Type | Required | Description |
|---|---|---|---|
UserID |
integer | Yes | API user identifier issued by Dubow. |
Password |
string | Yes | API user password for the given UserID. |
IntegrationOrder (creation)
Path: Orders[]
| Field | Type | Required | Description |
|---|---|---|---|
CustomerID |
integer | Yes | Company identifier in DMS. Provided by Dubow. |
ContactID |
integer | Yes | Customer/contact identifier in DMS. Provided by Dubow. |
PoNumber |
string | Yes | Customer purchase order number. |
Manifests |
array<Manifest> | Yes | One or more shipping manifests, each with at least one LineItem.
|
ReturnAddress |
object | Conditional | Include to override the default return address for the order. See ReturnAddress. |
OrderStatusNotificationUrl |
string (URL) | No | Webhook endpoint for status updates. If present, payload mirrors Order Status response. |
SecondaryPo |
string | No | Secondary purchase order reference. |
EndUserPo |
string | No | End-customer PO reference. |
Notes |
string | No | Order-level notes for production or customer service. |
Manifest
Path: Orders[].Manifests[]
| Field | Type | Required | Description |
|---|---|---|---|
ShipMethodAbbreviation |
string | Yes | Carrier/service code from the Shipping Methods feed. See Ship Methods. |
ShipToAddress |
object | Yes | Complete destination address. See ShipToAddress. |
LineItems |
array<LineItem> | Yes | One or more decorated items included in the shipment. |
IsResidential |
boolean | No | True when the destination is a residence. |
ThirdPartyAccountNumber |
string | No | Account to bill third-party freight charges. |
PackingSlipUrl |
string (URL) | No | URL to a PDF packing slip to include. |
Notes |
string | No | Manifest-level special instructions. |
LineItem (creation)
Path: Orders[].Manifests[].LineItems[]
| Field | Type | Required | Description |
|---|---|---|---|
IntegrationProduct |
object | Yes | Decorated product definition. See IntegrationProduct. |
LineItemSizes |
array<LineItemSize> | Yes | Size and quantity breakdown. See LineItemSize. |
Designs |
array<Design> | Conditional | Required unless NoDecoration is true. See Design. |
Name |
string | No | SKU or unique identifier displayed in status. |
NoDecoration |
boolean | No | Send product without decoration when true. |
Notes |
string | No | Line-level notes for production. |
RetailPrice |
number | No | End-customer visible price. |
HarmonizedCode |
string | No | Customs classification code. |
Services |
array<Service> or array<string> | No | Additional service codes to apply, for example folding or bagging. See Service. |
LineItemSize
Path: Orders[].Manifests[].LineItems[].LineItemSizes[]
| Field | Type | Required | Description |
|---|---|---|---|
Quantity |
integer | Yes | Units for this size. |
SizeAsString |
string | Yes | Size label, for example XL. |
IntegrationProduct
Path: Orders[].Manifests[].LineItems[].IntegrationProduct
| Field | Type | Required | Description |
|---|---|---|---|
ProcurementType |
string | Yes | Contract, Inventory, or Custom. See ProcurementType values. |
Description |
string | Yes | Product description shown on order and status. |
ProductName |
string | Conditional | Used with all ProcurementType's; SKU or style, for example
2000. |
Mill |
string | Conditional | Used for Contract and Custom procurement; manufacturer name. |
CustomerProductName |
string | Conditional | Used for Contract and Custom procurement; used only if
customer is enabled for part creation. If value is not found, system creates a
new dynamic part as DYN-[value], e.g. PC099 →
DYN-PC099. Unlike ProductName, which errors if
missing, this field allows dynamic part creation. |
VendorProductName |
string | No | Vendor style number. |
ProductTypeName |
string | No | Category name, for example Apparel or Tote. |
Color |
string | No | Color description. |
ProductID |
integer | No | Internal Dubow product id if applicable. |
Notes |
string | No | Internal notes related to the product. |
Urls |
array<UrlRef> | No | Preview or mockup images. See UrlRef. |
ProcurementType values
| Value | Notes |
|---|---|
Contract |
You supply the garments. Dubow decorates and ships per your manifests. |
Inventory |
Items are fulfilled from Dubow in-house inventory when available. |
Custom |
Special sourcing with your vendor. Provide detailed Description.
|
Design
Path: Orders[].Manifests[].LineItems[].Designs[]
| Field | Type | Required | Description |
|---|---|---|---|
DesignTypeName |
string | Yes | Decoration method name in your examples, for example Embroidery.
|
IntegrationColorway |
object | Yes | Placement and preview information. See IntegrationColorway. |
DesignID |
integer | Conditional | Required when referencing an existing design. |
FilePath |
string (URL or path) | Conditional | Required when submitting a design via URL. |
CustomerDesignCode |
string | Conditional | Required with design via URL to reference your artwork. |
Urls |
array<UrlRef> | No | Optional previews or mockups. See UrlRef. |
Customizations |
array<Customization> | No | Name and number personalizations for this placement. See Customizations. |
IntegrationColorway
Path: Designs[].IntegrationColorway
| Field | Type | Required | Description |
|---|---|---|---|
GarmentLocationName |
string | Yes | Placement such as Left Chest or FULL Back. |
ColorwayID |
integer | Yes/No | Only Required when using Designs[].DesignID. |
CustomerColorwayCode |
integer | Yes/No | Only Required when using Designs[].CustomerDesignCode. |
Urls |
array<UrlRef> | No | Preview images of the placement. |
Colors
Path: Designs[].IntegrationColorway.Colors[]
| Field | Type | Required | Description |
|---|---|---|---|
Color |
string | Yes | Thread or ink color name, for example Super White. |
Pantone |
string | No | Pantone or thread system reference, for example 1001. See Dubow Thread List for
specific thread codes when using embroidery. |
Ordinal |
integer | No | Position or needle index for the color. Start at 1 and keep unique
within the placement. |
Map |
string | Yes | Short description of what is in specified ordinal. (eg "Icon", "Text", "Trim") |
Customizations (Personalizations)
Path: Designs[].Customizations[]
| Field | Type | Required | Description |
|---|---|---|---|
TextLines |
array<TextLine> | Conditional | Required for name or number decorations. See TextLine. |
Font |
string | No | Preferred font name. |
Color |
string | No | Requested thread or ink color. |
Position |
string | No | Location on garment, for example Left Chest. |
Width |
number | No | Suggested maximum width in inches. |
Height |
number | No | Suggested maximum height in inches. |
Notes |
string | No | Special handling instructions. |
Urls |
array<UrlRef> | No | Preview images or mockups for the customization. |
TextLine
Path: Customizations[].TextLines[]
| Field | Type | Required | Description |
|---|---|---|---|
LineNumber |
integer | Yes | Sequence number, for example 1, 2. |
Text |
string | Yes | Text to render for this line. |
UrlRef
Path: Designs[].Urls[], IntegrationColorway.Urls[],
Customizations.Urls[], IntegrationProduct.Urls[]
| Field | Type | Required | Description |
|---|---|---|---|
Url |
string (URL) | Yes | Link to an image or preview file. |
Description |
string | No | Short label for the referenced image. |
ShipToAddress
Path: Orders[].Manifests[].ShipToAddress
| Field | Type | Required | Description |
|---|---|---|---|
Address1 |
string | Yes | Recipient or attention line. |
Address3 |
string | Yes | Street address line. |
City |
string | Yes | City. |
State |
string | Yes | State or province code. **Only Required when Country is "US"** |
Zip |
string | Yes | Postal code. |
Country |
string | Yes | 2-letter country code, for example US. |
Address2 |
string | No | Optional Additional Recipient or attention line (for example the person or department). |
Address4 |
string | No | Optional delivery information such as apartment, suite, unit, floor, or building name. Also used for “Care Of” or company names if Address1 is a personal name. |
Address5 |
string | No | Optional Extra locality details that don’t fit in City/State/ZIP, such as districts, suburbs, villages, or neighborhoods (often needed for non-U.S. addresses). |
PhoneNumber |
string | No | Contact number for delivery. |
EmailAddress |
string | No | Contact email for delivery updates. |
ReturnAddress
Path: Orders[].ReturnAddress
| Field | Type | Required | Description |
|---|---|---|---|
Address1 |
string | Yes | Recipient or Attention line. |
Address3 |
string | Yes | Street address line. |
City |
string | Yes | City. |
State |
string | Yes | State or province code. **Only Required when Country is "US"** |
Zip |
string | Yes | Postal code. |
Country |
string | Yes | Country name or code. |
Address2 |
string | No | Optional Additional delivery information such as apartment, suite, unit, floor, or building name. Also used for “Care Of” or company names if Address1 is a personal name. |
Address4 |
string | No | Optional Extra locality details that don’t fit in City/State/ZIP, such as districts, suburbs, villages, or neighborhoods (often needed for non-U.S. addresses) |
Address5 |
string | No | Optional field for secondary administrative areas, international province codes, or other special delivery notes that must be part of the mailing label |
PhoneNumber |
string | No | Contact phone. |
EmailAddress |
string | No | Contact email. |
Service
Path: Orders[].Manifests[].LineItems[].Services[]
| Field | Type | Required | Description |
|---|---|---|---|
Name |
string | Yes | Service code, for example BAG2 (poly bag) or INSERT.
See Services. |
RequestItems (Order Status)
Path: RequestItems[] in Order Status request
| Field | Type | Required | Description |
|---|---|---|---|
CustomerPo |
string | Yes | PO number to query. |
RequestItems (Invoice Status)
Path: RequestItems[] in Invoice Status request
| Field | Type | Required | Description |
|---|---|---|---|
CustomerPo |
string | Yes | PO number to query. |
ResponseSummary
Path: ResponseSummary in responses
| Field | Type | Required | Description |
|---|---|---|---|
IsSuccess |
boolean | Yes | True when the request succeeded. |
Authorization |
object | Yes | Authentication result details. See below. |
Errors |
array<Error> | Conditional | Present when IsSuccess is false. |
ResponseSummary.Authorization
| Field | Type | Required | Description |
|---|---|---|---|
IsAuthenticated |
boolean | Yes | True when the provided credentials are valid. |
TransactionID |
string|null | No | Transaction identifier for troubleshooting; may be null. |
UserID |
integer | No | Authenticated user id. |
Password |
null | No | Redacted in responses. |
Error
Path: ResponseSummary.Errors[]
| Field | Type | Required | Description |
|---|---|---|---|
Code |
string | Yes | Stable error code for programmatic handling. |
Message |
string | Yes | Human-readable description of the problem. |
Field |
string | No | Offending field name when applicable, for example
Orders[].PoNumber. |
Order (status response)
Path: Orders[] in Order Status response
| Field | Type | Required | Description |
|---|---|---|---|
CustomerPo |
string | No | PO number returned for reference. |
OrderID |
integer | No | Internal Dubow order identifier. |
CustomerID |
integer | No | Customer identifier. |
ReceivingStatus |
string | No | Receiving state, for example No. |
ShippingStatus |
string | No | Shipping state, for example No. |
IsInvoiced |
boolean | No | Whether the order has been invoiced. |
IsCanceled |
boolean | No | Whether the order has been canceled. |
OrderStatus |
string | No | Current stage of the order, for example Entered. See OrderStatus
value list in the Order Status section. |
UniqueTrackingNumbers |
array<UniqueTrackingNumber> | No | Distinct tracking objects for the order. See below. |
LineItems |
array<LineItem> | No | Per-line progress details. See LineItem (status). |
UniqueTrackingNumbers item
Path: Orders[].UniqueTrackingNumbers[]
| Field | Type | Required | Description |
|---|---|---|---|
TrackingNumber |
string | Yes | Carrier tracking number. |
DateShipped |
string (ISO 8601) | No | Shipment timestamp, for example 2025-08-04T12:51:00. |
ShipMethodName |
string | No | Readable carrier service name. |
ShipperReference |
string | No | Reference from the shipper, useful for label or shipment lookup. |
LineItem (status response)
Path: Orders[].LineItems[]
| Field | Type | Required | Description |
|---|---|---|---|
LineItemName |
string | No | Display name of the item. |
Requested |
integer | No | Quantity requested. |
Received |
integer | No | Quantity received. |
BackOrdered |
integer | No | Quantity on back order. |
Shipped |
integer | No | Quantity shipped. |
Damaged |
integer | No | Quantity damaged. |
ArtNotReceived |
boolean | No | Artwork not received. |
ArtBeingProcessed |
boolean | No | Artwork is in processing. |
WaitingForApproval |
boolean | No | Awaiting approval. |
OnHold |
boolean | No | On hold status. |
DateToShip_Orig |
string | No | Original ship date (Microsoft JSON format). |
DateToShip |
string | No | Current ship date (Microsoft JSON format). |
DateArtCompleted |
string | No | Artwork completion date (Microsoft JSON format). |
ReceivingHistory |
array|null | No | Receiving events for the line item, null when none. |
IsShippable |
boolean | No | True if the line item can be shipped. |
LineItemID |
integer | No | Line item identifier. |
IsScheduled |
boolean | No | True if the line is scheduled in production. |
Invoice Status (response)
Path: top-level invoice status fields
| Field | Type | Required | Description |
|---|---|---|---|
OrderID |
integer | No | Internal order identifier. |
CustomerID |
integer | No | Customer identifier. |
IsInvoiced |
boolean | No | Whether the order has been invoiced. |
IsCanceled |
boolean | No | Whether the order has been canceled. |
ShippingTotal |
number | No | Total shipping charges. |
DecorationTotal |
number | No | Total decoration charges. |
GarmentTotal |
number | No | Total garment charges. |
Services |
number | No | Service charges subtotal. |
Total |
number | No | Grand total for the invoice. |
AmountDue |
number | No | Outstanding balance. |
AmountPaid |
number | No | Amount already paid. |
AmountCredited |
number | No | Credits applied. |
AmountDebited |
number | No | Debits applied. |
DateInvoiced |
string (ISO 8601) | No | Invoice creation timestamp. |
LineItems |
array | No | Collection of invoiced line items. |
Note: Required status may vary based on usage context. See full documentation sections for detailed rules.
Endpoints & Lookup Lists
This section lists the JSON API endpoints and customer lookup lists used during integration. Use the endpoint URLs for order submission and status calls. Use the lookup lists for valid products, garment locations, decoration methods, and ship method abbreviations.
Production Environment Endpoint
- Order Creation
https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new - Order Status
https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/status - Invoice Status
https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/invoices/status
Test Environment (Sandbox) Endpoint
- Order Creation
https://test-integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new - Order Status
https://test-integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/status - Invoice Status
https://test-integration.dubowtextile.com/integration/orderintegrationservice.svc/json/invoices/status
Note
Test and Production environments are isolated. Make sure your API base URL, credentials, and any callback URLs all point to the same environment.
Cloud Integration
Use the Cloud JSON endpoint to ensure orders are accepted even if the primary API is down. Requests sent to the standard API during an outage will return errors and are not queued, you must resubmit them after the service is back online.
| Environment | Endpoint | Auth | Notes |
|---|---|---|---|
| Production | https://io.dubowtextile.com/v1/orders
|
customerToken |
Include your token as a request key named customerToken. |
| Test | https://test-io.dubowtextile.com/v1/orders
|
customerToken |
Use your test token; data is isolated from production. |
Token required
A valid customerToken from the Dubow IT team is required for all Cloud
submissions. Include it in the JSON body as customerToken. Tokens are
environment-specific (use your Test token in Test and Production token in Production).
Do not embed tokens in client-side code.
Lookup Lists: Products, Locations, Ship Methods
Use these lookup lists when building payloads. They help customers verify available products and mills, valid garment locations, supported decoration methods, and accepted ship method abbreviations.
XML Download
Right click the "Download XML" link and select "Save Link As" to download the file.
- Available Products
https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/products - Decoration Method List
JSONRight click the "Download XML" link and select "Save Link As" to download the file.
Applique
Digital Print
Direct to Film {common name "DTFx"}
Dye Sublimation
Embroidery
Screen Print
HG Flat
HG Cylindrical
HG Dye Sublimation
Heat Transfer
Laser Etch
Pad Print
Ultra Print {common name "UVTx"}
Magnet
Pinback Button
Sticker
Poster
- Garment Locations
https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/garmentlocations - Shipping Methods
https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/shipmethods - Invoice Status (XML)
https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/orders/invoice
FAQ
How do I authenticate?
Include Authorization.UserID and Authorization.Password in
the JSON body, not in headers. See the Order Status →
Required Fields or Endpoints for the relevant
operation.
Where do I send requests?
Use the full URLs under Environments & Endpoints. Copy buttons are provided next to each URL.
What does [] mean in field names like
Orders[].OrderID?
It indicates “each array item.” See the global Notation note near the top of the API Reference for details.
Why are some dates like /Date(1757566800000-0500)/ and others ISO
8601?
Line-item dates use Microsoft JSON format, while tracking timestamps use ISO 8601. See the Date formats note and UniqueTrackingNumbers.
My Order Status response has UniqueTrackingNumbers empty. Is that
normal?
Yes, until parcels are created. Check Orders[].ShippingStatus and
Orders[].OrderStatus. When shipments exist, UniqueTrackingNumbers[] will include
objects with TrackingNumber, DateShipped,
ShipMethodName, and ShipperReference.
How do I choose a ship method?
Look up abbreviations in the Shipping Methods XML feed, then set
ShipMethodAbbreviation on each Manifest. See Ship Methods and the feed URL shown there.
Can I submit a line item without designs?
Yes, if NoDecoration is true. Otherwise provide
Designs[] with IntegrationColorway. See Designs for required/conditional fields.
How do I add name or number personalizations?
Use Customizations[] inside Designs, including
TextLines[]. See Customizations for
the exact fields.
Do you queue requests during downtime?
Requests to the standard API during an outage return errors and are not queued. Use
the Cloud JSON endpoint as a fallback. A valid customerToken from the
Dubow IT team is required, included in the JSON body as customerToken.
See Backup Cloud Integration.
How are errors returned?
Business-rule errors may be returned with HTTP 200 but with
ResponseSummary.IsSuccess = false and entries in Errors[].
See Error reference and HTTP status codes.
Where can I download product, locations, and ship method references?
Use the XML feeds under Lookup Lists. The page includes Copy buttons and “Download XML” actions.
Will my webhook payload match the Order Status response?
Yes, when you include OrderStatusNotificationUrl during Order Creation,
the webhook payload mirrors the Order Status response for the same PO. See the Order Status tables.
Changelog
See what's new added, changed, fixed, improved or updated in the latest versions.
Version 1.5 (May 29, 2026)
- Added Customer portal with quick paths, sticky search, examples library, integration recipes, error lookup, field finder, and support packet.
- Improved Consolidated Error Lookup into Troubleshooting & Common Errors with searchable type filters.
- Improved Header, navigation, code cards, copy buttons, tables, callouts, and customer troubleshooting flow.
Version 1.4.1 (May 29, 2026)
- Added Preflight validation checklist, backend processing rules, dates and scheduling guidance, product lookup rules, dynamic part creation guidance, and NoDecoration/inventory decision table.
- Improved Documentation layout with hero cards, rule cards, improved table readability, and stronger callouts.
- Fixed Invalid trailing commas in copyable JSON examples and version/date mismatch in Getting Started.
Version 1.4 (May 11, 2026)
- Added JSON Builder.
- Updated Error Handling Messages.
Version 1.31 (October 31, 2025)
- Added Association Design Support.
- Updated Error Handling Messages.
Version 1.3 (August 14, 2025)
- Updated Web Service URLs layout. Production and Test are now shown as readable lists with full URLs and Copy buttons.
- Removed Legacy sections and samples that caused duplication: “Supporting Resources,” “Order Tracking,” legacy unified webhook examples, and older status example blocks.
- Added 4-column field tables across the docs. Total tables increased from 13 to 33, covering Order Creation, Manifests, Line Items, LineItemSize, Designs, IntegrationColorway, UrlRef, Addresses, and Order Status.
- Added Order Status details for line items at
#order_status_lineitem_fieldsthat match the live response fields. - Added Tracking object documentation at
#unique_tracking_numbers_fieldsforOrders[].UniqueTrackingNumbers[]withTrackingNumber,DateShipped,ShipMethodName, andShipperReference. - Added ProcurementType values table with notes
at
#procurementtype_values. - Added HTTP status code reference at
#http_status_codes. - Added Ship Methods block at
#dubow_ship_methodsthat ties directly into Manifests viaShipMethodAbbreviation. - Added Copy buttons to all endpoint lists and resource links. Copy target count increased from 0 to 20.
- Added Download friendly filenames for XML feeds
via the
downloadattribute (Products, Garment Locations, Shipping Methods, Invoice Status). - Added Lookup Lists section at
#catalogfeedthat cleanly separates XML feeds from JSON POST endpoints. - Updated Endpoint coverage.
- Added Cloud Integration guidance with token requirements. Fallback flow notes explain that standard API requests during downtime are not queued and must be resubmitted.
- Security Cloud submissions require a
customerTokenissued by the Dubow IT team. The token must be included in the request body ascustomerTokenand is environment specific. - Updated Webhook endpoint language. Clear
instruction to include
OrderStatusNotificationUrlduring Order Creation, plus alignment note that payload mirrors the Order Status response. - Updated OrderStatus values list and the date-format note. Mixed Microsoft JSON date values and ISO 8601 stamps are explicitly documented.
- Fixed Address tables. ShipTo and ReturnAddress fields render cleanly and consistently, with optional lines and common contact fields separated.
- Fixed Typo in Invoice Status required fields.
Authorization.Passswordcorrected toAuthorization.Password. - Added FAQ section with toggles for authentication, date formats, tracking, ship methods, personalizations, webhooks, and fallback behavior.
Version 1.21 (August 1, 2025)
- Updated Personalization Fields.
- Updated Status/Invoice Call Requirements and examples.
- Updated New webhook field for ShipReference and OrderStatus
Version 1.20 (July 14, 2025)
- Updated Webhook usage.
Version 1.2 (May 23, 2025)
- Added Webhook Field Reference guide.
- Added Cloud API Token Reference.
- Updated Webhooks for ShipmentNotificaitonURL and OrderStatusNotificationURL
- Updated Additional error handling codes and fixes.
- Updated Usage of Webhooks.
- Updated Clearer language.
Version 1.1 (May 2, 2025)
- Added Full Order Examples section including minimal and full payloads for both existing and URL-based designs.
- Added Sandbox/Test Mode section for validating payloads and simulating responses.
- Added Web Service URLs section with internal anchor links and endpoint breakdown.
- Added Field Glossary/Schema Index covering all major models and fields.
- Added Webhook payload documentation with example POST and response format.
- Added Error message table with explanations and recommended resolutions.
- Added Integration Services list with all valid service codes and formats.
- Updated All example payloads to use
"Name"for services instead of plain strings orServiceCode. - Updated Design payloads to include required fields for both existing and URL-based uploads.
- Updated IntegrationColorway structure to include full field listing and formatting examples.
- Updated Clarified required vs optional fields throughout Field Glossary section.
- Updated Linked all service function names in the Web Service URLs table to relevant documentation sections.
Version 1.01 (Mar 24, 2025)
- Added Scheduled ship date API info.
Version 1.0 (Jan 1, 2025)
- Added Web based API documentation.