# Overview

The Shipping APIs provide a unified, multi-carrier platform to rate shipments, generate labels, manage pickups, and track parcel movement from creation through delivery. These APIs support a wide range of carriers and services, enabling developers to integrate shipping functionalities into their applications with ease. The Shipping APIs are designed to handle single-parcel, multi-parcel, and high-volume workflows. They also include features for managing carrier accounts, configuring defaults, and handling post-shipment operations like reprints, cancellations, and tracking updates. With comprehensive documentation, sample code, and a sandbox environment for testing. 

If you are integrating for the first time, follow this path:

1. Authenticate before calling Shipping APIs
  - Start with the [Auth API](/openapi/auth/other/getaccesstoken) to generate an OAuth access token.
  - Send the token in the Authorization header for every request: `Authorization: Bearer <access_token>`.

2. Start with account and carrier setup
  - Use Get Carrier Accounts to identify available carrierAccountId values.
  - Use Get Carriers, Get Services, Get Parcel Types, and Get Special Services to discover what is valid for your scenario.

3. Validate shipment inputs before creating labels
  - Confirm address quality with the Address APIs.
  - For international shipments, prepare customs data and upload Electronic Trade Documents when required.

4. Rate first, then ship
  - Use Rate Shipment to compare options by carrier, rate group, rule set, Ship Via Code, or external system code.
  - Use Create Shipment to generate the label once the preferred option is selected.

5. Manage post-shipment operations
  - Reprint or cancel labels when needed.
  - Retrieve shipment details and tracking updates.
  - Schedule pickups, check pickup availability, and generate pickup documents.

6. Use Batch Shipments for high-volume processing
  - Use Batch Shipment APIs when creating large shipment volumes.
  - Choose synchronous bulk creation or asynchronous CSV import, then process and monitor using batchId.
  - Use batch status, shipment-level details, and batch void operations to manage exceptions at scale.

7. Optimize for production scale
  - Use Defaults to reduce repeated request fields.
  - Use Multipiece Shipment for multi-parcel workflows.
  - Use metadata, references, manifests, and reports for operational control and reconciliation.


Version: 1.0.0

## Servers

Sandbox Server
```
https://api-sandbox.sendpro360.pitneybowes.com/shipping
```

Production Server (uses live data)
```
https://api.sendpro360.pitneybowes.com/shipping
```

Sandbox Server for Canada
```
https://api-ppd.shipping360.pitneybowes.com/ca/shipping
```

Production Server for Canada
```
https://api.shipping360.pitneybowes.com/ca/shipping
```

## Security

### basicAuth

Type: http
Scheme: basic

### bearerAuth

Type: http
Scheme: bearer

## Download OpenAPI description

 - [Overview](https://docs.shipping360.pitneybowes.com/_bundle/openapi/shipping.yaml)

## Shipment

 - [GET /api/v1/carriers](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/getcarriers.md): The operation fetches all supported carriers. This service is used to get list of supported carriers and their properties.
 - [POST /api/v1/carrier-facility](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/carrierfacility.md): This operation locates Post Offices and other facilities for a given carrier. You can use this operation, for example, to locate all USPS Post Offices near a given postal code.
 - [GET /api/v1/countries](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/getcountries.md): The operation fetches list of supported destination countries for a provided carrier and origin country. If query parameters are not provided, it will default to `USPS` as carrier and `US` as origin c
 - [GET /api/v1/services](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/getservices.md): The operation fetches a list of supported services for a carrier with respect to specific origin and destination country. If query parameters are not provided, this will default to `USPS` as carrier,
 - [GET /api/v1/parcelTypes](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/getparceltypes.md): The operation fetches Parcel Types based on the provided carrier, origin county, and the destination country. If query parameters are not provided, this will default to `USPS` as carrier, `US` as both
 - [GET /api/v1/specialServices](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/getspecialservices.md): The operation fetches Special Services for a given carrier, service, origin country, and the destination country. If query parameters are not provided, it will default to `USPS` as carrier, `US` as bo
 - [GET /api/v1/carrierAccounts](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/getcarrieraccount.md): The operation retrieves onboarded Carriers with their Carrier Account IDs which uniquely identify multiple accounts of same carrier.
 - [GET /api/v1/shipments](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/getallshipments.md): The operation fetches all created Shipments. If query parameters are not provided, it will default endDate as current date, page as 1 and size as 10.
 - [POST /api/v2/shipments](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/createshipmentv2.md): > **Note:** This Request sample includes the full set of supported fields across all carriers. However, not all fields are applicable to every carrier. When making API calls from the doc portal, ensur
 - [POST /api/v2/rates](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/rateshipment.md): This operation generates rate Shop for a specified shipment without generating the labels.
 - [POST /api/v1/err/coverSheet](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/createerrcoversheet.md): This API generates Electronic Return Receipt (ERR) artifacts for a parcel, including a coversheet, ERR barcode, and ERR stamp. The response output can be configured using the `type` parameter to retur
 - [GET /api/v1/shipments/{shipmentId}](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/shipmentbyid.md): The operation retrieves shipment details using shipmentId.
 - [POST /api/v2/shipments/reprint](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/reprintshipmentbyidv2.md): This operation retrieves an existing shipping label associated with a shipment. The API uses the shipmentId returned by the original Create Shipment request. Use this API only if the original shipping
 - [POST /api/v2/shipments/cancel](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/cancelshipmentbyidv2.md): This operation cancels or voids a shipment label that has not been processed by the carrier. When you cancel an unused prepaid shipment label, the API initiates a request for an electronic refund.<br>
 - [GET /api/v1/err/shipments/{shipmentId}/signaturefile](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/getsignatureimageerr.md): This API provides a downloadable link containing the signature image for a specific ERR (Electronic Return Receipt) shipment. This signature image serves as Proof of Delivery (POD). <br> **What is Pro
 - [POST /api/v1/err/stamps/void](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/cancelstampserr.md): This operation cancels (voids) stamps generated for ERR (Electronic Return Receipt). - User needs to provide *Shipment IDs in the `stampIds` array to cancel those specific ERR stamps. - User can downl
 - [POST /api/v1/err/shipments/bpod](https://docs.shipping360.pitneybowes.com/openapi/shipping/shipment/downloadbpodfiles.md): This API operation is used to download bulk of ERR (*Electronic Return Receipt*) - POD (*Proof of Delivery*) files, which are specific to USPS carrier. <br /> User can download BPOD (*Bulk Proof of De
## Electronic Trade Document

 - [POST /api/v1/importUrl](https://docs.shipping360.pitneybowes.com/openapi/shipping/electronic-trade-document/uploadetd.md): Electronic Trade Documents Upload API is an international shipping document upload solution that simplifies global shipping needs and allows you to electronically upload customs documentation required
## Pickups

 - [POST /api/v1/pickups](https://docs.shipping360.pitneybowes.com/openapi/shipping/pickups/schedulepickup.md): Pickups endpoint allows you to schedule pickups with USPS, DHL Express, UPS and FedEx carriers for eligible shipments. The pickup schedule scope is determined by what you provide in the request: - **I
 - [GET /api/v1/pickups](https://docs.shipping360.pitneybowes.com/openapi/shipping/pickups/getpickups.md): Get Pickups
 - [PUT /api/v1/pickups/cancel](https://docs.shipping360.pitneybowes.com/openapi/shipping/pickups/cancelpickups.md): Cancel Pickups.
 - [GET /api/v1/pickups/{pickupId}/document](https://docs.shipping360.pitneybowes.com/openapi/shipping/pickups/getpickupdocument.md): The API retrieves the document for a scheduled pickup receipt using the pickupId, generated when the pickup is successfully scheduled.
 - [POST /api/v1/pickups/document](https://docs.shipping360.pitneybowes.com/openapi/shipping/pickups/cancelledpickupdocument.md): This operation generates a PDF receipt for pickup cancellations. It supports creating receipts for multiple cancelled pickups.
 - [POST /api/v1/pickups/availability](https://docs.shipping360.pitneybowes.com/openapi/shipping/pickups/checkpickupavailability.md): Validates if the requested carrier can perform a pickup at the provided address, given the shipment details and requested pickup date/time. The response also indicates: - If pickup is available at th
## Multipiece Shipment

 - [POST /api/v1/multipiece/shipments](https://docs.shipping360.pitneybowes.com/openapi/shipping/multipiece-shipment/multipieceshipment.md): The operation creates Multipiece Shipments. Shipments with multiple parcels sent to the same destination can be grouped together in a multipiece shipment. - UPS, FedEx, DHL Express, Suprmsys, Purola
 - [POST /api/v1/multipiece/rates](https://docs.shipping360.pitneybowes.com/openapi/shipping/multipiece-shipment/multipiecerates.md): The operation is used for rateshop and to get specific rate based on serviceId for Multipiece.
 - [GET /api/v1/multipiece/shipments/{shipmentId}/reprint](https://docs.shipping360.pitneybowes.com/openapi/shipping/multipiece-shipment/multipieceshipmentreprint.md): The operation is used to reprint the multipiece label. It takes the shipmentId of the multipiece shipment done. All supported carriers (UPS, FedEx, DHL Express, Suprmsys, Purolator, and Apple Express)
 - [PUT /api/v1/multipiece/shipments/{shipmentId}/cancel](https://docs.shipping360.pitneybowes.com/openapi/shipping/multipiece-shipment/multipieceshipmentcancel.md): The operation is used to cancel the multipiece label. It takes the shipmentId of the multipiece shipment done.
## Print

 - [POST /api/v1/document/print](https://docs.shipping360.pitneybowes.com/openapi/shipping/print/printdocument.md): It contains information about a label or a document, e.g., a shipping label, a customs form, manifest report etc., that pertains to a shipment or manifest.
 - [POST /api/v1/printer/mapping](https://docs.shipping360.pitneybowes.com/openapi/shipping/print/printermapping.md): printer mapping document
 - [GET /api/v1/printer/mapping](https://docs.shipping360.pitneybowes.com/openapi/shipping/print/getprintermapping.md): Get printer mapping document
 - [DELETE /api/v1/printer/mapping](https://docs.shipping360.pitneybowes.com/openapi/shipping/print/deleteprintermapping.md): delete printer mapping document
 - [GET /api/v1/jobs/{jobId}](https://docs.shipping360.pitneybowes.com/openapi/shipping/print/jobstatus.md): job status
## Defaults

 - [POST /api/v1/defaults](https://docs.shipping360.pitneybowes.com/openapi/shipping/defaults/createdefaults.md): While creating shipment, a few columns/ fields information are used mandatorily, and if the value for those columns are used repetitively, then it is always better to save last used values. And hence,
 - [GET /api/v1/defaults](https://docs.shipping360.pitneybowes.com/openapi/shipping/defaults/getalldefaults.md): The operation fetches all created Defaults. If query parameters are not provided, it will consider default page as 1 and default size as 10.
 - [PUT /api/v1/defaults/{defaultID}](https://docs.shipping360.pitneybowes.com/openapi/shipping/defaults/putdefaultsbyid.md): This operation updates the values set for Defaults.
 - [GET /api/v1/defaults/{defaultID}](https://docs.shipping360.pitneybowes.com/openapi/shipping/defaults/getdefaultsbyid.md): This operation fetches the values set for the Defaults.
 - [DELETE /api/v1/defaults/{defaultID}](https://docs.shipping360.pitneybowes.com/openapi/shipping/defaults/deletedefaultsbyid.md): This operation deletes the existing Defaults.
