API Reference

Order Done

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:


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
ParameterDescription
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 App
1 - automatic check-in or check-out via geofence
2 - driver's action when prompted by the Driver App
3 - from linked task
4 - updated via the Cancel Order API request
5 - updated by the carrier
6 - automated by activity trigger
7 - updated using the Bringg platform
8 - updated using the store app
9 - updated from Run End
10 - 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 geofence
2 - driver's action when prompted by the Driver App
3 - from linked task
4 - updated via the Cancel Order API request
5 - updated by the carrier
6 - automated by activity trigger
7 - updated from a child task
8 - from the store app
9 - from run end
10 - updated by Bringg automation
11- updated via API
automatically_started
integer
Indicates the method used to start this order. Possible values:
0 - manually using the Driver App
1 - automatic check-in or check-out via geofence
2 - driver's action when prompted by the Driver App
4 - auto_corrected_by_client
5 - auto_corrected_by_server
6 - automated by activity trigger
7 - updated in the Bringg platform
8 - updated in the store app
9 - from_run_end
10 - 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 - automatic
1 - estimated
2 - 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 late
true or 1 - the driver is late
The 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 up
5- 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
ParameterDescription
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 inventory
true or 1 - the driver is allowed to change the inventory
The 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 inventory
true or 1 - the driver is allowed to change the quantity of the inventory
The 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 cost
true 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 inventory
true or 1 - the driver is allowed to scan the inventory
The 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 emails
true or 1 - allow emails to be sent
The default value is true.
automatically_checked_in
int32
The method used to check in to the waypoint.
Possible values:
0 - Manually using the Driver App
1- Automatic check-in or check-out via geofence
2- Driver's action when prompted by the Driver App
4- Updated by linked task
5- Updated via API
6- Automated by activity trigger
7- Updated using the Bringg platform
8- Updated using the store app
9- Triggered by route end
10- Automatically updated by server
11- Updated via API
13 - 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 App
1- Automatic check-in or check-out via geofence
2- Driver's action when prompted by the Driver App
4- Updated by linked task
5- Updated via API
6- Automated by activity trigger
7- Updated using the Bringg platform
8- Updated using the store app
9- Triggered by route end
10- Automatically updated by server
11- Updated via API
13 - 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 geocoded
true 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 App
2 - Bringg Platform
3- Background operations on the Bringg platform
4 - Scheduled background operation on the Bringg platform
5 - Customer experience app
6 - Carrier via API
7 - 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 App
2 - Bringg Platform
3- Background operations on the Bringg platform
4 - Scheduled background operation on the Bringg platform
5 - Customer experience app
6 - Carrier via API
7 - 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 waypoint
1 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_etaand 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 latand 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 active
1 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.