Delivery Order (DO)

A delivery order is an instruction from you to our fulfilment facility in China to ship a product to your client.

Once we receive this instruction, the workers in our fulfilment facility will pick the product from our warehouse, pack it into a suitable box, apply the shipping label of the carrier to the box, and hand it over to the carrier for shipping.

This is our most popular service, and also the most complex, so we suggest that you carefully read through the instructions on this page to get a clear understanding of how to use it to your full advantage.

We offer 2 services:

Create a new delivery order

Cancel a delivery order

Create a new delivery order

POST https://dataflo.pchintl.com/api/v1/DO

Example request body

JSON | XML
{
    "Version": "1.1",
    "Orders": [
        {
            "DN": "83024510125",
            "Created": "2016-03-17",
            "PODate": "2016-03-17",
            "RequestedShipDate": "2016-03-21",
            "OrderType": "B2C",
            "ShipToNo": "S00937314",
            "Cur": "USD",
            "Site": "CFS",
            "Lines": [
                {
                    "LN": "1",
                    "PN": "SK5482-01",
                    "Qty": 1,
                    "CustomsValue": 24.38
                }
            ],
            "ShippingAddress": {
                "Name": "John Smith",
                "Company": "",
                "AddressLine1": "2080 Plaza on the Lake",
                "AddressLine2": "Suite 180",
                "City": "Austin",
                "State": "TX",
                "Country": "US",
                "PostalCode": "78746",
                "Phone": "530 418 4208",
                "Email": "john@gmail.com"
            },
            "BillingAddress": {
                "Name": "Jenny Smith",
                "Company": "",
                "AddressLine1": "11 Jomar Rd",
                "AddressLine2": "",
                "City": "Shoreham",
                "State": "NY",
                "Country": "US",
                "PostalCode": "11786",
                "Phone": "631 301 8563",
                "Email": ""
            },
            "Shipping": {
                "CarrierCode": "UPS",
                "CarrierService": "EXP",
                "POE": "LAX"
            }
        }
    ]
}

Example response body

JSON | XML
{
    "Orders": [
        {
            "DN": "83024510125",
            "Status": "Success"
        },
        {
            "DN": "83095103853",
            "Status": "Failed",
            "Message": "This order already exists."
        }
    ]
}

Request body

Version Required. We have different versions of this service. The simplest, and recommended version for all new clients, is version 1.1, which is described here. Unless otherwise instructed by our fulfilment team, you can always fill in this field with a value of "1.1".
Orders Required. This is the list of orders that you want to send to PCH. You can include 1 order, or many orders, but note that we will only allow up to 250 orders per request. If you have more than 250 orders to send, then you have to break them up into batches of 250 orders (or fewer) per request.

Order header

DN Required. This is your delivery order number, and it is the most important piece of information about your order. Our team will always use this number as a reference when exchanging information with you.

Note that this number must always be unique. We will do a check and reject your order if we have already received another order from you with the same number.
Created Required. This is the date when you created (or received) this order. The format is yyyy-mm-dd. You do not have to include the time. This date is printed on your paper packing list, which we will place inside the box when we pack and ship your order.
PODate Required. This is the purchase order reference date. The format is yyyy-mm-dd. You do not have to include the time.
RequestedShipDate Optional. This is the date when you want our fulfilment facility to ship your order. The format is yyyy-mm-dd. You do not have to include the time.
OrderType Optional. This field can have a value of "B2B" or "B2C". "B2B" stands for business-to-business (when you have sold your product to another business, such as a retailer) and "B2C" stands for business-to-consumer (when you have sold your product directly to your end-customer).

If omitted, the order type will default to "B2C".
ShipToNumber Optional. ???
Cur Optional. Further down, on the order line, you will find a field for customs value. This is the currency of the customs value. We use the ISO 4217 alphanumeric currency code, e.g. "USD" for United States Dollar.

If omitted, the currency will default to USD.
Site Optional. This is the code of the facility from where you want this order to be fulfilled. We currently have 3 facilities:
  • CFS - Shenzhen, China (For fulfilment from China)
  • USH - New York, US (Used for returns)
  • EUH - Rotterdam, The Netherlands (Used for returns)
The bulk of our fulfilment activity happens in Shenzhen, China (code "CFS"). If you omit this field it will default to CFS. Our fulfilment analysts will give you more information on how PCH can help you to manage returns through our sites in New York and Rotterdam.

Order lines

You must include at least one line in your order.

LN Required. This is the order line number, and we use it to uniquely identify each line in your order. It can be numbers (1, 2, 3...) or strings (a, b, c...). We will print the line number on your paper packing list.
PN Required. This is the part number. Note that you do not have to send any other part details, such as the description or weight. This is because we store the full details of your parts in our warehouse management system, and we keep it up to date, and any part details required during the pick, pack and ship process will be retrieved from there.

Please take note that we must have stock for this part in our fulfilment facility.
Qty Required. This is the number of parts that were ordered, and should be a positive, whole number.
CustomsValue Optional. This is the value of the part (a single unit) for the purpose of customs declaration. When we ship your order, we have to include details about the value of your package for the customs office of the country where your package will be delivered, so that they can charge duty and tax if needed.

Depending on your agreement with us, our fulfilment team might manage this price on your behalf, in which case you can omit this field.

Shipping and billing address

We will ship your order to the party that you specify in the shipping address, and the billing address contains the details of the party that was billed for the order. (For most of your orders the 2 addresses will be the same.) Both addresses are required.

Note: We suggest that you keep the length of all address fields within 40 characters. This is because the shipping labels of our carriers have a fixed width, and any fields longer than 40 characters might result in printing over the edge of the label.

Name Required. The name of the individual at this address.
Company Optional. The name of the company at this address.
AddressLine1 Required. This is the first line of the address, used in most cases for the street number and name.
AddressLine2 Optional. This is a second address line that we make available to you, in case the street details are too long to fit into the first line.
City Required. This is the name of the city.
State For US addresses this field is required, and it is the 2-letter US state code (not the state name). For other countries it is optional and you can provide the local state code, or state name, or leave it blank.
Country Required. This is the country code (not the country name). We use the ISO 3166 2-letter code, e.g. "US" for United States of America.
PostalCode Optional. This field is only required for countries that use postal or zip codes.
Phone Required. The contact phone number of the person or company at this address.
Email Optional. The contact e-mail address of the person or company at this address.

Shipping details

CarrierCode
and
CarrierService
Optional. There are 2 ways for us to determine which carrier to ship your order with:

  1. Demanded carrier
    This is where you request that we ship your order with a specific carrier. You do this by populating the "CarrierCode" and "CarrierService" fields. For example, you might request "UPS" and "EXP", which means that we will ship your order with UPS, and we will use the Express service level. The options that you have available will be communicated to you by our fulfilment team.

  2. Auto carrier determination
    If you leave these fields blank, then we will analyse your order and automatically assign a carrier to it. Amongst the factors that we consider are the ship to country and the weight of your order.

Response body

Orders We will quote each order that you have sent to us in the response, and we will indicate whether the order was successfully received or not.
DN This is the number of the delivery order that you have sent to us.
Status Status indicates if we have successfully received your order and can have a value of "Success" or "Failed".
Message If status has a value of "Failed", we will include a short message to explain why we were not able to receive your order.

Cancel a delivery order

POST https://dataflo.pchintl.com/api/v1/DO/Cancellations

Example request body

JSON | XML
{
    "Orders": [
        {
            "DN": "83024510125",
            "Site": "CFS",
            "Created": "2016-03-17",
            "PODate": "2017-05-25",
            "ShippingAddress": {
                "Name": "John Smith",
                "Company": "",
                "AddressLine1": "2080 Plaza on the Lake",
                "AddressLine2": "Suite 180",
                "City": "Austin",
                "State": "TX",
                "Country": "US",
                "PostalCode": "78746",
                "Phone": "530 418 4208",
                "Email": "john@gmail.com"
            },
            "BillingAddress": {
                "Name": "Jenny Smith",
                "Company": "",
                "AddressLine1": "11 Jomar Rd",
                "AddressLine2": "",
                "City": "Shoreham",
                "State": "NY",
                "Country": "US",
                "PostalCode": "11786",
                "Phone": "631 301 8563",
                "Email": ""
            }
        }
    ]
}

Example response body

JSON | XML
{
    "Orders": [
        {
            "DN": "83024510125",
            "Status": "Success"
        },
        {
            "DN": "83095103853",
            "Status": "Failed",
            "Message": "Cannot be cancelled because pick, pack and ship is already in progress."
        }
    ]
}

Please note that unfortunately we will not always be able to cancel your order. If our fulfilment site has already started to pick, pack and ship your order, then you will no longer be able to cancel it. A number of minutes, or a few hours may pass between the time that you send the delivery order to us until it is processed (this depends on the time of the day and the activity at our fulfilment site) and during this window you have an opportunity to still cancel the order.

We suggest that you always send a request to us when you want to cancel an order, regardless of the time that has passed, and then check the response from us to see if it was successful or not.

Request body

Orders Required. This is the list of orders that you want to cancel. You can include up to 250 orders in each request.
DN Required. This is the number of the delivery order that you want to cancel.
Site Optional. This is the code of the site where the delivery order was sent to. If you omit this field, we will use a default value of "CFS".
PODate Required. This is the purchase order reference date. The format is yyyy-mm-dd. You do not have to include the time.

Shipping and billing address

We will ship your order to the party that you specify in the shipping address, and the billing address contains the details of the party that was billed for the order. (For most of your orders the 2 addresses will be the same.) Both addresses are required.

Note: We suggest that you keep the length of all address fields within 40 characters. This is because the shipping labels of our carriers have a fixed width, and any fields longer than 40 characters might result in printing over the edge of the label.

Name Required. The name of the individual at this address.
Company Optional. The name of the company at this address.
AddressLine1 Required. This is the first line of the address, used in most cases for the street number and name.
AddressLine2 Optional. This is a second address line that we make available to you, in case the street details are too long to fit into the first line.
City Required. This is the name of the city.
State For US addresses this field is required, and it is the 2-letter US state code (not the state name). For other countries it is optional and you can provide the local state code, or state name, or leave it blank.
Country Required. This is the country code (not the country name). We use the ISO 3166 2-letter code, e.g. "US" for United States of America.
PostalCode Optional. This field is only required for countries that use postal or zip codes.
Phone Required. The contact phone number of the person or company at this address.
Email Optional. The contact e-mail address of the person or company at this address.

Response body

Orders We will quote each order that you have sent to us in the response, and we will indicate whether the order was successfully cancelled or not.
DN This is the number of the delivery order that you have sent to us.
Status Status indicates if we were able to cancel your order or not, and can have a value of "Success" or "Failed".
Message If status has a value of "Failed", we will include a short message to explain why we were not able to cancel your order.