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 WebhookTo 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 | Indicates whether the service completed successfully.
|
message | If an error occurred, a message indicating the error is included. |
rc | If an error occurred, the return code is included. |
accept_time | The date and time when the driver accepted this order. |
acknowledged_at | 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 | The ID for the incomplete waypoint associated with this order. |
automatically_assigned | Indicates whether this order was automatically assigned. The values are: |
automatically_cancelled | Indicates the method used to cancel this order. Possible values: |
automatically_ended | Indicates the method used to end this order. Possible values: |
automatically_started | Indicates the method used to start this order. Possible values: |
cancelled_at | The date and time when this order was canceled. |
created_at | 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". |
customer_id | Bringg's ID of the customer associated with this order. |
delete_at | A null timestamp indicates that the entity is still active or present in Bringg. |
delivery_cost | The delivery fee charged by a third-party carrier. |
delivery_price | The delivery fee charged by you to your end customer. |
delivery_window_id | Bringg's ID for the delivery window selected by or assigned to the customer. |
discount | |
dispatcher_id | The ID of the dispatcher who assigned this order. |
distance_automatically_set | Indicates how the distance_traveled for this order was calculated. Possible values: |
distance_traveled | The actual distance traveled (in km). |
driver_payments | An array including details of all payments accepted by a driver for this order. |
ended_time | The date and time when the order was canceled or marked as complete. |
external_carrier_tracking_url | The carrier's tracking link. |
external_id | Your external system's ID for this order. |
external_user_id | Your external system's ID for the driver associated with this order. |
failed_delivery_attempts | The number of times a driver unsuccessfully attempted to deliver the order. |
fleet | An object containing the details of an assigned or quoted carrier. |
fleet_delivery_external_id | The external carrier's ID for the order. |
fleet_id | Bringg's ID for the external carrier. |
group_leader_id | 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 | If this order is a group of orders, this is the UUID of the group (see |
id | The unique ID of this order in Bringg. |
invalidated | When |
last_assigned_time | The last date and time this order was assigned to a driver. |
last_ready_to_execute_at | The last time this order was marked as ready to execute. |
last_way_point_lat | The geographical latitude for the last waypoint for the order. |
last_way_point_lng | The geographical longitude of the last waypoint for the order. |
late | Indicates whether the driver has not arrived at a destination in this order on or before the scheduled times. The values are: |
late_reason | |
left_to_be_paid | The unpaid balance of this total order. |
linked_task_id | Bringg’s ID for a linked order. Linked orders are created when one order is split into distinct tasks for each waypoint. |
merchant_id | The ID of the merchant to which the order belongs. |
parent_task_id | If this order was created from another order (for example, one that failed), this is the ID of the original order. |
payment_type_name | The name of the payment type. For example, Visa, Mastercard, or Amex. |
planned_distance_from_prev_task | 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 | Indicates if this order has been organized into a route, and that route has been marked as "Done Planning." |
planning_published | Indicates if the planned delivery window has been finalized or shared with the customer. |
post_delivery_tip_cash | The tip (gratuity) paid to the driver in cash after delivery. |
post_delivery_tip_credit | The tip (gratuity) paid to the driver by credit after delivery. |
pre_delivery_tip | The tip (gratuity) paid to the driver before delivery. |
preparation_acknowledge_time_actual | Time and date when the order was actually acknowledged. |
preparation_end_time_actual | Time and date when the order actually ended. |
preparation_end_time_planned | Time and date when the order was scheduled to end. |
preparation_picked_up_time_actual | Time and date when the order was actually picked up. |
preparation_ready_for_pickup_time_actual | Time and date when the order was actually ready for pick up. |
preparation_ready_for_pickup_time_planned | Time and date when the order was scheduled to be ready for pickup. |
preparation_start_time_actual | Time and date when preparation of the order actually began. |
preparation_start_time_planned | Time and date when preparation of the order was scheduled to begin. |
preparation_status | The order's stage in the preparation workflow. Possible values: |
price_before_tax | The net price of this order not including taxes. |
priority | Sequence of the order within an assigned route. For example, Priority 1 is the first stop in the route. |
ready_to_execute | Indicates whether this order is in planning and not visible to users (drivers). The values are:
|
recurrent_task_template_id | Designates the recurring order series that generated this order. See Create Recurring Order Template. |
reserved_until | 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 | The ID of the route the order is assigned to. |
run_start_time | If the order is part of a "run", this is the start date and time of the "run". A "run" is a group of user (driver) tasks beginning at the time a user (driver) leaves a "base" and ending when the user (driver) returns to that "base". |
run_uuid | The UUID of the run the order is assigned to. Use |
scans | An array of objects including details about barcode scans related to an order, such as for inventory items. |
scheduled_at | The date and time this order was scheduled. This is in UTC and is in the format " %Y-%m-%dT%H:%M:%S%z". |
scheduled_to_be_ready | The date and time when an order is scheduled to be ready for pickup from a waypoint. |
service_fee | The service fee charged by an external carrier. Usually calculated as a percentage of the subtotal of the order. |
service_plan_id | 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 that includes URLs, tokens, and identifying data related to the customer experience for a waypoint. |
shift_id | Bringg's ID for the driver's shift when fulfilling this order. |
start_lat | The geoposition latitude of the driver when this order started. |
start_lng | The geoposition longitude of the driver when this order started. |
started_time | The date and time when the driver started this order. This is in UTC and is in the format " %Y-%m-%dT%H:%M:%S%z". |
status | Indicates the current status of this order. Possible values include: |
tag_id | The Bringg ID of the tag associated with this order. |
tax_price | The tax amount of the price of this order. |
tip | The tip (gratuity) paid to the driver for this order. |
tip_driver_enabled | Indicates whether the user (driver) is allowed to be tipped. The values are:
|
title | This order's title. The maximum length is 255 characters. |
total_price | The total price of this order. |
updated_at | The date and time of the last update for this order. This is in UTC and is in the format " %Y-%m-%dT%H:%M:%S%z". |
user_id | Bringg's ID for the driver associated with this order. |
uuid | A universally unique identifier (UUID) for this order. |
way_points | The list of waypoints associated with this order. For more details, see the Way Point Object. |
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 boolean | 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. |