Create a Manifest for PMOD Shipments

HTTP Request

POST /v1/manifests

Summary

This operation creates a PS Form 3152 to list PMOD shipments. The shipments must be requested by the same shipper on the same day and inducted at the same ZIP code or origin entry facility.

Considerations

  1. All shipments with rates.serviceId field set to PMOD are eligible for inclusion in the manifest. Such shipments are considered to have the ADD_TO_MANIFEST shipment option enabled, no matter how the option is explicitly set. Setting the option to false has no effect. The API still considers the option to be enabled.

  2. A shipment is eligible for inclusion both on and before its shipment date.

  3. If an eligible shipment is not included in a manifest request within 24 hours of the specified shipment date, it is automatically manifested.

  4. Up to 7000 shipments can be included in a single manifest request.

  5. Shipments, once manifested, cannot be re-manifested.

  6. When creating the manifest, set the MANIFEST_TYPE to PMOD, as shown in the sample request, below.

  7. You can add shipments to the manifest by specifying Shipper ID, tracking numbers, or both:

    • If you specify Shipper ID, the form will include all eligible shipments created with that Shipper ID. To specify Shipper ID, add the SHIPPER_ID parameter to the parameters array.

    • If you specify tracking numbers, the form will include all eligible shipments with those tracking numbers. Specify tracking numbers in the parcelTrackingNumbers array.

    Note: If you specify both Shipper ID and tracking numbers, ensure the tracking numbers belong to the Shipper ID or the API will return an error.

  8. You can filter further by specifying an inductionPostalCode. When specified, the inductionPostalCode value in the manifest request must match the rates.inductionPostalCode value of the shipment. If a shipment has no rates.inductionPostalCode, the value in the manifest request must match the shipment’s fromAddress.postalCode.

  9. If a manifest request contains shipments with different inductionPostalCode values, then a multi-page manifest is created, with one inductionPostalCode value per page. The pages are accessed via a single PDF.

    For example, the operation will create multiple forms if the list of matching PMOD labels spans multiple induction ZIP codes or multiple origin entry facilities.

  10. The following address fields are required in the fromAddress object:

    • addressLines

    • postalCode

    • countryCode

  11. Manifest documents retrieved through URLs are available for 24 hours after creation.

Request URLs

Sandbox: https://shipping-api-sandbox.pitneybowes.com/shippingservices/v1/manifests
Production: https://shipping-api.pitneybowes.com/shippingservices/v1/manifests

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 application/json.

X-PB-TransactionId

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

Important: You must ensure this is a unique id.

X-PB-UnifiedErrorStructure

Recommended. Set this to true to use the standard error object if an error occurs.

Request / Response Elements

The API call sends and receives a Manifest Object. The following table describes all possible fields in a Manifest Object.

Important

Some fields in the Manifest Object might not apply to your operation and are marked accordingly.

Name

Data Type

Description

carrier

String

Required. The carrier to which the manifest applies. For some operations, this field is not present in the response.

Valid values:

  • USPS: PB Expedited or PMOD

  • PBCS: PB Standard

  • PBPresort: PB Presort

submissionDate

String

Required. The date the shipments are to be tendered to the carrier, entered as YYYY-MM-DD.

fromAddress

Address Object

Conditional. The shipment origin address.

Required for:

inductionPostalCode

String

Conditional. Postal code where the shipments are tendered to the carrier.

This field does not apply to PB Standard manifests.

parcelTrackingNumbers

Array[String]

Identifies shipments by their tracking numbers. List one or more tracking numbers, separated by commas. Enter each tracking number as a separate String.

If the carrier field is set to PBCS, use the long version of the tracking number.

parameters

Array[Object]

Conditional. Each object in the array defines a different manifest parameter. This field is used only in the request and is not returned in the response.

Required for PB Standard Manifests (Closeouts).

parameters.name

String

The name of the manifest parameter.

parameters.value

String

The value of the manifest parameter.

manifestId

String

RESPONSE ONLY. The unique manifest ID. This field is not returned for APAC Services.

This field is not returned for APAC Services.

manifestTrackingNumber

String

RESPONSE ONLY. The manifest tracking number. This is returned only if carrier has a value of USPS.

documents

Array[Documents Object]

RESPONSE ONLY. The manifest.

This field is not returned for a PB Standard manifest.

Sample Request

curl -X POST .../v1/manifests \
-H "Authorization: Bearer <oauth_token>" \
-H "Content-Type: application/json" \
-H "X-PB-TransactionId: <unique_transaction_id>" \
-H "X-PB-UnifiedErrorStructure: true" \
-d '
{
    "carrier": "USPS",
    "submissionDate": "2020-08-14",
    "fromAddress": {
        "company": "Supplies",
        "name": "John Smith",
        "phone": "203-555-0000",
        "email": "john@example.com",
        "residential": "false",
        "addressLines": [
            "27 Waterview Dr"
        ],
        "cityTown": "Shelton",
        "stateProvince": "CT",
        "postalCode": "06484",
        "countryCode": "US"
    },
    "parameters": [ {
        "name": "SHIPPER_ID",
        "value": "9024324564"
    },{
        "name": "MANIFEST_TYPE",
        "value": "PMOD"
    } ]
}'

Error Codes

For a list of all error codes returned by the Ecommerce APIs, please see Error Codes.