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.
- Version: 1.0
- Author: Renato Cordeiro & Jake Scherfenberg
- 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 orderCustomerPo
: 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
orfalse
). - 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 toSizeIndex
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:
- Customer Token: Required for use of cloud API and placed in header. See account rep for info on obtaining your key.
https://io.dubowtextile.com/v1/orders
Supporting Resources
- Available Products: https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/products
- Garment Locations: https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/garmentlocations
- Shipping Methods: https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/shipmethods
- Invoice Status: https://integration.dubowtextile.com/integration/orderintegrationservice.svc/xml/orders/invoice
- Order Status: https://integration.dubowtextile.com/integration/orderintegrationservice.svc/json/orders/status
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.