Getting Started with Dubow Integration API

Introduction

Welcome to the Dubow Integration API documentation. This API enables seamless order processing and management through automated systems.

  • Key Benefits:
    • Submit orders in bulk or individually.
    • Minimize manual data entry, saving time and reducing errors.
    • Streamline order tracking and status updates.
  • Methods Supported:
    • Push Method (Recommended): Send order data directly to Dubow’s system.
    • Pull Method: Schedule automated downloads to retrieve orders.

  • Created: April 8, 2016
  • Update: January 1, 2025

Authentication

To access the Dubow Integration API, every request must include authentication details. This ensures secure access and validates the user's identity.

Authentication Requirements

  • UserID: Provided upon registration or account setup.
  • Password: Also provided during registration or account setup.

Implementation Examples

Below are examples of how to include authentication details in API requests using Curl, Python, and JavaScript (Node.js).

Curl


INPUT Curl/JSON:
curl -X POST https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new \
     -H "Content-Type: application/json" \
     -d '{
    "Authorization": {
        "UserID": 1111,
        "Password": “Password124”
    },
    "Orders": [
    ]
}'
            

Python


INPUT Python/JSON:
import requests

url = "https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new"
payload = {
    "Authorization": {
        "UserID": 1111,
        "Password": “Password124”
    },
    "Orders": [
    ]
}
headers = {
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())
            

JavaScript (Node.js)


INPUT JavaScript/JSON:
const axios = require('axios');

const jsonData = {
   "UserID": "JohnDoe",
   "Password": "1234"
};

axios.post("https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new", jsonData, {
    headers: { "Content-Type": "application/json" }
}).then(response => console.log(response.data))
.catch(error => console.error(error));
            

Order Creation

This endpoint allows you to create a new order. To use this endpoint, ensure the payload adheres to the required structure and includes all necessary fields.

Endpoint Information

  • Endpoint: POST https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new
  • HTTP Method: POST
  • Headers: Content-Type: application/json

Request Parameters

The following parameters are required in the request payload:

  • CustomerID: Unique identifier assigned by Dubow for your company.
  • PONumber: Unique purchase order number chosen by the user.
  • ContactID: Unique idetifier to a sales person from your company, assigned by Dubow.

Implementation Examples

Below are examples of how to create an order using Curl, Python, and JavaScript (Node.js).

Curl


INPUT Curl/JSON:
curl -X POST https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new \
     -H "Content-Type: application/json" \
     -d '{{
    "Authorization": {
        "UserID": "JohnDoe",
        "Password": "1234"
    },
    "Orders": [
        {
            "CustomerID": "1234",
            "PONumber": "TestPO",
            "ContactID": "772",
            "Manifests": [
                {
                    "ShipMethodAbbreviation": "SMA",
                    "IsResidential": false,
                    "ShipToAddress": {
                        "Address1": "ATTN John Doe",
						 "Address2": "Dubow Textile",
						 "Address3": "123 Main St",
						 "Address4": "APT 415",
						 "Address5": "",
						 "City": "Anytown",
						 "State": "NY",
						 "Country": "USA",
						 "PostalCode": "12345",
						 "Phone": "867-5309",
						 "Email": "JohnDoe@DubowTextile.com"
                    },
                    "LineItems": [
                        {
                            "IntegrationProduct": {
                                "Color": "Royal Heather",
                                "ProductName": "PR-10000-Royal Heather-M",
                                "Description": "Product Description",
                                "ProcurementType": "Contract"
                            },
                            "LineItemSizes": [
                                {
                                    "Quantity": "1",
                                    "SizeAsString": "M"
                                }
                            ],
                            "Designs": [
                                {
                                    "DesignTypeName": "Embroidery",
                                    "Notes": "",
                                    "FilePath": "https://dubowtextile.com/img/Dubow.png",
                                    "Urls": {
                                        "Url": "https://dubowtextile.com/img/Dubow.png"
                                    }
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}'
            

Python


INPUT Python/JSON:
import requests

url = "https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new"
payload = {
    "Authorization": {
        "UserID": "JohnDoe",
        "Password": "1234"
    },
    "Orders": [
        {
            "CustomerID": "1234",
            "PONumber": "TestPO",
            "ContactID": "772",
            "Manifests": [
                {
                    "ShipMethodAbbreviation": "SMA",
                    "IsResidential": false,
                    "ShipToAddress": {
                        "Address1": "ATTN John Doe",
						 "Address2": "Dubow Textile",
						 "Address3": "123 Main St",
						 "Address4": "APT 415",
						 "Address5": "",
						 "City": "Anytown",
						 "State": "NY",
						 "Country": "USA",
						 "PostalCode": "12345",
						 "Phone": "867-5309",
						 "Email": "JohnDoe@DubowTextile.com"
                    },
                    "LineItems": [
                        {
                            "IntegrationProduct": {
                                "Color": "Royal Heather",
                                "ProductName": "PR-10000-Royal Heather-M",
                                "Description": "Product Description",
                                "ProcurementType": "Contract"
                            },
                            "LineItemSizes": [
                                {
                                    "Quantity": "1",
                                    "SizeAsString": "M"
                                }
                            ],
                            "Designs": [
                                {
                                    "DesignTypeName": "Embroidery",
                                    "Notes": "",
                                    "FilePath": "https://dubowtextile.com/img/Dubow.png",
                                    "Urls": {
                                        "Url": "https://dubowtextile.com/img/Dubow.png"
                                    }
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}
headers = {
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())
            

JavaScript (Node.js)


INPUT JavaScript/JSON:
const axios = require('axios');

const jsonData = {
    "Authorization": {
        "UserID": "JohnDoe",
        "Password": "1234"
    },
    "Orders": [
        {
            "CustomerID": "1234",
            "PONumber": "TestPO",
            "ContactID": "772",
            "Manifests": [
                {
                    "ShipMethodAbbreviation": "SMA",
                    "IsResidential": false,
                    "ShipToAddress": {
                        "Address1": "ATTN John Doe",
						 "Address2": "Dubow Textile",
						 "Address3": "123 Main St",
						 "Address4": "APT 415",
						 "Address5": "",
						 "City": "Anytown",
						 "State": "NY",
						 "Country": "USA",
						 "PostalCode": "12345",
						 "Phone": "867-5309",
						 "Email": "JohnDoe@DubowTextile.com"
                    },
                    "LineItems": [
                        {
                            "IntegrationProduct": {
                                "Color": "Royal Heather",
                                "ProductName": "PR-10000-Royal Heather-M",
                                "Description": "Product Description",
                                "ProcurementType": "Contract"
                            },
                            "LineItemSizes": [
                                {
                                    "Quantity": "1",
                                    "SizeAsString": "M"
                                }
                            ],
                            "Designs": [
                                {
                                    "DesignTypeName": "Embroidery",
                                    "Notes": "",
                                    "FilePath": "https://dubowtextile.com/img/Dubow.png",
                                    "Urls": {
                                        "Url": "https://dubowtextile.com/img/Dubow.png"
                                    }
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
};

axios.post('https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new', jsonData, {
  headers: {
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});

Order Status

This endpoint allows you to check the status of an existing order. To use this endpoint, ensure you provide the necessary order identifier.

Endpoint Information

  • Endpoint: GET https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/status
  • HTTP Method: GET
  • Headers: Content-Type: application/json
  • Required Parameter: One of the following are required to get Order Status.
    • OrderID: The unique identifier for the order
    • CustomerPo: The purchase order number provided during order creation

Request Parameters

The following parameters are supported for checking order status:

  • OrderID: Unique identifier for the order (required).
  • CustomerPo: Customer-provided purchase order number (required if OrderID is not used).

Implementation Examples

Below are examples of how to check the order status using Curl, Python, and JavaScript (Node.js).

Curl


INPUT Curl/JSON:
curl -X GET https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/status \
     -H "Content-Type: application/json" \
     -d '{
         "Authorization": {
             "UserID": "JohnDoe",
        	 "Password": "1234"
         },
         "RequestItems": [
             {
                 "CustomerPo": "PO123456"
             }
         ]
     }'
            

Python


INPUT Python/JSON:
import requests

url = "https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/status"
payload = {
         "Authorization": {
             "UserID": "JohnDoe",
         	 "Password": "1234"
         },
         "RequestItems": [
             {
                 "CustomerPo": "PO123456"
             }
         ]
     }
headers = {
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())
            

Invoice Status

This endpoint allows you to check the status of an existing invoice. To use this endpoint, ensure you provide the necessary invoice identifier.

Endpoint Information

  • Endpoint: GET https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/invoice
  • HTTP Method: GET
  • Headers: Content-Type: application/json

Required Parameters

  • OrderID: The Dubow generated order number (required).
  • CustomerPO: Customer provided Purchase Order number.

Implementation Examples

Below are examples of how to check the invoice status using Curl, Python, and JavaScript (Node.js).

Curl


INPUT Curl/JSON:
curl -X GET https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/invoice \
     -H "Content-Type: application/json" \
     -d '{
    "Authorization": {
        "UserID": "JohnDoe",
        "Password": "1234"
    },
    "RequestItems": [
        {
            "OrderID": 11111
        }
    ]
}
'

RESPONSE Curl/JSON:
{
    "ResponseSummary": {
        "IsSuccess": true,
        "Errors": [],
        "Authorization": {
           "UserID": "JohnDoe",
           "Password": "1234"
            "IsAuthenticated": true
        }
    },
    "Invoices": [
        {
            "OrderID": 11111,
            "CustomerPO": "11111",
            "IsInvoiced": false,
            "IsCanceled": false,
            "ShippingTotal": 0.00,
            "DecorationTotal": 0,
            "GarmentTotal": 0,
            "Services": 0,
            "Total": 0.0000,
            "AmountDue": 0.0000,
            "AmountPaid": 0.0000,
            "AmountCredited": 0.0000,
            "AmountDebited": 0.0000,
            "LineItems": [],
            "DateInvoiced": null
        }
    ]
}

Python


INPUT Python/JSON:
import requests

url = "https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/invoice"
data = {
    "Authorization": {
        "UserID": "JohnDoe",
        "Password": "1234"
    },
    "RequestItems": [
        {
            "OrderID": 11111
        }
    ]
}


response = requests.get(url, json=data, headers=headers)
print(response.json())

RESPONSE Python/JSON:
{
    "ResponseSummary": {
        "IsSuccess": true,
        "Errors": [],
        "Authorization": {
            "UserID": "JohnDoe",
            "Password": "1234"
            "IsAuthenticated": true
        }
    },
    "Invoices": [
        {
            "OrderID": 11111,
            "CustomerPO": "11111",
            "IsInvoiced": false,
            "IsCanceled": false,
            "ShippingTotal": 0.00,
            "DecorationTotal": 0,
            "GarmentTotal": 0,
            "Services": 0,
            "Total": 0.0000,
            "AmountDue": 0.0000,
            "AmountPaid": 0.0000,
            "AmountCredited": 0.0000,
            "AmountDebited": 0.0000,
            "LineItems": [],
            "DateInvoiced": null
        }
    ]
}

JavaScript (Node.js)


INPUT JavaScript/JSON:
const axios = require('axios');

const jsonData = {
    "Authorization": {
        "UserID": "JohnDoe",
        "Password": "1234"
    },
    "RequestItems": [
        {
            "OrderID": 11111
        }
    ]
};

axios.get('https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/invoice', {
    headers: {
        'Content-Type': 'application/json'
    },
    data: jsonData
})
.then(response => console.log(response.data))
.catch(error => console.error(error));

RESPONSE JavaScript/JSON:
{
    "ResponseSummary": {
        "IsSuccess": true,
        "Errors": [],
        "Authorization": {
            "UserID": "JohnDoe",
            "Password": "1234"
            "IsAuthenticated": true
        }
    },
    "Invoices": [
        {
            "OrderID": 11111,
            "CustomerPO": "11111",
            "IsInvoiced": false,
            "IsCanceled": false,
            "ShippingTotal": 0.00,
            "DecorationTotal": 0,
            "GarmentTotal": 0,
            "Services": 0,
            "Total": 0.0000,
            "AmountDue": 0.0000,
            "AmountPaid": 0.0000,
            "AmountCredited": 0.0000,
            "AmountDebited": 0.0000,
            "LineItems": [],
            "DateInvoiced": null
        }
    ]
}

Manifests

A manifest organizes shipping details and associated line items within an order. It provides all necessary details to ensure accurate handling and delivery of goods.

Endpoint Information

  • HTTP Method: POST
  • Headers: Content-Type: application/json

Required Fields

  • ShipMethodAbbreviation: Specifies the shipping method, such as UPS, FedEx, or USPS.
  • ShipToAddress: Full recipient address including street, city, state, and postal code.
  • LineItems: Details about products, including SKU and quantities.

Optional Fields

  • IsResidential: Indicates if the shipping address is residential (true or false).
  • ThirdPartyAccountNumber: A shipping account for third-party billing.
  • Notes: Additional instructions for shipping.
  • PackingSlipUrl: A URL linking to a custom packing slip.

Implementation Example


{
 "ShipMethodAbbreviation": "UPS",
 "ShipToAddress": {
	 "Address1": "ATTN John Doe",
	 "Address2": "Dubow Textile",
	 "Address3": "123 Main St",
	 "Address4": "APT 415",
	 "Address5": "",
	 "City": "Anytown",
	 "State": "NY",
	 "Country": "USA",
	 "PostalCode": "12345",
	 "Phone": "867-5309",
	 "Email": "JohnDoe@DubowTextile.com"
 },
 "LineItems": [
	 {
		 "ProductName": "PR-2000-Black-L",
		 "Quantity": 10
	 }
 ]
}            		

Transactional Data

Transactional Data provides critical order-level details that ensure accurate processing and tracking.

Customer ID

A unique identifier for the customer associated with the order. This is required for customer-specific data mapping.

  • Type: String
  • Example: 12345

PO Number

The primary purchase order number for the transaction. Used to reference orders within the system.

  • Type: String
  • Example: PO123456

Secondary PO

Additional purchase order numbers for reference. Useful for orders linked to multiple POs.

  • Type: String (optional)
  • Example: PO654321

End User PO

A purchase order number provided by the end user, if applicable. This is often used for drop shipping scenarios.

  • Type: String
  • Example: ENDUSER123

Contact ID

An identifier for the main contact associated with the order. Ensures direct communication for order issues or clarifications.

  • Type: String
  • Example: CON12345

Customer Store

A code used to assign a program or store to the order. This code is defined in the program.

  • Type: String
  • Example: Store123

Platform

The platform from which the order originated, such as OrderDesk or RubikX.

  • Type: String
  • Example: OrderDesk

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.

Line Items

Line Items provide detailed information about individual products within an order, including customization and sizing options.

Integration Product (Required)

Specifies the details of the product, by providing a set of fields to match the ordered product with an existing product in our system.

  • ProductName: Name of product.
  • Color: Product color. Recommended for detecting vendor errors.
  • Description: Value visible to production. Helps detect errors in product selection.
  • Product ID/Name: Must choose one of the following to use to identify the product.
    • ProductName: Allows direct association with a known identifier for enhanced accuracy. Dubow product names are available at this URL.
    • CustomerProductName: Used when Dubow maintains a map relating product IDs between systems. Labor-intensive; only used when necessary.
    • VendorProductName and Mill: Accounts for manufacturers using the same style number for different specifications. Requires contacting the vendor or referencing data from this URL.
  • ProcurementType: Defines how Dubow should expect to receive the product:
    • Contract (default): Vendor ships to Dubow.
    • Custom: Dubow orders directly from the vendor. Requires VendorID.
      • VendorID: Dubow Vendor ID#.
    • Inventory: Product sent to Dubow for standing inventory. Includes low-quantity notifications.

Example

{
    "ProductName": "PR-2000-Black-L",
	"CustomerProductName": "ClientShirtName123",
	"VendorProductName": "Bella Canvas 2000C",
    "Mill": "BellaCanvas",
    "Color": "Black",
    "Description": "Cotton T-shirt, round neck", 
    "ProcurementType": "Contract"
}

Line Item Sizes

Details the size and quantity of the items ordered.

  • SizeIndex: Integer between 0-7. For example:
    • 1 = S
    • 2 = M
    • 3 = L
    • 4 = XL
    • 5 = 2XL
    • 6 = 3XL
    • 7 = 4XL
    • 0 = Not applicable
  • SizeAsString: Verbose size description, used when SizeIndex is not applicable. Examples include "XL", "extra large", or "xtra large", which all map to SizeIndex value of 4.

Example

{
    "LineItemSizes": [
        {
            "SizeIndex": 1,
            "SizeAsString": "Small",
            "Quantity": 10
        },
        {
            "SizeIndex": 4,
            "SizeAsString": "XL",
            "Quantity": 15
        }
    ]
}

Designs

Designs provide the visual and technical details necessary to customize products.

Integration Design

Specifies either an existing design or a new design's parameters using the following attributes:

  • DesignID: Numeric value provided by Dubow to represent an existing design.
  • DesignCode: Alphanumeric value for legacy designs. Depreciated but still usable for older designs.
  • CustomerDesignCode: Customer-provided code correlated with a Dubow design. New correlations can be initiated by defining the design while passing this value.
  • DesignTypeName: Defines the production process used (refer to spreadsheet for possible values).
  • FilePath: Location of customer-supplied design files.
  • StitchCount: Specifies the stitch count for .dst files.
  • Height and Width: Dimensions of the design.
  • Notes: Additional information about the design and application.
  • Url: Additional URIs for file locations.

Example

{
    "DesignID": "123456",
    "DesignTypeName": "Embroidery",
    "FilePath": "https://clientfiles.com/design123.dst",
    "StitchCount": 2000,
    "Height": 5,
    "Width": 3,
    "Notes": "Ensure thread color matches client branding."
}

Integration Colorway (Required)

Defines the colors used in the design with the following attributes:

  • GarmentLocationName: Describes the product's intended design location. Available values are at this URL.
  • ColorwayID: Dubow-provided colorway identifier.
  • CustomerColorwayCode: Customer-provided colorway code.
  • Colors:
    • Color: Specifies single color (e.g., "dark red"), or multi-color breaks [Array] for Screen Print and Embroidery .
    • Ordinal: Numeric value indicating the thread break position. (e.g. 1,2,3,4,etc)
    • Map: Describes what part of the design is at the specified thread break. (e.g. Dubow Icon)

Example

{
    "GarmentLocationName": "Left Chest",
    "ColorwayID": "1234",
    "Colors": [
        {
            "Color": "Dark Red",
            "Ordinal": 1,
            "Map": "Logo Outline"
        },
        {
            "Color": "Bright Yellow",
            "Ordinal": 2,
            "Map": "Logo Fill"
        }
    ]
}

Customizations

Defines variable text and attributes used on product pieces:

  • Font: Font-face for the text.
  • Color: Text color.
  • Position: Text position (e.g., "hat back").
  • Width and Height: Dimensions of the text.
  • Notes: Special instructions for the text.
  • Urls: URIs for example images of the text.
  • TextLine: Specifies text content with attributes:
    • LineNumber: Line number of the text.
    • Text: Characters for the specified line.

Example

{
    "Font": "Arial",
    "Color": "Black",
    "Position": "Front Pocket",
    "Width": 4,
    "Height": 2,
    "TextLine": [
        {
            "LineNumber": 1,
            "Text": "Employee Name"
        },
        {
            "LineNumber": 2,
            "Text": "Department"
        }
    ]
}

Shipping Information

Details about the shipping methods, addresses, and additional attributes required for processing shipments.

Shipping Methods

A list of supported shipping methods:

  • ShipMethodAbbreviation: Abbreviations for supported methods such as UPS, FedEx, or USPS.

Example

{
    "ShipMethodAbbreviation": "UPS"
}

Shipping Addresses

Details required for specifying shipping and return addresses.

  • Address1: Primary street address.
  • Address2: Secondary address information (optional).
  • Address3: Third address information (optional).
  • Address4: Fourth address information (optional).
  • Address5: Fifth address information (optional).
  • Phone: Phone Number (optional).
  • Email: Email Address (optional).
  • City: City of the address.
  • State: State of the address.
  • Country: Defaults to USA if not used.
  • Zip: Zip code of the address.
  • IsResidential: Boolean indicating if the address is residential.

Example

{
	 "Address1": "ATTN John Doe",
	 "Address2": "Dubow Textile",
	 "Address3": "123 Main St",
	 "Address4": "APT 415",
	 "Address5": "",
	 "City": "Anytown",
	 "State": "NY",
	 "Country": "USA",
	 "PostalCode": "12345",
	 "Phone": "867-5309",
	 "Email": "JohnDoe@DubowTextile.com"
   	 "IsResidential": true
}

Additional Attributes

Optional fields for customizing shipment processing.

  • PackingSlipUrl: URL for a custom packing slip.
  • ThirdPartyAccountNumber: Billing account for third-party shipping.

Example

{
    "PackingSlipUrl": "https://clientfiles.com/packing_slip.pdf",
    "ThirdPartyAccountNumber": "123456789"
}

Order Tracking

Order Tracking enables users to retrieve real-time updates on the status of their orders, providing visibility and ensuring timely delivery.

Full Order Status

Retrieve the status of an entire order using the following parameters:

  • OrderID: Unique identifier for the order.
  • CustomerPO: Unique identifier for the customer (optional).

Example

{
    "Authorization": {
         "UserID": "JohnDoe",
         "Password": "1234"
    },
    "RequestItems": [
        {
            "OrderID": 3475351
        }
    ]
}

Implementation Examples

Examples for retrieving order status in various formats:

Curl

# Full Order Status
curl -X GET https://integration.dubowtextile.com/api/order/status \
     -H "Content-Type: application/json" \
     -d '{
         "OrderID": "3475351",
         "CustomerPO": "TestPO"
     }'

Python

# Full Order Status
import requests

url = "https://integration.dubowtextile.com/api/order/status"
data = {
    "OrderID": "3475351",
    "CustomerPO": "TestPO"
}
response = requests.get(url, json=data)
print(response.json())

JavaScript

// Full Order Status
const axios = require('axios');

const data = {
    OrderID: "3475351",
    CustomerPO: "TestPO"
};

axios.get('https://integration.dubowtextile.com/api/order/status', { data })
    .then(response => console.log(response.data))
    .catch(error => console.error(error));

Error Handling

Error Handling helps users interpret and resolve issues that may arise during API requests, ensuring smooth integration and operation.

Common Error Codes

Below are common error codes and their meanings:

  • 400 Bad Request: The request was invalid. Ensure all required fields are provided and correctly formatted.
  • 401 Unauthorized: Authentication failed. Verify your credentials.
  • 404 Not Found: The requested resource could not be found. Double-check the endpoint or resource identifier.
  • 500 Internal Server Error: An error occurred on the server. Contact support if this persists.

Debugging Tips

Follow these tips to troubleshoot errors effectively:

  • Ensure your API credentials (UserID, Password) are correct and active.
  • Validate the request payload against the required schema.
  • Use tools like Postman or cURL to test API calls independently.
  • Check for typos or incorrect endpoint URLs.

Implementation Examples

Examples for handling errors in various formats:

Python

import requests

url = "https://integration.dubowtextile.com/api/order/status"
data = {"OrderID": "123456"}

try:
    response = requests.get(url, json=data)
    response.raise_for_status()
    print(response.json())
except requests.exceptions.HTTPError as http_err:
    print(f"HTTP error occurred: {http_err}")
except Exception as err:
    print(f"Other error occurred: {err}")

JavaScript

const axios = require('axios');

const data = { OrderID: "123456" };

axios.get('https://integration.dubowtextile.com/api/order/status', { data })
    .then(response => console.log(response.data))
    .catch(error => {
        if (error.response) {
            console.error('Response error:', error.response.status, error.response.data);
        } else if (error.request) {
            console.error('Request error:', error.request);
        } else {
            console.error('General error:', error.message);
        }
    });

Full Order Request and Response

This section demonstrates a complete order integration request, combining all required fields for authentication, line items, designs, shipping information, manifests, and colorway information. The examples also include corresponding responses in JSON format.

Curl


INPUT Curl/JSON:
curl -X POST https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new \
     -H "Content-Type: application/json" \
     -d '{
         "Authorization": {
             "UserID": "JohnDoe",
        	 "Password": "1234"
         },
         "Orders": [
             {
                 "PONumber": 700,
                 "ContactID": 3345,
                 "PoNumber": "Test",
                 "ReturnAddress": {
                     "Address1": "Argyle Testable",
                     "Address3": "1234 Abcd St. West",
                     "City": "San Los Angeles",
                     "State": "NY",
                     "Zip": "94111",
                     "Country": "USA"
                 },
                 "Manifests": [
                     {
                         "ShipMethodAbbreviation": "UPSGC3",
                         "IsResidential": true,
                         "ShipToAddress": {
                             "Address1": "ATTN John Doe",
							 "Address2": "Dubow Textile",
							 "Address3": "123 Main St",
							 "Address4": "APT 415",
							 "Address5": "",
							 "City": "Anytown",
							 "State": "NY",
							 "Country": "USA",
							 "PostalCode": "12345",
							 "Phone": "867-5309",
							 "Email": "JohnDoe@DubowTextile.com"
                         },
                         "LineItems": [
                             {
                                 "Name": "1288706",
                                 "NoDecoration": false,
                                 "IntegrationProduct": {
                                     "Color": "BLACK",
                                     "CustomerProductName": "PR-5250-BLACK-M",
                                     "Mill": "Hanes",
                                     "ProcurementType": "Inventory"
                                 },
                                 "LineItemSizes": [
                                     {
                                         "Quantity": 1,
                                         "SizeAsString": "M"
                                     }
                                 ],
                                 "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"
                                         }
                                     },
                                     {
                                         "DesignTypeName": "DigitalPrint",
                                         "FilePath": "https://azbycx.com/images/686387.png",
                                         "CustomerDesignCode": "686387",
                                         "Urls": [
                                             {
                                                 "Url": "https://azbycx.com/images/686387-5250-black-front.png",
                                                 "Description": "Front Preview"
                                             }
                                         ],
                                         "IntegrationColorway": {
                                             "GarmentLocationName": "FULL Front"
                                         }
                                     }
                                 ]
                             }
                         ]
                     }
                 ],
                 "ShipmentNotificationUrl": "https://api.awesome.com/v1/tracking"
             }
         ]
     }'

RESPONSE Curl/JSON:
{
	"ResponseSummary":{
		"IsSuccess":true,
		"Errors":[
		],
		"Authorization":{
			"UserID": "JohnDoe",
       	    "Password": "1234"
			"IsAuthenticated":true
		}
	},
	"OrderResults":[
		{
			"PoNumber":"201146-api",
			"IsIntegrated":true,
			"OrderID":1034716,
			"MessagesOnOrder":null
		}
	]
}

Python


INPUT Python/JSON:
import requests

url = "https://integration.dubowtextile.com/"
data = {
    "Authorization": {
         "UserID": "JohnDoe",
         "Password": "1234"
    },
    "Orders": [
        {
            "PONumber": "700",
            "ContactID": 3345,
            "PoNumber": "Test",
            "ReturnAddress": {
                "Address1": "Argyle Testable",
                "City": "San Los Angeles",
                "State": "NY",
                "Zip": "94111",
                "Country": "USA"
            },
            "Manifests": [
                {
                    "ShipMethodAbbreviation": "UPSGC3",
                    "IsResidential": true,
                    "ShipToAddress": {
                         "Address1": "ATTN John Doe",
						 "Address2": "Dubow Textile",
						 "Address3": "123 Main St",
						 "Address4": "APT 415",
						 "Address5": "",
						 "City": "Anytown",
						 "State": "NY",
						 "Country": "USA",
						 "PostalCode": "12345",
						 "Phone": "867-5309",
						 "Email": "JohnDoe@DubowTextile.com"
                    },
                    "LineItems": [
                        {
                            "Name": "1288706",
                            "IntegrationProduct": {
                                "Color": "BLACK",
                                "CustomerProductName": "PR-5250-BLACK-M",
                                "Mill": "Hanes",
                                "ProcurementType": "Inventory"
                            },
                            "LineItemSizes": [
                                {
                                    "Quantity": 1,
                                    "SizeAsString": "M"
                                }
                            ],
                            "Designs": [
                                {
                                    "DesignTypeName": "DigitalPrint",
                                    "FilePath": "https://azbycx.com/images/686388.png",
                                    "CustomerDesignCode": "686388",
                                    "IntegrationColorway": {
                                        "GarmentLocationName": "FULL Back"
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "ShipmentNotificationUrl": "https://api.awesome.com/v1/tracking"
        }
    ]
}

headers = {"Content-Type": "application/json"}
response = requests.post(url, json=data, headers=headers)
print(response.json())

RESPONSE Python/JSON:
{
	"ResponseSummary":{
		"IsSuccess":true,
		"Errors":[
		],
		"Authorization":{
			"UserID": "JohnDoe",
            "Password": "1234"
			"IsAuthenticated":true
		}
	},
	"OrderResults":[
		{
			"PoNumber":"201146-api",
			"IsIntegrated":true,
			"OrderID":1034716,
			"MessagesOnOrder":null
		}
	]
}

JavaScript


INPUT JavaScript/JSON:
const axios = require('axios');

const jsonData = {
    "Authorization": {
         "UserID": "JohnDoe",
         "Password": "1234"
    },
    "Orders": [
        {
            "PONumber": "700",
            "ContactID": 3345,
            "PoNumber": "Test",
            "ReturnAddress": {
                "Address1": "Argyle Testable",
                "City": "San Los Angeles",
                "State": "NY",
                "Zip": "94111",
                "Country": "USA"
            },
            "Manifests": [
                {
                    "ShipMethodAbbreviation": "UPSGC3",
                    "IsResidential": true,
                    "ShipToAddress": {
                      	 "Address1": "ATTN John Doe",
						 "Address2": "Dubow Textile",
						 "Address3": "123 Main St",
						 "Address4": "APT 415",
						 "Address5": "",
						 "City": "Anytown",
						 "State": "NY",
						 "Country": "USA",
						 "PostalCode": "12345",
						 "Phone": "867-5309",
						 "Email": "JohnDoe@DubowTextile.com"
                    },
                    "LineItems": [
                        {
                            "Name": "1288706",
                            "IntegrationProduct": {
                                "Color": "BLACK",
                                "CustomerProductName": "PR-5250-BLACK-M",
                                "Mill": "Hanes",
                                "ProcurementType": "Inventory"
                            },
                            "LineItemSizes": [
                                {
                                    "Quantity": 1,
                                    "SizeAsString": "M"
                                }
                            ],
                            "Designs": [
                                {
                                    "DesignTypeName": "DigitalPrint",
                                    "FilePath": "https://azbycx.com/images/686388.png",
                                    "CustomerDesignCode": "686388",
                                    "IntegrationColorway": {
                                        "GarmentLocationName": "FULL Back"
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "ShipmentNotificationUrl": "https://api.awesome.com/v1/tracking"
        }
    ]
};

const headers = {
    "Content-Type": "application/json"
};

axios.post('https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/new', jsonData, { headers })
    .then(response => console.log(response.data))
    .catch(error => console.error(error));

Field Reference

This section provides a detailed breakdown of all fields used in the API, categorized into their respective components. It highlights required fields, optional fields, and their descriptions.

Authentication Fields

  • UserID (required): User identifier provided during account setup.
    {
        "UserID": "JohnDoe"
    }
  • Password (required): Authentication password provided during account setup.
    {
        "Password": "1234"
    }

Order Fields

  • PONumber (required): Identifier for the customer placing the order.
    {
        "PONumber": "700"
    }
  • ContactID (required): Identifier for the customer contact associated with the order.
    {
        "ContactID": "3345"
    }
  • PoNumber (required): Purchase order number for the transaction.
    {
        "PoNumber": "Test"
    }
  • ShipmentNotificationUrl (optional): URL for receiving shipment notifications.
    {
        "ShipmentNotificationUrl": "https://api.awesome.com/v1/tracking"
    }

Manifest Fields

  • ShipMethodAbbreviation (required): Abbreviation of the shipping method (e.g., UPS, FedEx).
    {
        "ShipMethodAbbreviation": "UPSGC3"
    }
  • IsResidential (optional): Boolean indicating if the address is residential.
    {
        "IsResidential": true
    }
  • ShipToAddress (required): Object containing:
    {
        "ShipToAddress": {
            "Address1": "ATTN John Doe",
    		 "Address2": "Dubow Textile",
    		 "Address3": "123 Main St",
    		 "Address4": "APT 415",
    		 "Address5": "",
    		 "City": "Anytown",
    		 "State": "NY",
    		 "Country": "USA",
    		 "PostalCode": "12345",
    		 "Phone": "867-5309",
    		 "Email": "JohnDoe@DubowTextile.com"
        }
    }

Line Item Fields

  • Name (required): Unique identifier for the line item.
    {
        "Name": "1288706"
    }
  • NoDecoration (optional): Boolean indicating whether the line item has no decoration.
    {
        "NoDecoration": false
    }
  • IntegrationProduct (required): Object containing:
    {
        "IntegrationProduct": {
            "Color": "BLACK",
            "CustomerProductName": "PR-5250-BLACK-M",
            "Mill": "Hanes",
            "ProcurementType": "Inventory"
        }
    }
  • LineItemSizes (required): Array of objects containing:
    {
        "LineItemSizes": [
            {
                "Quantity": 1,
                "SizeAsString": "M"
            }
        ]
    }

Design Fields

  • DesignTypeName (required): Name of the production process (e.g., Embroidery, DigitalPrint).
    {
        "DesignTypeName": "DigitalPrint"
    }
  • FilePath (required): URL for the design file.
    {
        "FilePath": "https://azbycx.com/images/686388.png"
    }
  • CustomerDesignCode (optional): Identifier for the design provided by the customer.
    {
        "CustomerDesignCode": "686388"
    }
  • Urls (optional): Array of objects containing mockups or preview images of the design and product.:
    {
        "Urls": [
            {
                "Url": "https://azbycx.com/images/686388-5250-black-back.png",
                "Description": "Back Preview"
            }
        ]
    }
  • IntegrationColorway (required): Object containing the following fields:
    • GarmentLocationName (required): Specifies the location on the garment where the design will be placed. Example: "FULL Back".
    • CustomerColorwayCode (optional): Custom identifier for the customer's colorway. Example: "CW1234".
    • ColorwayID (optional): Identifier for a Dubow-provided colorway. Example: 456.
    • Colors (required): An array of objects describing individual colors used in the design:
      • Color: The thread color, specified verbosely (e.g., "Dark Red").
      • Ordinal: Numeric order of the color in the thread sequence. Example: 1.
      • Map: Description of the application area for the color (e.g., "Text", "Background").
    • Font (optional): Specifies the font face used for text in the design. Example: "Arial".
    • TextColor (optional): Specifies the color of the text. Example: "Black".
    • Position (optional): Describes the placement of the design on the garment. Example: "Chest Center".
    • Width (optional): Width of the design in inches. Example: 10.
    • Height (optional): Height of the design in inches. Example: 5.
    • Notes (optional): Additional instructions or remarks regarding the design. Example: "Use bold font for emphasis".
    • Urls (optional): Array of objects providing URLs for additional design assets:
      • Url: URL linking to the design asset. Example: "https://example.com/colorway-preview.png".
      • Description: Description of the linked asset. Example: "Preview of colorway layout".

    Example:

    {
        "IntegrationColorway": {
            "GarmentLocationName": "FULL Back",
            "CustomerColorwayCode": "CW1234",
            "ColorwayID": 456,
            "Colors": [
                {
                    "Color": "Dark Red",
                    "Ordinal": 1,
                    "Map": "Text"
                },
                {
                    "Color": "Light Blue",
                    "Ordinal": 2,
                    "Map": "Background"
                }
            ],
            "Font": "Arial",
            "TextColor": "Black",
            "Position": "Chest Center",
            "Width": 10,
            "Height": 5,
            "Notes": "Use bold font for emphasis",
            "Urls": [
                {
                    "Url": "https://example.com/colorway-preview.png",
                    "Description": "Preview of colorway layout"
                }
            ]
        }
    }

Web Service URLs

This section lists the available web service endpoints for test and production environments. Ensure you use the correct environment and JSON format for your integration.

Test Environment

  • JSON Endpoint: https://test.integration.dubowtextile.com/integration/orderintegrationservice.svc/json

Production Environment

  • JSON Endpoint: https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json

Backup Cloud Integration

  • Cloud JSON Endpoint:
  • https://io.dubowtextile.com/v1/orders
    • Customer Token: Required for use of cloud API and placed in header. See account rep for info on obtaining your key.

Supporting Resources


Frequently Asked Questions

Below are some common questions and answers to assist with your integration.

General

  • How do I get access to the API? Contact your Dubow account manager to request API credentials for the test and production environments.
  • What formats are supported? The API supports JSON format.

Order Integration

  • How do I test an order submission? Use the test environment endpoints listed in the Web Service URLs section with your test credentials.
  • What happens if my order fails? The API will return an error code and message. Refer to the Error Handling section for details on common errors and resolutions.

Designs

  • What file formats are supported for design uploads? Common formats include .png, .jpg, and .dst.
  • Can I use custom design codes? Yes, you can use CustomerDesignCode to reference your internal design identifiers.

Shipping

  • How do I track a shipment? Provide a ShipmentNotificationUrl in your order request to receive tracking updates.
  • Can I specify a residential address? Yes, use the IsResidential field in your manifest to indicate residential shipping.

Changelog

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

Version 1.0 (Jan 1, 2025)

  • Added Web based API documentation.