The Order Done callback occurs when an order is completed. This callback returns detailed information describing the order, including the order status.
Register Your URL for this Webhook
To start receiving webhooks from Bringg, you must first register a URL. Detailed guidance on setting up and managing Bringg webhooks is available in the following resources:
- Send Bringg Webhooks: Subscribe to webhooks and customize the fields in your callbacks.
- Webhook Authentication Methods: Ensure that your other systems recognize and accept webhooks from Bringg.
Webhook
Below are the default parameters included in the task_done
webhook.
{
"task": {
"additional_attributes": {
"planned_distance_from_prev_task": 4.594
},
"id": 1236,
"status": 6,
"title": "Delivery Task",
"ended_time": "2023-01-01T12:52:00.000Z",
"external_id": "h9371",
"way_points": [
{
"id": 9878,
"position": 1,
"scheduled_at": null,
"eta": null,
"address": "123 Main St. New York, NY 10001",
},
{
"id": 9879,
"position": 2,
"scheduled_at": "2023-01-01T12:47:00.000Z",
"eta": "2023-01-01T12:47:00.000Z",
"address": "123 1st Ave. New York, NY 10002",
"checkout_time": "2023-01-01T12:52:00.000Z"
}
]
},
"webhook_type": "task_done",
"merchant_id": 1,
}
{
"task": {
"id": 10739113,
"status": 4,
"title": "Order with canceled inventory",
"external_id": "60",
"customer": {
"kind": 2,
"name": "John Doe Enterprises",
"external_id": "2000"
},
"user": {
"id": 4079,
"name": "Delivery Specialist"
},
"teams": [
{
"id": 2841,
"name": "Regional Team"
}
],
"way_points": [
{
"id": 17416992,
"position": 1,
"scheduled_at": "2024-05-06T06:00:00.000Z",
"eta": null,
"address": "123 Anywhere St, Metro City, Country",
"task_inventories": [
{
"id": 325813885,
"quantity": 5,
"scanned": false,
"original_quantity": 5,
"rejected_quantity": 0,
"external_id": "1113",
"name": "IcyFridge 58'",
"inventory_change_details": []
}
]
},
{
"id": 17416993,
"position": 2,
"scheduled_at": "2024-05-06T06:00:00.000Z",
"eta": "2024-05-06T07:10:00.000Z",
"address": "456 Main Rd, Metro City, Country",
"task_inventories": [
{
"id": 325813884,
"quantity": 1,
"scanned": false,
"original_quantity": 5,
"rejected_quantity": 4,
"external_id": "1113",
"name": "IcyFridge 58'",
"inventory_change_details": [
{
"change_type": 2,
"before": "0",
"after": "4",
"inventory_change": {
"reason_to_change_inventory_id": 421,
"reason_to_change_inventory": {
"reason": "Item is damaged"
}
}
}
]
}
]
}
]
},
"webhook_type": "task_done",
"merchant_id": 60364
}
Output Params
By default, the task_done
webhook includes a number of parameters from the Order (Task) Object, including an array of waypoints. You can also choose to include additional parameters when subscribing to webhooks.
Order Object
Parameter | Description |
---|---|
success boolean | Indicates whether the service completed successfully.false - the service failed.true - the service succeeded |
message string | If an error occurred, a message indicating the error is included. |
rc integer | If an error occurred, the return code is included. |
accept_time datetime | The date and time when the driver accepted this order. |
acknowledged_at datetime | The time at which the order was acknowledged by a dispatcher. If orders are auto-acknowledged, then this time is set upon creation. |
active_way_point_id integer | The ID for the incomplete waypoint associated with this order. |
automatically_assigned boolean | Indicates whether this order was automatically assigned. The values are: false or 0 - this order was not automatically assigned true or 1 - this order was automatically assigned. |
automatically_cancelled integer | Indicates the method used to cancel this order. Possible values:0 - manually using the Driver App1 - automatic check-in or check-out via geofence2 - driver's action when prompted by the Driver App3 - from linked task4 - updated via the Cancel Order API request5 - updated by the carrier6 - automated by activity trigger7 - updated using the Bringg platform8 - updated using the store app9 - updated from Run End10 - automatic by server |
automatically_ended integer | Indicates the method used to end this order. Possible values:0 - manually using the Driver App)1 - automatic check-in or check-out via geofence2 - driver's action when prompted by the Driver App3 - from linked task4 - updated via the Cancel Order API request5 - updated by the carrier6 - automated by activity trigger7 - updated from a child task8 - from the store app9 - from run end10 - updated by Bringg automation11 - updated via API |
automatically_started integer | Indicates the method used to start this order. Possible values:0 - manually using the Driver App1 - automatic check-in or check-out via geofence2 - driver's action when prompted by the Driver App4 - auto_corrected_by_client5 - auto_corrected_by_server6 - automated by activity trigger7 - updated in the Bringg platform8 - updated in the store app9 - from_run_end10 - updated by Bringg automation |
cancelled_at datetime | The date and time when this order was canceled. |
created_at datetime | The date and time this order was created. This is in UTC and is in the format is "%Y-%m-%dT%H:%M:%S%z". |
delete_at datetime | A null timestamp indicates that the entity is still active or present in Bringg. |
delivery_cost float | The delivery fee charged by a third-party carrier. |
delivery_window_id integer | Bringg's ID for the delivery window selected by or assigned to the customer. |
dispatcher_id integer | The ID of the dispatcher who assigned this order. |
distance_automatically_set integer | Indicates how the distance_traveled for this order was calculated. Possible values:0 - automatic1 - estimated2 - manual |
distance_traveled double | The actual distance traveled (in km). |
driver_payments Array | An array including details of all payments accepted by a driver for this order. |
ended_time datetime | The date and time when the order was canceled or marked as complete. |
external_user_id string | Your external system's ID for the driver associated with this order. |
failed_delivery_attempts integer | The number of times a driver unsuccessfully attempted to deliver the order. |
fleet object | An object containing the details of an assigned or quoted fleet. |
fleet_delivery_external_id string | The external carrier's ID for the order. |
fleet_id integer | Bringg's ID for the external carrier. |
group_leader_id integer | If this order is part of a group of orders, this is the ID of the order representing the entire collection of orders in the group (the parent order containing all child orders in the group). This is the ID that Bringg operators (for example, dispatchers and users/drivers) view. NOTE: Bringg internally maintains each order and each order contains the same group leader ID. |
group_uuid string | If this order is a group of orders, this is the UUID of the group (see group_leader_id ). |
id integer | The unique ID of this order in Bringg. |
invalidated boolean | When true , signifies that this order is missing fields that Bringg requires to validate orders and include them in order lists and optimization among other Bringg features. |
last_assigned_time datetime | The last date and time this order was assigned to a driver. |
last_ready_to_execute_at datetime | The last time this order was marked as ready to execute. |
last_way_point_lat double | The geographical latitude for the last waypoint for the order. |
last_way_point_lng double | The geographical longitude of the last waypoint for the order. |
late boolean | Indicates whether the driver has not arrived at a destination in this order on or before the scheduled times. The values are:false or 0 - the driver is not latetrue or 1 - the driver is lateThe default value is false . |
late_reason string | |
linked_task_id integer | Bringg’s ID for a linked order. Linked orders are created when one order is split into distinct tasks for each waypoint. |
parent_task_id integer | If this order was created from another order (for example, one that failed), this is the ID of the original order. |
planned_distance_from_prev_task double | The distance to this order's last waypoint from the last waypoint of the preceding order in the route, as calculated during Route Optimization and via manual planning adjustments in the route planner. |
planning_done boolean | Indicates if this order has been organized into a route, and that route has been marked as "Done Planning." |
planning_published boolean | Indicates if the planned delivery window has been finalized or shared with the customer. |
post_delivery_tip_cash double | The tip (gratuity) paid to the driver in cash after delivery. |
post_delivery_tip_credit double | The tip (gratuity) paid to the driver by credit after delivery. |
pre_delivery_tip double | The tip (gratuity) paid to the driver before delivery. |
preparation_acknowledge _time_actual datetime | Time and date when the order was actually acknowledged. |
preparation_end _time_actual datetime | Time and date when the order actually ended. |
preparation_end _time_planned datetime | Time and date when the order was scheduled to end. |
preparation_picked_up_ time_actual datetime | Time and date when the order was actually picked up. |
preparation_ready_for_ pickup_time_actual datetime | Time and date when the order was actually ready for pick up. |
preparation_ready_for _pickup_time_planned datetime | Time and date when the order was scheduled to be ready for pickup. |
preparation_start_ time_actual datetime | Time and date when preparation of the order actually began. |
preparation_start_ time_planned datetime | Time and date when preparation of the order was scheduled to begin. |
preparation_status integer | The order's stage in the preparation workflow. Possible values:0 - acknowledged 1 - preparation started 2 - preparation ended 3 - ready for pickup 4 - picked up5 - send to preparation failed |
recurrent_task_template_id integer | Designates the recurring order series that generated this order. See Create Recurring Order Template. |
reserved_until datetime | Date and time when the reservation of a delivery slot for an order expires. If the order is not completed by this time, the delivery slot reservation expires and the order is canceled. |
run_id integer | The ID of the route the order is assigned to. |
run_uuid uuid | The UUID of the run the order is assigned to. Use run_id to search in Bringg UI. |
scans array of objects | An array of objects including details about barcode scans related to an order, such as for inventory items. |
scheduled_to_be_ready datetime | The date and time when an order is scheduled to be ready for pickup from a waypoint. |
service_fee double | The service fee charged by an external carrier. Usually calculated as a percentage of the subtotal of the order. |
service_plan_id integer | Bringg's ID for the Service Plan applied to this order. Service Plans are used to set SLA and driver actions. |
shared_locations array of objects | Array of objects that includes URLs, tokens, and identifying data related to the customer experience for a waypoint. |
shift_id integer | Bringg's ID for the driver's shift when fulfilling this order. |
start_lat double | The geoposition latitude of the driver when this order started. |
start_lng double | The geoposition longitude of the driver when this order started. |
started_time datetime | The date and time when the driver started this order. |
status string | Indicates the current status of this order. Possible values include:0 - new 1 - assigned 2 - on the way 3 - checked in 4 - done 6 - accepted 7 - canceled 8 - rejected 9 - unacknowledged |
external_carrier_tracking_url > string | The carrier's tracking link. Included as part of the task_fleet_mapping > shared_extras objects, which contain information provided by the carrier associated with this order and can be included in flexible webhooks. |
tip float | The tip (gratuity) paid for this order. |
updated_at datetime | The last time this order's details were updated. |
way_points array of objects | The list of waypoints associated with this order. For more details, see the Way Point Object. |
user_id integer | Bringg's ID for the driver associated with this order. |
uuid uuid | A universally unique identifier (UUID) for this order. |
Waypoint Object
Parameter | Description |
---|---|
allow_editing_inventory boolean | Indicates whether the driver is allowed to change inventory at this waypoint. Possible values:false or 0 - the driver is not allowed to change the inventorytrue or 1 - the driver is allowed to change the inventoryThe default value is true . |
allow_editing_original_quantity boolean | Indicates whether the driver is allowed to change the quantity of the inventory. Possible values:false or 0 - the driver is not allowed to change the quantity of the inventorytrue or 1 - the driver is allowed to change the quantity of the inventoryThe default value is false . |
allow_editing_payment boolean | Indicates whether the driver is allowed to change payment details and cost. Possible values:false or 0 - the driver is not allowed to change payment details and costtrue or 1 - the driver is allowed to change payment details and cost |
allow_scanning_inventory boolean | Indicates whether the driver is allowed to scan inventory as part of the handover process. Possible values:false or 0 - the driver is not allowed to scan the inventorytrue or 1 - the driver is allowed to scan the inventoryThe default value is false . |
allow_sending_email | Indicates whether emails are allowed to be sent to the customer on this waypoint. Possible values:false or 0 - do not send emailstrue or 1 - allow emails to be sentThe default value is true . |
automatically_checked_in int32 | The method used to check in to the waypoint. Possible values: 0 - Manually using the Driver App1 - Automatic check-in or check-out via geofence2 - Driver's action when prompted by the Driver App4 - Updated by linked task5 - Updated via API6 - Automated by activity trigger7 - Updated using the Bringg platform8 - Updated using the store app9 - Triggered by route end10 - Automatically updated by server11 - Updated via API13 - Triggered by completion of cluster pickup |
automatically_checked_out int32 | The method used to check out of the waypoint. Possible values: 0 - Manually using the Driver App1 - Automatic check-in or check-out via geofence2 - Driver's action when prompted by the Driver App4 - Updated by linked task5 - Updated via API6 - Automated by activity trigger7 - Updated using the Bringg platform8 - Updated using the store app9 - Triggered by route end10 - Automatically updated by server11 - Updated via API13 - Triggered by completion of cluster pickup |
base_etos int32 | The standard estimated time on site (ETOS) before inventory- and customer-based ETOS are calculated. This is measured in seconds. To calculate ETOS, Bringg takes the largest ETOS from the list as the initial value, and then adds a preconfigured value for each additional order. For example, for a group of orders including a bed and desk with installation times of 15 and 30 minutes, with a base value of 5 minutes, the combined ETOS is 35 minutes (30 + 5 ). |
automatically_geocoded boolean | Indicates if the address was automatically geocoded. Geocoding allows Bringg to ensure accurate display and navigation to waypoints. Possible values:false or 0 - was not automatically geocodedtrue or 1 - was automatically geocoded |
checkin_lat double | The driver's geographical latitude when checking in (arriving) at the waypoint. |
checkin_lng double | The driver's geographical longitude when checking in (arriving) at the waypoint. |
checkin_origin int32 | Indicates which system initiated check-in (arrival) at the waypoint. Possible values: 1 - Driver App2 - Bringg Platform3 - Background operations on the Bringg platform4 - Scheduled background operation on the Bringg platform5 - Customer experience app6 - Carrier via API7 - Floating inventory (for example, if the status of a floating inventory item changes)8 - Bringg automation |
checkin_time datetime | The date and hour of driver check-in (arrival) at the waypoint. |
checkout_lat double | The driver's geographical latitude when checking out (departing) from the waypoint. |
checkout_lng double | The driver's geographical longitude when checking out (departing) from the waypoint. |
checkout_origin int32 | Indicates which system initiated checkout (departure) from the waypoint. Possible values: 1 - Driver App2 - Bringg Platform3 - Background operations on the Bringg platform4 - Scheduled background operation on the Bringg platform5 - Customer experience app6 - Carrier via API7 - Floating inventory (for example, if the status of a floating inventory item changes)8 - Bringg automation |
checkout_time datetime | The date and hour of driver check-out (departure) from the waypoint. |
customer_contact_ids array of integers | An array of customer IDs associated with this waypoint. |
customer_id int32 | Bringg's ID for the customer. |
delete_at datetime | A null timestamp indicates that the entity is still active or present in Bringg. |
distance_traveled double | The actual distance traveled (in km). |
distance_traveled_client double | The distance traveled by the driver, calculated using the Driver App. |
distance_traveled_server double | The distance traveled by the driver, calculated by the Bringg server. |
driver_preparation_time int32 | The amount of time spent on site before delivering the order, such as the amount of time needed to go through security before reaching the customer. |
done boolean | Indicates whether this waypoint is done. |
find_me boolean 🚚 | Indicates whether the "find me" feature is active for this waypoint. When enabled, the "find me" feature allows customers to share their locations with the driver associated with their order. Possible values: 0 or false - the find me feature is not active for this waypoint1 or true - the find me feature is active for this waypoint. |
id int32 | Bringg's ID for the destination. |
late_reason string | The reason the driver is late. |
location_id int32 | Bringg's ID for the waypoint. |
masked_phone_number string | The associated phone number, if is is hidden in the Driver App. |
original_eta datetime | The post-optimization (promised) estimated time of arrival. |
original_etl datetime | The post-optimization estimated time of departure, based on original_eta and etos (estimated time on site). |
parking_spot object | For curbside pickup, this indicates the customer's parking spot. |
pending_geocode boolean | Indicates whether the geoposition latitude and longitude upload to Bringg are pending validation. Possible values:0 or false - The lat and lng are not pending validation.1 or true - the lat and lng are pending validation. |
predicted_etos int32 | When an estimated time on site (ETOS) is not available, Bringg predicts the ETOS based on existing data, such as similar orders and previous driver TOS. |
scheduled_at datetime | The date and time the order is scheduled to be fulfilled. |
silent boolean | Indicates if Bringg records the time when the driver arrived at the waypoint geofence but relies on manual input for check-in and check-out. Possible values:0 or false - silent mode is not active1 or true - silent mode is active. |
start_lat double | The geoposition latitude of the driver when this order started. |
start_lng double | The geoposition longitude of the driver when this order started. |
start_time datetime | The date and time when the order started. |
task object | The order associated with this waypoint. |
task_id int32 | Bringg's ID for the associated order. |
task_inventories object | An array of objects containing the inventory associated with this waypoint. See Order Inventories Object |
time_window_change_origin string | The system, process, or user action that initiated a change in the time window for this waypoint. Possible values: order_creation_api order_creation_csv order_creation_web customer_experience_web_user_rescheduled customer_experience_customer_rescheduled quotes_for_first_availability planned_delivery_window_without_quotes narrow_time_window order_update_api order_update_web automation_platform |
updated_at datetime | The date and time that this waypoint was last updated. |
workflow_id int32 | If a change was triggered by an automation, the automation ID is included here. |