OrderDesk Setup for Dubow Fulfillment
Use this mode when a customer sends orders through Order Desk instead of building directly against the Dubow API. The left navigation and page sections are focused on Order Desk configuration, order metadata, item metadata, shipping matches, and support checks.
1. Enable Dubow
In Order Desk, go to Integrations, then Manage Integrations, then enable Dubow under Print on Demand.
2. Add credentials
Enter the API credentials supplied by Dubow. Order Desk support cannot create, locate, or reset these credentials.
3. Configure defaults
Set default shipping class, procurement type, default design type, return address, and post-import folders.
4. Prepare inventory items
Make sure the Code/SKU in the connected store matches the OrderDesk inventory item Code/SKU, then store Dubow production details as metadata fields on that inventory item.
When to Use OrderDesk vs Standard API
| Use OrderDesk when | Use Standard API when |
|---|---|
| The customer already imports orders from shopping carts into Order Desk. | The customer is building a direct integration from their own system to Dubow. |
| The customer wants Order Desk rules, folders, metadata, and shipping class matching to control the order flow. | The customer needs full control over the JSON payload and direct endpoint behavior. |
| The customer prefers a guided app connection with Dubow credentials and configurable defaults. | The customer has development resources and wants to submit orders, status requests, invoice requests, and webhook URLs directly. |
Mode switch behavior
The buttons in the header switch the documentation mode. In OrderDesk mode, the API sections are hidden and the navigation changes to OrderDesk setup topics. In Standard API mode, the full Dubow API reference is shown.
Connect Order Desk to Dubow
- Open Order Desk.
- Go to Integrations, then Manage Integrations.
- Open the Print on Demand tab.
- Find and enable Dubow.
- Enter the Dubow API credentials provided by Dubow.
- Click connect, then configure the integration settings below.
Credential ownership
Dubow creates and provides the integration credentials. Order Desk support cannot retrieve or reset Dubow credentials.
OrderDesk Integration Settings
| Setting | Use | Recommendation |
|---|---|---|
| Default Shipping Class | Fallback shipping method when the order does not specify a Dubow-recognized method. | Set a safe default, then configure shipping class matches for specific methods. |
| Procurement Type | Controls how garment procurement is passed to Dubow. | Use Auto unless Dubow instructs otherwise. Use Inventory or Custom only when all products fit that model. |
| Default Design Type | Default decoration method for items. | Set the most common method. Override per item with design_type_x when needed. |
| Third Party Shipping ID | Third-party shipping account Dubow should use. | Only set this after confirming with the Dubow rep. |
| After Import, Move To | Folder used after Order Desk sends the order to Dubow. | Use a folder that makes successful submission obvious. |
| After Shipment, Move To | Folder used after Dubow sends shipment details back to Order Desk. | Use a completed or shipped workflow folder. |
| Default Shipment Return Address | Fallback return address for shipments. | Set a default address. Use Order Desk rules for order-specific return addresses. |
Shipping Class Match
If shopping cart shipping method names do not match Dubow shipping method names, Dubow will not know which method to use and the default shipping class will be applied. Use Order Desk's shipping class match section to map customer-facing methods to Dubow methods.
| Shopping cart method example | Dubow method target | Result |
|---|---|---|
Standard | UPSG or agreed Dubow method | Orders using Standard are sent to Dubow with the mapped method. |
Expedited | Agreed expedited Dubow method | Prevents expedited orders from falling back to the default class. |
| Unmatched method | Default Shipping Class | Fallback method is used for all unmatched orders. |
Preparing Orders for Dubow
OrderDesk sends order-level details through checkout data or order metadata. Item-level details usually come from the matched OrderDesk inventory item metadata and can be supplemented or overridden by variations.
Core concept
The connected store order must carry a SKU that matches the OrderDesk inventory item Code/SKU. That match is what lets OrderDesk pull in the Dubow production metadata saved on the inventory item.
Inventory Item Setup: How OrderDesk Connects Store SKUs to Dubow Production Data
Customers often expect their connected store to send every production detail to Dubow. In most OrderDesk workflows, the store only sends the item Code/SKU. OrderDesk uses that Code/SKU to find the matching inventory item, then syncs the metadata fields saved on that inventory item into the order item before sending the order to Dubow.
1. Store sends Code/SKU
The connected store sends the ordered item with a SKU such as DEEPBLKK240.
2. OrderDesk matches inventory
The OrderDesk inventory item must use the same value in Code/SKU. If the SKU does not match, the production metadata will not sync to the order item.
3. Metadata supplies Dubow fields
The inventory item metadata tells Dubow the garment SKU, mill, design, colorway, print location, procurement type, and services.
4. Dubow receives the production-ready item
OrderDesk sends the matched item and metadata to Dubow as production instructions for the integration order.
Important
The fields on the left side of the OrderDesk inventory screen, such as Current Stock, Price, Cost, Weight, and Location, are not required for Dubow order submission. The critical value on the left is Code/SKU, because it is what links the store item to the saved metadata fields.
| Screen area | What it does | Dubow guidance |
|---|---|---|
| Name | Human-readable inventory item name. | Helpful for the customer, but not used as the Dubow product lookup value. |
| Code/SKU | Inventory matching key used by OrderDesk. | Must match the SKU coming from the connected store. Example: DEEPBLKK240. |
| Metadata Fields | Name/value fields stored on the inventory item. | This is where Dubow production fields belong, such as print_sku, mill, print_design_id_1, colorway_1, print_location_1, and procurement_type. |
| Variations | Optional item-level variants such as color, size, or service-related overrides. | Use when the store does not already provide the color, or when a specific item variation needs additional services. |
Code/SKU = DEEPBLKK240
Metadata Fields:
print_sku = K240
mill = PORT AUTHORITY
print_design_id_1 = 7471923
colorway_1 = 9135939
print_location_1 = Left Chest
procurement_type = Custom
How Inventory Details Sync Into Orders
Saving metadata on an OrderDesk inventory item is only the first step. The Dubow fields must also sync into the actual order item before that order is submitted to Dubow.
Store Product SKU
The connected store sends a SKU on the order item, such as DEEPBLKK240.
OrderDesk Order Item SKU
OrderDesk stores that SKU on the imported order item.
Inventory Code/SKU Match
The order item SKU must match an OrderDesk inventory item Code/SKU.
Metadata Sync
OrderDesk syncs saved inventory metadata and variations onto the order item.
Dubow Submission
Dubow receives the synced product, design, colorway, location, procurement, and service fields.
| Scenario | Result | Customer action |
|---|---|---|
Store sends DEEPBLKK240 and inventory Code/SKU is DEEPBLKK240. | Metadata can sync into the order item. | Submit after confirming the synced order item includes Dubow fields. |
Store sends DEEPBLK-K240 but inventory Code/SKU is DEEPBLKK240. | OrderDesk may not find the inventory item. | Fix the store SKU, create a matching inventory item, or use an OrderDesk rule/mapping. |
| Store sends no SKU. | Inventory metadata cannot reliably sync. | Make the store send a SKU or use rules to identify and map the item before submission. |
| SKU changes after launch. | Previously working items can start submitting without Dubow metadata. | Update the OrderDesk inventory item, store SKU, or mapping rule at the same time. |
Existing orders are separate
If an order was already imported before the inventory item was fixed, the corrected metadata may not automatically appear on that order item. Resync or re-save the order item before resubmitting.
Required Metadata Mapping for Dubow
The metadata fields on the inventory item are the bridge between the customer's store SKU and the Dubow API fields. Use this table to explain what each field controls.
| OrderDesk field | Maps to Dubow | When to use | Example |
|---|---|---|---|
print_sku | IntegrationProduct.ProductName or customer product lookup. | Required for most decorated item setups. This is the product Dubow should decorate, not necessarily the customer's storefront SKU. | K240 |
mill | IntegrationProduct.Mill | Use when the Dubow product needs a mill/manufacturer to resolve cleanly. Some account-specific setups may use print_mill; use the field name Dubow confirms for the account. | PORT AUTHORITY |
procurement_type | IntegrationProduct.ProcurementType | Required when the item needs to specify how product is sourced. | Custom, Contract, or Inventory |
print_design_id_1 | Designs[0].DesignID | Use for an existing design already in Dubow/DOTS. | 7471923 |
colorway_1 | IntegrationColorway.ColorwayID | Use with an existing design when a colorway is required. | 9135939 |
print_location_1 | IntegrationColorway.GarmentLocationName | Required for every decoration location. | Left Chest |
Do not confuse SKUs
Code/SKU is the OrderDesk inventory matching key. print_sku is the Dubow production SKU/style to decorate. They can be the same, but they do not have to be.
Metadata vs Variations vs Order Item Overrides
OrderDesk can receive item details from several places. Customers should understand where a field comes from and which type of setup is best for each value.
| Source | Best for | Notes |
|---|---|---|
| Inventory item metadata | Permanent Dubow setup fields like print_sku, mill, print_design_id_1, colorway_1, print_location_1, and procurement_type. | Best default for repeated products. This is usually where Dubow production setup should live. |
| Inventory item variations | Color fallback, size fallback, service choices, or variant-specific overrides. | Useful when the connected store does not send a clean color/size value or when one variant needs a specific service. |
| Order item metadata | Values imported from the store or synced from inventory into the order. | These values must be present before the order is submitted to Dubow. |
| Manual order item edits | Emergency correction on one order. | Fixes that order only. It does not repair the inventory item for future orders. |
| OrderDesk rules | Conditional routing, metadata cleanup, syncing inventory details, holding bad orders, or adding services. | Useful for advanced customers or stores with inconsistent data. |
Practical rule
Use inventory metadata for stable Dubow setup, variations for values that change by option, and rules for conditional fixes or review workflows.
Variation Fields: Color Overrides and Services
Variations are useful when the connected store does not already provide enough item detail, or when one item variation needs a different color or service setup than the base inventory item.
Color fallback
If the store does not send a usable color, add a variation such as color = Black so OrderDesk can pass the color to Dubow.
Service override
Add Services as a variation when only certain variants need polybagging, inserts, labels, or other services.
Variant-specific metadata
Use variations when a size, color, or SKU variant needs a different value than the base inventory item metadata.
| Variation field | Purpose | Example |
|---|---|---|
color | Supplies garment color when the storefront does not provide it or when the storefront color needs to be standardized. | Black |
size | Supplies the item size when the storefront does not provide it cleanly. | XL |
Services | Adds Dubow additional services for this item or variation. | Bag2 - Polybag, Insert |
Variation Fields:
color = Black
Variation Fields:
Services = Bag2 - Polybag, Insert, Label W/Name
Store Color, Size, and Product Code Mapping
Different stores send color, size, and SKU information differently. Decide during setup whether the store SKU already contains everything Dubow needs, or whether OrderDesk should supply missing values through variations, metadata, or rules.
| Store behavior | Common issue | Recommended setup |
|---|---|---|
| SKU includes product, color, and size. | The store SKU may be good for OrderDesk matching but not the same as Dubow's production SKU. | Use Code/SKU for the store match and print_sku for the Dubow product/style. |
| SKU only identifies the product. | Color and size may be missing from the Dubow item. | Add color and size as variations or make sure the store sends them as item options. |
Store sends Colour instead of color. | The field name may not match the expected setup. | Standardize to the agreed field name or use a rule to copy/normalize the value. |
| Store sends customer-facing color names. | Customer color names may not match Dubow or vendor names cleanly. | Use color conversion, variation mapping, or agreed color names from the product setup. |
| Store SKU does not equal Dubow's product code. | Customers may put the storefront SKU into print_sku by mistake. | Use product code matching or metadata mapping so the storefront SKU maps to the correct Dubow print_sku. |
Code/SKU = DEEPBLKK240
Metadata Fields:
print_sku = K240
mill = PORT AUTHORITY
procurement_type = Custom
Variation Fields:
color = Deep Black
size = XL
After Fixing Inventory, Resync Existing Orders
Updating an OrderDesk inventory item helps future imports, but it may not automatically repair orders that were already imported. Existing failed orders usually need the corrected inventory details synced onto the order item before resubmission.
Do this before resubmitting
Open the failed order and confirm the order item itself contains the corrected Dubow fields. If not, resync item details from inventory or re-save the order item so the metadata is applied.
- Fix the OrderDesk inventory item Code/SKU, metadata fields, and variations.
- Open the already-imported OrderDesk order.
- Use the available OrderDesk action to sync item details with inventory, or re-save the order item if that is the customer's configured workflow.
- Verify the order item now shows required Dubow metadata such as
print_sku,mill,print_design_id_1orprint_url_1,print_location_1, andprocurement_type. - Resubmit the order to Dubow.
| Customer action | What it affects |
|---|---|
| Edit inventory item metadata | Future orders and any existing orders that are manually resynced. |
| Edit one order item manually | Only that order item. Future imports are unchanged. |
| Run a sync inventory details action | Applies current inventory details to selected existing order items. |
| Fix store SKU | Future imports from the store. Existing imported orders may still need item resync. |
Order Metadata and Checkout Data
| Field | Purpose | Notes |
|---|---|---|
ShippingAccount | Third-party shipping account number. | Use only when Dubow should ship on a third-party account. |
PackingSlip | URL for the PDF packing slip. | Must be accessible to Dubow. |
DateToShip | Requested ship date. | Use Y-m-d format. |
DateDropDead | Date the order should reach the customer. | Use Y-m-d format when a firm deadline applies. |
First & Last Name | First and last name of recipient. | Name of recipient |
Address1 | Address field sent to Dubow. | e.g. 123 1st Street North |
City | City of recipient | e.g. Saint Cloud |
State | State of recipient. Only needed if within United States. | e.g. MN |
Postal(Zip) | Zipcode of City | e.g. 56303 |
Country | Country of recipient. | e.g. US |
BulkShip | Flags an order for bulk shipping. | Set to 1 for bulk shipping. |
Metadata Field Reference
These fields can be stored on the OrderDesk inventory item or added to the order item. For repeated artwork fields, replace x with a number from 1 to 8. Example: print_url_2, print_location_2, design_type_2.
Inventory item setup
For most customers, set these once on the OrderDesk inventory item. When the store sends a matching Code/SKU, the metadata syncs into the order item and becomes the production data sent to Dubow.
| Field | Purpose | Notes |
|---|---|---|
print_sku | Dubow garment or product style to decorate. | This is not always the same as the storefront SKU or OrderDesk Code/SKU. Order Desk can append color and size. Add * when size and color should not be appended. |
print_sku_override | Pass the print SKU as the complete vendor part number. | Set to 1. |
print_url_x | Artwork file URL. | Values 1 through 8 accepted. Use print_url when only one design is sent. |
print_preview_x | Preview image URL. | Values 1 through 8 accepted. print_preview or image can be used for one preview. |
print_location_x | Decoration location. | Required for each design. |
print_design_id_x | Dubow Design ID. | Use this instead of print_url_x for existing Dubow designs. |
print_design_code_x | Customer design code. | Use when sending a print URL instead of a Design ID. |
colorway_x | Colorway ID. | Used for embroidery thread colorways. |
design_type_x | Decoration method override. | Use when the item differs from the default design type. |
NoDecoration | Flags an undecorated item. | Set to 1. |
product_name_field | Controls product identifier type. | Options: ProductName or CustomerProductName. |
color | Garment color. | Order Desk attempts to match this to Dubow's color abbreviation list. |
size | Garment size. | Used with SKU building and line item sizing. |
mill or print_mill | Mill/manufacturer value. | Use the field name confirmed for the customer account. In many Dubow OrderDesk setups, mill is used directly. |
procurement_type | Item-level procurement override. | Options: Custom, Contract, Inventory. |
Services | Additional services to apply to the item. | Can be saved as item metadata or added as a variation override. Use a comma-separated list when more than one service is needed. Example: Bag2 - Polybag, Insert, Label W/Name. |
retail_price | Retail price of the item. | Optional reporting or commercial value. |
harmonized_code | HS code. | Useful for cross-border shipping workflows. |
Services = Bag2 - Polybag, Insert, Label W/Name
OrderDesk Metadata Examples
Use these examples when configuring Order Desk item metadata or troubleshooting what Order Desk is sending to Dubow.
Code/SKU: DEEPBLKK240
Metadata Fields:
print_sku: K240
mill: PORT AUTHORITY
print_design_id_1: 7471923
colorway_1: 9135939
print_location_1: Left Chest
procurement_type: Custom
Services: Bag2 - Polybag, Insert, Label W/Name
Code/SKU: STORE-TEE-BLACK-L
Metadata Fields:
print_sku: 2000
mill: Gildan
print_url_1: https://cdn.example.com/art/customer-logo.png
print_design_code_1: CUSTOMER-LOGO-001
print_location_1: Full Back
design_type_1: Direct to Film
procurement_type: Contract
PONumber: OD-10001
SecondaryPO: STORE-ORDER-8891
EndUserPO: CUSTOMER-REF-22
OrderNotes: Rush if possible
OrderStatusNotificationUrl: https://yourdomain.com/webhooks/order-status
Variation Fields:
color: Black
size: XL
Services: Bag2 - Polybag, Insert
Metadata Fields:
print_sku: K240
mill: PORT AUTHORITY
print_design_id_1: 7471923
colorway_1: 9135939
print_location_1: Left Chest
print_design_id_2: 7471924
colorway_2: 9135940
print_location_2: Full Back
procurement_type: Custom
Important
Order Desk sends metadata as name/value fields. Field names should match the labels shown in this section unless Dubow provides account-specific overrides.
Artwork and Design Rules
New artwork
Send print_url_x, print_location_x, and optionally print_design_code_x and print_preview_x.
Existing Dubow design
Send print_design_id_x, colorway_x when applicable, and print_location_x.
Multiple designs
Use numbered fields from 1 to 8, keeping each design's URL, location, preview, design ID, design code, colorway, and design type aligned by number.
Numbered Artwork Fields Must Stay Together
For multi-location or multi-design items, keep each numbered group aligned. Fields ending in _1 describe design slot 1. Fields ending in _2 describe design slot 2.
| Design slot | Fields that should match | Use case |
|---|---|---|
| Existing design 1 | print_design_id_1, colorway_1, print_location_1, design_type_1, print_preview_1 | First existing Dubow/DOTS design. |
| Existing design 2 | print_design_id_2, colorway_2, print_location_2, design_type_2, print_preview_2 | Second existing Dubow/DOTS design. |
| New art 1 | print_url_1, print_design_code_1, print_location_1, design_type_1, print_preview_1 | First new artwork file. |
| New art 2 | print_url_2, print_design_code_2, print_location_2, design_type_2, print_preview_2 | Second new artwork file. |
print_design_id_1 = 7471923
colorway_1 = 9135939
print_location_1 = Left Chest
design_type_1 = Embroidery
print_design_id_2 = 7471924
colorway_2 = 9135940
print_location_2 = Full Back
design_type_2 = Direct to Film
print_url_1 = https://cdn.example.com/art/left-chest.png
print_design_code_1 = LEFT-CHEST-001
print_location_1 = Left Chest
design_type_1 = Embroidery
print_url_2 = https://cdn.example.com/art/full-back.png
print_design_code_2 = FULL-BACK-001
print_location_2 = Full Back
design_type_2 = Direct to Film
Common mistake
Do not send colorway_2 for print_design_id_1. The numbers must stay aligned for Dubow to apply the correct location and colorway to each design.
Custom Text and Personalization
| Field | Purpose | Format |
|---|---|---|
custom_text_x | Name, number, or other personalized text. | Append 1 through 8 for more than one line. |
custom_text_details | Production details for the custom text. | Comma-separated: Font, Color, Position, Width, Height, Notes. Notes are optional. |
custom_text_location | Placement for the custom text. | Examples: Full Front, Left Chest, Back. |
custom_text_1 = SCHERFENBERG
custom_text_2 = 12
custom_text_details = Block, White, Full Back, 10, 12, Center between shoulders
custom_text_location = Full Back
Recommended OrderDesk Workflow
- Import the order from the connected shopping cart into Order Desk.
- Match each order item SKU to the correct OrderDesk inventory item Code/SKU.
- Sync inventory metadata and variations into the order item before submission.
- Use rules, product settings, item metadata, and variations to populate Dubow-required production data.
- Move orders with missing SKU, artwork, location, procurement, or shipping data to a Needs Review folder.
- Confirm shipping class matches before sending live orders.
- Send complete orders to Dubow through the enabled Dubow integration.
- Move successfully submitted orders into the configured post-import folder.
- Receive shipment details back into Order Desk and push tracking back to the shopping cart when configured.
OrderDesk Rule Examples
Rules can prevent bad orders from reaching Dubow and can fill in missing metadata when the store does not send enough information.
| Rule need | Example action | Why it helps |
|---|---|---|
| Sync inventory details after import | Run an action to sync order items with inventory details. | Ensures Dubow fields saved on the inventory item appear on the order item before submission. |
| Add service based on SKU, tag, or product option | Add item metadata Services with values such as Bag2 - Polybag or Insert. | Applies additional services only when needed. |
| Route blank or undecorated items | Add NoDecoration or move the order to a review folder. | Prevents decorated-item validation errors when no artwork is expected. |
| Hold missing metadata | Move to Needs Review when print_sku, print_location_1, or artwork fields are missing. | Stops incomplete orders before they generate Dubow API errors. |
| Move successful submissions | Move to Submitted to Dubow after the Dubow integration action succeeds. | Makes it clear which orders have already been sent. |
Recommended workflow
Create a Needs Review folder for orders missing SKU matches, artwork, location, procurement, shipping, or service setup. Submit to Dubow only after required metadata is present on the order item.
OrderDesk Preflight Checklist
| Check | Why it matters | |
|---|---|---|
| ☐ | Dubow credentials are connected. | Required before any order can be sent to Dubow. |
| ☐ | Default shipping class is set. | Used when a method is not matched. |
| ☐ | Shipping class matches are configured. | Prevents all orders from falling back to the default method. |
| ☐ | Procurement type is confirmed. | Incorrect procurement values can route products incorrectly. |
| ☐ | Store SKU matches the OrderDesk inventory item Code/SKU. | If the SKU does not match, OrderDesk will not sync the saved Dubow metadata into the order item. |
| ☐ | Required inventory metadata is saved on the inventory item. | Confirm print_sku, mill, print_design_id_1 or print_url_1, colorway_1 when needed, print_location_1, and procurement_type. |
| ☐ | Existing orders were resynced after inventory fixes. | Updating inventory metadata does not automatically fix order items that were imported before the correction. |
| ☐ | Numbered artwork fields are aligned. | print_design_id_1, colorway_1, and print_location_1 must describe the same design slot. |
| ☐ | Color and size are supplied by the store, variation fields, or rules. | Dubow needs a clean product/color/size combination for production and procurement. |
| ☐ | Each decorated item has artwork or design ID and location metadata. | Dubow needs production instructions for each design. |
| ☐ | Custom text includes details and location. | Personalization requires both content and production instructions. |
OrderDesk Troubleshooting
OrderDesk sends orders into the Dubow API, so many Dubow validation errors can appear in the Order Desk activity log. Use this section to translate those messages into the likely OrderDesk setup or metadata fix.
Common SKU and Metadata Mistakes
| Mistake | Symptom | Fix |
|---|---|---|
| Store SKU does not match inventory Code/SKU. | Dubow metadata does not appear on the order item. | Fix the store SKU, create a matching inventory item, or use a mapping rule. |
| Metadata saved on inventory but not synced to the order. | Dubow receives missing print_sku, design, colorway, or location values. | Sync item details into the order item before resubmitting. |
print_sku and art URL are swapped. | Product lookup or artwork lookup fails. | Put the product/style in print_sku and artwork URLs in print_url_x. |
| Field name typo. | Required Dubow value is missing even though the customer thinks it was entered. | Use exact metadata names such as print_sku, print_location_1, and procurement_type. |
colorway_1 without print_design_id_1. | Colorway cannot be tied to the correct design. | Keep numbered fields aligned by design slot. |
print_location_2 with no print_url_2 or print_design_id_2. | Extra location may not apply correctly. | Use matching numbered fields for every design group. |
OrderDesk Setup Checks
| Issue | Likely cause | Fix |
|---|---|---|
| Wrong shipping method used | Shopping cart method did not match a Dubow method. | Add or correct the shipping class match. The default shipping class is used when no match exists. |
| Credential connection fails | Credentials are missing, incorrect, or not supplied by Dubow. | Confirm the Dubow username and password supplied for the OrderDesk integration. Do not expose credentials in order metadata. |
| Artwork missing | Item lacks print_url_x or print_design_id_x. | Add artwork URL metadata or an existing Dubow design ID on the item. |
| Decoration location missing | Item lacks print_location_x. | Add a valid location for each design. |
| SKU does not resolve as expected | SKU building appended color and size, or override was not set. | Use print_sku_override, *, or procurement-specific settings as appropriate. |
| Inventory metadata did not sync into the order | The SKU on the incoming store item did not match the OrderDesk inventory item Code/SKU, or the item was edited after import without syncing inventory details. | Correct the store SKU or OrderDesk inventory Code/SKU, then use OrderDesk's sync item details action on the order item before resubmitting. |
| Wrong Dubow product was used | The customer assumed Code/SKU and print_sku are the same value. | Set Code/SKU to the store matching value and print_sku to the Dubow production SKU/style. |
| Color missing or incorrect | The store did not send color, or the color value does not map cleanly. | Add color as a variation field or standardize color values through OrderDesk product settings. |
| Existing failed order still fails after inventory was fixed | The inventory item was corrected, but the already-imported order item still has the old or missing metadata. | Resync inventory details into the existing order item, then resubmit. |
| Wrong design or location on a multi-location item | Numbered artwork fields are mixed, such as colorway_2 being paired with print_design_id_1. | Keep _1 fields together, _2 fields together, and so on. |
| Order submits before setup is complete | No Needs Review workflow exists for missing metadata. | Add rules to hold orders missing SKU, artwork, location, procurement, shipping, or service values. |
| Additional service not applied | The new Services item metadata is missing or the value does not match a supported Dubow service. | Add Services to the item metadata or variation fields and separate multiple services with commas, for example Bag2 - Polybag, Insert, Label W/Name. |
Common Dubow Errors in OrderDesk
These are the common API validation messages customers may see after OrderDesk submits an order to Dubow. The response envelope is intentionally omitted here. Focus on the error text, what it means, and the action needed in OrderDesk.
| Type | Error Message or Symptom | What It Means | How to Fix in OrderDesk |
|---|---|---|---|
| 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 | Inventory metadata did not sync |
OrderDesk did not find a matching inventory item from the incoming store SKU, so the saved metadata fields were not copied to the order item. | Make the store SKU match the OrderDesk inventory item Code/SKU, then sync item details with inventory before resubmitting. |
| Product | print_sku is missing or incorrect |
The item has a store SKU but does not have the Dubow product SKU metadata needed for production. | Add print_sku to the inventory item metadata and confirm mill or print_mill when required. |
| 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. |
Support Packet for Dubow or Order Desk
Collect these details before escalating an OrderDesk-to-Dubow issue.
- Order Desk order ID and shopping cart order ID.
- Dubow customer or program information, if known.
- Folder, rule, and integration action used to submit the order.
- Order metadata, checkout data, item metadata, and item variations.
- Screenshot or export of the OrderDesk inventory item showing Code/SKU and metadata fields.
- Shipping method from the shopping cart and the intended Dubow method.
- Error response or activity log entry from Order Desk.
Order Desk Dubow Guide
The official Order Desk guide covers the Dubow connection screen, integration settings, product settings, shipping class matching, and the order and item metadata fields used when sending orders to Dubow.
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.6
- Author: Renato Cordeiro & Jake Scherfenberg
- Created: April 8, 2016
- Update: June 17, 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 |
LABEL W/NAME |
Label polybags with sizes or names |
HANGTAG |
Attach hang tag to garment |
INSERT |
Insert custom flyer or packing slip |
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 | Inventory metadata did not sync |
OrderDesk did not find a matching inventory item from the incoming store SKU, so the saved metadata fields were not copied to the order item. | Make the store SKU match the OrderDesk inventory item Code/SKU, then sync item details with inventory before resubmitting. |
| Product | print_sku is missing or incorrect |
The item has a store SKU but does not have the Dubow product SKU metadata needed for production. | Add print_sku to the inventory item metadata and confirm mill or print_mill when required. |
| 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.13 (June 17, 2026)
- Added Expanded OrderDesk inventory item setup documentation explaining how connected store
Code/SKUvalues match OrderDesk inventory items and sync Dubow production metadata. - Added Required metadata mapping for
print_sku,mill,print_design_id_1,colorway_1,print_location_1,procurement_type, design URL fields, andServices. - Added Variation field guidance for color fallbacks, variant-specific overrides, and additional services.
- Improved OrderDesk examples, preflight checklist, troubleshooting, and support packet guidance for inventory sync issues.
Version 1.6 (June 1, 2026)
- Added Header mode switch for Standard API and OrderDesk Setup documentation.
- Improved Header search, Examples, and Troubleshooting controls now retarget to the active documentation mode.
- Added OrderDesk-only navigation and documentation sections for setup, integration settings, shipping class matching, order metadata, item metadata, artwork, personalization, troubleshooting, and support.
- Added OrderDesk item metadata field
Servicesfor comma-separated additional services. - Added OrderDesk common errors table based on the Standard API troubleshooting content, focused on error meaning and how to fix each issue in OrderDesk.
- Updated Header version, Getting Started version, update date, navigation, and customer quick paths.
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.