# Check Pickup Availability

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 the location.
- What types of pickup (residential, on-demand, scheduled) are supported.
- Cutoff times and valid pickup time windows.

Endpoint: POST /api/v1/pickups/availability
Version: 1.0.0
Security: bearerAuth

## Header parameters:

  - `Accept-Language` (string, required)
    Locale for response messages, BCP-47 format (language-region), e.g., en-US.

## Request fields (application/json):

  - `carrierAccountId` (string, required)
    Unique identifier of the carrier account under which pickup is requested.
    Example: GkvvOE7vX1QxQkm

  - `pickupAddress` (object, required)
    Address where pickup is requested.

  - `pickupAddress.name` (string, required)
    Contact person name at the pickup location
    Example: John Doe

  - `pickupAddress.addressLine1` (string, required)
    Primary street address line
    Example: 27 Waterview Dr

  - `pickupAddress.cityTown` (string, required)
    City or town of the pickup location
    Example: Shelton

  - `pickupAddress.stateProvince` (string, required)
    State or province of the pickup location
    Example: CT

  - `pickupAddress.postalCode` (string, required)
    Postal or ZIP code of the pickup location
    Example: 06484-4301

  - `pickupAddress.countryCode` (string, required)
    Two-letter ISO country code
    Example: US

  - `pickupAddress.phone` (string, required)
    Contact phone number at the pickup location
    Example: 1234567890

  - `pickupAddress.company` (string)
    Company name associated with the pickup locatio
    Example: PB

  - `pickupAddress.email` (string)
    Contact email at the pickup location
    Example: user@pb.com

  - `pickupAddress.residential` (boolean)
    Indicates if the address is residential.
    Example: false

  - `pickupSummary` (array, required)
    Summary of shipments for which pickup is requested.

  - `pickupSummary.toAddressCountryCode` (string)
    Destination country code of the shipment
    Example: CA

  - `pickupSummary.serviceId` (string)
    Identifier of the shipping service requested (e.g., GND).
    Example: 2DA

  - `pickupSummary.parcelType` (string)
    Type of parcel (e.g., PKG, LTR)
    Example: PKG

  - `pickupSummary.packageDetails` (array)

  - `pickupSummary.packageDetails.height` (number)
    Example: 5

  - `pickupSummary.packageDetails.length` (number)
    Example: 6

  - `pickupSummary.packageDetails.width` (number)
    Example: 4

  - `pickupSummary.packageDetails.weight` (number)
    Weight of the package for pickup
    Example: 100

  - `pickupSummary.packageDetails.weightUnit` (string)
    Unit of measurement for weight
    Example: OZ

  - `pickupSummary.packageDetails.dimUnit` (string)
    Example: IN

  - `pickupDateTime` (string, required)
    Requested pickup date and time in ISO 8601 format.
    Example: 2025-08-25T17:05:05Z

  - `pickupOptions` (object, required)
    Additional options for pickup eligibility.

  - `pickupOptions.pickupStartDateTime` (string)
    Start time of the pickup window.
    Example: 2025-09-15T12:45:00Z

  - `pickupOptions.pickupEndDateTime` (string)
    End time of the pickup window.
    Example: 2025-09-15T13:15:00Z

  - `pickupOptions.carrierType` (string)
    Type of carrier service requested for the pickup.
    Example: EXPRESS

  - `pickupOptions.scheduleDay` (string)
    Indicates when the pickup is scheduled (e.g., SAME_DAY, FUTURE_DAY).
    Example: SAME_DAY

## Response 200 fields (application/json):

  - `carrierAccountId` (string)
    Carrier account ID returned for the request.
    Example: xxxxxxxxx

  - `carrier` (string)
    Carrier that was validated for pickup availability.
    Example: UPS

  - `pickupAddress` (object)
    Validated pickup address returned by the carrier/system.

  - `pickupAddress.name` (string)
    Contact person name at the pickup location
    Example: John Doe

  - `pickupAddress.addressLine1` (string)
    Primary street address line
    Example: 27 Waterview Dr

  - `pickupAddress.cityTown` (string)
    City or town of the pickup location
    Example: Shelton

  - `pickupAddress.stateProvince` (string)
    State or province of the pickup location
    Example: CT

  - `pickupAddress.postalCode` (string)
    Postal or ZIP code of the pickup location
    Example: 06484-4301

  - `pickupAddress.countryCode` (string)
    Two-letter ISO country code
    Example: US

  - `pickupAddress.phone` (string)
    Contact phone number at the pickup location
    Example: 1234567890

  - `pickupAddress.company` (string)
    Company name associated with the pickup locatio
    Example: PB

  - `pickupAddress.email` (string)
    Contact email at the pickup location
    Example: user@pb.com

  - `pickupAddress.residential` (boolean)
    Indicates if the address is residential.
    Example: false

  - `pickupDateTime` (string)
    The pickup date/time
    Example: 2025-08-26T10:00:00Z

  - `pickupOptions` (object)
    Additional options for pickup eligibility.

  - `pickupOptions.pickupStartDateTime` (string)
    Start time of the pickup window.
    Example: 2025-09-15T12:45:00Z

  - `pickupOptions.pickupEndDateTime` (string)
    End time of the pickup window.
    Example: 2025-09-15T13:15:00Z

  - `pickupOptions.carrierType` (string)
    Type of carrier service requested for the pickup.
    Example: EXPRESS

  - `pickupOptions.scheduleDay` (string)
    Indicates when the pickup is scheduled (e.g., SAME_DAY, FUTURE_DAY).
    Example: SAME_DAY

  - `pickupAvailable` (boolean)
    If pickup is available for the requested location and shipment..
    Example: true

  - `pickupInformation` (object)
    Detailed pickup availability options as returned by the requested carrier.

  - `pickupInformation.cutoffTime` (string)
    Latest cutoff time for submitting pickup requests (HH:MM:SS).
    Example: 13:00:00

  - `pickupInformation.startCloseTimeOptions` (object)
    Available start and close time options for scheduling pickups.

  - `pickupInformation.startCloseTimeOptions.startTimeOptions` (array)
    List of selectable pickup start times (HH:MM:SS).
    Example: ["08:00:00"]

  - `pickupInformation.startCloseTimeOptions.closeTimeOptions` (array)
    List of selectable pickup close times (HH:MM:SS).
    Example: ["14:00:00"]

  - `pickupInformation.timeRangeOptions` (object)
    Container for default/available time ranges; may be empty depending on carrier.
    Example: {}

## Response 400 fields (application/json):

  - `errorCode` (string)
    Error code(s) that appear due to HTTP  400- Invalid or Bad Request, e.g., validation-error.
    Example: validation_error

  - `errorDescription` (string)
    The HTTP 400 Bad Request response status code indicates that the server cannot process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
    Example: string

  - `additionalCode` (string)
    A unique identifier for the error, for example 1101055, 0100008, or 1021126.

  - `additionalInfo` (string)
    This is an additional information about the error. This error 'Invalid Request' might appear due to invalid dimension, weight, or serviceID, or if the information is missing.

  - `additionalParameters` (array)

## Response 401 fields (application/json):

  - `message` (string, required)
    This is HTTP 401 Unauthorized response status code, which indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource.

## Response 500 fields (application/json):

  - `message` (string, required)
    This is HTTP 500 Internal Server Error response status code, which indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

