Dubow API Integration

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.


  • Created: April 8, 2016
  • Update: May 29, 2026

If you have any questions that are beyond the scope of this help file, Please feel free to email via Contact Support Page.

Customer Support Portal

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.

Payload Examples

Working 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.

Minimal order using a design URL

Use this when the customer is providing new art by URL instead of referencing an existing Dubow design.

Inventory order

Inventory product lookup should be clear and inventory line items should contain only one size entry.

NoDecoration order

Use this for undecorated items. Designs are omitted intentionally.

Personalization example

Personalization applies to the full quantity of the line item. Use separate line items for unique names or numbers per unit.

JSONCustomizations
{
  "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.

JSONAssociated 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.

JSONServices on line item
{
  "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.

JSONInvoice status request
{
  "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.

JSONWebhook fields on order
{
  "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.

JSONStatus lookup
{
  "Authorization": {
    "UserID": 1234,
    "Password": "abcd"
  },
  "RequestItems": [
    { "CustomerPo": "PO-EXISTING-1001" }
  ]
}
How-To Recipes

Common Customer Workflows

Existing design

  1. Confirm customer rights to the DesignID.
  2. Send DesignID.
  3. Send IntegrationColorway.ColorwayID.
  4. Send GarmentLocationName.
  5. Send at least one size with quantity greater than zero.

New artwork by URL

  1. Send DesignTypeName.
  2. Send FilePath for the art file.
  3. Send CustomerDesignCode as the customer's art reference.
  4. Send IntegrationColorway.GarmentLocationName.
  5. Add preview URLs when available.

Inventory item

  1. Use ProcurementType: Inventory.
  2. Use a clear inventory SKU lookup.
  3. Send only one LineItemSize entry for Dubow-owned inventory.
  4. Omit designs when inventory workflow applies.

Personalization

  1. Add Customizations[] inside a design.
  2. Add one or more TextLines[].
  3. Use separate line items for unique personalization per unit.
  4. Include customization DesignTypeName when needed.
Reference

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.
Support

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
JSONJSON Authentication Block
{
  "Authorization": {
	"UserID": 1234,
	"Password": "MySecurePassword"
  }
}

Common Authentication Errors

  • Unauthorized. Please check UserID and Password.: Happens when credentials are missing or incorrect.
  • Make sure Content-Type is set to application/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
  • Orders contains at least one order.
  • CustomerID, ContactID, and PoNumber are present.
  • PoNumber is unique for the customer.
Customer access
  • The authenticated UserID matches the customer or parent customer.
  • ContactID exists, 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 ProductName with Mill when names are shared across vendors.
  • Inventory parts use only one size row.
Design
  • Decorated items include Designs.
  • Existing designs include valid DesignID and colorway data.
  • New artwork includes FilePath and/or CustomerDesignCode.

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.

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.

JSONSample Order Status Call
{
	"Authorization": {
		"UserID": 1234,
		"Password": "ABCDEFG"
	},
	"RequestItems": [
		{
			"CustomerPo": "9223111"
		}
	]
}

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.

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.
JSONSample Manifest
{
  "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.

JSONMinimal required order header
{
  "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": []
    }
  ]
}
JSONOrder header with tracking fields
{
  "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.

JSONPreferred contract product lookup
{
  "IntegrationProduct": {
    "ProductName": "2000",
    "Mill": "Gildan",
    "Description": "Basic Tee",
    "ProcurementType": "Contract",
    "Color": "Black"
  }
}
JSONDynamic product candidate
{
  "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

JSONContract apparel line item with multiple sizes
{
  "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"
      }
    }
  ]
}
JSONInventory line item with one size
{
  "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.
JSONMinimal Line Item Example
{
  "IntegrationProduct": {
	"ProductName": "2000",
	"Mill": "Gildan",
	"Description": "Basic Tee",
	"ProcurementType": "Contract"
  },
  "LineItemSizes": [
	{
	  "Quantity": 1,
	  "SizeAsString": "M"
	}
  ]
}

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

JSONLine item using existing DesignID
{
  "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"
      }
    }
  ]
}
JSONLine item using artwork URL
{
  "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.

JSONAssociation Use Example
"Designs": [
	{
		"DesignTypeName": "Embroidery",
		"DesignID": 7009594
		"IntegrationColorway": {
			"ColorwayID": 8598247
			"GarmentLocationName": "Left Chest/Right Chest"
		}
	}
]

IntegrationColorway

JSONDesign URL with placement and preview
{
  "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.
JSONMinimal Design Example: Existing Design
"Designs": [
	{
	  "DesignTypeName": "Embroidery",
	  "DesignID": 8675309,
	  "IntegrationColorway": {
		"ColorwayID": 111111111,
		"GarmentLocationName": "Left Chest"
	  }
	}
]
JSONMinimal Design Example: Using FilePath
"Designs": [
	{
	  "DesignTypeName": "DigitalPrint",
	  "FilePath": "https://cdn.example.com/art/abc123.png",
	  "CustomerDesignCode": "ABC123",
	  "IntegrationColorway": {
		"GarmentLocationName": "Full Back"
	  }
	}
]
JSONFull Design Example: Existing Design
"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"
		}
	  ]
	}
]
JSONFull Design Example: Using FilePath
"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.

JSONResidential UPS Ground shipment
{
  "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": []
}
JSONThird-party shipping and packing slip
{
  "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.


Include callback URLs in the order request when you want Dubow to push updates instead of relying only on polling.

JSONCallback URLs on order
{
  "OrderStatusNotificationUrl": "https://yourdomain.com/webhooks/order-status",
  "ShipmentNotificationUrl": "https://yourdomain.com/webhooks/shipment"
}
JSONBasic webhook acknowledgment
{
  "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 OrderStatusNotificationUrl or ShipmentNotificationUrl in your IntegrationOrder
  • 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

JSONLine item with polybag and hangtag
{
  "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 Services array
  • Each entry should be a recognized Dubow service code
  • Multiple services can be combined where compatible

Available Service Codes

Field Description
BAG2 - POLY BAG Fold garment and polybag it
HANGTAG Attach hang tag to garment
INSERT Insert custom flyer or packing slip
NAME1 Personalization on order
PICNPAC Special sorting before shipping
JSONSample Line Item with Services
{
  "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:

JSONError response format
{
  "ResponseSummary": {
	"IsSuccess": false,
	"Errors": [
	  {
		"Message": "Description of the problem."
	  },
	  ...
	]
  }
}

Common Error Messages and How to Fix Them

Use the search box or type filters to quickly narrow the table. This replaces the separate Error Lookup section so customers have one place for troubleshooting.

Type Error Message or Symptom Likely Cause How to Fix
Auth Unauthorized. Please check UserID and Password. The Authorization block is missing, incorrect, or using credentials for the wrong environment. Confirm Authorization.UserID, Authorization.Password, and whether you are calling sandbox or production.
Auth Invalid Authorization UserId The request user ID is missing, zero, or not recognized. Use the assigned Dubow API UserID. If using a child customer, the authenticated user must be allowed to submit for that customer.
Order Orders list is Empty The request did not include any orders in Orders[]. Send at least one order object inside the Orders array.
Order A PoNumber (Purchase Order Number) was not given. The order is missing PoNumber or it is blank. Send a non-empty, unique PoNumber for every order.
Order This PO already exists in our system. Duplicate? The submitted PoNumber already exists for that customer. Use a unique PoNumber. For resubmits, use a revision value such as PO12345-REV1.
Order Duplicate order. This PONumber already exists. Same as duplicate PO. The customer PO has already been accepted or created. Do not resend the same PO unless directed. Use a new PO value when submitting a replacement order.
Order Duplicate PONumber for CustomerID Duplicate PO for the submitted CustomerID. Use a unique PoNumber for the customer.
Order Is not a valid CustomerID. The submitted CustomerID does not exist. Confirm the customer/company ID with Dubow.
Order is not a valid child customer The authenticated user is not allowed to submit orders for the requested child customer. Use the correct child customer or request that Dubow assign access to the authenticated parent customer.
Order Customer is in excess of their Credit Limit. The account is blocked by a credit limit rule. Contact Dubow support or accounting before resubmitting.
Order is not a valid ContactID. The submitted ContactID does not exist. Confirm the contact ID with Dubow.
Order The Contact's owning Customer is not the specified Customer. The contact exists but belongs to a different customer. Use a ContactID that belongs to the submitted CustomerID.
Order Contact is not active. The contact exists but is inactive. Use an active contact assigned to the same customer.
Order The Order didn't contain any Manifests. The order did not include Manifests[]. Add at least one manifest with shipping and line item details.
Payload Unable to parse payload The request body is not valid JSON or the content type is wrong. Validate the JSON and send Content-Type: application/json.
Payload One or more required fields are missing or invalid A required field is missing, misspelled, or using the wrong type. Compare your payload with the required examples and field reference.
Shipping An IntegrationManifest cannot be scheduled to ship on a date earlier than or equal to the day it is placed DateToShip is today or in the past. Use a future valid ship date and account for Dubow turn time rules.
Shipping An IntegrationManifest cannot have a deadline date earlier or equal to the day it is placed. DateDropDead is today or in the past. Use a future deadline date.
Shipping Each IntegrationManifest must define at least one LineItems. The manifest has no LineItems[]. Add at least one line item to every manifest.
Shipping ShipMethodAbbreviation is required The manifest is missing a ship method. Include a valid ShipMethodAbbreviation from available ship methods.
Shipping Missing Address1 or Zip on ShipToAddress The shipping address is incomplete. Provide the required shipping address fields listed in the shipping section.
Shipping Address must have at least one of Address1,2,3 No address line was supplied. Provide a complete ShipToAddress. Keep using the stricter address requirements documented above.
Product A ProductName was given without a Mill and no match or multiple was found ProductName is ambiguous or not found. Include Mill, use ProductID, or confirm product mapping from Lookup Lists.
Product A ProductName was given with a Mill and no match or multiple was found The product and mill combination did not resolve. Verify the product style and mill combination in Lookup Lists.
Product A VendorProductName was given with a Mill and no match or multiple was found The vendor product lookup failed. Verify VendorProductName and Mill, or use another supported product lookup path.
Product An Invalid ProductID was specified The submitted ProductID does not exist. Use a valid Dubow product ID from the product lookup list.
Product Each IntegrationProduct must unambiguously specify a Product Multiple product identifiers resolve to different products. Use one clear lookup method, or make sure all product fields resolve to the same part.
Product Cannot lookup inventory. SKU does not exist or multiple in the system. The inventory SKU is missing, inactive, or ambiguous. Confirm the SKU with Dubow or use a more specific product identifier.
Product Not possible to dynamically create an integration product The customer is not enabled for dynamic part creation, or required fields are missing. Confirm setup with Dubow and include CustomerProductName, Description, and Color.
Product [PartNumber] is an inactive part. The product exists but is inactive. Remove the item or contact Dubow to verify availability.
Size Each LineItem must have at least one LineItemSize to define size and quantity. The line item is missing LineItemSizes[]. Add at least one size row with quantity.
Size LineItem for Dubow Owned Inventory Part should not contain more than 1 LineItemSize. A Dubow-owned inventory line item has multiple size rows. Send one size row only or split inventory products into separate line items.
Size Each LineItemSize must have a quantity greater than 0. Quantity is zero, negative, or missing. Set every LineItemSizes[].Quantity value to a positive integer.
Size Quantity must be greater than 0 Quantity is zero, negative, or missing. Use positive integer quantities.
Size Each LineItemSize must specify a SizeIndex either in string or integer enumeration. The line item size cannot be determined. Send a valid SizeAsString or SizeIndex.
Size An unambiguous size cannot be determined for all LineItems. The supplied size text cannot be mapped. Use a supported size format such as XL, 2XLT, or Medium.
Size SizeAsString value is not recognized The size value is not recognized. Use a supported size format from the documentation.
Design No IntegrationDesigns included with LineItem X but NoDecoration does not equal true A decorated item is missing Designs[]. Add Designs[], set NoDecoration: true, or use the inventory workflow.
Design Missing Design Reference The design did not include DesignID, CustomerDesignCode, DesignCode, or FilePath. Provide a valid existing design reference or send a design URL workflow with DesignTypeName.
Design Could not use DesignID, DesignCode or CustomerDesignCode... No existing design could be resolved and no valid design type was provided for new art. Use a valid design reference or include DesignTypeName for new art.
Design DesignID does not exist. The submitted design ID is not valid. Confirm the design in DOTS or use a valid CustomerDesignCode or design URL workflow.
Design DesignID not found or not valid for account The design is missing or not assigned to the customer. Use a valid, customer-authorized DesignID.
Design Customer does not have rights to DesignID The design exists but is not available to the submitted customer. Use a customer-owned design or request Dubow to assign rights.
Design Cannot resolve DesignCode The submitted design code did not resolve to a design. Use a valid DesignID, DesignCode, CustomerDesignCode, or design URL workflow.
Design DesignTypeName is required New art or design resolution needs a decoration type. Set DesignTypeName in the design block, for example Embroidery.
Design There are multiple colorways for this design, but no colorway was provided. Please provide a colorway. The design has multiple colorways and none was selected. Send IntegrationColorway.ColorwayID with the existing DesignID.
Design ColorwayID not found or not associated with DesignID The colorway is invalid or does not belong to the design. Verify the ColorwayID belongs to the specified DesignID.
Design Incorrect number of thread breaks (Ordinal) called for Design ####. - X of Y Colors Received The submitted color ordinals do not match the design's thread breaks. Update IntegrationColorway.Colors[] ordinals to match the design.
Design Design #### is an associated design and requires additional locations in "GarmentLocationName" split by a "/" for each location An associated design requires multiple locations in order. Send slash-separated locations such as Full Front/Full Back.
Design FilePath is not a valid URL The art URL is malformed or inaccessible. Use a properly formatted, publicly accessible https:// link.
Design Design FilePath and DesignID cannot be used together The payload mixes an existing design with new-art submission. Choose either existing design fields or design URL fields, not both.
Design CustomerDesignCode already used on another design The customer design code is not unique. Use a unique CustomerDesignCode or reuse the existing design reference if intended.
Design Less than 24qty used per colorway for screen print. Screen print line quantity is below the minimum. Increase the quantity to at least 24 units per colorway or use another approved decoration method.
Services A service code was provided that is not supported The service name/code does not map to a valid service part. Use only valid service codes listed in the Additional Services section.
Payload TEST URL! This error will only appear on test requests. The test endpoint is returning its test-mode confirmation message. No production action is needed. Use this only to verify test behavior.
Payload TrackingNumber cannot be blank when OrderStatus is Shipped A shipped status update is missing tracking information. Provide a valid TrackingNumber when sending or consuming shipped updates.

HTTP Status Codes

Status Meaning When it happens Notes
200 OK Successful request with IsSuccess true.
400 Bad Request Malformed JSON or missing required fields.
401 Unauthorized Invalid Authorization credentials.
404 Not Found Endpoint or resource not found.
429 Too Many Requests Rate limit exceeded. Add retry-after guidance if applicable.
500 Server Error An unexpected error occurred. Include a reference ID if you return one.

Best Practices

  • Always inspect ResponseSummary.IsSuccess before 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
JSONSample Error Response
{
  "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.

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 OrderStatusNotificationUrl pointing 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.


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. PC099DYN-PC099. Unlike ProductName, which errors if missing, this field allows dynamic part creation.
VendorProductName string No Vendor style number.
ProductTypeName string No Category name, for example Apparel or Tote.
Color string No Color description.
ProductID integer No Internal Dubow product id if applicable.
Notes string No Internal notes related to the product.
Urls array<UrlRef> No Preview or mockup images. See UrlRef.
ProcurementType values
Value Notes
Contract You supply the garments. Dubow decorates and ships per your manifests.
Inventory Items are fulfilled from Dubow in-house inventory when available.
Custom Special sourcing with your vendor. Provide detailed Description.

Design

Path: Orders[].Manifests[].LineItems[].Designs[]

Field Type Required Description
DesignTypeName string Yes Decoration method name in your examples, for example Embroidery.
IntegrationColorway object Yes Placement and preview information. See IntegrationColorway.
DesignID integer Conditional Required when referencing an existing design.
FilePath string (URL or path) Conditional Required when submitting a design via URL.
CustomerDesignCode string Conditional Required with design via URL to reference your artwork.
Urls array<UrlRef> No Optional previews or mockups. See UrlRef.
Customizations array<Customization> No Name and number personalizations for this placement. See Customizations.
IntegrationColorway

Path: Designs[].IntegrationColorway

Field Type Required Description
GarmentLocationName string Yes Placement such as Left Chest or FULL Back.
ColorwayID integer Yes/No Only Required when using Designs[].DesignID.
CustomerColorwayCode integer Yes/No Only Required when using Designs[].CustomerDesignCode.
Urls array<UrlRef> No Preview images of the placement.
Colors

Path: Designs[].IntegrationColorway.Colors[]

Field Type Required Description
Color string Yes Thread or ink color name, for example Super White.
Pantone string No Pantone or thread system reference, for example 1001. See Dubow Thread List for specific thread codes when using embroidery.
Ordinal integer No Position or needle index for the color. Start at 1 and keep unique within the placement.
Map string Yes Short description of what is in specified ordinal. (eg "Icon", "Text", "Trim")
Customizations (Personalizations)

Path: Designs[].Customizations[]

Field Type Required Description
TextLines array<TextLine> Conditional Required for name or number decorations. See TextLine.
Font string No Preferred font name.
Color string No Requested thread or ink color.
Position string No Location on garment, for example Left Chest.
Width number No Suggested maximum width in inches.
Height number No Suggested maximum height in inches.
Notes string No Special handling instructions.
Urls array<UrlRef> No Preview images or mockups for the customization.
TextLine

Path: Customizations[].TextLines[]

Field Type Required Description
LineNumber integer Yes Sequence number, for example 1, 2.
Text string Yes Text to render for this line.
UrlRef

Path: Designs[].Urls[], IntegrationColorway.Urls[], Customizations.Urls[], IntegrationProduct.Urls[]

Field Type Required Description
Url string (URL) Yes Link to an image or preview file.
Description string No Short label for the referenced image.

ShipToAddress

Path: Orders[].Manifests[].ShipToAddress

Field Type Required Description
Address1 string Yes Recipient or attention line.
Address3 string Yes Street address line.
City string Yes City.
State string Yes State or province code. **Only Required when Country is "US"**
Zip string Yes Postal code.
Country string Yes 2-letter country code, for example US.
Address2 string No Optional Additional Recipient or attention line (for example the person or department).
Address4 string No Optional delivery information such as apartment, suite, unit, floor, or building name. Also used for “Care Of” or company names if Address1 is a personal name.
Address5 string No Optional Extra locality details that don’t fit in City/State/ZIP, such as districts, suburbs, villages, or neighborhoods (often needed for non-U.S. addresses).
PhoneNumber string No Contact number for delivery.
EmailAddress string No Contact email for delivery updates.

ReturnAddress

Path: Orders[].ReturnAddress

Field Type Required Description
Address1 string Yes Recipient or Attention line.
Address3 string Yes Street address line.
City string Yes City.
State string Yes State or province code. **Only Required when Country is "US"**
Zip string Yes Postal code.
Country string Yes Country name or code.
Address2 string No Optional Additional delivery information such as apartment, suite, unit, floor, or building name. Also used for “Care Of” or company names if Address1 is a personal name.
Address4 string No Optional Extra locality details that don’t fit in City/State/ZIP, such as districts, suburbs, villages, or neighborhoods (often needed for non-U.S. addresses)
Address5 string No Optional field for secondary administrative areas, international province codes, or other special delivery notes that must be part of the mailing label
PhoneNumber string No Contact phone.
EmailAddress string No Contact email.

Service

Path: Orders[].Manifests[].LineItems[].Services[]

Field Type Required Description
Name string Yes Service code, for example BAG2 (poly bag) or INSERT. See Services.

RequestItems (Order Status)

Path: RequestItems[] in Order Status request

Field Type Required Description
CustomerPo string Yes PO number to query.

RequestItems (Invoice Status)

Path: RequestItems[] in Invoice Status request

Field Type Required Description
CustomerPo string Yes PO number to query.

ResponseSummary

Path: ResponseSummary in responses

Field Type Required Description
IsSuccess boolean Yes True when the request succeeded.
Authorization object Yes Authentication result details. See below.
Errors array<Error> Conditional Present when IsSuccess is false.
ResponseSummary.Authorization
Field Type Required Description
IsAuthenticated boolean Yes True when the provided credentials are valid.
TransactionID string|null No Transaction identifier for troubleshooting; may be null.
UserID integer No Authenticated user id.
Password null No Redacted in responses.

Error

Path: ResponseSummary.Errors[]

Field Type Required Description
Code string Yes Stable error code for programmatic handling.
Message string Yes Human-readable description of the problem.
Field string No Offending field name when applicable, for example Orders[].PoNumber.

Order (status response)

Path: Orders[] in Order Status response

Field Type Required Description
CustomerPo string No PO number returned for reference.
OrderID integer No Internal Dubow order identifier.
CustomerID integer No Customer identifier.
ReceivingStatus string No Receiving state, for example No.
ShippingStatus string No Shipping state, for example No.
IsInvoiced boolean No Whether the order has been invoiced.
IsCanceled boolean No Whether the order has been canceled.
OrderStatus string No Current stage of the order, for example Entered. See OrderStatus value list in the Order Status section.
UniqueTrackingNumbers array<UniqueTrackingNumber> No Distinct tracking objects for the order. See below.
LineItems array<LineItem> No Per-line progress details. See LineItem (status).
UniqueTrackingNumbers item

Path: Orders[].UniqueTrackingNumbers[]

Field Type Required Description
TrackingNumber string Yes Carrier tracking number.
DateShipped string (ISO 8601) No Shipment timestamp, for example 2025-08-04T12:51:00.
ShipMethodName string No Readable carrier service name.
ShipperReference string No Reference from the shipper, useful for label or shipment lookup.

LineItem (status response)

Path: Orders[].LineItems[]

Field Type Required Description
LineItemName string No Display name of the item.
Requested integer No Quantity requested.
Received integer No Quantity received.
BackOrdered integer No Quantity on back order.
Shipped integer No Quantity shipped.
Damaged integer No Quantity damaged.
ArtNotReceived boolean No Artwork not received.
ArtBeingProcessed boolean No Artwork is in processing.
WaitingForApproval boolean No Awaiting approval.
OnHold boolean No On hold status.
DateToShip_Orig string No Original ship date (Microsoft JSON format).
DateToShip string No Current ship date (Microsoft JSON format).
DateArtCompleted string No Artwork completion date (Microsoft JSON format).
ReceivingHistory array|null No Receiving events for the line item, null when none.
IsShippable boolean No True if the line item can be shipped.
LineItemID integer No Line item identifier.
IsScheduled boolean No True if the line is scheduled in production.

Invoice Status (response)

Path: top-level invoice status fields

Field Type Required Description
OrderID integer No Internal order identifier.
CustomerID integer No Customer identifier.
IsInvoiced boolean No Whether the order has been invoiced.
IsCanceled boolean No Whether the order has been canceled.
ShippingTotal number No Total shipping charges.
DecorationTotal number No Total decoration charges.
GarmentTotal number No Total garment charges.
Services number No Service charges subtotal.
Total number No Grand total for the invoice.
AmountDue number No Outstanding balance.
AmountPaid number No Amount already paid.
AmountCredited number No Credits applied.
AmountDebited number No Debits applied.
DateInvoiced string (ISO 8601) No Invoice creation timestamp.
LineItems array No Collection of invoiced line items.

Note: Required status may vary based on usage context. See full documentation sections for detailed rules.


Endpoints & Lookup Lists

This section lists the JSON API endpoints and customer lookup lists used during integration. Use the endpoint URLs for order submission and status calls. Use the lookup lists for valid products, garment locations, decoration methods, and ship method abbreviations.

Production Environment Endpoint

  • Order Creation
    https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new
  • Order Status
    https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/status
  • Invoice Status
    https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/invoices/status

Test Environment (Sandbox) Endpoint

  • Order Creation
    https://test-integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new
  • Order Status
    https://test-integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/status
  • Invoice Status
    https://test-integration.dubowtextile.com/integration/orderintegrationservice.svc/json/invoices/status
Note

Test and Production environments are isolated. Make sure your API base URL, credentials, and any callback URLs all point to the same environment.

Cloud Integration

Use the Cloud JSON endpoint to ensure orders are accepted even if the primary API is down. Requests sent to the standard API during an outage will return errors and are not queued, you must resubmit them after the service is back online.

Environment Endpoint Auth Notes
Production https://io.dubowtextile.com/v1/orders customerToken Include your token as a request key named customerToken.
Test https://test-io.dubowtextile.com/v1/orders customerToken Use your test token; data is isolated from production.
Token required

A valid customerToken from the Dubow IT team is required for all Cloud submissions. Include it in the JSON body as customerToken. Tokens are environment-specific (use your Test token in Test and Production token in Production). Do not embed tokens in client-side code.

Lookup Lists: Products, Locations, Ship Methods

Use these lookup lists when building payloads. They help customers verify available products and mills, valid garment locations, supported decoration methods, and accepted ship method abbreviations.

XML Download

Right click the "Download XML" link and select "Save Link As" to download the file.

  • Available Products
    https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/products
  • Decoration Method List
    JSONRight click the "Download XML" link and select "Save Link As" to download the file.

    Applique
    Digital Print
    Direct to Film {common name "DTFx"}
    Dye Sublimation
    Embroidery
    Screen Print
    HG Flat
    HG Cylindrical
    HG Dye Sublimation
    Heat Transfer
    Laser Etch
    Pad Print
    Ultra Print {common name "UVTx"}
    Magnet
    Pinback Button
    Sticker
    Poster
  • Garment Locations
    https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/garmentlocations
  • Shipping Methods
    https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/shipmethods
  • Invoice Status (XML)
    https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/orders/invoice

FAQ

How do I authenticate?

Include Authorization.UserID and Authorization.Password in the JSON body, not in headers. See the Order Status → Required Fields or Endpoints for the relevant operation.

Where do I send requests?

Use the full URLs under Environments & Endpoints. Copy buttons are provided next to each URL.

What does [] mean in field names like Orders[].OrderID?

It indicates “each array item.” See the global Notation note near the top of the API Reference for details.

Why are some dates like /Date(1757566800000-0500)/ and others ISO 8601?

Line-item dates use Microsoft JSON format, while tracking timestamps use ISO 8601. See the Date formats note and UniqueTrackingNumbers.

My Order Status response has UniqueTrackingNumbers empty. Is that normal?

Yes, until parcels are created. Check Orders[].ShippingStatus and Orders[].OrderStatus. When shipments exist, UniqueTrackingNumbers[] will include objects with TrackingNumber, DateShipped, ShipMethodName, and ShipperReference.

How do I choose a ship method?

Look up abbreviations in the Shipping Methods XML feed, then set ShipMethodAbbreviation on each Manifest. See Ship Methods and the feed URL shown there.

Can I submit a line item without designs?

Yes, if NoDecoration is true. Otherwise provide Designs[] with IntegrationColorway. See Designs for required/conditional fields.

How do I add name or number personalizations?

Use Customizations[] inside Designs, including TextLines[]. See Customizations for the exact fields.

Do you queue requests during downtime?

Requests to the standard API during an outage return errors and are not queued. Use the Cloud JSON endpoint as a fallback. A valid customerToken from the Dubow IT team is required, included in the JSON body as customerToken. See Backup Cloud Integration.

How are errors returned?

Business-rule errors may be returned with HTTP 200 but with ResponseSummary.IsSuccess = false and entries in Errors[]. See Error reference and HTTP status codes.

Where can I download product, locations, and ship method references?

Use the XML feeds under Lookup Lists. The page includes Copy buttons and “Download XML” actions.

Will my webhook payload match the Order Status response?

Yes, when you include OrderStatusNotificationUrl during Order Creation, the webhook payload mirrors the Order Status response for the same PO. See the Order Status tables.


Changelog

See what's new added, changed, fixed, improved or updated in the latest versions.

Version 1.5 (May 29, 2026)

  • Added Customer portal with quick paths, sticky search, examples library, integration recipes, error lookup, field finder, and support packet.
  • Improved Consolidated Error Lookup into Troubleshooting & Common Errors with searchable type filters.
  • Improved Header, navigation, code cards, copy buttons, tables, callouts, and customer troubleshooting flow.

Version 1.4.1 (May 29, 2026)

  • Added Preflight validation checklist, backend processing rules, dates and scheduling guidance, product lookup rules, dynamic part creation guidance, and NoDecoration/inventory decision table.
  • Improved Documentation layout with hero cards, rule cards, improved table readability, and stronger callouts.
  • Fixed Invalid trailing commas in copyable JSON examples and version/date mismatch in Getting Started.

Version 1.4 (May 11, 2026)

  • Added JSON Builder.
  • Updated Error Handling Messages.

Version 1.31 (October 31, 2025)

  • Added Association Design Support.
  • Updated Error Handling Messages.

Version 1.3 (August 14, 2025)

  • Updated Web Service URLs layout. Production and Test are now shown as readable lists with full URLs and Copy buttons.
  • Removed Legacy sections and samples that caused duplication: “Supporting Resources,” “Order Tracking,” legacy unified webhook examples, and older status example blocks.
  • Added 4-column field tables across the docs. Total tables increased from 13 to 33, covering Order Creation, Manifests, Line Items, LineItemSize, Designs, IntegrationColorway, UrlRef, Addresses, and Order Status.
  • Added Order Status details for line items at #order_status_lineitem_fields that match the live response fields.
  • Added Tracking object documentation at #unique_tracking_numbers_fields for Orders[].UniqueTrackingNumbers[] with TrackingNumber, DateShipped, ShipMethodName, and ShipperReference.
  • 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_methods that ties directly into Manifests via ShipMethodAbbreviation.
  • 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 download attribute (Products, Garment Locations, Shipping Methods, Invoice Status).
  • Added Lookup Lists section at #catalogfeed that 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 customerToken issued by the Dubow IT team. The token must be included in the request body as customerToken and is environment specific.
  • Updated Webhook endpoint language. Clear instruction to include OrderStatusNotificationUrl during 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.Passsword corrected to Authorization.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 or ServiceCode.
  • 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.