Dellyman API Endpoints
This document gives a description of the RESTful web services exposed on the Dellyman Logistics Platform which enables business partners to create and manage their orders. Our RESTful web service mainly uses data in JSON format for both inputand output operations. Http request header should be set to application/json and also set to accept application/json data.
For technical assistance with the DELLYMAN API, contact us at:
[email protected]
+234-703-532-1799
To use our API services, you need to have an active account with us as a special customer enabled to interact with our server via API.
Steps:
- Create and account with us and request to be upgraded to a special customer status
- Test URL: https://dev.dellyman.com/register-login
- Live URL: https://dellyman.com/register-login
- Once your account is created and enabled to use our API services, you will find in your settings page on your dashboard an input field for Webhook Url, API Secret and API Key.
- If you wish to use our optional webhook service (helps you keep track of your orders at various event stages from pickup to delivery), you will have to provide a valid URL to which post requests can be made from our server.
- Click the “Generate” button on the bottom of the page to generate an API key and Secret you need to get started. Your webhook URL will also be saved and returned if you provided one.
- If you are successful up to this point, congratulations! Your are set to start integrating endpoints. If you are stuck at any stage, kindly reach out to us.
API TEST URL: https://dev.dellyman.com/api/v3.0/
API LIVE URL: https://dellyman.com/api/v3.0/
Attribute | Type | Description |
---|---|---|
Service | Get Carriers | Get available carriesr |
Request URL | {{baseUrl}}/Vehicles | |
Http Verb | GET | |
Content-Type | Application/json | |
Authorization | Bearer {{ your Api Key }} |
Example Response
{ "1": { "VehicleID": "1", "Name": "Bike (10Kg Max)" }, "2": { "VehicleID": "2", "Name": "Tricycle (up to 300Kg)" }, "3": { "VehicleID": "3", "Name": "Mini Van (up to 1000Kg)" }, "4": { "VehicleID": "4", "Name": "Vans/Buses" }, "5": { "VehicleID": "5", "Name": "Cars" } }
Attribute | Type | Description |
---|---|---|
Service | Get States | Used to get list of available states |
Request URL | {{baseUrl}}/States | |
Http Verb | GET | |
Content-Type | Application/json | |
Authorization | Bearer {{ your Api Key }} |
Example Response
[ { "StateID": "1", "Name": "Abia" }, { "StateID": "2", "Name": "Federal Capital Territory" }, { "StateID": "3", "Name": "Adamawa" }, { "StateID": "4", "Name": "AkwaIbom" }, { "StateID": "5", "Name": "Anambra" }, { "StateID": "6", "Name": "Bauchi" }, { "StateID": "7", "Name": "Bayelsa" }, ]
Attribute | Type | Description |
---|---|---|
Service | Get Cities | Get cities for a given state |
Request URL | {{baseUrl}}/Cities | |
Http Verb | POST | |
Content-Type | Application/json | |
Authorization | Bearer {{ your Api Key }} |
Request Body
Key | Type | Constraint | Description |
---|---|---|---|
StateID | Integer | Required | StateID returned from States endpoint |
Example Request
{ "StateID": "25" }
Example Response
[ { "CityID": "2", "StateID": "25", "Name": "Magodo" }, { "CityID": "3", "StateID": "25", "Name": "Ketu" }, { "CityID": "4", "StateID": "25", "Name": "Ikeja" }, { "CityID": "5", "StateID": "25", "Name": "lekki - epe" } ]
Attribute | Type | Description |
---|---|---|
Service | Get Quotes | Get quotes for an order |
Request URL | {{baseUrl}}/GetQuotes | |
Http Verb | POST | |
Content-Type | Application/json | |
Authorization | Bearer {{ your Api Key }} |
Request Body
Key | Type | Constraint | Description |
---|---|---|---|
PaymentMode | string | Required | In (online, pickup, delivery) |
Vehicle | string | Required | name or id of vehicle from above |
IsInstantDelivery | string | Nullable | Used for instant delivery orders |
PickupRequestedTime | string | Required | Pickup time frame eg. "08:00 AM to 05:00 PM" |
IsProductOrder | string | Nullable | Used when dellyman collects money for goods |
ProductAmount | array | optionally compulsory | Required when IsProductOrder is true |
PickupRequestedDate | date | Required | Date format “YYYY/MM/DD” |
PickupAddress | string | Required | Must be a google recognized address |
DeliveryAddress | array | Required | Must be a google recognized address |
Example Request
{ "PaymentMode": "online", "Vehicle": "Bike", "IsInstantDelivery": 0, "PickupRequestedTime": "08:00 AM to 05:00 PM", "IsProductOrder": 0, "ProductAmount": [], "PickupRequestedDate": "2025/06/18", "PickupAddress": "12 Admiralty Way, Lekki Phase 1, Lagos, Nigeria", "DeliveryAddress": [ "25 Bode Thomas Street, Surulere, Lagos, Nigeria" ] }
Example Response
{ "ResponseCode": 100, "ResponseMessage": "Success", "Companies": [ { "CompanyID": 643, "Name": "Delly Logistics Africa Ltd", "TotalPrice": 1584, "OriginalPrice": 1584, "PayableAmount": 1584, "SavedPrice": 0, "SameDayPrice": 1584, "DeductablePrice": 1584, "AvgRating": 5, "NumberOfOrders": 300, "NumberOfRating": 2 } ], "RejectedCompanies": {}, "Products": {}, "Distance": 17 }
When you are enabled to use delivery options, you will receive quotes for Sameday, Nextday, and 48-72HoursDelivery as can be seen in the sample response above and when you are not, your response will contain only SameDayPrice option as returned below.
Attribute | Type | Description |
---|---|---|
Service | Create Order | Used to create an order |
Request URL | {{baseUrl}}/BookOrder | |
Http Verb | POST | |
Content-Type | Application/json | |
Authorization | Bearer {{ your Api Key }} |
Request Body
Key | Type | Constraint | Description |
---|---|---|---|
CompanyID | string | Required | CompanyID returned from GetQuotes usually "643" on dev and "762" on production |
PaymentMode | string | Required | In (online, pickup, delivery) |
Vehicle | string | Required | name or id of vehicle from above |
PickUpContactName | string | Required | Name of pickup contact person |
PickUpContactNumber | string | Required | Phone number of pickup contact person |
PickUpLandmark | string | Required | Landmark close to pickup address |
PickUpGooglePlaceAddress | string | Required | Pickup address (must be a google recognized address) |
IsInstantDelivery | string | Nullable | Used for time sensitive orders that requires instant pickup and delivery |
IsProductOrder | string | Nullable | Used for merchant orders where the merchant wants Dellyman to collect money for the product from the receiver |
PickUpRequestedTime | string | Required | Pickup time frame eg. "08:00 AM to 09:00 AM" |
PickUpRequestedDate | Date | Required | Date format “YYYY/MM/DD” |
DeliveryRequestedTime | string | Required | Delivery time frame eg. "10:00 AM to 11:30 AM" |
OrderRef | string | Required | A reference uniquely associated with each order to avoid duplication of orders e.g (UUID) |
Packages | array | Required | An array of objects (packages). An order can have more than one package going to different delivery locations from the same pickup location. |
PackageDescription | string | Required | Describes what the package contains |
DeliveryContactName | string | Required | The person to whom the package is to be delivered |
DeliveryContactNumber | string | Required | Number of the person to whom package is to be delivered |
DeliveryGooglePlaceAddress | string | Required | Delivery address (must be google recognized) |
DeliveryLandmark | string | Required | A landmark close to delivery address |
DeliveryTimeline | string | Required | Your preferred delivery option (sameDay, nextDay, beyondNextDay) |
ProductAmount | string | optionally compulsory | Required if IsProductOrder is true |
Example Request
{ "OrderRef": "ORDER_DELLYMAN4294", "CompanyID": 643, "PaymentMode": "online", "Vehicle": "Bike", "PickUpContactName": "ThankUCash Ademola", "PickUpContactNumber": "08139492897", "PickUpGooglePlaceAddress": "Ikate Elegushi Rd, Lekki Penninsula II, Lekki 106104, Lagos, Nigeria", "PickUpLandmark": "N/A", "IsProductOrder": 0, "IsInstantDelivery": 0, "PickUpRequestedDate": "2025/06/28", "PickUpRequestedTime": "08:00 AM to 05:00 PM", "DeliveryRequestedTime": "08:00 AM to 05:00 PM", "DeliveryTimeline": "sameDay", "Packages": [ { "PackageDescription": "Clothes", "DeliveryContactName": "Max Name", "DeliveryContactNumber": "09187644380", "DeliveryGooglePlaceAddress": "Makoko Rd, Lagos Mainland, Lagos 101245, Lagos, Nigeria", "DeliveryLandmark": "N/A", "ProductAmount": 5000 } ] }
Example Response
{ "ResponseCode": 100, "ResponseMessage": "Success", "OrderID": 5585, "OrderCode": "ORD5189", "TrackingID": "483632023805", "Reference": "ORD5189", "Packages": [ { "PackageID": 5084, "PackageTrackingID": "639499415679" } ] }
Attribute | Type | Description |
---|---|---|
Service | Create Orders | Used to create multiple orders at the same time |
Request URL | {{baseUrl}}/BookOrders | |
Http Verb | POST | |
Content-Type | Application/json | |
Authorization | Bearer {{ your Api Key }} |
Request Body
Key | Type | Constraint | Description |
---|---|---|---|
Order | array | Required | array of Orders |
CompanyID | string | Required | CompanyID returned from GetQuotes usually "643" on dev and "762" on production |
PaymentMode | string | Required | In (online, pickup, delivery) |
Vehicle | string | Required | name or id of vehicle from above |
PickUpContactName | string | Required | Name of pickup contact person |
PickUpContactNumber | string | Required | Phone number of pickup contact person |
PickUpLandmark | string | Required | Landmark close to pickup address |
PickUpGooglePlaceAddress | string | Required | Pickup address (must be a google recognized address) |
IsInstantDelivery | string | Nullable | Used for time sensitive orders that requires instant pickup and delivery |
IsProductOrder | string | Nullable | Used for merchant orders where the merchant wants Dellyman to collect money for the product from the receiver |
PickUpRequestedTime | string | Required | Pickup time frame eg. "08:00 AM to 09:00 AM" |
PickUpRequestedDate | Date | Required | Date format “YYYY/MM/DD” |
DeliveryRequestedTime | string | Required | Delivery time frame eg. "10:00 AM to 11:30 AM" |
OrderRef | string | Required | A reference uniquely associated with each order to avoid duplication of orders e.g (UUID) |
Packages | array | Required | An array of objects (packages). An order can have more than one package going to different delivery locations from the same pickup location. |
PackageDescription | string | Required | Describes what the package contains |
DeliveryContactName | string | Required | The person to whom the package is to be delivered |
DeliveryContactNumber | string | Required | Number of the person to whom package is to be delivered |
DeliveryGooglePlaceAddress | string | Required | Delivery address (must be google recognized) |
DeliveryLandmark | string | Required | A landmark close to delivery address |
DeliveryTimeline | string | Required | Your preferred delivery option (sameDay, nextDay, beyondNextDay) |
ProductAmount | string | optionally compulsory | Required if IsProductOrder is true |
Example Request
{ "Orders": [ { "OrderRef": "ORDER_DELLYMAN83591", "CompanyID": 643, "PaymentMode": "online", "Vehicle": 1, "PickUpContactName": "Rekoja Candles", "PickUpContactNumber": "08146786312", "PickUpGooglePlaceAddress": "21c Akin Ogunlewe street, Victoria Island, Lagos.", "PickUpLandmark": "N/A", "IsProductOrder": 0, "IsInstantDelivery": 0, "PickUpRequestedDate": "2025/04/05", "PickUpRequestedTime": "08:00 AM to 05:00 PM", "DeliveryRequestedTime": "08:00 AM to 05:00 PM", "Packages": [ { "PackageDescription": "Reed Diffuser", "DeliveryContactName": "Edidiong Samuel", "DeliveryContactNumber": "07042221248", "DeliveryGooglePlaceAddress": "Ikate Elegushi Rd, Lekki Penninsula II, Lekki 106104", "DeliveryLandmark": "N/A", "ProductAmount": 0 } ] }, { "OrderRef": "ORDER_DELLYMAN55314", "CompanyID": 643, "PaymentMode": "online", "Vehicle": 1, "PickUpContactName": "ChamsAccess", "PickUpContactNumber": "07089567644", "PickUpGooglePlaceAddress": "8, Louis Solomon Close, VI", "PickUpLandmark": "N/A", "IsProductOrder": 0, "IsInstantDelivery": 0, "PickUpRequestedDate": "2025/04/05", "PickUpRequestedTime": "08:00 AM to 05:00 PM", "DeliveryRequestedTime": "08:00 AM to 05:00 PM", "Packages": [ { "PackageDescription": "iLockey Wireless Automatic Wifi 3D Face ID Lock with CameraHandle Door Lock with Camera", "DeliveryContactName": "Edidiong Samuel", "DeliveryContactNumber": "07042221248", "DeliveryGooglePlaceAddress": "Ikate Elegushi Rd, Lekki Penninsula II, Lekki 106104", "DeliveryLandmark": "N/A", "ProductAmount": 0 }, { "PackageDescription": "Smart Outdoor WIFI IP Camera PTZ Network Camera", "DeliveryContactName": "Edidiong Samuel", "DeliveryContactNumber": "07042221248", "DeliveryGooglePlaceAddress": "Ikate Elegushi Rd, Lekki Penninsula II, Lekki 106104", "DeliveryLandmark": "N/A", "ProductAmount": 0 } ] } ] }
Example Response
{ "ResponseCode": 100, "ResponseMessage": "Success", "Data": [ { "OrderID": 5586, "OrderCode": "ORD5190", "TrackingID": "599266951910", "Reference": "ORD5190", "Packages": [ { "PackageID": 5085, "PackageTrackingID": "789300845856" } ] }, { "OrderID": 5587, "OrderCode": "ORD5191", "TrackingID": "414314773157", "Reference": "ORD5191", "Packages": [ { "PackageID": 5086, "PackageTrackingID": "808769835837" }, { "PackageID": 5087, "PackageTrackingID": "810586762177" } ] } ] }
Attribute | Type | Description |
---|---|---|
Service | Check Order Status | Check the status of booked order |
Request URL | {{baseUrl}}/GetOrder | |
Http Verb | POST | |
Content-Type | Application/json | |
Authorization | Bearer {{ your Api Key }} |
Request Body
Key | Type | Constraint | Description |
---|---|---|---|
OrderID | integer | Required | id of booked order |
Example Request
{ "OrderID": 4727 }
Example Response
{ "OrderID": "4727", "OrderCode": "ORD4394", "OrderStatus": "ASSIGNED", "OrderPrice": "3276.00", "FixedDeliveryCharge": null, "PayAt": "2", "IsInstantDelivery": "1", "IsProductOrder": "0", "IsPostpaid": "1", "BankCode": null, "BankName": null, "AccountNumber": null, "OrderedAt": "2022-11-11 13:42:44", "AssignedAt": "2022-11-12 03:32:20", "PickedUpAt": null, "DeliveredAt": null, "CancelledAt": null, "RejectedAt": null, "Packages": [ { "PackageID": "4155", "IsDelivered": "0", "PackageDescription": "Allen/out/00024", "PackageDistance": "29.0", "PackageWeight": "0.0", "ProductAmount": null, "PickUpContactName": "Administrator", "PickUpContactNumber": "07068937300", "PickUpGooglePlaceAddress": "1 Allen Avenue, Ikeja, Nigeria", "PickUpLandmark": "", "PickUpLatitude": "6.6018262", "PickUpLongitude": "3.3514628", "PickUpExpectedAt": "2022-11-11 13:42:00", "DeliveryContactName": "Babatope Ajepe", "DeliveryContactNumber": "07055667789", "DeliveryGooglePlaceAddress": "1004 estate, Victoria Island, Lagos, Nigeria", "DeliveryLandmark": "", "DeliveryLatitude": "6.4280695", "DeliveryLongitude": "3.4219452", "DeliveryExpectedAt": "2022-11-11 14:42:00", "DeliveryCode": "25496" } ] }
Attribute | Type | Description |
---|---|---|
Service | Track Order | Get the status of an order (unguarded) |
Request URL | {{baseUrl}}/TrackOrder | |
Http Verb | POST | |
Content-Type | Application/json | |
Authorization | Bearer {{ your Api Key }} |
Request Body
Key | Type | Constraint | Description |
---|---|---|---|
TrackingID | string | Required | TrackingID returned after order was booked |
Example Request
{ "TrackingID": "599266951910" }
Example Response
{ "OrderID": 5586, "OrderCode": "ORD5190", "OrderStatus": "PENDING", "OrderedAt": "2025-06-28 04:21:58", "AssignedAt": null, "PickedUpAt": null, "DeliveredAt": null, "CancelledAt": null, "RejectedAt": null, "Note": null, "RiderName": "", "RiderLatitude": null, "RiderLongitude": null, "Packages": [ { "PackageDescription": "Reed Diffuser", "IsDelivered": 0, "PackageStatus": "PENDING", "PackageRef": null, "PickupLatitude": 6.42581099999999860727939449134282767772674560546875, "PickUpLongitude": 3.44056680000000003616378307924605906009674072265625, "DeliveryLatitude": 6.43604809999999982750296112499199807643890380859375, "DeliveryLongitude": 3.4881443000000000864702087710611522197723388671875, "Distance": 8.300000000000000710542735760100185871124267578125 } ] }
Attribute | Type | Description |
---|---|---|
Service | Track Package | Get the status of a specific package in an order |
Request URL | {{baseUrl}}/TrackPackage | |
Http Verb | POST | |
Content-Type | Application/json | |
Authorization | Bearer {{ your Api Key } |
Request Body
Key | Type | Constraint | Description |
---|---|---|---|
TrackingID | string | Required | PackageTrackingID returned after order was booked |
Example Request
{ "TrackingID": "PKGuU1gV5HLtyKs" }
Example Response
{ "PackageID": 4756, "PackageDescription": "30% Off On Lenovo Lp40 Earphone Bluetooth", "PackageStatus": "PENDING", "PackageRef": null, "OrderedAt": "2023-12-07 14:18:12", "AssignedAt": null, "PickedUpAt": null, "DeliveredAt": null, "CancelledAt": null, "RejectedAt": null, "Note": null }
This endpoint shows you the list of states and rates available for interstate deliveries as enabled and customized for you
Attribute | Type |
---|---|
Service | Get available states and rates |
Request URL | {{baseUrl}}/GetInterstateRates |
Http Verb | POST |
Content-Type | Application/json |
Authorization | Bearer {{ your Api Key }} |
Example Response
{ "ResponseCode": 100, "ResponseMessage": "Success", "Rates": [ { "OriginatingState": "Lagos", "OriginatingCity": null, "DestinationState": "Enugu", "DestinationCity": "Nsukka", "DoorBasePrice": "12000", "ParkBasePrice": "12000", "BaseWeight": "9", "PricePerAdditionamWeight": "1000" }, { "OriginatingState": "Lagos", "OriginatingCity": "Ajah", "DestinationState": "Enugu", "DestinationCity": "Enugu", "DoorBasePrice": "6000", "ParkBasePrice": "6000", "BaseWeight": "5", "PricePerAdditionamWeight": "900" }, { "OriginatingState": "Lagos", "OriginatingCity": null, "DestinationState": "Anambra", "DestinationCity": "Awka", "DoorBasePrice": "8000", "ParkBasePrice": "8000", "BaseWeight": "7", "PricePerAdditionamWeight": "1000" } ] }
This API shows Cities within a state where Dellyman can pick up from and deliver interstate orders to.
Attribute | Type |
---|---|
Service | Get Available Cities for a State |
Request URL | {{baseUrl}}/GetCitiesInState |
Http Verb | POST |
Content-Type | Application/json |
Authorization | Bearer {{ your Api Key }} |
Request Body
Key | Type | Constraint | Description |
---|---|---|---|
DestinationState | string | Required | A Destination or Pickup State from the list of rates returned from the rates endpoint |
Example Request
{ "DestinationState": "Enugu" }
Example Response
{ "ResponseCode": 100, "ResponseMessage": "Success", "Cities": [ { "DestinationCity": "Nsukka" }, { "DestinationCity": "Enugu" } ] }
Attribute | Type | Description |
---|---|---|
Service | Get Interstate Quotes | Get quote for an interstate order |
Request URL | {{baseUrl}}/GetInterstateQuotes | |
Http Verb | POST | |
Content-Type | Application/json | |
Authorization | Bearer {{ your Api Key }} |
Request Body
Key | Type | Constraint | Description |
---|---|---|---|
Vehicle | string | Required | Either name or id of vehicle from above |
PackageWeight | string | Required | Weight of package in KG |
PickupState | string | Required | The originating state |
PickupCity | string | Required | The originating city |
PickupGooglePlaceAddress | string | Required | Google recognized pickup address |
DeliveryGooglePlaceAddress | string | Required | Google recognized delivery address |
DeliveryState | string | Required | Destination state |
DeliveryCity | string | Required | Destination City |
DeliverTo | string | Required | Delivery destination (‘receiver’, ‘motor-park’) |
Example Request
{ "Vehicle": "1", "PackageWeight": 2, "PickupState": "Lagos", "PickupCity": "Ikeja", "PickUpGooglePlaceAddress": "Primewater gardens 2, lekki, Lagos, Nigeria", "DeliveryState": "Enugu", "DeliveryGooglePlaceAddress": "Ogbete main market, Enugu Nigeria", "DeliveryCity": "Enugu", "DeliverTo": "receiver" }
Example Response
{ "ResponseCode": 100, "ResponseMessage": "Success", "Name": "SIMPLY SPRY LOGISTICS", "CompanyID": 112, "TotalPrice": 5000, "PayableAmount": 5000 }
Attribute | Type |
---|---|
Service | Create Interstate Order |
Request URL | {{baseUrl}}/BookInterstateOrder |
Http Verb | POST |
Content-Type | Application/json |
Authorization | Bearer {{ your Api Key }} |
Request Body
Key | Type | Constraint | Description |
---|---|---|---|
OrderRef | string | Required | Unique Ref to prevent duplicate booking |
PaymentMode | string | Required | How you wish to pay (online) |
Vehicle | string | Required | Either name or id of vehicle from above |
PickUpContactName | string | Required | Name of pickup contact person |
PickUpContactNumber | string | Required | Phone number of pickup contact person |
PickUpGooglePlaceAddress | string | Required | Google recognized pickup address |
PickupState | string | Required | Originating State |
PickupCity | string | Required | Originating City |
PickUpLandmark | string | Required | Landmark for pickup address |
PickUpRequestedDate | string | Required | Date you want package to be picked |
PickUpRequestedTime | string | Required | Time frame within which item is picked |
PackageDescription | string | Required | Description of item to be picked |
PackageWeight | integer | Required | Weight in KG of item to be shipped |
DeliveryContactName | string | Required | Name of delivery contact person |
DeliveryContactNumber | string | Required | Phone number of delivery contact person |
DeliveryGooglePlaceAddress | string | Required | Google recognized delivery address |
DeliveryLandMark | string | Required | Landmark for delivery address |
DeliveryState | string | Required | State from available states |
DeliveryCity | string | Required | Any of cities available from selected state |
DeliverTo | string | Required | Delivery destination (‘receiver’, ‘motor-park’) |
Example Request
{ "OrderRef": "ORDER_DELLYMAN627", "PaymentMode": "online", "Vehicle": 1, "PickUpContactName": "Lara Babalola Babalola", "PickUpContactNumber": "08035748048", "PickUpGooglePlaceAddress": "no 5 Samuel ugwunna street, Cocker, estate, shasha, lagos", "PickupState": "Lagos", "PickupCity": "Ikeja", "PickUpLandmark": "No 8,Church street,Opposite Estate, , Lagos, Lagos", "PickUpRequestedDate": "2025/06/28", "PickUpRequestedTime": "01:00 PM to 02:30 PM", "PackageDescription": "Merchant standard package", "PackageWeight": 12, "DeliveryContactName": "ADENIYI ABIDAKUN", "DeliveryContactNumber": "07030065559", "DeliveryGooglePlaceAddress": "35 Artisan Quarters Rd, Enugu, Nigeria", "DeliveryState": "Enugu", "DeliveryCity": "Enugu", "DeliveryLandmark": "35 Artisan Quarters Rd, Enugu, Nigeria", "DeliverTo": "receiver" }
Example Response
{ "ResponseCode": 100, "ResponseMessage": "Success", "OrderID": 5588, "OrderCode": "ORD5192", "TrackingID": "858041028362", "Reference": "ORDER_DELLYMAN627" }
Our webhook documentation typically provides information on how to integrate and use event webhook API. It should include details on the webhook endpoint, the data format being sent, authentication mechanisms, and examples of payload structures. Our webhooks allow your application to receive real-time updates on events.
Authentication
In other to confirm the webhook events/notification you receive from Dellyman, A header property 'X-Dellyman-Signature' is being sent in all webhook going out of our application.
This signature is encrypted with the hmac sha256 algorithm and it’s a combination of your webhook url, webhook/api secret. To generate same signature encrypt your webhook your and you webhook/api secret
Example:
Webhook url: https://xyz.com/webhook-response
Webhook secret: cd5maxwgubpj83xjwfxbujngjn75dmus0iycasuulz
hash_hmac('sha256', 'webhook_url', 'webhook_secret');
Compare the result of your encryption with the signature found in the request header, if both token matches then its confirmed treat as a Dellyman event else, the webhook response might be a suspicious request.
Sample Webhook payload
{ "status": true, "message": "successful", "order": { "OrderID": "88601", "OrderCode": "ORD81974", "CustomerID": "10105", "CompanyID": "734", "TrackingID": "8955533996", "OrderDate": "2022-12-08 09:04:46", "OrderStatus": "INTRANSIT", "OrderPrice": "1000.00", "AssignedAt": "2022-12-08 15:45:18", "PickedUpAt": "2022-12-08 14:45:30", "DeliveredAt": "2022-12-08 14:45:30", "Note": null, "Packages": [ { "PackageID": "8955533996", "PackageTrackingID": "8955533996", "PackageRef": "yu784677356", "PackageStatus": "DELIVERED" } ] } }