Webhook PUSH notifications is a HTTP callback, i.e. this feature is for Detrack to POST a notification to the specified Webhook URL whenever there is a status update for the job.
This feature is used in the integration process to send information to your downstream third-party applications / systems.
Our PUSH notification will be posted from the I.P. addresses below. If necessary, kindly whitelist these I.P. addresses.
- 44.236.78.196 
- 44.228.138.42 
- 52.13.202.33 
| Trigger | Description | 
| In Transit | New job is added, with the primary status set to In Transit. | 
| Info Received | New job is added, with the primary status set to Info Received. | 
| Scheduled | Occurs when 
 | 
| In Progress | Occurs when the job status is In Progress. | 
| Heading To | Driver tap Head To Location in Driver App. | 
| Partially Completed | The job is partially completed, i.e. the job has at least 1 item being rejected in the Item Details. | 
| Failed | The job has failed. | 
| Return | The job is set to the Returned status. | 
| On Hold | The job is set to the On Hold status. | 
| Deleted | When the job is Deleted. | 
To receive the webhook notification, you will need a small web application that can accept the HTTP requests by adding a webhook URL to your application.
Example frameworks of server-side programming languages:
| Language | Framework | 
| C# | |
| Java | |
| Node.js | |
| Python | |
| Ruby | |
| PHP | 
For more information on the payload of the PUSH notifications, kindly refer to:
- Version 1: 
- Version 2: - Detrack V2 API Documentation 
 Example PUSH Notification- {
 "id": "6253e449366df67ff7e75590",
 "type": "Delivery",
 "recipient_sender_device_signature_file_url": null,
 "signature_file_url": null,
 "photo_1_file_url": null,
 "photo_2_file_url": null,
 "photo_3_file_url": null,
 "photo_4_file_url": null,
 "photo_5_file_url": null,
 "photo_6_file_url": null,
 "photo_7_file_url": null,
 "photo_8_file_url": null,
 "photo_9_file_url": null,
 "photo_10_file_url": null,
 "primary_job_status": "dispatched",
 "open_to_marketplace": false,
 "marketplace_offer": null,
 "do_number": "Test1",
 "attempt": 1,
 "date": "2022-04-11",
 "start_date": "2022-04-11",
 "job_age": 1,
 "job_release_time": null,
 "job_time": null,
 "time_window": null,
 "job_received_date": null,
 "tracking_number": null,
 "order_number": null,
 "job_type": null,
 "job_sequence": null,
 "job_fee": null,
 "address_lat": null,
 "address_lng": null,
 "address": "Dummy Address",
 "company_name": null,
 "address_1": null,
 "address_2": null,
 "address_3": null,
 "postal_code": null,
 "city": null,
 "state": null,
 "country": null,
 "billing_address": null,
 "deliver_to_collect_from": null,
 "last_name": null,
 "phone_number": null,
 "sender_phone_number": null,
 "fax_number": null,
 "instructions": null,
 "assign_to": "Adam",
 "notify_email": null,
 "webhook_url": null,
 "zone": null,
 "customer": null,
 "account_number": null,
 "job_owner": null,
 "invoice_number": null,
 "invoice_amount": null,
 "payment_mode": null,
 "payment_amount": null,
 "group_id": null,
 "group_name": null,
 "group_code": null,
 "source": null,
 "weight": null,
 "parcel_width": null,
 "parcel_length": null,
 "parcel_height": null,
 "cubic_meters": null,
 "boxes": null,
 "cartons": null,
 "pieces": null,
 "envelopes": null,
 "pallets": null,
 "bins": null,
 "trays": null,
 "bundles": null,
 "rolls": null,
 "number_of_shipping_labels": null,
 "attachment_url": null,
 "detrack_number": "DET4640992408",
 "status": "dispatched",
 "tracking_status": "Out for delivery",
 "reason": null,
 "received_by_sent_by": null,
 "note": null,
 "carrier": "",
 "pod_time": null,
 "pod_lat": "",
 "pod_lng": "",
 "pod_address": "",
 "address_tracked_at": null,
 "arrived_lat": null,
 "arrived_lng": null,
 "arrived_address": null,
 "arrived_at": null,
 "texted_at": null,
 "called_at": null,
 "serial_number": null,
 "recipient_sender_device_pod_at": null,
 "recipient_sender_device_signed_by": null,
 "signed_at": null,
 "photo_1_at": null,
 "photo_2_at": null,
 "photo_3_at": null,
 "photo_4_at": null,
 "photo_5_at": null,
 "photo_6_at": null,
 "photo_7_at": null,
 "photo_8_at": null,
 "photo_9_at": null,
 "photo_10_at": null,
 "actual_weight": null,
 "temperature": null,
 "hold_time": null,
 "payment_collected": null,
 "auto_reschedule": null,
 "actual_crates": null,
 "actual_pallets": null,
 "actual_utilization": null,
 "goods_service_rating": null,
 "driver_rating": null,
 "customer_feedback": null,
 "eta_time": null,
 "live_eta": null,
 "depot": null,
 "depot_contact": null,
 "department": null,
 "sales_person": null,
 "identification_number": null,
 "bank_prefix": null,
 "run_number": null,
 "head_to_delivery_at": null,
 "pod_at": null,
 "job_price": null,
 "insurance_price": null,
 "insurance_coverage": false,
 "total_price": null,
 "payer_type": null,
 "remarks": null,
 "items_count": 0,
 "service_type": null,
 "warehouse_address": null,
 "destination_time_window": null,
 "door": null,
 "time_zone": null,
 "created_at": "2022-04-11T16:18:18.034+08:00",
 "on_demand": false,
 "vehicle_type": null,
 "priority": null,
 "service_time": null,
 "contractor_group_name": "",
 "connect_token": null,
 "connect_host": null,
 "connect_id": null,
 "verification_code": 3615,
 "locker_address": null,
 "locker_lat": null,
 "locker_lng": null,
 "locker_transaction_id": null,
 "locker_transaction_status": null,
 "locker_station_id": null,
 "locker_error": null,
 "use_locker": false,
 "geofence_ack_at": null,
 "geofence_ack_lat": null,
 "geofence_ack_lng": null,
 "mass_pod": null,
 "pod_gps_status": null,
 "pod_gps_permission": null,
 "job_order": null,
 "tracking_status_code": "dispatched",
 "driver_mobile_number": "123456789",
 "reattempted": null,
 "cubic_meter": null,
 "tracking_link": "https://trk.la/JAJddop",
 "contactless_signature_link": "https://trk.la/JAJddop?s=1",
 "booking_link": "https://trk.la/JAJddop?b=1",
 "can_reattempt": false,
 "items": [],
 "milestones": [
 {
 "status": "out_for_delivery",
 "assign_to": "Adam",
 "reason": null,
 "pod_at": "2022-04-11T16:18:18.032+08:00",
 "created_at": "2022-04-11T16:18:18.034+08:00",
 "user_name": "FrostyDeliveries"
 }
 ]
 }
 
Refer to the various fields and descriptions.
Delivery / Collection
To set up the webhook for both Delivery and Collection jobs.
- Navigate to Integrations > Webhook. 
- Enter your Webhook URL for receiving the webhook PUSH notification. 
- You may select the required Triggers (based on job status) to push the information over to the designated URL. 
- You may enable the sending of webhook for change of driver assignment. 
 βNote: This work independently of the Trigger status, i.e. the systems will send 2 webhook notifications if both conditions are fulfilled.
Authentication (Optional)
- Click Save when done. 
Alternatively, if you wish to separate the webhooks into Delivery and Collection jobs, you may enter the Webhook URL separately under Settings > Delivery or Collection.
- Navigate to Settings > Delivery / Collection. 
- Click on the Webhook URL tab. 
- Enter the Webhook URL into the field. 
Checking Of Webhook Status And Re-POSTing
- For checking of webhook status, navigate to Settings > Job > Fields. 
- Enable the Webhook URL field. 
- Click Save when done. 
- Create a dummy job. 
- Click the icon under the Webhook Status column to open a pop-up. 
- You may refer to the various HTTP statuses for troubleshooting, and re-post the PUSH notification by clicking on the icon under the Repost column. 
HTTP Status Codes
| HTTP Status Code | Description | 
| 2xx | OK. | 
| 3xx | Redirect. | 
| 4xx | Client Error Response. | 
| 5xx | Server Error Response. | 














