Create or Update Multiple Products

HTTP Request

POST /v1/products/bulk

Summary

This operation creates and updates multiple products at once in the master catalog.

Request URLs

Sandbox: https://shipping-api-sandbox.pitneybowes.com/shippingservices/fulfillment/v1/products/bulk
Production: https://shipping-api.pitneybowes.com/shippingservices/fulfillment/v1/products/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

Name

Data Type

Description

products

Array[Products Object]

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

products.operation

String

Specifies whether to create or update. Enter one of the following:
  • CREATE

  • UPDATE

Products Object

Name

Data Type

Description

clientId

String

Required. The client ID assigned by Pitney Bowes.

vendorDetails

Object

Note: vendorDetails is an optional field. But when vendorDetails object is given, both vendorDetails.name and vendorDetails.number are required to be provided.

vendorDetails.name

String

Name of the vendor.

Maximum length: 50 characters

vendorDetails.number

String

The vendor identifier.

Maximum length: 30 characters

productType

String

Required. Identifies the product as one of the following:

  • ITEM

  • KIT

sku

String

Required. The SKU used to track the product in the warehouse.

Maximum length: 30 characters

createDate

String

The date the product was created in the client system, specified in the ISO 8601 format:

YYYY-MM-DDThh:mm:ss.sss±hhmm

updateDate

String

The date the product was modified in the client system, specified in the ISO 8601 format:

YYYY-MM-DDThh:mm:ss.sss±hhmm

fulfillmentRegion

String

Where the product is sent for fulfillment. Possible values:

  • PB_ONLY (default)

  • THIRD_PARTY (Reserved for future use)

  • ALL (Reserved for future use)

details

Product Details Object

Required.

options

Array[Object]

Defines available options for the product.

options.name

String

A product option. Possible values:

  • Color

  • ModelName

  • Size

  • Style

  • Author, publisher

  • book_binding

  • BrandName

  • CLASS

  • DataSource

  • DEPARTMENT

  • DimensionsIsVerified

  • book_edition

  • ExcludeFromPickLists

  • FulfillmentService

  • HazMatClass

  • InternalID

  • InventoryManagement

  • InventoryUpdates

  • IsPriorityMailPackaging

  • MasterCaseQty

  • MPN

  • PackagingType,ProShip_PackagingType

  • ProductFamilyID

  • ProductFDAIngredients

  • ProductLaunchDate

  • ProductName

  • SKUID

  • title

  • WeightIsVerified

options.code

String

A selectable code for the specified option, such as a style code or color code.

Maximum length: 760 characters

options.description

String

A description of the option.

Maximum length: 35 characters

active

Boolean

The status of the product. If true, the product is active. If false, the product is inactive.

status

String

Possible values:

  • PUBLISHED (default)

  • UNPUBLISHED

shippingAttributes

Object

shippingAttributes.shipsAlone

Boolean

The product is a ship alone.

Default value: false

shippingAttributes.dropShip

Boolean

The product is fulfilled by drop shipper.

Default value: false

shippingAttributes.safetyFactor

Number

Reserved for future use.

returnParameters

returnParameters.returnable

Boolean

Indicates whether the product can be returned.

Default value: true

returnParameters.returnWindow

Number, up to 1 decimal place

The number of days allowed for returns. To indicate no limit, enter 0.

prePackagedBoxQuantity

Number

The number of units in a prepackaged box.

physicalUnitDetails

Object

The product’s weight and dimensions.

physicalUnitDetails.weight

Number, up to 4 decimal places

Weight.

physicalUnitDetails.weightUOM

String

The unit of measurement for the product’s weight. Possible value:

  • LB: Pounds

physicalUnitDetails.dimensions

Dimensions Object

The product’s dimensions.

physicalCaseDetails

Object

physicalCaseDetails.caseWeight

Number, up to 4 decimal places

The weight of one item of this type of commodity.

physicalCaseDetails.unitOfMeasurement

String

The unit of measurement for the commodity’s weight. Possible value:

  • LB: Pounds

physicalCaseDetails.caseDimension

Dimensions Object

The case dimensions.

physicalCaseDetails.standardQuantity

Number, up to 1 decimal place

Standard case quantity for this SKU, must be greater than 0.

inventoryParameters

Inventory Parameters Object

additionalLanguageSupport

Array[Object]

additionalLanguageSupport.reference

String

The locale for additional language support on the packing slip. For example: FR_CA, ES_MX, DE_DE, etc.

Maximum length: 10 characters

additionalLanguageSupport.value

String

The description of the product for the specified locale.

Maximum length: 255 characters

Response Elements

Name

Data Type

Description

products

Array[Object]

The products. Each object in the array is a separate product.

products.clientId

String

The client identifier assigned by Pitney Bowes.

products.sku

String

The SKU used to track the product in the warehouse.

products.status

String

This is either PUBLISHED or UNPUBLISHED.

Sample Request

curl -X POST ".../v1/products/bulk" \
-H "Authorization: Bearer <oauth_token>" \
-H "X-PB-TransactionId: <unique_identifier>" \
-d '
{
    "products": [ {
        "clientId": "1234",
        "productType": "KIT",
        "sku": "1642789877_1",
        "details": {
            "description": "sweater dress"
        },
        "operation": "CREATE"
    }, {
        "clientId": "1234",
        "productType": "KIT",
        "sku": "1642789877_2",
        "details": {
            "description": "patterned dress"
        },
        "operation": "CREATE"
        }
    }, {
        "clientId": "1234",
        "productType": "KIT",
        "sku": "1642789877_3",
        "details": {
            "description": "tunic dress"
        },
        "operation": "CREATE"
        }
    } ]
}'

Sample Response

{
    "products": [ {
        "clientId": "1234",
        "sku": "1642789877_1",
        "status": "PUBLISHED"
    },{
        "clientId": "1234",
        "sku": "1642789877_2",
        "status": "PUBLISHED"
    },{
        "clientId": "1234",
        "sku": "1642789877_3",
        "status": "PUBLISHED"
    } ]
}

Error Codes

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