Create Delivery
POST /drive/v2/deliveries is the core endpoint used to create a parcel in DashLink. It is functionally identical to accepting a quote, except it does not allow a preview of the fee or serviceability beforehand.
Endpoint​
POST /drive/v2/deliveries
This endpoint:
- Creates an active parcel delivery
- Generates or confirms the tracking code
- Validates the full request payload
- Triggers address correction
- Returns a base64 shipping label
- Initiates the delivery lifecycle
See the Drive API Reference for the full schema.
Required fields (detailed)​
The following fields are required and governed by strict rules:
Tracking & Account fields​
order_fulfillment_methodmust be"parcel"pickup_external_business_id— assigned by DashLink onboardingorigin_facility_id— identifies the warehouse/storeexternal_delivery_id—- Required if shipper-generated tracking codes are used
- Must be 15–35 characters, unique, no leading zeros
- Prefix must be DashLink-approved
- Empty string signals DashLink to generate the code
Recipient & address fields​
dropoff_contact_given_name(≤25 chars)dropoff_contact_family_name(≤25 chars)- If your system cannot split the first and last name, repeat the whole name in both fields
- The label will print the duplicated name but the delivery still works
dropoff_phone_numberin E.164 formatdropoff_address(full string used for label printing)dropoff_address_components(structured address required)- Optional:
dropoff_location.lat/lng(overrides geocoding)
Parcel metadata (items[])​
DashLink supports exactly one item per parcel:
name(≤50 chars)description(≤50 chars)external_id(used for operator-level metadata; required for multi-drop grouping)quantity= 1- Dimensions:
heightwidthlengthweight
- Optional:
volume= (H × W × L) / 1728
Dropoff behavior​
contactless_dropoff(default: true)dropoff_requires_signature(mutually exclusive withcontactless_dropoff)
Response fields​
The response includes:
- Final tracking identifiers:
external_delivery_idpickup_reference_tagitems[].barcode
- Corrected
dropoff_address_components - Estimated pickup & delivery windows
- Fee
- Tracking URL
- Shipping label (if configured)
- POD/vehicle metadata (pulled in via the status endpoint)
Action for undeliverable parcels​
All parcel shipments use:
"action_if_undeliverable": "return_to_pickup"
Parcels are never disposed or left behind unless configured differently.
When to use create-delivery directly​
Use this endpoint instead of quotes when:
- You already trust your serviceability logic
- You don’t need to preview fees
- You want to simplify your integration to a single step
- You run a synchronous realtime workflow