Log InSign Up

Introduction

Overview

To get started using the Postmates Delivery API:

  • Sign up for a developer account.
  • Locate your customer ID and test API key in the developer dashboard.
  • Check out a few tutorials on how to use the API: cURL, Postman.

What can the API do?

You can use the Postmates API to utilize our fleet of couriers to deliver your products within our geographic zones.

Here is the flow of events that developers most commonly follow when using our API:

  • To see if a delivery is possible, request a delivery quote. This endpoint takes in two addresses and returns a fee, ETA, and other information about a potential delivery.
  • After you have evaluated whether the quoted price and delivery estimate meets your needs, you can create a delivery.
  • While a delivery is in progress, you can track its status in real-time in the developer dashboard, by polling the API, or with webhooks.

What can be delivered using the API?

You can use the Postmates API to deliver most items that can be carried by an average person. Please see our API Terms, Shipping Policy & Partner Rules of Conduct for more information on what can and can not be delivered on our platform.

Authentication

The Postmates API requires authentication by HTTP Basic Auth headers. Your API key should be included as the username. The password should be left empty.

The actual header that is used will be a base64-encoded string like this:

Authorization: Basic Y2YyZjJkNmQtYTMxNC00NGE4LWI2MDAtNTA1M2MwYWYzMTY1Og==

Most of the endpoints provided in the Postmates API are in relation to a specific customer. You'll need to provide your customer id and include it in the URL.

Security Note: Treat your API key as a password and never make it available outside of your direct control. The API key by design enables direct access to the Postmates API on your behalf and so it is inappropriate and unsafe to share the API key among multiple parties.

Requests

The base URL for all requests to the Postmates API is:

https://api.postmates.com/

Our API is REST-based. This means:

  • It make use of standard HTTP verbs like GET, POST, DELETE.
  • The API uses standard HTTP error responses to describe errors.
  • Authentication is specified with HTTP Basic Authentication.

All requests use standard query encoding.

POST data should be encoded as standard application/x-www-form-urlencoded.

Rate Limiting

There is a global rate limit for API requests.

EnvironmentRequests/minute
Sandbox7500
Production10000

Exceeding this rate limit will result in a 429 response.

Versioning

Versioning allows us to provide developers a consistent experience. We provide two levels of versioning:

  • Resource: All endpoints are prefixed with a version such as /v1. This version refers to the overall layout of the endpoints and response standards.
  • Client: Developers can ensure consistent fields and formats by specifying a version as a HTTP header.
    • X-Postmates-Version header such as X-Postmates-Version: 20140825

Addresses

Please format pickup and dropoff addresses this way:

Street Address, City, State, Zip

Any other information, like apartment number, door codes, "care of" instructions, should all be added to pickup or dropoff notes fields. Any extra information included may result in a malformed address, and our geocoder will not be able to find the location.

Responses

The Postmates API uses HTTP status codes to indicate the status of your requests. This includes successful and unsuccessful responses.

All responses are in JSON.

Status Codes

  • 200 - OK: Everything went as planned.
  • 304 - Not Modified: Resource hasn't been updated since the date provided. See Caching below.
  • 400 - Bad Request: You did something wrong. Often a missing argument or parameter.
  • 401 - Unauthorized: Authentication was incorrect.
  • 404 - Not Found
  • 429 - Too Many Requests
  • 500 - Internal Server Error: We had a problem processing the request.
  • 503 - Service Unavailable: Try again later.

Errors

Error responses include details about what went wrong.

{
  "kind": "error",
  "code": "invalid_params",
  "message": "The parameters of your request were invalid.",
  "params": {
    "dropoff_name": "Dropoff name is required.",
    "dropoff_phone_number": "Dropoff phone number must be valid phone number."
  }
}

Error Codes

400 - mismatched_price_quote

The price quote specified doesn't match the delivery.

400 - pickup_ready_too_late

The pickup ready time needs to be at within the next 30 days.

400 - invalid_api_version

The requested API version is not valid

400 - dropoff_deadline_before_pickup_deadline

The dropoff deadline needs to be after the pickup deadline.

400 - dropoff_deadline_too_early

The dropoff deadline needs to be at least 20 minutes after the dropoff ready time.

400 - pickup_window_too_small

The pickup window needs to be at least 10 minutes long.

400 - pickup_ready_time_not_specified

Pickup ready time must be specified when passing in pickup/dropoff windows.

400 - noncancelable_delivery

You cannot cancel this delivery. Contact customer service.

400 - pickup_ready_too_early

The pickup ready time cannot be in the past.

400 - invalid_tipping_state

Delivery cannot tip at this time.

400 - pickup_deadline_too_early

The pickup deadline time needs to be at least 20 minutes from now.

400 - address_undeliverable

The specified location is not in a deliverable area.

400 - expired_quote

The price quote specified has expired.

400 - used_quote

The price quote specified has been used.

400 - unknown_location

The specified location was not understood.

400 - invalid_params

The parameters of your request were invalid.

400 - missing_payment

Your account's payment information has not be provided.

400 - duplicate_delivery

An active delivery like this already exists.

400 - max_tip_exceeded

Tipping limit exceeded

400 - tip_already_recorded_error

Tipping limit exceeded

400 - no_tip

Delivery does not accept tip.

400 - dropoff_ready_after_pickup_deadline

The dropoff ready time needs to be at or before the pickup deadline.

402 - customer_suspended

Your account is passed due. Payment is required.

403 - customer_blocked

Your account is not allowed to create deliveries.

404 - account_not_found

Account does not exist.

404 - delivery_not_found

The requested delivery does not exist.

404 - customer_not_found

Customer does not exist

408 - request_timeout

The request timed out.

429 - customer_limited

Your account's limits have been exceeded.

500 - unknown_error

503 - service_unavailable

Service is currently unavailable. Please try again later.

503 - couriers_busy

All of our couriers are currently busy

503 - robo_couriers_busy

All of our robo couriers are currently busy

Webhooks

Webhooks allow you to receive real-time updates to your ongoing deliveries. By configuring a URL we can POST updates to, you'll get the most up-to-date information to show to your customers.

Webhook Endpoint

To use webhooks, you'll need to configure your own web application to accept HTTP POST requests from us. These requests will contain JSON objects representing the event that has occurred.

Configure this URL endpoint in the developer dashboard. You can choose live or test mode.

The Event Object

Event objects follow a standard format. Each event has:

  • A kind to indicate what type of event has been provided.
  • A unique id for this event instance.
  • A flag indicating if the event applies to live_mode data.
  • Timestamp indicating when the event was generated.
  • One or more fields specific to each sub-type.
  • The id of the object the event applies to (example: delivery_id).
  • An updated version of the object the event applies to. For example, all delivery events will include a full delivery object as the data field.
{
  "kind": "event.delivery_status",
  "id": "evt_KC9LLdlTwr7udF",
  "delivery_id": "del_3vDjjkd21b",
  "status": "pickup",
  "data": {
    "kind": "delivery",
    "id": "del_3vDjjkd21b",
    "status": "pickup",
    ...
  },
  "created": "2014-08-26T10:04:03Z",
  "live_mode": false
}

Supported Event Types

  • delivery_status - Sent each time the status field on a delivery changes.
    • Event will contain the field status and include an updated delivery object as the data.
  • courier_update - Sent every 20 seconds as a courier changes locations. Event will contain the field location with lat and lng fields. An updated delivery object will be included as the data.
  • delivery_return - Sent when a delivery has been returned to pickup location Event will contain the field status and include an updated delivery object as the data.

Versioning

Webhook versioning is based on when you configure the webhook. The version string will be provided along with the webhook request in a X-Postmates-Version HTTP header.

Security

Webhooks created through the Postmates API can be verified by calculating a digital signature.

Each webhook request has a X-Postmates-Signature header which is generated using a shared secret and the payload of the webhook request.

To verify that the request came from Postmates, pass the secret and payload through the SHA-256 hashing algorithm, and make sure it's equal to X-Postmates-Signature.

Here's an example in Python:

import hashlib, hmac

api_secret = 'c5c26d5a-70d6-46c7-a652-d7c09825ad29'

# Shortened for this example
payload = '{"kind": "event.courier_update", "location": {"lat": 37.7974109, "lng": -122.424145}}'

hmac.new(api_secret, payload, hashlib.sha256).hexdigest()

# → 'cdff8133fb065f8d37a2c1c94c3331b6a82766d14e7ea4faacc4886558cedd65'

Monitoring

You can monitor webhooks in the Postmates Partner Dashboard. Webhook event logs are saved for 30 days.

Test Mode

For your development convenience, we provide a test mode for our API. Using a test API key will allow you to exercise all the endpoints. We even have a special robot courier named Robo that will deliver your imaginary goods. This courier updates every 10 seconds.

All responses during live mode will have an extra attribute:

{
  "live_mode": true
}

Events

The Create a Delivery API endpoint has optional post parameters for specifying when various delivery events occur.

  • robo_pickup - When Robo will start moving towards the pickup.
  • robo_pickup_complete - When Robo will have picked up the items.
  • robo_dropoff - When Robo will start moving towards the dropoff.
  • robo_delivered - When Robo will complete the delivery.

Interface

The interface is a key value pair where the event type has a corresponding time which is relative to the creation date of the job. If an event is set to 00:10:00, then Robo will start the event in 10 minutes.

robo_event="hh:mm:ss"
  • hh - hours
  • mm - minutes
  • ss - seconds

Undeliverable Deliveries

The Create a Delivery API endpoint has optional post parameters that can be used to simulate an undeliverable delivery.

  • robo_undeliverable_reason - Optional parameter to specify the reason for an undeliverable delivery. Either customer_not_available or customer_id_check_failed.
  • robo_undeliverable_action - Optional parameter to specify the action for the robo courier to take for an undeliverable delivery. Either returned, discarded or left_at_door.

Post Example

Here is an example where Robo will start pickup in 10 minutes, pickup_complete in 20 minutes, dropoff in 21 minutes and delivered in 34 minutes.

manifest="a box of kittens"
manifest_reference="Optional reference that identifies the box of kittens"
pickup_name="The Warehouse"
pickup_address="20 McAllister St, San Francisco, CA"
pickup_phone_number="555-555-5555"
pickup_business_name="Optional Pickup Business Name, Inc."
pickup_notes="Optional note that this is Invoice #123"
dropoff_name="Alice"
dropoff_address="101 Market St, San Francisco, CA"
dropoff_phone_number="415-555-1234"
dropoff_business_name="Optional Dropoff Business Name, Inc."
dropoff_notes="Optional note to ring the bell"
robo_pickup="00:10:00"
robo_pickup_complete="00:20:00"
robo_dropoff="00:21:00"
robo_delivered="00:34:00"

Pathing

Pathing on Robo is as the crow flies between its location and either its pickup or dropoff point depending on the job state. The rate in which Robo moves is based on the when the next event occurs. For example, if pickup is at 00:00:00 and pickup_complete is at 00:10:00 then the rate is the distance between Robo's current location divided by 10 minutes.

Invalid Event Configurations

Delivery states happen in order so if the event configuration does not respect this order then the event configuration is ignored.

How do I get a production key?

When you're ready to start doing live deliveries, update your payment details and use your production API key.

Resources

Quote

Create Quote

POST:

/v1/customers/{customer_id}/delivery_quotes

The first step in using the Postmates API is get a quote on a delivery. This allows you to make decisions about the appropriate cost and availability for using the Postmates platform, which can vary based on distance and demand.

A Delivery Quote provides an estimate for a potential delivery. This includes the amount the delivery is expected to cost as well as an estimated delivery window. As demand on our platform changes over time, the fee amount and ETA may increase beyond what your use-case can support.

A Delivery Quote can only be used once and is only valid for a period of 5 minutes.

Request

Path Parameters

  • customer_id

    Unique identifier for the customer.

Body

  • dropoff_address

    string

    Required

    The dropoff address for a potential delivery.

  • pickup_address

    string

    Required

    The pickup address for a potential delivery.

  • dropoff_deadline_dt

    timestamp (RFC 3339)

    Date/Time for when a delivery is must be dropped off.

  • dropoff_latitude

    float

    Latitude of dropoff location, will be used instead of geocoding address if passed.

  • dropoff_longitude

    float

    Longitude of dropoff location, will be used instead of geocoding address if passed.

  • dropoff_phone_number

    string

    Phone number of the dropoff location. If passed, the phone number will be validated.

  • dropoff_ready_dt

    timestamp (RFC 3339)

    Date/Time for when a delivery is ready to be dropped off.

  • pickup_deadline_dt

    timestamp (RFC 3339)

    Date/Time for when a delivery must be picked up by.

  • pickup_latitude

    float

    Latitude of pickup location, will be used instead of geocoding address if passed.

  • pickup_longitude

    float

    Longitude of pickup location, will be used instead of geocoding address if passed.

  • pickup_phone_number

    string

    Phone number of the pickup location. If passed, the phone number will be validated.

  • pickup_ready_dt

    timestamp (RFC 3339)

    Date/Time for when order will be ready for pickup

Responses

200

  • created

    timestamp (RFC 3339)

    Date/Time at which the quote was created.

  • currency

    string

    Three-letter ISO currency code, in lowercase.

  • currency_type

    string

    Three-letter ISO currency code, in uppercase.

  • dropoff_eta

    timestamp (RFC 3339)

    Estimated drop-off time. This value may increase to several hours if the postmates platform is in high demand.

  • duration

    integer

    Estimated minutes for this delivery to reach dropoff, this value can be highly variable based upon the current amount of capacity available.

  • expires

    timestamp (RFC 3339)

    Date/Time after which the quote will no longer be accepted.

  • fee

    integer

    Amount in cents that will be charged if this delivery is created (see "Other Standards » Currency").

  • id

    string

    Unique identifier for the quote.

  • kind

    string

    The type of object being described. In this case: "delivery_quote"

  • pickup_duration

    integer

    Estimated minutes until a courier will arrive at the pickup. This value can be highly variable based upon the current amount of capacity available.

Errors

400 - invalid_params

The parameters of your request were invalid.

400 - unknown_location

The specified location was not understood.

402 - customer_suspended

Your account is passed due. Payment is required.

403 - customer_blocked

Your account is not allowed to create deliveries.

429 - customer_limited

Your account's limits have been exceeded.

400 - address_undeliverable

The specified location is not in a deliverable area.

503 - couriers_busy

All of our couriers are currently busy

200success

POST:

/v1/customers/{customer_id}/delivery_quotes

{
  "kind": "delivery_quote",
  "id": "dqt_qUdje83jhdk",
  "created": "2018-07-25T22:01:38Z",
  "expires": "2018-07-25T22:06:38Z",
  "fee": 799,
  "currency": "usd",
  "currency_type": "USD",
  "dropoff_eta": "2018-07-25T23:31:38Z",
  "duration": 90,
  "pickup_duration": 60
}

Delivery

Create Delivery

POST:

/v1/customers/{customer_id}/deliveries

After you've successfully created a delivery quote, it's time to create an actual delivery on the Postmates platform. It's recommended that you include the previously generated quote_id to ensure the costs and ETAs are consistent with the quote. Once a delivery is accepted, the delivery fee will be deducted from your account.

To ensure your deliveries are being picked up and dropped off on time, you can specify a pickup window and a dropoff window. Our dispatch system will send a courier to pick up the order within the pickup window, and will make sure that the order is given to the customer during the dropoff window. Pickup and dropoff windows are specified using pickup_ready_dt, pickup_deadline_dt, dropoff_ready_dt, and dropoff_deadline_dt. These timestamps have the following requirements

  • pickup_ready_dt must be less than 30 days in the future.
  • pickup_deadline_dt must be at least 10 mins later than pickup_ready_dt and at least 20 minutes in the future, thus providing a realistic pickup window.
  • dropoff_ready_dt must be less than or equal to pickup_deadline_dt. This is to prevent a scenario where a courier has to hold onto an order between the pickup and dropoff windows.
  • dropoff_deadline_dt must be at least 20 mins later than dropoff_ready_dt, thus providing a realistic dropoff window.
  • dropoff_deadline_dt must be greater than or equal to pickup_deadline_dt.

Request

Path Parameters

  • customer_id

    Unique identifier for the customer.

Body

  • dropoff_address

    string

    Required

    The dropoff address for the delivery.

  • dropoff_name

    string

    Required

    Name of the place where the courier will make the dropoff.

  • dropoff_phone_number

    string

    Required

    The phone number of the dropoff location.

  • manifest

    string

    Required

    A detailed description of what the courier will be delivering. This will soon be deprecated in favor of manifest_items.

  • manifest_items

    ManifestItem []

    Required

    List of items being delivered..

  • pickup_address

    string

    Required

    The pickup address for the delivery.

  • pickup_name

    string

    Required

    Name of the place where the courier will make the pickup.

  • pickup_phone_number

    string

    Required

    The phone number of the pickup location.

  • dropoff_business_name

    string

    Business name of the dropoff location.

  • dropoff_deadline

    timestamp (RFC 3339)

    Date/Time for when a delivery is must be dropped off.

  • dropoff_latitude

    float

    Latitude of the dropoff location. If passed, this will be used instead of the geocoded coordinate as long as they are less than 1km apart as a crow flies.

  • dropoff_longitude

    float

    Longitude of the dropoff location. If passed, this will be used instead of the geocoded coordinate as long as they are less than 1km apart as a crow flies.

  • dropoff_notes

    string

    Additional instructions for the courier at the dropoff location.

  • dropoff_ready_dt

    timestamp (RFC 3339)

    Date/Time for when a delivery is ready to be dropped off.

  • manifest_reference

    string

    Reference that identifies the manifest. Use this to connect a delivery to corresponding information in your system.

  • pickup_business_name

    string

    Business name of the pickup location.

  • pickup_deadline

    timestamp (RFC 3339)

    Date/Time for when a delivery must be picked up by.

  • pickup_latitude

    float

    Latitude of the pickup location. If passed, this will be used instead of the geocoded coordinate as long as they are less than 1km apart as a crow flies.

  • pickup_longitude

    float

    Longitude of the pickup location. If passed, this will be used instead of the geocoded coordinate as long as they are less than 1km apart as a crow flies.

  • pickup_notes

    string

    Additional instructions for the courier at the pickup location.

  • pickup_ready_dt

    timestamp (RFC 3339)

    Date/Time for when a delivery is ready for pickup. Omitting this field will result in a default pickup_ready_dt of now.

  • quote_id

    string

    The ID of a previously generated delivery quote. Optional, but highly recommended.

  • requires_dropoff_signature

    boolean

    Flag to indicate this delivery requires signature capture at dropoff.

  • requires_id

    boolean

    Flag to indicate this delivery requires ID verification.

Responses

200

  • complete

    boolean

    Flag indicating if the delivery is ongoing.

  • courier

    CourierInfo

    The courier object is only present when a delivery is in progress.

  • courier_imminent

    boolean

    Flag indicating if the courier is close to the pickup or dropoff location.

  • created

    timestamp (RFC 3339)

    Date/Time at which the delivery was created.

  • currency

    string

    Three-letter ISO currency code, in lowercase.

  • dropoff

    WaypointInfo

    The dropoff details for the delivery

  • dropoff_deadline

    timestamp (RFC 3339)

    When a delivery is must be dropped off by. This is the end of the dropoff window.

  • dropoff_eta

    timestamp (RFC 3339)

    Estimated time the courier will arrive at the dropoff location.

  • dropoff_identifier

    string

    This field identifies who received delivery at dropoff location.

  • dropoff_ready

    timestamp (RFC 3339)

    When a delivery is ready to be dropped off. This is the start of the dropoff window.

  • fee

    integer

    Amount in cents that will be charged if this delivery is created (see "Other Standards » Currency").

  • id

    string

    Unique identifier for the delivery.

  • kind

    string

    The type of object being described.

  • live_mode

    boolean

    Indicates if this is live mode or test mode.

  • manifest

    ManifestInfo

    A detailed description of what the courier will be delivering. manifest.description is deprecated. Please use manifest_items instead.

  • manifest_items

    ManifestItem []

    List of items being delivered.

  • pickup

    WaypointInfo

    The pickup details for the delivery

  • pickup_deadline

    timestamp (RFC 3339)

    When a delivery must be picked up by. This is the end of the pickup window.

  • pickup_eta

    timestamp (RFC 3339)

    Estimated time the courier will arrive at the pickup location.

  • pickup_ready

    timestamp (RFC 3339)

    When a delivery is ready to be picked up. This is the start of the pickup window.

  • quote_id

    string

    ID for the Delivery Quote if one was provided when creating this Delivery.

  • related_deliveries

    RelatedDelivery []

    A collection describing other jobs that share an association.

  • status

    DeliveryStatus

    The current status of the delivery.

    pending - Delivery has been accepted but does not yet have a courier assigned.
    pickup - Courier is assigned and is en route to pick up the items.
    pickup_complete - Courier has picked up the items.
    dropoff - Courier is moving towards the dropoff.
    delivered - Courier has completed the dropoff.
    canceled - Delivery has been cancelled. This could either be due to use of CancelDelivery endpoint or an internal reason.
    returned - The delivery was canceled and a new delivery created to return items to sender. (See related_deliveries in delivery object.)
    ongoing - Delivery has been accepted and not yet delivered.
  • tip

    integer

    Amount in cents that will be paid to the courier as a tip.

  • tracking_url

    string

    This url can be used to track the courier during the delivery

  • undeliverable_action

    string

    If a delivery was undeliverable, this field will contain the resulting action taken by the courier

  • undeliverable_reason

    string

    If a delivery was undeliverable, this field will contain the reason why it was undeliverable

  • updated

    timestamp (RFC 3339)

    Date/Time at which the delivery was last updated.

Errors

400 - invalid_params

The parameters of your request were invalid.

400 - unknown_location

The specified location was not understood.

400 - address_undeliverable

The specified location is not in a deliverable area.

503 - couriers_busy

All of our couriers are currently busy

400 - expired_quote

The price quote specified has expired.

400 - used_quote

The price quote specified has been used.

400 - mismatched_price_quote

The price quote specified doesn't match the delivery.

402 - customer_suspended

Your account is passed due. Payment is required.

403 - customer_blocked

Your account is not allowed to create deliveries.

429 - customer_limited

Your account's limits have been exceeded.

503 - robo_couriers_busy

All of our robo couriers are currently busy

400 - missing_payment

Your account's payment information has not be provided.

400 - duplicate_delivery

An active delivery like this already exists.

400 - pickup_ready_time_not_specified

Pickup ready time must be specified when passing in pickup/dropoff windows.

400 - pickup_window_too_small

The pickup window needs to be at least 10 minutes long.

400 - dropoff_deadline_too_early

The dropoff deadline needs to be at least 20 minutes after the dropoff ready time.

400 - dropoff_deadline_before_pickup_deadline

The dropoff deadline needs to be after the pickup deadline.

400 - dropoff_ready_after_pickup_deadline

The dropoff ready time needs to be at or before the pickup deadline.

400 - pickup_ready_too_early

The pickup ready time cannot be in the past.

400 - pickup_deadline_too_early

The pickup deadline time needs to be at least 20 minutes from now.

400 - pickup_ready_too_late

The pickup ready time needs to be at within the next 30 days.

200success

POST:

/v1/customers/{customer_id}/deliveries

{
  "id": "del_3vDjjkd21b",
  "quote_id": "dqt_qUdje83jhdk",
  "status": "pickup",
  "complete": false,
  "kind": "delivery",
  "pickup": {
    "name": "Alice Cust",
    "phone_number": "4155555555",
    "address": "101 Market St, San Francisco, CA 94105",
    "detailed_address": {
      "street_address_1": "101 Market St",
      "street_address_2": "",
      "city": "San Francisco",
      "state": "CA",
      "zip_code": "94105",
      "country": "US",
      "sublocality_level_1": ""
    },
    "notes": "Ring the bell, meow loudly.",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    }
  },
  "dropoff": {
    "name": "Alice Cust",
    "phone_number": "4155555555",
    "address": "101 Market St, San Francisco, CA 94105",
    "detailed_address": {
      "street_address_1": "101 Market St",
      "street_address_2": "",
      "city": "San Francisco",
      "state": "CA",
      "zip_code": "94105",
      "country": "US",
      "sublocality_level_1": ""
    },
    "notes": "Ring the bell, meow loudly.",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    }
  },
  "manifest": {
    "reference": "SP 937-215",
    "description": "10kg cardboard box"
  },
  "manifest_items": [
    {
      "name": "Cardboard box",
      "quantity": 1,
      "size": "large"
    }
  ],
  "created": "2014-08-26T10:04:03Z",
  "updated": "2014-08-26T11:21:16Z",
  "pickup_ready": "2014-08-26T10:05:00Z",
  "pickup_deadline": "2014-08-26T10:25:00Z",
  "dropoff_ready": "2014-08-26T10:05:00Z",
  "dropoff_deadline": "2014-08-26T10:45:00Z",
  "pickup_eta": "2014-08-26T10:16:00Z",
  "dropoff_eta": "2014-08-26T10:29:00Z",
  "related_deliveries": [
    {
      "id": "del_9A3jsld89s",
      "relationship": "original"
    }
  ],
  "fee": 799,
  "currency": "usd",
  "tip": 0,
  "dropoff_identifier": "Picard",
  "tracking_url": "https://postmates.com/track/73c939d1-e679-421b-8799-83f918e3d957",
  "undeliverable_action": "",
  "courier_imminent": true,
  "courier": {
    "name": "Robo Courier",
    "rating": 5,
    "vehicle_type": "bicycle",
    "phone_number": "+14151234567",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    },
    "img_href": "https://images.postmates.com/06c9a53c-f89f-4eac-8861-60e34039d9ea/121.jpg"
  },
  "live_mode": false,
  "undeliverable_reason": ""
}

Get Delivery

GET:

/v1/customers/{customer_id}/deliveries/{delivery_id}

Retrieve updated details about a delivery.

Request

Path Parameters

  • customer_id

    Unique identifier for the customer.

  • delivery_id

    Unique identifier for the delivery.

Responses

200

  • complete

    boolean

    Flag indicating if the delivery is ongoing.

  • courier

    CourierInfo

    The courier object is only present when a delivery is in progress.

  • courier_imminent

    boolean

    Flag indicating if the courier is close to the pickup or dropoff location.

  • created

    timestamp (RFC 3339)

    Date/Time at which the delivery was created.

  • currency

    string

    Three-letter ISO currency code, in lowercase.

  • dropoff

    WaypointInfo

    The dropoff details for the delivery

  • dropoff_deadline

    timestamp (RFC 3339)

    When a delivery is must be dropped off by. This is the end of the dropoff window.

  • dropoff_eta

    timestamp (RFC 3339)

    Estimated time the courier will arrive at the dropoff location.

  • dropoff_identifier

    string

    This field identifies who received delivery at dropoff location.

  • dropoff_ready

    timestamp (RFC 3339)

    When a delivery is ready to be dropped off. This is the start of the dropoff window.

  • fee

    integer

    Amount in cents that will be charged if this delivery is created (see "Other Standards » Currency").

  • id

    string

    Unique identifier for the delivery.

  • kind

    string

    The type of object being described.

  • live_mode

    boolean

    Indicates if this is live mode or test mode.

  • manifest

    ManifestInfo

    A detailed description of what the courier will be delivering. manifest.description is deprecated. Please use manifest_items instead.

  • manifest_items

    ManifestItem []

    List of items being delivered.

  • pickup

    WaypointInfo

    The pickup details for the delivery

  • pickup_deadline

    timestamp (RFC 3339)

    When a delivery must be picked up by. This is the end of the pickup window.

  • pickup_eta

    timestamp (RFC 3339)

    Estimated time the courier will arrive at the pickup location.

  • pickup_ready

    timestamp (RFC 3339)

    When a delivery is ready to be picked up. This is the start of the pickup window.

  • quote_id

    string

    ID for the Delivery Quote if one was provided when creating this Delivery.

  • related_deliveries

    RelatedDelivery []

    A collection describing other jobs that share an association.

  • status

    DeliveryStatus

    The current status of the delivery.

    pending - Delivery has been accepted but does not yet have a courier assigned.
    pickup - Courier is assigned and is en route to pick up the items.
    pickup_complete - Courier has picked up the items.
    dropoff - Courier is moving towards the dropoff.
    delivered - Courier has completed the dropoff.
    canceled - Delivery has been cancelled. This could either be due to use of CancelDelivery endpoint or an internal reason.
    returned - The delivery was canceled and a new delivery created to return items to sender. (See related_deliveries in delivery object.)
    ongoing - Delivery has been accepted and not yet delivered.
  • tip

    integer

    Amount in cents that will be paid to the courier as a tip.

  • tracking_url

    string

    This url can be used to track the courier during the delivery

  • undeliverable_action

    string

    If a delivery was undeliverable, this field will contain the resulting action taken by the courier

  • undeliverable_reason

    string

    If a delivery was undeliverable, this field will contain the reason why it was undeliverable

  • updated

    timestamp (RFC 3339)

    Date/Time at which the delivery was last updated.

200success

GET:

/v1/customers/{customer_id}/deliveries/{delivery_id}

{
  "id": "del_3vDjjkd21b",
  "quote_id": "dqt_qUdje83jhdk",
  "status": "pickup",
  "complete": false,
  "kind": "delivery",
  "pickup": {
    "name": "Alice Cust",
    "phone_number": "4155555555",
    "address": "101 Market St, San Francisco, CA 94105",
    "detailed_address": {
      "street_address_1": "101 Market St",
      "street_address_2": "",
      "city": "San Francisco",
      "state": "CA",
      "zip_code": "94105",
      "country": "US",
      "sublocality_level_1": ""
    },
    "notes": "Ring the bell, meow loudly.",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    }
  },
  "dropoff": {
    "name": "Alice Cust",
    "phone_number": "4155555555",
    "address": "101 Market St, San Francisco, CA 94105",
    "detailed_address": {
      "street_address_1": "101 Market St",
      "street_address_2": "",
      "city": "San Francisco",
      "state": "CA",
      "zip_code": "94105",
      "country": "US",
      "sublocality_level_1": ""
    },
    "notes": "Ring the bell, meow loudly.",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    }
  },
  "manifest": {
    "reference": "SP 937-215",
    "description": "10kg cardboard box"
  },
  "manifest_items": [
    {
      "name": "Cardboard box",
      "quantity": 1,
      "size": "large"
    }
  ],
  "created": "2014-08-26T10:04:03Z",
  "updated": "2014-08-26T11:21:16Z",
  "pickup_ready": "2014-08-26T10:05:00Z",
  "pickup_deadline": "2014-08-26T10:25:00Z",
  "dropoff_ready": "2014-08-26T10:05:00Z",
  "dropoff_deadline": "2014-08-26T10:45:00Z",
  "pickup_eta": "2014-08-26T10:16:00Z",
  "dropoff_eta": "2014-08-26T10:29:00Z",
  "related_deliveries": [
    {
      "id": "del_9A3jsld89s",
      "relationship": "original"
    }
  ],
  "fee": 799,
  "currency": "usd",
  "tip": 0,
  "dropoff_identifier": "Picard",
  "tracking_url": "https://postmates.com/track/73c939d1-e679-421b-8799-83f918e3d957",
  "undeliverable_action": "",
  "courier_imminent": true,
  "courier": {
    "name": "Robo Courier",
    "rating": 5,
    "vehicle_type": "bicycle",
    "phone_number": "+14151234567",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    },
    "img_href": "https://images.postmates.com/06c9a53c-f89f-4eac-8861-60e34039d9ea/121.jpg"
  },
  "live_mode": false,
  "undeliverable_reason": ""
}

Update Delivery

POST:

/v1/customers/{customer_id}/deliveries/{delivery_id}

After an order has completed, you can add a tip for the courier.

Request

Path Parameters

  • customer_id

    Unique identifier for the customer.

  • delivery_id

    Unique identifier for the delivery.

Body

  • tip_by_customer

    integer

    Amount in cents that will be paid to the courier as a tip.

Responses

200

  • complete

    boolean

    Flag indicating if the delivery is ongoing.

  • courier

    CourierInfo

    The courier object is only present when a delivery is in progress.

  • courier_imminent

    boolean

    Flag indicating if the courier is close to the pickup or dropoff location.

  • created

    timestamp (RFC 3339)

    Date/Time at which the delivery was created.

  • currency

    string

    Three-letter ISO currency code, in lowercase.

  • dropoff

    WaypointInfo

    The dropoff details for the delivery

  • dropoff_deadline

    timestamp (RFC 3339)

    When a delivery is must be dropped off by. This is the end of the dropoff window.

  • dropoff_eta

    timestamp (RFC 3339)

    Estimated time the courier will arrive at the dropoff location.

  • dropoff_identifier

    string

    This field identifies who received delivery at dropoff location.

  • dropoff_ready

    timestamp (RFC 3339)

    When a delivery is ready to be dropped off. This is the start of the dropoff window.

  • fee

    integer

    Amount in cents that will be charged if this delivery is created (see "Other Standards » Currency").

  • id

    string

    Unique identifier for the delivery.

  • kind

    string

    The type of object being described.

  • live_mode

    boolean

    Indicates if this is live mode or test mode.

  • manifest

    ManifestInfo

    A detailed description of what the courier will be delivering. manifest.description is deprecated. Please use manifest_items instead.

  • manifest_items

    ManifestItem []

    List of items being delivered.

  • pickup

    WaypointInfo

    The pickup details for the delivery

  • pickup_deadline

    timestamp (RFC 3339)

    When a delivery must be picked up by. This is the end of the pickup window.

  • pickup_eta

    timestamp (RFC 3339)

    Estimated time the courier will arrive at the pickup location.

  • pickup_ready

    timestamp (RFC 3339)

    When a delivery is ready to be picked up. This is the start of the pickup window.

  • quote_id

    string

    ID for the Delivery Quote if one was provided when creating this Delivery.

  • related_deliveries

    RelatedDelivery []

    A collection describing other jobs that share an association.

  • status

    DeliveryStatus

    The current status of the delivery.

    pending - Delivery has been accepted but does not yet have a courier assigned.
    pickup - Courier is assigned and is en route to pick up the items.
    pickup_complete - Courier has picked up the items.
    dropoff - Courier is moving towards the dropoff.
    delivered - Courier has completed the dropoff.
    canceled - Delivery has been cancelled. This could either be due to use of CancelDelivery endpoint or an internal reason.
    returned - The delivery was canceled and a new delivery created to return items to sender. (See related_deliveries in delivery object.)
    ongoing - Delivery has been accepted and not yet delivered.
  • tip

    integer

    Amount in cents that will be paid to the courier as a tip.

  • tracking_url

    string

    This url can be used to track the courier during the delivery

  • undeliverable_action

    string

    If a delivery was undeliverable, this field will contain the resulting action taken by the courier

  • undeliverable_reason

    string

    If a delivery was undeliverable, this field will contain the reason why it was undeliverable

  • updated

    timestamp (RFC 3339)

    Date/Time at which the delivery was last updated.

Errors

400 - invalid_params

The parameters of your request were invalid.

400 - max_tip_exceeded

Tipping limit exceeded

400 - tip_already_recorded_error

Tipping limit exceeded

400 - no_tip

Delivery does not accept tip.

400 - invalid_tipping_state

Delivery cannot tip at this time.

408 - request_timeout

The request timed out.

404 - customer_not_found

Customer does not exist

404 - delivery_not_found

The requested delivery does not exist.

200success

POST:

/v1/customers/{customer_id}/deliveries/{delivery_id}

{
  "id": "del_3vDjjkd21b",
  "quote_id": "dqt_qUdje83jhdk",
  "status": "pickup",
  "complete": false,
  "kind": "delivery",
  "pickup": {
    "name": "Alice Cust",
    "phone_number": "4155555555",
    "address": "101 Market St, San Francisco, CA 94105",
    "detailed_address": {
      "street_address_1": "101 Market St",
      "street_address_2": "",
      "city": "San Francisco",
      "state": "CA",
      "zip_code": "94105",
      "country": "US",
      "sublocality_level_1": ""
    },
    "notes": "Ring the bell, meow loudly.",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    }
  },
  "dropoff": {
    "name": "Alice Cust",
    "phone_number": "4155555555",
    "address": "101 Market St, San Francisco, CA 94105",
    "detailed_address": {
      "street_address_1": "101 Market St",
      "street_address_2": "",
      "city": "San Francisco",
      "state": "CA",
      "zip_code": "94105",
      "country": "US",
      "sublocality_level_1": ""
    },
    "notes": "Ring the bell, meow loudly.",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    }
  },
  "manifest": {
    "reference": "SP 937-215",
    "description": "10kg cardboard box"
  },
  "manifest_items": [
    {
      "name": "Cardboard box",
      "quantity": 1,
      "size": "large"
    }
  ],
  "created": "2014-08-26T10:04:03Z",
  "updated": "2014-08-26T11:21:16Z",
  "pickup_ready": "2014-08-26T10:05:00Z",
  "pickup_deadline": "2014-08-26T10:25:00Z",
  "dropoff_ready": "2014-08-26T10:05:00Z",
  "dropoff_deadline": "2014-08-26T10:45:00Z",
  "pickup_eta": "2014-08-26T10:16:00Z",
  "dropoff_eta": "2014-08-26T10:29:00Z",
  "related_deliveries": [
    {
      "id": "del_9A3jsld89s",
      "relationship": "original"
    }
  ],
  "fee": 799,
  "currency": "usd",
  "tip": 0,
  "dropoff_identifier": "Picard",
  "tracking_url": "https://postmates.com/track/73c939d1-e679-421b-8799-83f918e3d957",
  "undeliverable_action": "",
  "courier_imminent": true,
  "courier": {
    "name": "Robo Courier",
    "rating": 5,
    "vehicle_type": "bicycle",
    "phone_number": "+14151234567",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    },
    "img_href": "https://images.postmates.com/06c9a53c-f89f-4eac-8861-60e34039d9ea/121.jpg"
  },
  "live_mode": false,
  "undeliverable_reason": ""
}

Cancel Delivery

POST:

/v1/customers/{customer_id}/deliveries/{delivery_id}/cancel

Cancel an ongoing delivery. A delivery can only be canceled prior to a courier completing pickup. Delivery fees still apply.

Request

Path Parameters

  • customer_id

    Unique identifier for the customer.

  • delivery_id

    Unique identifier for the delivery.

Responses

200

  • complete

    boolean

    Flag indicating if the delivery is ongoing.

  • courier

    CourierInfo

    The courier object is only present when a delivery is in progress.

  • courier_imminent

    boolean

    Flag indicating if the courier is close to the pickup or dropoff location.

  • created

    timestamp (RFC 3339)

    Date/Time at which the delivery was created.

  • currency

    string

    Three-letter ISO currency code, in lowercase.

  • dropoff

    WaypointInfo

    The dropoff details for the delivery

  • dropoff_deadline

    timestamp (RFC 3339)

    When a delivery is must be dropped off by. This is the end of the dropoff window.

  • dropoff_eta

    timestamp (RFC 3339)

    Estimated time the courier will arrive at the dropoff location.

  • dropoff_identifier

    string

    This field identifies who received delivery at dropoff location.

  • dropoff_ready

    timestamp (RFC 3339)

    When a delivery is ready to be dropped off. This is the start of the dropoff window.

  • fee

    integer

    Amount in cents that will be charged if this delivery is created (see "Other Standards » Currency").

  • id

    string

    Unique identifier for the delivery.

  • kind

    string

    The type of object being described.

  • live_mode

    boolean

    Indicates if this is live mode or test mode.

  • manifest

    ManifestInfo

    A detailed description of what the courier will be delivering. manifest.description is deprecated. Please use manifest_items instead.

  • manifest_items

    ManifestItem []

    List of items being delivered.

  • pickup

    WaypointInfo

    The pickup details for the delivery

  • pickup_deadline

    timestamp (RFC 3339)

    When a delivery must be picked up by. This is the end of the pickup window.

  • pickup_eta

    timestamp (RFC 3339)

    Estimated time the courier will arrive at the pickup location.

  • pickup_ready

    timestamp (RFC 3339)

    When a delivery is ready to be picked up. This is the start of the pickup window.

  • quote_id

    string

    ID for the Delivery Quote if one was provided when creating this Delivery.

  • related_deliveries

    RelatedDelivery []

    A collection describing other jobs that share an association.

  • status

    DeliveryStatus

    The current status of the delivery.

    pending - Delivery has been accepted but does not yet have a courier assigned.
    pickup - Courier is assigned and is en route to pick up the items.
    pickup_complete - Courier has picked up the items.
    dropoff - Courier is moving towards the dropoff.
    delivered - Courier has completed the dropoff.
    canceled - Delivery has been cancelled. This could either be due to use of CancelDelivery endpoint or an internal reason.
    returned - The delivery was canceled and a new delivery created to return items to sender. (See related_deliveries in delivery object.)
    ongoing - Delivery has been accepted and not yet delivered.
  • tip

    integer

    Amount in cents that will be paid to the courier as a tip.

  • tracking_url

    string

    This url can be used to track the courier during the delivery

  • undeliverable_action

    string

    If a delivery was undeliverable, this field will contain the resulting action taken by the courier

  • undeliverable_reason

    string

    If a delivery was undeliverable, this field will contain the reason why it was undeliverable

  • updated

    timestamp (RFC 3339)

    Date/Time at which the delivery was last updated.

Errors

503 - service_unavailable

Service is currently unavailable. Please try again later.

400 - noncancelable_delivery

You cannot cancel this delivery. Contact customer service.

408 - request_timeout

The request timed out.

404 - customer_not_found

Customer does not exist

404 - delivery_not_found

The requested delivery does not exist.

200success

POST:

/v1/customers/{customer_id}/deliveries/{delivery_id}/cancel

{
  "id": "del_3vDjjkd21b",
  "quote_id": "dqt_qUdje83jhdk",
  "status": "pickup",
  "complete": false,
  "kind": "delivery",
  "pickup": {
    "name": "Alice Cust",
    "phone_number": "4155555555",
    "address": "101 Market St, San Francisco, CA 94105",
    "detailed_address": {
      "street_address_1": "101 Market St",
      "street_address_2": "",
      "city": "San Francisco",
      "state": "CA",
      "zip_code": "94105",
      "country": "US",
      "sublocality_level_1": ""
    },
    "notes": "Ring the bell, meow loudly.",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    }
  },
  "dropoff": {
    "name": "Alice Cust",
    "phone_number": "4155555555",
    "address": "101 Market St, San Francisco, CA 94105",
    "detailed_address": {
      "street_address_1": "101 Market St",
      "street_address_2": "",
      "city": "San Francisco",
      "state": "CA",
      "zip_code": "94105",
      "country": "US",
      "sublocality_level_1": ""
    },
    "notes": "Ring the bell, meow loudly.",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    }
  },
  "manifest": {
    "reference": "SP 937-215",
    "description": "10kg cardboard box"
  },
  "manifest_items": [
    {
      "name": "Cardboard box",
      "quantity": 1,
      "size": "large"
    }
  ],
  "created": "2014-08-26T10:04:03Z",
  "updated": "2014-08-26T11:21:16Z",
  "pickup_ready": "2014-08-26T10:05:00Z",
  "pickup_deadline": "2014-08-26T10:25:00Z",
  "dropoff_ready": "2014-08-26T10:05:00Z",
  "dropoff_deadline": "2014-08-26T10:45:00Z",
  "pickup_eta": "2014-08-26T10:16:00Z",
  "dropoff_eta": "2014-08-26T10:29:00Z",
  "related_deliveries": [
    {
      "id": "del_9A3jsld89s",
      "relationship": "original"
    }
  ],
  "fee": 799,
  "currency": "usd",
  "tip": 0,
  "dropoff_identifier": "Picard",
  "tracking_url": "https://postmates.com/track/73c939d1-e679-421b-8799-83f918e3d957",
  "undeliverable_action": "",
  "courier_imminent": true,
  "courier": {
    "name": "Robo Courier",
    "rating": 5,
    "vehicle_type": "bicycle",
    "phone_number": "+14151234567",
    "location": {
      "lat": 37.793274,
      "lng": -122.395934
    },
    "img_href": "https://images.postmates.com/06c9a53c-f89f-4eac-8861-60e34039d9ea/121.jpg"
  },
  "live_mode": false,
  "undeliverable_reason": ""
}

List Deliveries

GET:

/v1/customers/{customer_id}/deliveries

List all deliveries for a customer.

Request

Path Parameters

  • customer_id

    Unique identifier for the customer.

Query Parameters

  • filter

    This filter limits the results to only deliveries that are currently being delivered.

    pending - Delivery has been accepted but does not yet have a courier assigned.
    pickup - Courier is assigned and is en route to pick up the items.
    pickup_complete - Courier has picked up the items.
    dropoff - Courier is moving towards the dropoff.
    delivered - Courier has completed the dropoff.
    canceled - Delivery has been cancelled. This could either be due to use of CancelDelivery endpoint or an internal reason.
    returned - The delivery was canceled and a new delivery created to return items to sender. (See related_deliveries in delivery object.)
    ongoing - Delivery has been accepted and not yet delivered.
  • limit

    Maximum number of response objects to return.

  • offset

    Offset of response objects. Useful for returning paginated results.

Responses

200

  • data

    Delivery []

  • next_href

    string

    page_token to fetch next set of deliveries

  • object

    string

  • total_count

    integer

  • url

    string

Errors

400 - invalid_params

The parameters of your request were invalid.

200success

GET:

/v1/customers/{customer_id}/deliveries

{
  "url": "/v1/customers/:customer_id/deliveries",
  "total_count": 18,
  "object": "list",
  "data": [
    {
      "id": "del_3vDjjkd21b",
      "quote_id": "dqt_qUdje83jhdk",
      "status": "pickup",
      "complete": false,
      "kind": "delivery",
      "pickup": {
        "name": "Alice Cust",
        "phone_number": "4155555555",
        "address": "101 Market St, San Francisco, CA 94105",
        "detailed_address": {
          "street_address_1": "101 Market St",
          "street_address_2": "",
          "city": "San Francisco",
          "state": "CA",
          "zip_code": "94105",
          "country": "US",
          "sublocality_level_1": ""
        },
        "notes": "Ring the bell, meow loudly.",
        "location": {
          "lat": 37.793274,
          "lng": -122.395934
        }
      },
      "dropoff": {
        "name": "Alice Cust",
        "phone_number": "4155555555",
        "address": "101 Market St, San Francisco, CA 94105",
        "detailed_address": {
          "street_address_1": "101 Market St",
          "street_address_2": "",
          "city": "San Francisco",
          "state": "CA",
          "zip_code": "94105",
          "country": "US",
          "sublocality_level_1": ""
        },
        "notes": "Ring the bell, meow loudly.",
        "location": {
          "lat": 37.793274,
          "lng": -122.395934
        }
      },
      "manifest": {
        "reference": "SP 937-215",
        "description": "10kg cardboard box"
      },
      "manifest_items": [
        {
          "name": "Cardboard box",
          "quantity": 1,
          "size": "large"
        }
      ],
      "created": "2014-08-26T10:04:03Z",
      "updated": "2014-08-26T11:21:16Z",
      "pickup_ready": "2014-08-26T10:05:00Z",
      "pickup_deadline": "2014-08-26T10:25:00Z",
      "dropoff_ready": "2014-08-26T10:05:00Z",
      "dropoff_deadline": "2014-08-26T10:45:00Z",
      "pickup_eta": "2014-08-26T10:16:00Z",
      "dropoff_eta": "2014-08-26T10:29:00Z",
      "related_deliveries": [
        {
          "id": "del_9A3jsld89s",
          "relationship": "original"
        }
      ],
      "fee": 799,
      "currency": "usd",
      "tip": 0,
      "dropoff_identifier": "Picard",
      "tracking_url": "https://postmates.com/track/73c939d1-e679-421b-8799-83f918e3d957",
      "undeliverable_action": "",
      "courier_imminent": true,
      "courier": {
        "name": "Robo Courier",
        "rating": 5,
        "vehicle_type": "bicycle",
        "phone_number": "+14151234567",
        "location": {
          "lat": 37.793274,
          "lng": -122.395934
        },
        "img_href": "https://images.postmates.com/06c9a53c-f89f-4eac-8861-60e34039d9ea/121.jpg"
      },
      "live_mode": false,
      "undeliverable_reason": ""
    }
  ],
  "next_href": "https://api.postmates.com/v1/..."
}

Support

Technical Help

Having problems with your code? Post your question on Stack Overflow and we'll make sure to answer it.

If you have questions about the API, please check out the Delivery as a Service Help Center and select "Contact Delivery Support".

Live Deliveries

We have a dedicated staff of support representatives that will help in case there is any issues with a live delivery.

Customer Not Available

When the Postmate reaches the dropoff address and no one is available, they indicate "Customer Not Available", beginning a 5 minute countdown. Forward progress is blocked during this time and can only proceed when they have attempted to contact the customer and the countdown completes. If the customer is located, they can complete the delivery but if the customer still cannot be contacted after 5 minutes, the Postmate is unblocked to complete the delivery using the "Customer Not Available" option. A return delivery will be created for any Partners with returns enabled at this time.

Cancelations

The timeframe you are able to cancel a delivery is between the time you sent the delivery request until the time the Postmate has completed the delivery. Cancelation fee may apply if delivery is canceled once the delivery has started. Cancelation fee may vary.

Additional Support

If you have any questions with a live delivery, please contact us by visiting the Delivery as a Service Help Center and selecting "Contact Delivery Support".

Changelog

2018-04-18

Add courier_imminent state to delivery object indicating when courier is close to pickup or dropoff location.

2018-04-17

Remove unused delivery_deadline webhook.

2018-04-01

Add support for scheduled deliveries.

2018-01-09

Add tracking url to delivery object.

2017-10-31

Support international phone numbers.

2017-10-24

Added support for delivery of alcohol items.

2016-11-28

Deprecated the "Return a Delivery" endpoint.

2016-01-20

New endpoint for tipping. Added section for Approval Guidelines.

2015-12-22

New endpoint for delivery zones. Condensed and re-organized Docs. Added link to Postman tutorial.

2015-12-09

Added section for shopping cart plugins.

2015-10-19

Added client libraries for Python, Ruby, Go, Node, PHP, iOS, and Android

2015-05-19

At drop off, last name is now recorded and included in delivery object

2015-05-06

Percolating courier contact information in delivery object

2015-04-26

Adjusted delivery_deadline webhook to send only changes to deadline.

2015-03-12

Using test API key you can specify when various Robo delivery events occur

2015-03-12

Webhooks to allow you to receive real-time updates to your ongoing deliveries

2015-02-09

Providing detailed address information on delivery object

2015-02-09

Exposing relationship between original and returned deliveries

2015-02-09

Introduction of "returned" delivery status

2015-02-02

Include developer provided manifest reference for delivery object

2015-01-26

Exposing pickup_complete state on delivery object

2015-01-26

Adding customer delivery confirmation image to delivery object

2014-12-22

Addition of /return to have a delivery returned to where it came from

2014-12-10

Initial Release