Create a PB Presort Pickup Slip

HTTP Request

POST /v1/manifests

Summary

A PB Presort pickup slip identifies the shipments in the pickup and contains a unique ID to identify the pickup run. The slip is handed to the Presort Services driver at the time of pickup. Before using PB Presort, please see the PB Presort Overview.

Prerequisites

To use PB Presort, a merchant must be enrolled with a PB Presort facility and receive a Mailer ID, Job number, and other information. Please see Onboard a Merchant to use PB Presort.

Things to Consider

  1. All shipments with the rates.carrier field set to PBPRESORT are eligible for inclusion in the pickup slip.

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

  3. Up to 7000 shipments can be included in a single pickup slip.

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

  5. When creating the pickup slip:

    • Set carrier to PBPRESORT.
    • The MANIFEST_TYPE manifest parameter is not required. It can be either left out or set to NORMAL.
  6. You can add shipments to the pick slip by specifying any combination of the following:

    • The Shipper ID in the SHIPPER_ID parameter to the parameters array. The pickup slip will include all eligible shipments created with that Shipper ID.
    • The tracking numbers in the parcelTrackingNumbers array. The pickup slip will include all eligible shipments with those tracking numbers.
    • The job number in the X-PB-ShipmentGroupId header.
  7. 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.

  8. If the pickup slip contains shipments with different inductionPostalCode values, then a multi-page pickup slip is created, with one inductionPostalCode value per page. The pages are accessed via a single PDF.

  9. If the pickup slip includes packages with different job numbers, the API generates a separate pickup slip for each job number.

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

  11. You cannot reprint or retry a pickup slip.

Request URIs for Pickup Slips

Sandbox: https://api-sandbox.pitneybowes.com/shippingservices/v1/manifests
Production: https://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, up to 25 characters.

Important: You must ensure this is a unique id.

X-PB-ShipmentGroupId The job number that represents the agreement between the merchant and PB Presort. This was provided by Pitney Bowes during merchant onboarding for PB Presort. You can specify only one job number per manifest request. To specify multiple job numbers, you must make make multiple API calls.
X-PB-Integrator-CarrierId The MID that applies to this pickup slip.
X-PB-UnifiedErrorStructure
Recommended. Set this to true to use the standard error object if an error occurs.

Request / Response Elements

See the above Things to Consider before creating the PB Presort pickup slip.

The API call sends and receives a manifest object. The table below describes all possible fields in a manifest object.

Some fields might not apply to your operation.

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
  • NEWGISTICS - Valid only in a Create Manifest request
  • PBPresort - Valid only in a Create Manifest request
submissionDate String

Required. The time and date the shipments are to be tendered to the carrier. The time and date must be in UTC/GMT and in one of the following formats:

  • YYYY-MM-DD
  • YYYY-MM-DD HH:mm:ss
  • YYYY-MM-DD HH:mm:ss.SSS
fromAddress address object Required. The shipment origin address.
inductionPostalCode String

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

This field does not apply to Newgistics manifests.

parcelTrackingNumbers Array[String]

Conditional. Identifies shipments by their tracking numbers. List one or more shipment tracking numbers, separated by commas.

This field does not apply to Newgistics manifests.

parameters Array[Object] 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.
        name String The name of the manifest parameter.
        value String The value of the manifest parameter.
manifestId String Response Only. The unique manifest ID.
manifestTrackingNumber String Response Only, USPS Only. The manifest tracking number.
documents Array[documents object]

Response Only. The manifest.

This field is not returned for a Newgistics manifest.

Sample Request

curl -X POST .../v1/manifests \
-H "Authorization: Bearer <oauth_token>" \
-H "Content-Type: application/json" \
-H "X-PB-TransactionId: 175da21e-1a70-450a-a4b7" \
-H "X-PB-UnifiedErrorStructure: true" \
-d '
{
    "carrier": "PBPRESORT",
    "submissionDate" : "2017-11-12",
    "parcelTrackingNumbers" : [
        "9261211111111100941418",
        "9261212233222100941419"
    ],
    "parameters": [ {
        "name": "SHIPPER_ID",
        "value": "9024324564"
    } ]
}

Sample Response

{
    "carrier": "PBPRESORT",
    "submissionDate" : "2017-11-12",
    "fromAddress": { ... },
    "parcelTrackingNumbers" : [
        "9261211111111100941418",
        "9261212233222100941419"
    ],
    "manifestId": "11111111100582",
    "documents": [ {
        "type": "MANIFEST",
        "contentType": "URL",
        "contents": "https://.../pbpresort/187143416/outbound/manifest/af5644f7134f4f649e673ce2583399f5.pdf"
    } ],
    "parameters": [ {
        "name": "SHIPPER_ID",
        "value": "9024324564"
    } ]
}

Error Codes

For a list of all PB Complete Shipping APIs error codes, see Error Codes.