Parcels

Parcel is a new offering from Deliverr that allows merchants to affordably deliver across the US hassle-free.

Parcel is currently only available to select merchants.

Create a parcel

Create a parcel and purchase a label for that parcel.

Error Handling and Troubleshooting

  1. SELLER_NOT_FOUND - Seller is not registered or their registration process has not been completed.

  2. INVALID_INJECTION_LOCATION - Injection location is not valid or is not serviceable for the seller.

  3. EXCEEDS_MAX_DIMENSIONS - Dimensions of the parcel being processed exceed the maximum allowable limits set by the shipping carrier.

  4. INVALID_DESTINATION_ADDRESS - Destination address provided for the parcel is incorrect, incomplete or cannot be validated by the system.

  5. CUSTOMS_INFORMATION_REQUIRED - The essential customs details, which are required for international shipping, have not been provided or are incomplete.

  6. FAILED_TO_DETERMINE_ZONE - Unable to identify or determine the appropriate shipping zone for the parcel based on the provided destination address.

  7. SERVICE_LEVEL_UNSUPPORTED_FOR_DESTINATION - The level of service selected (e.g. Standard, Expedited, International) is not supported for the provided destination address.

  8. SERVICE_LEVEL_NOT_CONFIGURED - The service level selected is not configured for the seller.

  9. RETURNS_UNSUPPORTED - Returns are not supported for parcels associated with the seller.

SecurityBEARER
Request
Request Body schema: application/json
required
customerCustomField
string or null (InputMaybe_Scalars-at-String_)

An optional field to input additional information about the parcel.

customerParcelId
string or null (InputMaybe_Scalars-at-String_)

An Order or PO number to associate to the parcel.

required
object (ParcelDimensions)
height
required
number <double>
length
required
number <double>
lengthUnit
required
string (LengthUnit)
Enum: "in" "cm" "mm" "m"
weight
required
number <double>
weightUnit
required
string (WeightUnit)
Enum: "oz" "kg" "lb" "g"
width
required
number <double>
injectionLocation
required
string
labelFormat
string or null (InputMaybe_ParcelLabelFormat_)

File format to use for shipping label. Defaults to ZPL203

Enum: "PNG" "ZPL203"
pickupDateTime
string or null <date-time> (InputMaybe_Scalars-at-Date_)

UTC timestamp of when the package is expected to arrive at the injection location.

object or null (InputMaybe_ParcelAddress_)
city
required
string
company
string or null (InputMaybe_Scalars-at-String_)
country
required
string
email
string or null (InputMaybe_Scalars-at-String_)
isResidential
boolean or null (InputMaybe_Scalars-at-Boolean_)
name
required
string
phone
string or null (InputMaybe_Scalars-at-String_)
state
required
string
street1
required
string
street2
string or null (InputMaybe_Scalars-at-String_)
zip
required
string
serviceLevel
required
string
required
object (ParcelAddress)
city
required
string
company
string or null (InputMaybe_Scalars-at-String_)
country
required
string
email
string or null (InputMaybe_Scalars-at-String_)
isResidential
boolean or null (InputMaybe_Scalars-at-Boolean_)
name
required
string
phone
string or null (InputMaybe_Scalars-at-String_)
state
required
string
street1
required
string
street2
string or null (InputMaybe_Scalars-at-String_)
zip
required
string
skipAddressValidation
boolean or null (InputMaybe_Scalars-at-Boolean_)
Responses
201

Parcel created

400

Bad Request

401

Unauthorized

post/logistics/api/2023-04/parcels
Request samples
application/json
{
  • "serviceLevel": "Standard",
  • "injectionLocation": "LAX",
  • "customerParcelId": "CustomerParcel123456",
  • "shipToAddress": {
    • "name": "Happy Customer",
    • "street1": "123 Happy customer street",
    • "city": "San Francisco",
    • "state": "CA",
    • "zip": "91234",
    • "country": "US"
    },
  • "returnAddress": {
    • "name": "Merchant Name",
    • "street1": "123 merchant street",
    • "city": "San Francisco",
    • "state": "CA",
    • "zip": "91234",
    • "country": "US"
    },
  • "pickupDateTime": "2023-01-01T19:00:00Z",
  • "dimensions": {
    • "length": 2,
    • "width": 8,
    • "height": 5,
    • "lengthUnit": "in",
    • "weight": 1,
    • "weightUnit": "lb"
    },
  • "labelFormat": "ZPL203",
  • "customerCustomField": "string",
  • "skipAddressValidation": false
}
Response samples
application/json
{
  • "status": "OK",
  • "parcelId": "string",
  • "price": 0,
  • "serviceLevel": "string",
  • "trackingCode": "string",
  • "carrierCode": "string",
  • "packageTrackingUrl": "string",
  • "shippingLabelUrl": "string",
  • "customerReferenceId": "string",
  • "customerCustomField": "string",
  • "flexportTrackingUrl": "string",
  • "carrierBarcode": "string"
}

Get a parcel by ID

Fetch the parcel with a specified Parcel ID.

Error Handling and Troubleshooting

  1. PARCEL_NOT_FOUND - The parcelId provided in the API request is incorrect.
SecurityBEARER
Request
path Parameters
parcelId
required
string

Unique ID used to track the parcel, returned after acquiring a purchase label.

Responses
200

Fetched Parcel

Response Schema: application/json
Any of:
status
required
string (ParcelApiStatus)

The status of the parcel. (e.g. OK, ERROR)

Enum: "OK" "ERROR"
parcelId
required
string

Unique ID used to track the parcel, returned after acquiring a purchase label.

price
required
number <double>

The price of the parcel.

serviceLevel
required
string

The level of service selected for parcel delivery. (e.g. Standard, Expedited, International)

trackingCode
required
string

The tracking code for the package.

carrierCode
required
string

The carrier code for the package.

packageTrackingUrl
required
string

URL that can be used to track the package.

shippingLabelUrl
required
string

URL used to download the shipping label data.

customerReferenceId
required
string

An identifier meaningful to the seller.

customerCustomField
string

An optional field that has additional information about the parcel provided by the caller.

flexportTrackingUrl
string

URL that can be used to track a package end-to-end through Flexport and final-mile partner networks.

carrierBarcode
string

Carrier barcode is the exact barcode which is on the physical label that is scanned.

401

Unauthorized

404

Parcel not found

get/logistics/api/2023-04/parcels/{parcelId}
Response samples
application/json
{
  • "status": "OK",
  • "parcelId": "string",
  • "price": 0,
  • "serviceLevel": "string",
  • "trackingCode": "string",
  • "carrierCode": "string",
  • "packageTrackingUrl": "string",
  • "shippingLabelUrl": "string",
  • "customerReferenceId": "string",
  • "customerCustomField": "string",
  • "flexportTrackingUrl": "string",
  • "carrierBarcode": "string"
}

Get a parcel's tracking information by Parcel ID

Fetch the tracking information for the parcel with the specified Parcel ID.

Error Handling and Troubleshooting

  1. PARCEL_NOT_FOUND - The parcelId provided in the API request is incorrect.

  2. PARCEL_TRACKING_NOT_FOUND - Failed to find tracking details for parcel.

SecurityBEARER
Request
path Parameters
parcelId
required
string

Unique ID used to track the parcel, returned after acquiring a purchase label.

Responses
200

Contains the tracking information for the parcel

Response Schema: application/json
Any of:
parcelId
string

Unique ID used to track the parcel, returned after acquiring a purchase label.

customerReferenceId
string

An identifier meaningful to the seller.

customerCustomField
string

An optional field that has additional information about the parcel provided by the caller.

status
required
string (ParcelApiStatus)

The status of the parcel. (e.g. OK, ERROR)

Enum: "OK" "ERROR"
errors
string

An error code if the status is ERROR.

errorMessage
string

An error message if the status is ERROR.

packageTrackingUrl
string

URL that can be used to track the package.

shippingLabelUrl
string

URL used to download the shipping label data.

trackingCode
string

The tracking code for the package.

carrierCode
string

The carrier code for the package.

carrierBarcode
string

Carrier barcode is the exact barcode which is on the physical label that is scanned. In some cases it's prefix+trackingCode so sending it as a separate field

required
object (TrackingResultTimestamps)

The tracking event timestamps.

labelTime
required
string or null <date-time>

UTC timestamp of when a label was printed for the package.

arrivalScanTime
required
string or null <date-time>

UTC timestamp of the arrival scan.

sortationArrivalTime
string or null <date-time>

This is the time at which the parcel is scanned at the sortation center.

facilityTime
required
string or null <date-time>

UTC timestamp of when the package arrived at the facility.

attemptedDeliveryTime
required
string or null <date-time>

UTC timestamp of when delivery was attempted for the package.

deliveryTime
required
string or null <date-time>

UTC timestamp of when the package was delivered.

estimatedDeliveryTime
required
string or null <date-time>

UTC timestamp of when the package is expected to be delivered.

promisedDeliveryTime
string or null <date-time>

UTC timestamp of when the package is promised to be delivered.

lastTrackingEventTime
required
string or null <date-time>

UTC timestamp of the last tracking event for the package.

lastTrackingIngestionTime
required
string or null <date-time>

UTC timestamp of when the last tracking event for the package was ingested.

Array of objects (ExpiredTrackingData)

Canceled tracking data for repurchased parcels.

Array
labelId
string

Unique ID for the label.

trackingCode
string

The tracking code for the package.

shippingLabelUrl
string

URL used to download the label data.

packageTrackingUrl
string

URL that can be used to track the package through a final-mile partner network.

shippingMethod
string (ShippingMethod)

The shipping method used to ship the package.

flexportTrackingUrl
string (URL)

URL that can be used to track a package end-to-end through Flexport and final-mile partner networks.

400

Bad Request

401

Unauthorized

get/logistics/api/2023-04/parcels/{parcelId}/tracking
Response samples
application/json
{
  • "parcelId": "string",
  • "customerReferenceId": "string",
  • "customerCustomField": "string",
  • "status": "OK",
  • "errors": "string",
  • "errorMessage": "string",
  • "packageTrackingUrl": "string",
  • "shippingLabelUrl": "string",
  • "trackingCode": "string",
  • "carrierCode": "string",
  • "carrierBarcode": "string",
  • "eventTimestamps": {
    • "labelTime": "2019-08-24T14:15:22Z",
    • "arrivalScanTime": "2019-08-24T14:15:22Z",
    • "sortationArrivalTime": "2019-08-24T14:15:22Z",
    • "facilityTime": "2019-08-24T14:15:22Z",
    • "attemptedDeliveryTime": "2019-08-24T14:15:22Z",
    • "deliveryTime": "2019-08-24T14:15:22Z",
    • "estimatedDeliveryTime": "2019-08-24T14:15:22Z",
    • "promisedDeliveryTime": "2019-08-24T14:15:22Z",
    • "lastTrackingEventTime": "2019-08-24T14:15:22Z",
    • "lastTrackingIngestionTime": "2019-08-24T14:15:22Z"
    },
  • "expiredTrackingData": [
    • {
      • "labelId": "string",
      • "trackingCode": "string",
      • "shippingLabelUrl": "string",
      • "packageTrackingUrl": "string",
      • "shippingMethod": "string"
      }
    ],
  • "flexportTrackingUrl": "string"
}

Get the tracking URL for a parcel

Fetch the tracking URL for a parcel given a Parcel ID.

Error Handling and Troubleshooting

  1. PARCEL_NOT_FOUND - The parcelId provided in the API request is incorrect.
SecurityBEARER
Request
path Parameters
parcelId
required
string

Unique ID used to track the parcel, returned after acquiring a purchase label.

Responses
200

Contains the tracking URL for the parcel

Response Schema: application/json
string
400

Bad Request

401

Unauthorized

get/logistics/api/2023-04/parcels/{parcelId}/tracking_url
Response samples
application/json
"string"

Get a parcel quote

Fetch a quote for a label purchase without purchasing a label.

Error Handling and Troubleshooting

  1. INVALID_SELLER - The seller information appears to be incomplete or there are discrepancies with the seller's status.

  2. INVALID_INJECTION_LOCATION - Injection location is not valid or is not serviceable for the seller.

  3. EXCEEDS_MAX_DIMENSIONS - Dimensions of the parcel being processed exceed the maximum allowable limits set by the shipping carrier.

  4. FAILED_TO_DETERMINE_ZONE - Unable to identify or determine the appropriate shipping zone for the parcel based on the provided destination address.

  5. INVALID_DESTINATION_ADDRESS - Destination address provided for the parcel is incorrect, incomplete or cannot be validated by the system.

  6. SERVICE_LEVEL_NOT_CONFIGURED - The service level selected is not configured for the seller.

SecurityBEARER
Request
Request Body schema: application/json
required
required
object (ParcelDimensions)
height
required
number <double>
length
required
number <double>
lengthUnit
required
string (LengthUnit)
Enum: "in" "cm" "mm" "m"
weight
required
number <double>
weightUnit
required
string (WeightUnit)
Enum: "oz" "kg" "lb" "g"
width
required
number <double>
injectionLocation
required
string
serviceLevel
required
string
required
object (ParcelAddress)
city
required
string
company
string or null (InputMaybe_Scalars-at-String_)
country
required
string
email
string or null (InputMaybe_Scalars-at-String_)
isResidential
boolean or null (InputMaybe_Scalars-at-Boolean_)
name
required
string
phone
string or null (InputMaybe_Scalars-at-String_)
state
required
string
street1
required
string
street2
string or null (InputMaybe_Scalars-at-String_)
zip
required
string
Responses
200

Successfully fetched quote

Response Schema: application/json
Any of:
price
required
number <double>

The price of the parcel delivery.

serviceLevel
required
string

The level of service selected for parcel delivery. (e.g. Standard, Expedited, International)

billedWeightLbs
required
number <double>

The billed weight in pounds (based on the dimensions and weight of the parcel).

required
object (ParcelDimensions)

The dimensions and weight of the parcel.

height
required
number <double>
length
required
number <double>
lengthUnit
required
string (LengthUnit)
Enum: "in" "cm" "mm" "m"
weight
required
number <double>
weightUnit
required
string (WeightUnit)
Enum: "oz" "kg" "lb" "g"
width
required
number <double>
warnings
required
Array of strings

Warnings (e.g. Unable to verify if address is valid)

400

Bad Request

401

Unauthorized

post/logistics/api/2023-04/parcels/quote
Request samples
application/json
{
  • "dimensions": {
    • "height": 5,
    • "length": 2,
    • "lengthUnit": "in",
    • "weight": 1,
    • "weightUnit": "oz",
    • "width": 8
    },
  • "injectionLocation": "string",
  • "serviceLevel": "string",
  • "shipToAddress": {
    • "city": "San Francisco",
    • "company": "string",
    • "country": "US",
    • "email": "string",
    • "isResidential": true,
    • "name": "Happy customer",
    • "phone": "string",
    • "state": "CA",
    • "street1": "110 Sutter Street",
    • "street2": "string",
    • "zip": "94104-4026"
    }
}
Response samples
application/json
{
  • "price": 0,
  • "serviceLevel": "string",
  • "billedWeightLbs": 0,
  • "dimensions": {
    • "height": 5,
    • "length": 2,
    • "lengthUnit": "in",
    • "weight": 1,
    • "weightUnit": "oz",
    • "width": 8
    },
  • "warnings": [
    • "string"
    ]
}