Create or Update Multiple Orders

HTTP Request

POST /v1/orders/bulk

Summary

This operation submits multiple orders in a single request, up to 200 orders. Each order is processed independently.

Request URLs

Sandbox: https://shipping-api-sandbox.pitneybowes.com/shippingservices/fulfillment/v1/orders/bulk
Production: https://shipping-api.pitneybowes.com/shippingservices/fulfillment/v1/orders/bulk

Request Headers

Name


Description

Authorization

Required. OAuth token generated using the Generate an OAuth Token API.

X-PB-TransactionId

Required. A unique identifier for the request, up to 25 characters. The following characters are allowed: letters, numbers, hyphens (-), and underscores (_).

Important: Ensure this is a unique ID.

Request Elements

This POST operation sends the orders array:

Name

Data Type

Description

orders

Array[Orders Object]

Required. The orders. Each object in the array is a separate order. You can submit up to 200 orders.

Orders Object

Required fields are marked Required. All other fields are optional.

Name

Data Type

Description

clientId

String

Required. The client ID assigned by Pitney Bowes.

clientOrderId

String

Required. The order ID assigned by the client.

Maximum length: 50 characters

customerOrderId

String

The customer-specific order number. Typically this is the order number from the website or ERP system.

Maximum length: 50 characters

inputShippingDetails

Shipping Details Object

Required. The requested shipping-service details for the order.

orderType

String

The type of order. Possible values:

  • eCom (default)

  • Retail

createDate

String

Required. The date and time the order was created in the client system, specified in the ISO 8601 format: YYYY-MM-DDThh:mm:ssZ

fromNode

String

The warehouse facility ID.

shipOnDate

String

The date and time by which the order is promised to be shipped, specified in the ISO 8601 format: YYYY-MM-DDThh:mm:ssZ

fulfillmentReleaseDate

String

The date and time the order is to be released for fulfillment, specified in the ISO 8601 format: YYYY-MM-DDThh:mm:ssZ

promisedDeliveryDate

String

The date and time the order is promised to be delivered, specified in the ISO 8601 format: YYYY-MM-DDThh:mm:ssZ

orderHandling

String

Possible value:

  • X: Normal (default)

  • R: Rush order (Reserved for future use)

  • E: Emergency order (Reserved for future use)

orderLines

Array[Order Lines Object]

Required. The items included in the order.

orderCharges

Order Charges Object

Cost details.

toAddress

Address Object

Required. The order’s destination address.

billingAddress

Address Object

The order’s billing address.

isGift

Boolean

If true, the order is a gift.

giftMessageText

String

The gift message to be printed on the pack slip and included in the shipment.

Maximum length: 1,024 characters

valueAddedServices

Array[Object]

Reserved for future use.

paymentDetails

Array[Object]

Reserved for future use.

customsInfo

Object

Customs information for an international order.

customsInfo.customsDeclaredValue

Number

The value that is declared in customs.

customsInfo.importerCustomsReference

String

A reference number used by the importer, such as a VAT number, PO number, or insured number.

Maximum length: 100 characters

customsInfo.importerCustomsReferenceType

String

The type of reference number.

Maximum length: 50 characters

internalNotes

String

Any notes associated with the order for internal reference.

Maximum length: 255 characters

dropShipInfo

Object

The billing address.

dropShipInfo.companyName

String

Name of the company.

Maximum length: 50 characters

dropShipInfo.address

String

Street address or P.O. Box. Include the apartment number if applicable. You can specify up to three address lines.

Maximum length: 100 characters

dropShipInfo.city

String

The city or town.

Maximum length: 50 characters

dropShipInfo.state

String

The state or province.

Maximum length: 50 characters

dropShipInfo.postalCode

String

The postal code or ZIP code.

Maximum length: 20 characters

Response Elements

The response returns an object with the fields described here.

Name

Data Type

Description

orders

Array[Object]

The orders. Each object in the array is a separate order.

orders.clientId

String

The client ID assigned by Pitney Bowes.

orders.clientOrderId

String

The order ID assigned by the client.

orders.orderId

String

The order ID assigned by Pitney Bowes.

orders.status

String

The status of the order.

Sample Request

curl -X POST ".../v1/orders/bulk" \
-H "Authorization: Bearer <oauth_token>" \
-H "X-PB-TransactionId: <unique_identifier>" \
-d '
{
    "orders": [ {
        "clientId": "1234",
        "clientOrderId": "1643724181678",
        "customerOrderId": "111-212-1687792",
        "inputShippingDetails": {
            "carrier": "PITNEY BOWES",
            "serviceId": "PARCEL",
            "serviceName": "PARCEL SELECT",
            "trackingNumber":"9560533222"
        },
        "orderType": "eCom",
        "createDate": "2022-02-07T01:20:00Z",
        "fromNode": "160",
        "shipOnDate": "2022-02-08T01:20:00Z",
        "fulfillmentReleaseDate": "2022-02-09T01:20:00Z",
        "promisedDeliveryDate": "2022-02-10T01:20:00Z",
        "orderHandling": "E",
        "orderLines": [ {
            "lineId": 1,
            "sku": "0001-0001",
            "unitPrice": 10,
            "orderedQuantity": 5,
            "lineTotal": 50,
            "originCountryCode":"US",
            "originStateProvince":"CT",
            "inventoryType":"NEW"
        },
        ...
        ],
        "orderCharges": {
            "orderCurrency": "USD",
            "shippingAmount": 10,
            "totalItemAmount": 150,
            "dutyDetails": [ {
                "name": "COUPON",
                "fee": 5,
                "currency": "USD",
                "percentage": 1
            } ],
            "totalTaxAmount": 5,
            "taxDetails": [ {
                "name": "SALES TAX",
                "fee": 5,
                "currency": "USD",
                "percentage": 1
            } ],
            "totalDiscountAmount": 5,
            "discountDetails": [ {
                "name": "COUPON",
                "fee": 5,
                "currency": "USD"
            } ],
            "otherChargeDetails": [ {
                "name": "SUPPLIER_FEE",
                "fee": 0
            } ],
            "totalOrderAmount": 160
        },
        "toAddress": {
            "name": "John Smith",
            "company": "ABC",
            "phone": "111-111-1111",
            "email": "john@example.com",
            "addressLines": [
                "2352 Bent Creek Rd"
            ],
            "cityTown": "Auburn",
            "stateProvince": "AL",
            "postalCode": 36830,
            "countryCode": "US"
        },
        "billingAddress": {
            "name": "John Smith",
            "company": "ABC",
            "phone": "111-111-1111",
            "email": "john@example.com",
            "addressLines": [
                "2352 Bent Creek Rd"
            ],
            "cityTown": "Auburn",
            "stateProvince": "AL",
            "postalCode": 36830,
            "countryCode": "US"
        },
        "isGift": false
    },
    ...
    ]
}'

Sample Response

{
    "orders": [ {
        "clientId": "1234",
        "clientOrderId": "1643724181678",
        "orderId": "ORA0006982253888409600US",
        "status": "RECEIVED"
    },{
        "clientId": "1234",
        "clientOrderId": "1643724181678",
        "orderId": "ORA0009522135148007424US",
        "status": "RECEIVED"
    },
    ...
    ]
}

Error Codes

For lists of error codes returned by the Fulfillment APIs, please see 80-Prefix Error Codes (Fulfillment APIs).