Create a Priority Mail Open and Distribute (PMOD) Label¶
HTTP Request¶
POST /v1/shipments
Summary¶
This operation purchases and prints a label for USPS®-approved Priority Mail Open and Distribute (PMOD) container.
PMOD uses Priority Mail to send containers containing lower classes of mail to USPS-authorized destination centers for processing, expediting the transport of the lower-class mailings. To use PMOD, shippers prepare their mailings and place them in approved USPS Priority Mail containers (sacks, trays, or tubs). They then affix PMOD labels to the containers and ship them to USPS-authorized centers, which open the containers and process the individual mailings according to their mail classes. The postage price is based on the weight of the contents (excluding the tare weight of the external container) and on regular Priority Mail distance-based prices.
For more information on PMOD, contact Client Support at ClientSupportTechServices@pb.com.
Considerations¶
PMOD labels are supported for domestic shipments only.
The maximum weight allowed for each container is 70 pounds.
Stealth postage is not allowed with PMOD. You cannot hide postage. If you set the
HIDE_TOTAL_CARRIER_CHARGE
option totrue
, it will be ignored.The ADD_TO_MANIFEST shipment option is always considered
true
for PMOD labels. If you set the option tofalse
, the API ignores the setting and still considers the option to betrue
.After you create the PMOD label, you must add the label to PS Form 3152. See Create a Manifest for PMOD Shipments.
Request URLs¶
Sandbox: https://shipping-api-sandbox.pitneybowes.com/shippingservices/v1/shipments
Production: https://shipping-api.pitneybowes.com/shippingservices/v1/shipments
Query Parameter¶
Name |
Description |
---|---|
includeDeliveryCommitment |
If set to Valid values:
See also: |
Request Headers¶
Name |
Description |
---|---|
Authorization |
Required. OAuth token generated using the Generate an OAuth Token API. |
Content-Type |
Required. The media type of the request entity. Set this to |
Accept-Language |
Language and country code. Default: |
X-PB-TransactionId |
Required. A unique identifier for the transaction, up to 25 characters. The following characters are allowed: letters, numbers, hyphens ( Important: Ensure this is a unique ID. |
X-PB-Shipper-Rate-Plan |
Shipper rate plan, if applicable. For more information, see this FAQ. |
X-PB-Integrator-CarrierId |
Negotiated services rate, if applicable. |
X-PB-UnifiedErrorStructure |
Recommended. Set this to |
Request / Response Elements¶
Required fields are marked Required. All other fields are optional, except fields marked RESPONSE ONLY, which appear only in the response.
Name |
Data Type |
Description |
---|---|---|
fromAddress |
Required. Set this to the merchant’s address. The following fields are required:
|
|
toAddress |
Required. Set this to the destination facility. The shipper is responsible for providing the destination facility address information. The addressing data should be derived from the Drop Entry files located at the USPS FAST website: http://fast.usps.com. If the If the option is set to Note: In some cases the ZIP code on a PMOD label does not correspond to the city and state referenced. For example, the Washington DC Network Distribution Center (NDC) is addressed as |
|
parcel |
Required. The parcel’s weight and dimensions. |
|
rates |
Array[Rates Object] |
Required. Specifies the carrier and services. In a response, the array also specifies the service charges. The array takes only one object. The object requires the following fields and values:
|
documents |
Array[Documents Object] |
Required. Defines the label. |
shipmentOptions |
Array[Object] |
Required. Each object in this array defines a shipment option. Each object takes the following two fields, which take string values:
The SHIPPER_ID shipment option is required. Set this to the merchant’s Shipper ID. For all available options, see Shipment Options. |
shipmentId |
String |
RESPONSE ONLY. The unique identifier for the shipment generated by the system. |
parcelTrackingNumber |
String |
RESPONSE ONLY. The tracking number assigned to the shipment. |
PMOD Options¶
The rates.specialServices.inputParameters
array must contain a separate object for each of the following options. For an example, see the Sample Request after this table.
Name |
Description |
---|---|
ORIGIN_ENTRY_FACILITY |
Required. The type of facility where the shipment begins, i.e., the type of facility that will pick up the packages or receive your drop off of the packages. To determine which type of facility to use, visit the USPS FAST website at http://fast.usps.com. Possible values:
Note: Do not use the facility for the |
DESTINATION_ENTRY_FACILITY |
Required. The type of facility the shipment is delivered to, i.e., where USPS opens the container and processes the individual mailings according to their mail classes. To determine which type of facility to use, visit the USPS FAST website at http://fast.usps.com. Possible values:
Note: The destination facility’s address is entered in the |
ENCLOSED_MAIL_CLASS |
Required. Possible values:
|
ENCLOSED_PARCEL_TYPE |
Required. Possible values:
|
ENCLOSED_PAYMENT_METHOD |
Required. If the enclosed parcels are evidenced and paid via USPS e-VS (Electronic Verification System), set this to |
DESTINATION_ENTRY_FACILITY_NAME |
The facility name. Facility names can be found on fast.usps.com. Required for all facilities except |
NASS_CODE |
The NASS (National Air Surface System) code for the NDC, ADC, ASF, or SCF destination facility. The code consists of three to five alpha-numeric characters and can be found on fast.usps.com. Required for all facilities except |
Sample Request¶
curl -X POST ".../v1/shipments" \
-H "Authorization: Bearer <oauth_token>" \
-H "Content-Type: application/json" \
-H "X-PB-TransactionId: <unique_transaction_id>" \
-H "X-PB-UnifiedErrorStructure: true" \
-d '
{
"fromAddress": { ... },
"toAddress": { ... },
"parcel": {
"weight": {
"unitOfMeasurement": "OZ",
"weight": "80"
}
},
"rates": [ {
"carrier": "USPS",
"serviceId": "PMOD",
"parcelType": "SACK",
"specialServices": [ {
"specialServiceId": "PMOD_OPTIONS",
"inputParameters": [ {
"name": "ORIGIN_ENTRY_FACILITY",
"value": "DDU"
},{
"name": "DESTINATION_ENTRY_FACILITY",
"value": "DDU"
},{
"name": "ENCLOSED_PARCEL_TYPE",
"value": "PKG"
},{
"name": "ENCLOSED_MAIL_CLASS",
"value": "STDPOST"
},{
"name": "ENCLOSED_PAYMENT_METHOD",
"value": "NONELECTRONIC"
} ]
} ],
"inductionPostalCode": "06484"
} ],
"documents": [ {
"type": "SHIPPING_LABEL",
"contentType": "URL",
"size": "DOC_8X11",
"fileFormat": "PDF",
"printDialogOption": "NO_PRINT_DIALOG"
} ],
"shipmentOptions": [ {
"name": "SHIPPER_ID",
"value": "9024324564"
},{
"name": "ADD_TO_MANIFEST",
"value": "true"
},{
"name": "MINIMAL_ADDRESS_VALIDATION",
"value": "false"
} ]
}'
Sample Response¶
{
"fromAddress": { ... },
"toAddress": { ... },
"parcel": {
"weight": {
"unitOfMeasurement": "OZ",
"weight": "80"
}
},
"rates": [ {
"carrier": "USPS",
"parcelType": "SACK",
"inductionPostalCode": "06484",
"specialServices": [ {
"specialServiceId": "PMOD_OPTIONS",
"inputParameters": [ {
"name": "ORIGIN_ENTRY_FACILITY",
"value": "DDU"
},{
"name": "DESTINATION_ENTRY_FACILITY",
"value": "DDU"
},{
"name": "ENCLOSED_PARCEL_TYPE",
"value": "PKG"
},{
"name": "ENCLOSED_MAIL_CLASS",
"value": "STDPOST"
},{
"name": "ENCLOSED_PAYMENT_METHOD",
"value": "NONELECTRONIC"
} ]
} ],
"dimensionalWeight": {
"unitOfMeasurement": "OZ",
"weight": 0
},
"deliveryCommitment": {
"minEstimatedNumberOfDays": "1",
"maxEstimatedNumberOfDays": "1",
"estimatedDeliveryDateTime": "2021-04-24",
"guarantee": "NONE",
"additionalDetails": "By end of Day"
},
"serviceId": "PMOD",
"totalCarrierCharge": 7.81,
"baseCharge": 7.81,
"currencyCode": "USD",
"destinationZone": "1"
} ],
"documents": [ {
"type": "SHIPPING_LABEL",
"size": "DOC_8X11",
"fileFormat": "PDF",
"contentType": "URL",
"contents": "https://.../usps/253536747/outbound/label/8cb101763888485296df9e08f58d25e3.pdf"
} ],
"shipmentOptions": [ {
"name": "HIDE_TOTAL_CARRIER_CHARGE",
"value": "false"
},{
"name": "SHIPPER_ID",
"value": "9024324564"
},{
"name": "ADD_TO_MANIFEST",
"value": "true"
},{
"name": "MINIMAL_ADDRESS_VALIDATION",
"value": "false"
},{
"name": "SHIPPING_LABEL_RECEIPT",
"value": "noOptions"
} ],
"shipmentId": "USPS2200253403883570",
"parcelTrackingNumber": "9412309838644503839917"
}
Sample PMOD Label¶
Error Codes¶
For a list of all error codes returned by the Ecommerce APIs, please see Error Codes.