Get Quote
A quote is the first step in the synchronous DashLink parcel workflow. It validates address serviceability, calculates delivery fee, determines delivery timelines, and optionally triggers address correction.
The quote endpoint and the create-delivery endpoint share the exact same request payload, with minor differences in the response.
When to use get quote
Quotes allow you to:
- Validate an address before printing a label
- Check if a ZIP is serviceable
- Estimate delivery timelines
- Preview the fee for the shipment
- Correct addresses upstream
- Avoid creating parcels that DashLink cannot deliver
This protects shippers from downstream failures and reduces undeliverable shipments.
When to skip get quote
You may skip the quote step and call create-delivery directly if:
- You always use DashLink as the carrier
- You have strong upstream address validation
- You don’t require fees before label creation
Endpoint
POST /drive/v2/quotes
Request behavior
The quote request validates:
- Address correctness (
dropoff_address_components) - Geolocation quality (lat/lng overrides geocoding)
- Serviceability (ZIP/proximity/days of operation/cutoff times)
- Critical required fields (recipient details, package dimensions, business IDs)
- Tracking code rules (if shipper-generated)
If you send an empty external_delivery_id, DashLink will generate a tracking code later during the quote acceptance stage.
Request Fields
A sample request and response found in the Get Quote Example appendix.
| Field | Type | Requirement | Description |
|---|---|---|---|
external_delivery_id | string | Required | Empty string signals DashLink to generate the code. Required if shipper-generated tracking codes are used. Must be 15–35 characters, unique, no leading zeros. Prefix must be DashLink-approved |
order_fulfillment_method | string | Required | Must be "parcel" for DashLink. |
pickup_external_business_id | string | Required | String identifier for your business provided by DashLink. |
origin_facility_id | string | Required | Merchant warehouse ID used for mid-mile routing provided by DashLink. |
dropoff_address | string | Required | Full comma-separated delivery address used for serviceability and fee checks. |
pickup_business_name | string | Recommended | Name of the business shipping the item; used in SMS communications, labels, and the tracking page. |
dropoff_business_name | string | Recommended | Name of the business receiving the delivery, used to help Dashers identify the dropoff location. |
dropoff_location.lat | integer | Optional | Latitude for precise navigation. Used only for routing, not fee validation and overrides geocoding. |
dropoff_location.lng | integer | Optional | Longitude for precise navigation. Overrides geocoding. |
dropoff_phone_number | string | Required | Must follow E.164 format (e.g. +16505555555). |
dropoff_instructions | string | Recommended | Instructions to help Dashers successfully complete the delivery. |
dropoff_contact_given_name | string | Required | Recipient first name. |
dropoff_contact_family_name | string | Required | Recipient last name. |
dropoff_contact_send_notifications | boolean | Recommended | Defaults to true. Indicates whether SMS notifications will be sent for this delivery. |
Dropoff Address Components
| Field | Type | Requirement | Description |
|---|---|---|---|
dropoff_address_components.street_address | string | Required | Street address line. |
dropoff_address_components.sub_premise | string | Recommended | Apartment, suite, or unit number. |
dropoff_address_components.city | string | Required | City name. |
dropoff_address_components.state | string | Required | 2-letter state code. |
dropoff_address_components.zip_code | integer | Required | ZIP or postal code. |
dropoff_address_components.country | string | Required | Country code (e.g. "US"). |
Order & Item Details
| Field | Type | Requirement | Description |
|---|---|---|---|
order_value | integer (cents) | Recommended | Subtotal excluding tax/tip (e.g. $19.99 → 1999). Must be ≥ 0. |
currency | string | Optional | Defaults to USD. Currency code. |
items[] | array | Required | Array of Delivery Item objects (maximum 1 item). |
Delivery Item Object
| Field | Type | Requirement | Description |
|---|---|---|---|
items[].name | string | Required | Name of the package or item. |
items[].description | string | Optional | Description of item contents. |
items[].external_id | string | Optional | Shipper-provided metadata that will print on the label returned. |
items[].quantity | integer | Required | Quantity of item (always 1 for parcel shipments). |
items[].height | integer (inches) | Required | Height of package. |
items[].width | integer (inches) | Required | Width of package. |
items[].length | integer (inches) | Required | Length of package. |
items[].weight | integer (pounds) | Required | Weight of package. |
items[].volume | integer (cubic feet) | Optional | Volume of package, (H × W × L) / 1728. |
items[].price | integer (cents) | Optional | Price of item in lowest currency denomination. |
Delivery Options
| Field | Type | Requirement | Description |
|---|---|---|---|
contactless_dropoff | boolean | Required | Defaults to true. If true, Dasher takes photo at dropoff. |
dropoff_requires_signature | boolean | Required | Defaults to false. Requires recipient signature. Mutually exclusive with contactless_dropoff |
Response behavior
Quote responses do NOT include:
- Shipping label
- Some downstream-only fields (photo POD, verification metadata)
To obtain the label (if using DashLink-generated labels), the quote must first be accepted.
Response Fields
In addition to the quote request fields returned in the response, the fields below are either only sent in the response or possibly updated from the request inputs sent.
A sample request and response found in the Get Quote Example appendix.
| Field | Type | Description |
|---|---|---|
external_delivery_id | string | Echoed unique delivery ID generated by the caller. |
delivery_status | string | Always "quote" for this endpoint. |
fee | integer (cents) | Delivery fee in lowest currency denomination (e.g. $5.99 → 599). |
dropoff_address | string | Full comma-separated delivery address returned by geocoding. |
dropoff_location.lat | integer | Latitude returned by geocoding for precise navigation. |
dropoff_location.lng | integer | Longitude returned by geocoding for precise navigation. |
dropoff_address_components.street_address | string | Geocoded street address line. |
dropoff_address_components.sub_premise | string | Geocoded apartment, suite, or unit number. |
dropoff_address_components.city | string | Geocoded city name. |
dropoff_address_components.state | string | Geocoded 2-letter state code. |
dropoff_address_components.zip_code | integer | Geocoded ZIP or postal code. |
dropoff_address_components.country | string | Geocoded country code (e.g. "US"). |
updated_at | string (ISO-8601) | Timestamp indicating when the delivery record was last updated. |
pickup_time_estimated | string (ISO-8601) | Estimated pickup time, if available. |
dropoff_time_estimated | string (ISO-8601) | Estimated delivery time, if available. |
action_if_undeliverable | string | What DashLink should do if the parcel cannot be delivered. All parcel shipments use: "return_to_pickup", parcels are never disposed or left behind unless configured differently. |
Note: Not all fields that may be returned by the Drive API are listed above.
This table includes only the fields relevant to the DashLink parcel use case.