Download OpenAPI specification:
You can receive updates about an order by subscribing to webhooks.
API uses Basic authentication, which involves sending a verified username and password with request. Take credential for Basic authentication(username and password) from API integrations secrets.
Direct request
Request must contain a header field in the form of Authorization: Basic, where credentials is the Base64 encoding of ID and password joined by a single colon:
For example, if in API "user" as username and "password" as the password, then the field's value is the Base64 encoding of user:password, or dXNlcjpwYXNzd29yZA==.
Then the Authorization header field will appear in request as:
Authorization: Basic dXNlcjpwYXNzd29yZA==.
Postman:
In the request Authorization tab, select Basic Auth from the Type dropdown list.
Enter API username and password in the Username and Password fields. In the request Headers, the Authorization header passes the API a Base64 encoded string representing your username and password values, appended to the text Basic.
The detailed API user guide is available via the following link.
| URL_part required | string Part of the URL from the Cartwheel integration settings |
CreateOrderRequest
required | object (CreatePickupWaypoint) |
required | object (CreateDropOffWaypoint) |
| order_id | string |
| team_id | string |
Array of objects (OrderItem) | |
| payment_type | string Enum: "cash" "paid" |
| order_total | number <double> |
| sub_total | number <double> |
| tax | number <double> |
| delivery_fee | number <double> |
| tip | number <double> |
| allowed_vehicles | string |
| quote_external_reference | string <= 255 characters |
object (OrderControlledSubstances) | |
| is_contactless_delivery | boolean |
| require_photo | boolean |
| require_photo_at_drop_off | string Enum: "none" "required" "optional" |
| require_photo_at_pick_up | string Enum: "none" "required" "optional" |
object (CustomerNotification) | |
object (CustomerIdDetailsRequest) | |
| barcode | string |
object (RouteItem) | |
| catering | boolean |
{- "pickup_waypoint": {
- "name": "pickup",
- "address": "200 South Santa Fe Avenue",
- "address2": "2",
- "city": "Los Angeles",
- "state": "CA",
- "zip": "30230",
- "phone": "+18006666778",
- "location": {
- "latitude": 34.7564321,
- "longitude": -118.7564321
}, - "arrive_at": "2021-10-01T15:00:00-0800",
- "external_pickup_id": "pickupId123",
- "special_instructions": "near with Big Mike's"
}, - "dropoff_waypoint": {
- "name": "dropoff",
- "address": "300 South Santa Fe Avenue",
- "address2": "1",
- "city": "Los Angeles",
- "state": "CA",
- "zip": "30230",
- "phone": "+18006666778",
- "email": "peter@example.com",
- "location": {
- "latitude": 34.1234567,
- "longitude": -118.1234567
}, - "arrive_at": "2021-10-01T16:00:00-0800",
- "special_instructions": "leave my order at the door"
}, - "order_id": "testId",
- "team_id": "c7456517-ce01-e4d4-1c04-111ba075463e",
- "order_items": [
- {
- "name": "name1",
- "quantity": 1,
- "description": "description1",
- "image_url": "imageUrl1"
}, - {
- "name": "name2",
- "quantity": 2,
- "description": "description2",
- "image_url": "imageUrl2"
}
], - "order_total": 10,
- "sub_total": 7,
- "tax": 1,
- "delivery_fee": 1,
- "tip": 1,
- "allowed_vehicles": "Car,Motorcycle,Bicycle,Walking,Van",
- "quote_external_reference": "quote",
- "payment_type": "cash",
- "controlled_substances": {
- "control": true
}, - "is_contactless_delivery": false,
- "require_photo": false,
- "require_photo_at_drop_off": "required",
- "require_photo_at_pick_up": "optional",
- "customer_notification": {
- "sms": true,
- "email": true
}, - "route": {
- "id": "099e30cd-5833-4306-857c-40cadf8cdfe8",
- "pickup_stop_number": 1,
- "dropoff_stop_number": 2
}, - "catering": false
}{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status_code": 0
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| jobId required | string <uuid> Order identifier |
{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "order_id": "string",
- "external_order_id": "EXT-12345",
- "source": "src-1",
- "status": "submitted",
- "notes": {
- "pickup_notes": "string",
- "dropoff_notes": "string",
- "driver_notes": "string"
}, - "timestamps": {
- "created_at": "string",
- "pickup_by": "string",
- "deliver_by": "string",
- "pickup_eta": "string",
- "dropoff_eta": "string",
- "last_assigned_at": "string",
- "pickup_check_in_at": "string",
- "last_picked_up_at": "string",
- "finished_at": "string"
}, - "payments": {
- "payment_type": "cash",
- "cash": 0.1,
- "tip": 0.1,
- "tax": 0.1,
- "sub_total": 0.1,
- "total": 0.1,
- "driver_pay": 0.1,
- "company_delivery_fee": 0.1,
- "delivery_fee": 0.1
}, - "flags": {
- "signature_loaded": true,
- "is_contactless_delivery": true,
- "catering": true,
- "controlled_substances": true,
- "barcode_loaded": {
- "at_pickup": true,
- "at_dropoff": true
}, - "photo_needed": {
- "at_pickup": "none",
- "at_dropoff": "none"
}, - "photo_loaded": {
- "at_pickup": true,
- "at_dropoff": true
}
}, - "dsp": {
- "delivery_id": "del_YQ-NQiGIThGBDpGxTrZvpw",
- "delivery_fee": 6.4,
- "quoted_pickup_eta": "2026-02-05T09:38:18-0800",
- "quoted_dropoff_eta": "2026-02-05T10:12:34-0800"
}, - "pickup": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "external_pickup_id": "string",
- "address": {
- "address": "string",
- "location": {
- "latitude": 0.1,
- "longitude": 0.1
}
}, - "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb"
}, - "notes": "string",
- "flags": {
- "controlled_substances_possible": true,
- "customer_signature_required": true,
- "barcode_required": {
- "at_pickup": true,
- "at_dropoff": true
}
}
}, - "dropoff": {
- "name": "string",
- "address": {
- "address": "string",
- "location": {
- "latitude": 0.1,
- "longitude": 0.1
}
}
}, - "driver": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb"
}, - "dsp": {
- "code": "UberDirect",
- "name": "Uber Direct"
}, - "location": {
- "latitude": 0.1,
- "longitude": 0.1
}, - "phone": "string",
- "photo": {
- "descriptorId": "26882cb3-5577-44f2-ad89-83eb4ba46da9",
- "name": "string",
- "extension": "string",
- "size": 0
}
}, - "allowed_vehicles": "string",
- "customer_id_details": {
- "scanned_customer_name": "string",
- "document_expiration_date": "1991-12-21",
- "customer_date_of_birth": "1991-12-21"
}, - "route": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "pickup_stop_number": 0,
- "dropoff_stop_number": 0
}, - "log": [
- {
- "status": "submitted",
- "timestamp": "string"
}
], - "urls": {
- "tracking_link": "string",
- "signature_photo": "string",
- "photos": [
- "string"
]
}
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| jobId required | string <uuid> Order identifier |
UpdateOrderRequest
| status | string Enum: "done_cancelled" "cancelled" |
| arrive_at | string <ISO 8601 Localized Datetime> |
{- "status": "cancelled",
- "arrive_at": "2021-10-01T15:00:00-0800"
}{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "order_id": "string",
- "external_order_id": "EXT-12345",
- "source": "src-1",
- "status": "submitted",
- "notes": {
- "pickup_notes": "string",
- "dropoff_notes": "string",
- "driver_notes": "string"
}, - "timestamps": {
- "created_at": "string",
- "pickup_by": "string",
- "deliver_by": "string",
- "pickup_eta": "string",
- "dropoff_eta": "string",
- "last_assigned_at": "string",
- "pickup_check_in_at": "string",
- "last_picked_up_at": "string",
- "finished_at": "string"
}, - "payments": {
- "payment_type": "cash",
- "cash": 0.1,
- "tip": 0.1,
- "tax": 0.1,
- "sub_total": 0.1,
- "total": 0.1,
- "driver_pay": 0.1,
- "company_delivery_fee": 0.1,
- "delivery_fee": 0.1
}, - "flags": {
- "signature_loaded": true,
- "is_contactless_delivery": true,
- "catering": true,
- "controlled_substances": true,
- "barcode_loaded": {
- "at_pickup": true,
- "at_dropoff": true
}, - "photo_needed": {
- "at_pickup": "none",
- "at_dropoff": "none"
}, - "photo_loaded": {
- "at_pickup": true,
- "at_dropoff": true
}
}, - "dsp": {
- "delivery_id": "del_YQ-NQiGIThGBDpGxTrZvpw",
- "delivery_fee": 6.4,
- "quoted_pickup_eta": "2026-02-05T09:38:18-0800",
- "quoted_dropoff_eta": "2026-02-05T10:12:34-0800"
}, - "pickup": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "external_pickup_id": "string",
- "address": {
- "address": "string",
- "location": {
- "latitude": 0.1,
- "longitude": 0.1
}
}, - "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb"
}, - "notes": "string",
- "flags": {
- "controlled_substances_possible": true,
- "customer_signature_required": true,
- "barcode_required": {
- "at_pickup": true,
- "at_dropoff": true
}
}
}, - "dropoff": {
- "name": "string",
- "address": {
- "address": "string",
- "location": {
- "latitude": 0.1,
- "longitude": 0.1
}
}
}, - "driver": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb"
}, - "dsp": {
- "code": "UberDirect",
- "name": "Uber Direct"
}, - "location": {
- "latitude": 0.1,
- "longitude": 0.1
}, - "phone": "string",
- "photo": {
- "descriptorId": "26882cb3-5577-44f2-ad89-83eb4ba46da9",
- "name": "string",
- "extension": "string",
- "size": 0
}
}, - "allowed_vehicles": "string",
- "customer_id_details": {
- "scanned_customer_name": "string",
- "document_expiration_date": "1991-12-21",
- "customer_date_of_birth": "1991-12-21"
}, - "route": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "pickup_stop_number": 0,
- "dropoff_stop_number": 0
}, - "log": [
- {
- "status": "submitted",
- "timestamp": "string"
}
], - "urls": {
- "tracking_link": "string",
- "signature_photo": "string",
- "photos": [
- "string"
]
}
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| jobId required | string <uuid> Order identifier |
PatchOrderRequest
object (PatchPickupWaypoint) | |
object (PatchDropOffWaypoint) | |
| order_id | string |
| status | string Enum: "done_cancelled" "cancelled" |
Array of objects (OrderItem) | |
| payment_type | string Enum: "cash" "paid" |
| order_total | number <double> |
| sub_total | number <double> |
| tax | number <double> |
| delivery_fee | number <double> |
| tip | number <double> |
object (CustomerNotification) | |
object (RouteItem) | |
| catering | boolean |
{- "pickup_waypoint": {
- "external_pickup_id": "pickup-123"
}, - "dropoff_waypoint": {
- "name": "dropoff",
- "address": "300 South Santa Fe Avenue",
- "address2": "5",
- "city": "Los Angeles",
- "state": "CA",
- "zip": "30230",
- "phone": "+18006666778",
- "email": "peter@example.com",
- "location": {
- "latitude": 34.1234567,
- "longitude": -118.1234567
}, - "arrive_at": "2021-10-01T16:00:00-0800",
- "special_instructions": "leave my order at the door"
}, - "order_id": "testId",
- "status": "cancelled",
- "order_items": [
- {
- "name": "name1",
- "quantity": 1,
- "description": "description1",
- "image_url": "imageUrl1"
}, - {
- "name": "name2",
- "quantity": 2,
- "description": "description2",
- "image_url": "imageUrl2"
}
], - "payment_type": "cash",
- "order_total": 10,
- "sub_total": 7,
- "tax": 1,
- "delivery_fee": 1,
- "tip": 1,
- "customer_notification": {
- "sms": true,
- "email": true
}, - "route": {
- "id": "099e30cd-5833-4306-857c-40cadf8cdfe8",
- "pickup_stop_number": 1,
- "dropoff_stop_number": 2
}, - "catering": false
}{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "order_id": "string",
- "external_order_id": "EXT-12345",
- "source": "src-1",
- "status": "submitted",
- "notes": {
- "pickup_notes": "string",
- "dropoff_notes": "string",
- "driver_notes": "string"
}, - "timestamps": {
- "created_at": "string",
- "pickup_by": "string",
- "deliver_by": "string",
- "pickup_eta": "string",
- "dropoff_eta": "string",
- "last_assigned_at": "string",
- "pickup_check_in_at": "string",
- "last_picked_up_at": "string",
- "finished_at": "string"
}, - "payments": {
- "payment_type": "cash",
- "cash": 0.1,
- "tip": 0.1,
- "tax": 0.1,
- "sub_total": 0.1,
- "total": 0.1,
- "driver_pay": 0.1,
- "company_delivery_fee": 0.1,
- "delivery_fee": 0.1
}, - "flags": {
- "signature_loaded": true,
- "is_contactless_delivery": true,
- "catering": true,
- "controlled_substances": true,
- "barcode_loaded": {
- "at_pickup": true,
- "at_dropoff": true
}, - "photo_needed": {
- "at_pickup": "none",
- "at_dropoff": "none"
}, - "photo_loaded": {
- "at_pickup": true,
- "at_dropoff": true
}
}, - "dsp": {
- "delivery_id": "del_YQ-NQiGIThGBDpGxTrZvpw",
- "delivery_fee": 6.4,
- "quoted_pickup_eta": "2026-02-05T09:38:18-0800",
- "quoted_dropoff_eta": "2026-02-05T10:12:34-0800"
}, - "pickup": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "external_pickup_id": "string",
- "address": {
- "address": "string",
- "location": {
- "latitude": 0.1,
- "longitude": 0.1
}
}, - "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb"
}, - "notes": "string",
- "flags": {
- "controlled_substances_possible": true,
- "customer_signature_required": true,
- "barcode_required": {
- "at_pickup": true,
- "at_dropoff": true
}
}
}, - "dropoff": {
- "name": "string",
- "address": {
- "address": "string",
- "location": {
- "latitude": 0.1,
- "longitude": 0.1
}
}
}, - "driver": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb"
}, - "dsp": {
- "code": "UberDirect",
- "name": "Uber Direct"
}, - "location": {
- "latitude": 0.1,
- "longitude": 0.1
}, - "phone": "string",
- "photo": {
- "descriptorId": "26882cb3-5577-44f2-ad89-83eb4ba46da9",
- "name": "string",
- "extension": "string",
- "size": 0
}
}, - "allowed_vehicles": "string",
- "customer_id_details": {
- "scanned_customer_name": "string",
- "document_expiration_date": "1991-12-21",
- "customer_date_of_birth": "1991-12-21"
}, - "route": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "pickup_stop_number": 0,
- "dropoff_stop_number": 0
}, - "log": [
- {
- "status": "submitted",
- "timestamp": "string"
}
], - "urls": {
- "tracking_link": "string",
- "signature_photo": "string",
- "photos": [
- "string"
]
}
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| fields | Array of strings Items Value: "quote-delivery-model" Fields that must be returned additionally |
{- "pickups": [
- {
- "id": "25f63dee-ef68-0065-3acb-bad81626bf9e",
- "name": "Pickup 1",
- "address": {
- "address": "29 Broadway, New York, NY",
- "location": {
- "latitude": 36.0828981,
- "longitude": -94.1557983
}
}, - "quote_delivery_model": {
- "areas": [
- {
- "radius": 13,
- "center": {
- "latitude": 51.1006338,
- "longitude": 17.0998089
}, - "color": "#D76FFC",
- "min_order_value": 7,
- "type": "circle"
}, - {
- "vertices": [
- {
- "latitude": 53.173119,
- "longitude": 19.863281
}, - {
- "latitude": 51.179343,
- "longitude": 19.951172
}, - {
- "latitude": 51.289406,
- "longitude": 22.587891
}, - {
- "latitude": 53.173119,
- "longitude": 22.412109
}
], - "color": "#D76FFC",
- "min_order_value": 11,
- "type": "polygon"
}
]
}
}, - {
- "id": "198a6a6e-a764-e5d5-468f-fd61c956ed55",
- "name": "Pickup 2",
- "address": {
- "address": "27 Broadway, New York, NY",
- "location": {
- "latitude": 36.0828981,
- "longitude": -94.1557983
}
}, - "quote_delivery_model": { }
}
]
}Phone value must be unique among all drivers in a Company and is used instead of login value.
If you don’t provide password a random password will be generated.
Login instruction will be sent to the driver via text message if it is configured by Company's settings. You can forcefully override sending message behaviour by optional send_sms parameter.
| URL_part required | string Part of the URL from the Cartwheel integration settings |
CreateDriverRequest
| login | string Deprecated |
| password | string |
string <RFC 822> | |
| phone required | string <E.164> |
| first_name required | string |
| last_name required | string |
| date_of_birth | string <ISO 8601 Localized Date> |
object (TeamIdRequest) | |
| driver_id | string |
| send_sms | boolean |
{- "email": "peter@example.com",
- "password": "94PV/evNTo5i",
- "phone": "+18005553535",
- "first_name": "Peter",
- "last_name": "Parker",
- "date_of_birth": "1991-12-21",
- "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb"
}, - "driver_id": "driverId",
- "send_sms": "true"
}{- "id": "53c50a1a-6c80-491d-13b9-6149dd67cef2",
- "login": "+18005553535",
- "email": "peter@example.com",
- "phone": "+18005553535",
- "first_name": "Peter",
- "last_name": "Parker",
- "dsp": {
- "code": "UberDirect",
- "name": "Uber Direct"
}, - "date_of_birth": "1991-12-21",
- "active": true,
- "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb",
- "name": "Demo Name"
}, - "photo": {
- "descriptorId": "42d30834-3164-96a1-6abf-1de394862039",
- "name": "data",
- "extension": "",
- "size": 917605
}, - "driver_id": "driverId"
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| login required | string Driver login |
{- "id": "53c50a1a-6c80-491d-13b9-6149dd67cef2",
- "login": "+18005553535",
- "email": "peter@example.com",
- "phone": "+18005553535",
- "first_name": "Peter",
- "last_name": "Parker",
- "dsp": {
- "code": "UberDirect",
- "name": "Uber Direct"
}, - "date_of_birth": "1991-12-21",
- "active": true,
- "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb",
- "name": "Demo Name"
}, - "photo": {
- "descriptorId": "42d30834-3164-96a1-6abf-1de394862039",
- "name": "data",
- "extension": "",
- "size": 917605
}, - "driver_id": "driverId"
}This API use a pagination strategy for dealing with operations that can return a large number of drivers. This strategy is built around the notion of a "cursor" and a "limit" that determines the maximum number of drivers that can be returned in a single response. Received "cursor" from the previous request can again be added to the original query to get the next page. This continues until the response returns a drivers list less than "limit" value which signifies that there are no more pages of results.
| URL_part required | string Part of the URL from the Cartwheel integration settings |
| teamId required | string Team in which the getting drivers takes place |
| cursor | string Cursor that can be used for getting next page |
| limit | integer [ 1 .. 1000 ] Default: 100 Maximum number of drivers that can be returned in requested page |
{- "drivers": [
- {
- "id": "4bedd413-7fa9-c9b2-631c-fbf829733fb8",
- "login": "+19375555555",
- "phone": "+19375555555",
- "first_name": "Maxim",
- "last_name": "Popov",
- "date_of_birth": "2007-12-20",
- "active": true
}, - {
- "id": "516e80cb-760c-0d4d-3120-da664041a6dc",
- "login": "+19375555554",
- "first_name": "TestDriver",
- "last_name": "123",
- "phone": "+19375555554",
- "active": true
}
], - "cursor": "eyJjcmVhdGVUcyI6IjIwMjItMDItMDFUMDU6NTc6MjEuMDkxWiIsImlkIjoiNTE2ZTgwY2ItNzYwYy0wZDRkLTMxMjAtZGE2NjQwNDFhNmRjIiwic2VlZCI6eyJkYXRlIjp7InllYXIiOjIwMjQsIm1vbnRoIjozLCJkYXkiOjE4fSwidGltZSI6eyJob3VyIjo2LCJtaW51dGUiOjM1LCJzZWNvbmQiOjUzLCJuYW5vIjozNjM5MTAwMH19fQ=="
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| driverId required | string <uuid> Driver identifier |
PatchDriverRequest
string <RFC 822> | |
| phone | string <E.164> |
| first_name | string |
| last_name | string |
| date_of_birth | string <ISO 8601 Localized Date> |
object (TeamIdRequest) | |
| driver_id | string |
{- "email": "peter@example.com",
- "phone": "+18005553535",
- "first_name": "Peter",
- "last_name": "Parker",
- "date_of_birth": "1991-12-21",
- "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb"
}, - "driver_id": "driverId"
}{- "id": "53c50a1a-6c80-491d-13b9-6149dd67cef2",
- "login": "+18005553535",
- "email": "peter@example.com",
- "phone": "+18005553535",
- "first_name": "Peter",
- "last_name": "Parker",
- "dsp": {
- "code": "UberDirect",
- "name": "Uber Direct"
}, - "date_of_birth": "1991-12-21",
- "active": true,
- "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb",
- "name": "Demo Name"
}, - "photo": {
- "descriptorId": "42d30834-3164-96a1-6abf-1de394862039",
- "name": "data",
- "extension": "",
- "size": 917605
}, - "driver_id": "driverId"
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| driverId required | string <uuid> Driver identifier |
{- "id": "53c50a1a-6c80-491d-13b9-6149dd67cef2",
- "login": "+18005553535",
- "email": "peter@example.com",
- "phone": "+18005553535",
- "first_name": "Peter",
- "last_name": "Parker",
- "dsp": {
- "code": "UberDirect",
- "name": "Uber Direct"
}, - "date_of_birth": "1991-12-21",
- "active": true,
- "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb",
- "name": "Demo Name"
}, - "photo": {
- "descriptorId": "42d30834-3164-96a1-6abf-1de394862039",
- "name": "data",
- "extension": "",
- "size": 917605
}, - "driver_id": "driverId"
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| driverId required | string <uuid> Driver identifier |
{- "id": "53c50a1a-6c80-491d-13b9-6149dd67cef2",
- "login": "+18005553535",
- "email": "peter@example.com",
- "phone": "+18005553535",
- "first_name": "Peter",
- "last_name": "Parker",
- "dsp": {
- "code": "UberDirect",
- "name": "Uber Direct"
}, - "date_of_birth": "1991-12-21",
- "active": true,
- "team": {
- "id": "4fd0ee0e-ce6a-461b-add6-c41dc5e034eb",
- "name": "Demo Name"
}, - "photo": {
- "descriptorId": "42d30834-3164-96a1-6abf-1de394862039",
- "name": "data",
- "extension": "",
- "size": 917605
}, - "driver_id": "driverId"
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| fields | Array of strings Items Value: "quote-delivery-model" Fields that must be returned additionally |
{- "teams": [
- {
- "id": "9fd5189e-7571-e075-17a5-7a01824e3111",
- "name": "Dallas, TX",
- "timezone": "America/Chicago",
- "quote_delivery_model": {
- "areas": [
- {
- "radius": 13,
- "center": {
- "latitude": 51.1006338,
- "longitude": 17.0998089
}, - "color": "#D76FFC",
- "min_order_value": 7,
- "type": "circle"
}, - {
- "vertices": [
- {
- "latitude": 53.173119,
- "longitude": 19.863281
}, - {
- "latitude": 51.179343,
- "longitude": 19.951172
}, - {
- "latitude": 51.289406,
- "longitude": 22.587891
}, - {
- "latitude": 53.173119,
- "longitude": 22.412109
}
], - "color": "#D76FFC",
- "min_order_value": 11,
- "type": "polygon"
}
]
}
}, - {
- "id": "10489a11-d527-2295-dd2d-48c61482b580",
- "name": "Undefined",
- "zip_codes": "90036, 60706",
- "timezone": "US/Pacific",
- "is_default": true,
- "quote_delivery_model": { }
}
]
}Request quote(s) for the delivery.
| URL_part required | string Part of the URL from the Cartwheel integration settings |
CreateQuoteRequest
required | object (CreatePickupWaypoint) |
required | object (CreateDropOffWaypoint) |
| order_id | string |
| team_id | string |
Array of objects (OrderItem) | |
| payment_type | string Enum: "cash" "paid" |
| order_total | number <double> |
| sub_total | number <double> |
| tax | number <double> |
| delivery_fee | number <double> |
| tip | number <double> |
| allowed_vehicles | string |
| quote_external_reference | string <= 255 characters |
object (OrderControlledSubstances) | |
| is_contactless_delivery | boolean |
| require_photo | boolean |
| require_photo_at_drop_off | string Enum: "none" "required" "optional" |
| require_photo_at_pick_up | string Enum: "none" "required" "optional" |
object (CustomerNotification) | |
object (CustomerIdDetailsRequest) | |
| barcode | string |
object (RouteItem) | |
| catering | boolean |
| send_dsp_quotes | boolean Default: false When |
{- "pickup_waypoint": {
- "name": "pickup",
- "address": "200 South Santa Fe Avenue",
- "address2": "2",
- "city": "Los Angeles",
- "state": "CA",
- "zip": "30230",
- "phone": "+18006666778",
- "location": {
- "latitude": 34.7564321,
- "longitude": -118.7564321
}, - "arrive_at": "2021-10-01T15:00:00-0800",
- "external_pickup_id": "pickupId123",
- "special_instructions": "near with Big Mike's"
}, - "dropoff_waypoint": {
- "name": "dropoff",
- "address": "300 South Santa Fe Avenue",
- "address2": "1",
- "city": "Los Angeles",
- "state": "CA",
- "zip": "30230",
- "phone": "+18006666778",
- "email": "peter@example.com",
- "location": {
- "latitude": 34.1234567,
- "longitude": -118.1234567
}, - "arrive_at": "2021-10-01T16:00:00-0800",
- "special_instructions": "leave my order at the door"
}, - "order_id": "testId",
- "team_id": "c7456517-ce01-e4d4-1c04-111ba075463e",
- "order_items": [
- {
- "name": "name1",
- "quantity": 1,
- "description": "description1",
- "image_url": "imageUrl1"
}, - {
- "name": "name2",
- "quantity": 2,
- "description": "description2",
- "image_url": "imageUrl2"
}
], - "order_total": 10,
- "sub_total": 7,
- "tax": 1,
- "delivery_fee": 1,
- "tip": 1,
- "allowed_vehicles": "Car,Motorcycle,Bicycle,Walking,Van",
- "quote_external_reference": "quote",
- "payment_type": "cash",
- "controlled_substances": {
- "control": true
}, - "is_contactless_delivery": false,
- "require_photo": false,
- "require_photo_at_drop_off": "required",
- "require_photo_at_pick_up": "optional",
- "customer_notification": {
- "sms": true,
- "email": true
}, - "route": {
- "id": "099e30cd-5833-4306-857c-40cadf8cdfe8",
- "pickup_stop_number": 1,
- "dropoff_stop_number": 2
}, - "catering": false,
- "send_dsp_quotes": false
}{- "is_available": true,
- "quote_id": "bca6c1ca-b56c-1c4b-cb68-ee8e276e0155",
- "fee": 4.5,
- "return_fee": 1,
- "unavailable_reason": "unavailable reason",
- "estimated_pickup_time": "2021-10-01T15:01:00-0800",
- "estimated_dropoff_time": "2021-10-01T16:02:00-0800",
- "expires": "2021-10-01T16:00:00-0800"
}Confirms a quote from a recent POST .../quotes call and creates the delivery order for that quote.
No request body is required.
If you call this again with the same quote_id after it was already accepted successfully, the API
returns 409 Conflict with the same response body as the original 200 (safe for retries).
If the quote's cache entry has expired (expires has passed), the API returns 410 Gone with
error_code quote_expired (not 404).
Fulfillment follows the option you chose in the quotes response (carrier or platform delivery, as shown there).
| URL_part required | string Part of the URL from the Cartwheel integration settings |
| quote_id required | string The |
{- "job_id": "bca6c1ca-b56c-1c4b-cb68-ee8e276e0155",
- "order_id": "testId",
- "status": "accepted",
- "provider": {
- "code": "in_house",
- "name": "In-House Drivers"
}, - "delivery_fee": 4.5,
- "estimated_pickup_time": "2021-10-01T15:01:00-0800",
- "estimated_dropoff_time": "2021-10-01T16:02:00-0800"
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
RouteRequest
| name | string |
Array of objects (RouteItemRequest) |
{- "name": "route_2",
- "stops": [
- {
- "type": "pickup",
- "job_id": "88361141-2bbc-c3ac-f054-9c701588dca6",
- "number": 1
}, - {
- "type": "dropoff",
- "job_id": "88361141-2bbc-c3ac-f054-9c701588dca6",
- "number": 3
}, - {
- "type": "pickup",
- "job_id": "ca3d1186-ec32-e436-7637-19ec2c7c08f8",
- "number": 4
}, - {
- "type": "dropoff",
- "job_id": "ca3d1186-ec32-e436-7637-19ec2c7c08f8",
- "number": 5
}, - {
- "type": "pickup",
- "job_id": "04e60822-3153-a2a2-8792-cec8291cda2a",
- "number": 0
}, - {
- "type": "dropoff",
- "job_id": "04e60822-3153-a2a2-8792-cec8291cda2a",
- "number": 2
}
]
}{- "id": "26da0ca1-f7bb-cc51-f700-f19bfa8d9116",
- "name": "route_2",
- "stops": [
- {
- "type": "pickup",
- "job_id": "88361141-2bbc-c3ac-f054-9c701588dca6",
- "number": 1
}, - {
- "type": "dropoff",
- "job_id": "88361141-2bbc-c3ac-f054-9c701588dca6",
- "number": 3
}, - {
- "type": "pickup",
- "job_id": "ca3d1186-ec32-e436-7637-19ec2c7c08f8",
- "number": 4
}, - {
- "type": "dropoff",
- "job_id": "ca3d1186-ec32-e436-7637-19ec2c7c08f8",
- "number": 5
}, - {
- "type": "pickup",
- "job_id": "04e60822-3153-a2a2-8792-cec8291cda2a",
- "number": 0
}, - {
- "type": "dropoff",
- "job_id": "04e60822-3153-a2a2-8792-cec8291cda2a",
- "number": 2
}
]
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| routeId required | string <uuid> Route identifier |
{- "id": "26da0ca1-f7bb-cc51-f700-f19bfa8d9116",
- "name": "route_2",
- "stops": [
- {
- "type": "pickup",
- "job_id": "88361141-2bbc-c3ac-f054-9c701588dca6",
- "number": 1
}, - {
- "type": "dropoff",
- "job_id": "88361141-2bbc-c3ac-f054-9c701588dca6",
- "number": 3
}, - {
- "type": "pickup",
- "job_id": "ca3d1186-ec32-e436-7637-19ec2c7c08f8",
- "number": 4
}, - {
- "type": "dropoff",
- "job_id": "ca3d1186-ec32-e436-7637-19ec2c7c08f8",
- "number": 5
}, - {
- "type": "pickup",
- "job_id": "04e60822-3153-a2a2-8792-cec8291cda2a",
- "number": 0
}, - {
- "type": "dropoff",
- "job_id": "04e60822-3153-a2a2-8792-cec8291cda2a",
- "number": 2
}
]
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| routeId required | string <uuid> Route identifier |
RouteRequest
| name | string |
Array of objects (RouteItemRequest) |
{- "name": "route_2",
- "stops": [
- {
- "type": "pickup",
- "job_id": "88361141-2bbc-c3ac-f054-9c701588dca6",
- "number": 1
}, - {
- "type": "dropoff",
- "job_id": "88361141-2bbc-c3ac-f054-9c701588dca6",
- "number": 3
}, - {
- "type": "pickup",
- "job_id": "ca3d1186-ec32-e436-7637-19ec2c7c08f8",
- "number": 4
}, - {
- "type": "dropoff",
- "job_id": "ca3d1186-ec32-e436-7637-19ec2c7c08f8",
- "number": 5
}, - {
- "type": "pickup",
- "job_id": "04e60822-3153-a2a2-8792-cec8291cda2a",
- "number": 0
}, - {
- "type": "dropoff",
- "job_id": "04e60822-3153-a2a2-8792-cec8291cda2a",
- "number": 2
}
]
}{- "id": "26da0ca1-f7bb-cc51-f700-f19bfa8d9116",
- "name": "route_2",
- "stops": [
- {
- "type": "pickup",
- "job_id": "88361141-2bbc-c3ac-f054-9c701588dca6",
- "number": 1
}, - {
- "type": "dropoff",
- "job_id": "88361141-2bbc-c3ac-f054-9c701588dca6",
- "number": 3
}, - {
- "type": "pickup",
- "job_id": "ca3d1186-ec32-e436-7637-19ec2c7c08f8",
- "number": 4
}, - {
- "type": "dropoff",
- "job_id": "ca3d1186-ec32-e436-7637-19ec2c7c08f8",
- "number": 5
}, - {
- "type": "pickup",
- "job_id": "04e60822-3153-a2a2-8792-cec8291cda2a",
- "number": 0
}, - {
- "type": "dropoff",
- "job_id": "04e60822-3153-a2a2-8792-cec8291cda2a",
- "number": 2
}
]
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| routeId required | string <uuid> Route identifier |
{- "order_ineligible_status": {
- "code": 403,
- "error_code": "forbidden",
- "message": "Forbidden",
- "details": "Orders with id '[88361141-2bbc-c3ac-f054-9c701588dca6]' have ineligible statuses"
}
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
AsyncBulkCreateOrderRequest
Array of objects (CreateOrderRequestAsync) |
{- "jobs": [
- {
- "externalId": "12345",
- "pickup_waypoint": {
- "name": "pickup",
- "address": "200 South Santa Fe Avenue",
- "address2": "2",
- "city": "Los Angeles",
- "state": "CA",
- "zip": "30230",
- "phone": "+18006666778",
- "location": {
- "latitude": 34.7564321,
- "longitude": -118.7564321
}, - "arrive_at": "2021-10-01T15:00:00-0800",
- "external_pickup_id": "pickupId123",
- "special_instructions": "near with Big Mike's"
}, - "dropoff_waypoint": {
- "name": "dropoff",
- "address": "300 South Santa Fe Avenue",
- "address2": "1",
- "city": "Los Angeles",
- "state": "CA",
- "zip": "30230",
- "phone": "+18006666778",
- "email": "peter@example.com",
- "location": {
- "latitude": 34.1234567,
- "longitude": -118.1234567
}, - "arrive_at": "2021-10-01T16:00:00-0800",
- "special_instructions": "leave my order at the door"
}, - "order_id": "testId",
- "team_id": "c7456517-ce01-e4d4-1c04-111ba075463e",
- "order_items": [
- {
- "name": "name1",
- "quantity": 1,
- "description": "description1",
- "image_url": "imageUrl1"
}, - {
- "name": "name2",
- "quantity": 2,
- "description": "description2",
- "image_url": "imageUrl2"
}
], - "order_total": 10,
- "sub_total": 7,
- "tax": 1,
- "delivery_fee": 1,
- "tip": 1,
- "allowed_vehicles": "Car,Motorcycle,Bicycle,Walking,Van",
- "quote_external_reference": "quote",
- "payment_type": "cash",
- "controlled_substances": {
- "control": true
}, - "is_contactless_delivery": false,
- "require_photo": false,
- "require_photo_at_drop_off": "required",
- "require_photo_at_pick_up": "optional",
- "customer_notification": {
- "sms": true,
- "email": true
}, - "route": {
- "id": "099e30cd-5833-4306-857c-40cadf8cdfe8",
- "pickup_stop_number": 1,
- "dropoff_stop_number": 2
}, - "catering": false
}
]
}{- "token": "1355c3a0-bf35-4cbe-8854-33409379a511"
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| tokenId required | string <uuid> Order identifier for bulk request |
{- "token": "1355c3a0-bf35-4cbe-8854-33409379a511",
- "status": [
- {
- "externalId": "1",
- "status": "FINISHED"
}
]
}| URL_part required | string Part of the URL from the Cartwheel integration settings |
| tokenId required | string <uuid> Order identifier for bulk request |
{- "token": "7c0b0559-1325-4879-bae5-520b9026e6ca",
- "jobs": [
- {
- "externalId": "1",
- "result": {
- "job_id": "f68a1050-290a-3638-200a-8f83f1985168",
- "status_code": 0
}
}
]
}See Release Notes for the latest changes.