Jeebly
Express (On-Demand) API Version 1.0.9 Dubai Only

Express Order Creation API

Create rapid, on-demand point-to-point delivery orders in the Jeebly network. Once booked successfully, Jeebly automatically assigns a unique tracking order ID (AWB No) and dispatches an express courier rider for immediate pickup.

Quick Specifications
POST
Environment: Demo & Production
HTTP Method: POST
Content-Type: application/json
Booking Hours: 8:00 AM – 11:00 PM GST
Territory: Dubai Only
Authentication: API Key & Client Key
1

What Is This API?

Use the Express Order Creation API to create a new express (on-demand) delivery order in the Jeebly system. Once created successfully, Jeebly will assign a unique tracking number / order ID (AWB No) and instantly schedule a rider for pickup within Dubai.

Booking Hours & Timezone Notice

Booking hours are 8:00 AM to 11:00 PM Gulf Standard Time (GST). Orders cannot be placed outside of these operational hours. All datetime parameters (planned_start_time, planned_delivery_time) must strictly be formatted in GST (YYYY-MM-DD HH:MM).

Dubai Geographic Boundary Policy

Express orders are currently supported only within Dubai. Both the pickup city (pickup_city) and delivery destination city (destination_city) must be set to "Dubai". To activate Express Delivery for booking shipments in any other emirate (Abu Dhabi, Sharjah, etc.), please contact the Jeebly Service Excellence team.

API Endpoint Details
Property Value
Request URL (Demo)
https://demo.jeebly.com/customer/create_express_shipment
Request URL (Production)
https://myjeebly.jeebly.com/customer/create_express_shipment
HTTP Method POST
Content-Type application/json
Booking Hours 8:00 AM to 11:00 PM (Gulf Standard Time / GST)
Coverage Territory Dubai, United Arab Emirates
2

Authentication Headers

Every API request must include the two mandatory authentication headers below along with the Content-Type header. If you don't have your API keys yet, contact Jeebly support or view our Get Your Keys portal.

Header Name Description Required
X-API-KEY Your secret Jeebly API security key. Yes
client_key Your unique customer account identifier key. Yes
Content-Type Must be set to application/json. Yes
3

Request Schema & Field Reference

The request body is a flat JSON object containing three primary field groups: Order Details, Pickup Address (Origin), and Delivery Address (Destination).

3.1 Order Details

9 Parameters
Field Name Type Description & Rules Sample / Allowed Values Required
order_type String Specify shipment product category. Only one option can be selected while creating the order. The value must be passed exactly in the specified format. "Food and Beverages"
"Groceries"
"Document"
"Others"
Yes
payment_method String Specifies whether the shipment payment has already been collected (Prepaid) or needs to be collected from the recipient at delivery (COD). "COD" or "Prepaid" Yes
cod_amount Float The cash amount to collect from the recipient. Mandatory for COD orders. Must be 0 if payment_method is Prepaid. 0.01 to 9999 (AED)
(Must be < 10000)
Yes
no_of_packages Number The number of packages/parcels in this express shipment. Maximum allowed is 5. 1 to 5 Yes
vehicle_type String The type of vehicle needed for delivery. Default is Bike for small parcels. "Bike" or "Car" No
tip_amount Number Optional tip for the express rider. Maximum allowed tip is 100 AED. 0 to 100 (AED) No
extra_info String Any special handling notes, gate passes, or remarks about the shipment (Max 250 characters). "Handle with care" No
planned_start_time DateTime The date and time you want the rider to arrive for pickup. Must be in GST format between 08:00 and 23:00. YYYY-MM-DD HH:MM
e.g., 2026-06-15 14:00
Yes
planned_delivery_time DateTime Target time for final delivery (GST). Must be after planned_start_time and within 08:00 to 23:00 GST. YYYY-MM-DD HH:MM
e.g., 2026-06-15 15:30
No

3.2 Pickup Address (Origin)

9 Parameters
Field Name Type Description & Length Limits Sample / Format Required
pickup_name String Full name of the sender. Length must be between 2 and 100 characters. "Jeebly Logistics" No
pickup_building String Name or number of the building at the sender's location. 4–200 characters. "Test Building no. 100" Yes
pickup_street String Street name or number at the sender's location. 4–200 characters. "Plot No. 365-405" Yes
pickup_area String Pickup neighborhood or district. 4–250 characters. "Al Quoz Industrial" Yes
pickup_city String Pickup City. Must be set to "Dubai" only. "Dubai" Yes
pickup_contact_phone_country_code String International country code for sender's mobile. 1–5 characters, include leading '+'. "+971" Yes
pickup_contact_phone String/Num Sender's direct mobile phone number (digits only, max 15 digits). "123456789" Yes
pick_lat Number GPS latitude coordinate for precision rider dispatch. 4–15 characters. "25.0415392" No
pick_long Number GPS longitude coordinate for precision rider dispatch. 4–15 characters. "55.1258263" No

3.3 Delivery Address (Destination)

9 Parameters
Field Name Type Description & Length Limits Sample / Format Required
recipient_name String Full name of the recipient / customer. Max 250 characters. "Jane Doe" Yes
destination_building String Name or number of the building at the receiver's location. 4–250 characters. "Test Building no. 501" Yes
destination_street String Street name or number at receiver's location. 4–250 characters. "Test Street no. 789" Yes
destination_area String Destination district / area name. 4–250 characters. "Al Khail Road" Yes
destination_city String Destination City. Must be set to "Dubai" only. "Dubai" Yes
recipient_contact_phone_country_code String Country code for recipient's mobile. 1–5 characters, include leading '+'. "+971" Yes
recipient_contact_phone String/Num Recipient's mobile number (digits only, max 15 digits). "123456789" Yes
drop_lat Number GPS latitude coordinate for precision drop-off. 4–15 characters. "25.0415533" No
drop_long Number GPS longitude coordinate for precision drop-off. 4–15 characters. "55.1286153" No
4

Sample Requests

Choose your preferred programming language or HTTP client below to inspect complete, production-ready code snippets with headers and payload matching the official specification:

curl --location 'https://demo.jeebly.com/customer/create_express_shipment' \
--header 'X-API-KEY: YOUR_API_KEY' \
--header 'client_key: YOUR_CLIENT_KEY' \
--header 'Content-Type: application/json' \
--data '{
  "order_type": "Food and Beverages",
  "pickup_building": "Test Building no. 100",
  "pickup_street": "Plot No. 365-405",
  "pickup_area": "Al Quoz Industrial",
  "pickup_city": "Dubai",
  "pickup_contact_phone_country_code": "+971",
  "pickup_contact_phone": "123456789",
  "destination_area": "Al Khail Road",
  "destination_building": "Test Building no. 501",
  "destination_street": "Test Street no. 789",
  "destination_city": "Dubai",
  "recipient_name": "Jane Doe",
  "recipient_contact_phone_country_code": "+971",
  "recipient_contact_phone": "123456789",
  "payment_method": "Prepaid",
  "cod_amount": 0,
  "no_of_packages": 2,
  "tip_amount": 0,
  "extra_info": "Handle with care",
  "vehicle_type": "Bike",
  "planned_start_time": "2026-06-15 14:00",
  "planned_delivery_time": "2026-06-15 15:30",
  "pick_lat": "25.0415392",
  "pick_long": "55.1258263",
  "drop_lat": "25.0415533",
  "drop_long": "55.1286153"
}'
5

Success Response (200 OK)

When all parameters meet validation rules and the order is placed within valid booking hours (8:00 AM – 11:00 PM GST), the API returns an HTTP 200 OK status with the generated express AWB No:

HTTP 200 OK — Order Created
{
  "success": "true",
  "message": "Created Successfully.",
  "AWB No": "E240307040904681"
}
Understanding the AWB Number

The AWB No returned in the response (e.g. E240307040904681) is your primary Express Order ID. Save and persist this identifier in your system database — you will require this exact value to check real-time courier coordinates via the Track Express Shipment API or to cancel the booking via the Cancel Express Shipment API.

Field Name Type Description
success String / Bool Indicates whether the order was booked and queued for dispatch ("true").
message String Confirmation status message: "Created Successfully."
AWB No String Unique express consignment identifier (e.g., "E240307040904681").
6

Error Responses (400 Bad Request)

The API performs strict validation on every parameter and operating constraint. Below are all 52 error scenarios documented in the official specification. Use the interactive filter pills to quickly isolate specific validation errors:

Case 1 If the format is wrong:
{
  "success": "false",
  "message": "Invalid JSON format"
}
Case 2 If the Customer/Client Key is not valid:
{
  "success": "false",
  "message": "Invalid Customer Key"
}
Case 3 If the API Key is not valid:
{
  "success": "false",
  "message": "Invalid API Token"
}
Case 4 If the user provides blank value for order_type:
{
  "success": "false",
  "message": "The order_type field must be one of Food and Beverages, Groceries, Documents and Others."
}
Case 5 If the user provides blank value for pickup_building:
{
  "success": "false",
  "message": "The pickup_building field is required."
}
Case 6 If the user provides blank value for pickup_street:
{
  "success": "false",
  "message": "The pickup_street field is required."
}
Case 7 If the user provides blank value for pickup_area:
{
  "success": "false",
  "message": "The pickup_area field is required."
}
Case 8 If the user provides blank value for pickup_city:
{
  "success": "false",
  "message": "The pickup city must be Dubai."
}
Case 9 If the user provides blank value for pickup_contact_phone_country_code:
{
  "success": "false",
  "messages": "Please select valid Country Code"
}
Case 10 If the user provides blank value for pickup_contact_phone:
{
  "success": "false",
  "message": "The pickup_contact_phone field is required."
}
Case 11 If the user provides blank value for destination_building:
{
  "success": "false",
  "message": "The destination_building field is required."
}
Case 12 If the user provides blank value for destination_street:
{
  "success": "false",
  "message": "The destination_street field is required."
}
Case 13 If the user provides blank value for destination_area:
{
  "success": "false",
  "message": "The destination_area field is required."
}
Case 14 If the user provides blank value for destination_city:
{
  "success": "false",
  "message": "The destination_city field is required."
}
Case 15 If the user provides blank value for recipient_contact_phone_country_code:
{
  "success": "false",
  "messages": "Please select valid Country Code"
}
Case 16 If the user provides blank value for recipient_contact_phone:
{
  "success": "false",
  "message": "The recipient_contact_phone field is required."
}
Case 17 If the user provides blank value for no_of_packages:
{
  "success": "false",
  "message": "The no_of_packages field is required."
}
Case 18 If the user provides blank value for payment_method:
{
  "success": "false",
  "message": "The payment_method field is required."
}
Case 19 If the user provides blank value for cod_amount:
{
  "success": "false",
  "message": "The cod_amount field is required."
}
Case 20 If the user provides blank/incorrect value for planned_start_time:
{
  "success": "false",
  "message": "The planned_start_time field must contain a valid date and time."
}
Case 21 If the user provides blank/incorrect value for vehicle_type:
{
  "success": "false",
  "message": "The Vehicle Type is not allowed. Please contact Jeebly team for more information"
}
Case 22 If the user provides more than 100 characters for pickup_name:
{
  "success": "false",
  "message": "The pickup_name field cannot exceed 100 characters in length."
}
Case 23 If the user provides more than 200 characters for pickup_building:
{
  "success": "false",
  "message": "The pickup_building field cannot exceed 200 characters in length."
}
Case 24 If the user provides more than 200 characters for pickup_street:
{
  "success": "false",
  "message": "The pickup_street field cannot exceed 200 characters in length."
}
Case 25 If the user provides more than 250 characters for pickup_area:
{
  "success": "false",
  "message": "The pickup_area field cannot exceed 250 characters in length."
}
Case 26 If the user provides more than 250 characters for destination_building:
{
  "success": "false",
  "message": "The destination_building field cannot exceed 250 characters in length."
}
Case 27 If the user provides more than 250 characters for destination_street:
{
  "success": "false",
  "message": "The destination_street field cannot exceed 250 characters in length."
}
Case 28 If the user provides more than 250 characters for recipient_name:
{
  "success": "false",
  "message": "The recipient_name field cannot exceed 250 characters in length."
}
Case 29 If the user provides more than 250 characters for destination_area:
{
  "success": "false",
  "message": "The destination_area field cannot exceed 250 characters in length."
}
Case 30 If the user provides more than 250 characters for extra_info:
{
  "success": "false",
  "message": "The extra_info field cannot exceed 250 characters in length."
}
Case 31 If the user provides more than 15 digits for pickup_contact_phone:
{
  "success": "false",
  "message": "The pickup_contact_phone field cannot exceed 15 characters in length."
}
Case 32 If the user provides more than 15 digits for recipient_contact_phone:
{
  "success": "false",
  "message": "The recipient_contact_phone field cannot exceed 15 characters in length."
}
Case 33 If the user provides more than 5 number for no_of_packages:
{
  "success": "false",
  "message": "The no_of_packages field must contain a number less than 6."
}
Case 34 If the user provides more than 100 number for tip_amount:
{
  "success": "false",
  "message": "Tip amount should be less than 100"
}
Case 35 If the user provides more than 9999 number for cod_amount:
{
  "success": "false",
  "message": "The cod_amount field must contain a number less than 10000."
}
Case 36 If the user provides a planned_start_time after 11 PM:
{
  "success": "false",
  "message": "The planned_start_time field must be between 08:00 to 23:00."
}
Case 37 If the user provides a planned_delivery_time after 11 PM:
{
  "success": "false",
  "message": "The planned_delivery_time field must be between 08:00 to 23:00."
}
Case 38 If the user provides an incorrect date format for planned_start_time:
{
  "success": "false",
  "message": "The planned_start_time field must contain a valid date and time."
}
Case 39 If the user provides an incorrect date format for planned_delivery_time:
{
  "success": "false",
  "message": "The planned_delivery_time field must contain a valid date and time."
}
Case 40 If planned_delivery_time is earlier than planned_start_time:
{
  "success": "false",
  "message": "planned_delivery_time should be greater than planned_start_time"
}
Case 41 If the user provides less than 2 characters for pickup_name:
{
  "success": "false",
  "message": "The pickup_name field must be at least 2 characters in length."
}
Case 42 If the user provides less than 4 characters for pickup_building:
{
  "success": "false",
  "message": "The pickup_building field must be at least 4 characters in length."
}
Case 43 If the user provides less than 4 characters for pickup_street:
{
  "success": "false",
  "message": "The pickup_street field must be at least 4 characters in length."
}
Case 44 If the user provides less than 4 characters for pickup_area:
{
  "success": "false",
  "message": "The pickup_area field must be at least 4 characters in length."
}
Case 45 If the user provides less than 4 characters for destination_building:
{
  "success": "false",
  "message": "The destination_building field must be at least 4 characters in length."
}
Case 46 If the user provides less than 4 characters for destination_street:
{
  "success": "false",
  "message": "The destination_street field must be at least 4 characters in length."
}
Case 47 If the user provides less than 1 as a value for no_of_packages:
{
  "success": "false",
  "message": "The no_of_packages field must only contain digits and must be greater than zero."
}
Case 48 If cod_amount is passed with Prepaid payment type:
{
  "success": "false",
  "message": "COD Amount should be zero"
}
Case 49 If cod_amount is 0 with COD payment type:
{
  "success": "false",
  "message": "The cod_amount field must contain a number greater than 0."
}
Case 50 If Bank details are not configured for COD shipment:
{
  "success": "false",
  "message": "For settlement of COD amount, we will require your bank details"
}
Case 51 If recipient_contact_phone_country_code exceeds 5 characters:
{
  "success": "false",
  "message": "The country_code field cannot exceed 5 characters in length."
}
Case 52 If pickup_contact_phone_country_code exceeds 5 characters:
{
  "success": "false",
  "message": "The pickup_contact_phone_country_code field cannot exceed 5 characters in length."
}
7

Troubleshooting & Resolution Guide

Reference this official diagnostic matrix to quickly identify the root cause of an error response and apply the recommended remedy:

Error Message What It Means How to Fix It
Invalid JSON format The request body is not valid JSON Check for missing commas, quotes, or unclosed brackets
Invalid Customer Key Your client_key is wrong or missing Double-check your client key in headers
Invalid API Token Your X-API-KEY is wrong or missing Double-check your API security key in headers
The order_type field must be one of... You sent an invalid or misformatted order type Use exactly: "Food and Beverages", "Groceries", "Document", or "Others"
The pickup_building field is required. pickup_building was left empty or whitespace Provide a valid building name or number (min 4 characters)
The pickup_street field is required. pickup_street was left empty Provide a valid street name or number (min 4 characters)
The pickup_area field is required. pickup_area was left empty Provide a valid area name (min 4 characters)
The pickup city must be Dubai. pickup_city was not set to Dubai Set pickup_city to "Dubai"
Please select valid Country Code The phone country code is missing or invalid Use "+971" (include the + sign)
The pickup_contact_phone field is required. The pickup phone number was left empty Provide a valid phone number (digits only, max 15 digits)
The destination_building field is required. destination_building was left empty Provide a valid building name or number (min 4 characters)
The destination_street field is required. destination_street was left empty Provide a valid street name or number (min 4 characters)
The destination_area field is required. destination_area was left empty Provide a valid area name (min 4 characters)
The destination_city field is required. destination_city was left empty Set destination_city to "Dubai"
The recipient_contact_phone field is required. The recipient phone number was left empty Provide a valid mobile phone number
The no_of_packages field is required. Number of packages was not provided Provide a number between 1 and 5
The no_of_packages field must contain a number less than 6. You entered more than 5 packages Maximum allowed is 5 packages per express order
The payment_method field is required. Payment method was not provided Specify either "COD" or "Prepaid"
COD Amount should be zero You passed a COD amount but payment type is Prepaid Set cod_amount to 0 for Prepaid orders
The cod_amount field must contain a number less than 10000. COD amount exceeds maximum limit Keep cod_amount below 10,000 AED (max 9,999)
For settlement of COD amount, we will require your bank details Bank details not configured for COD remittance Add your company bank details in the Jeebly client portal
Tip amount should be less than 100 Tip amount exceeds 100 AED Set tip_amount to 100 or below
The planned_start_time field must contain a valid date and time. The pickup datetime is invalid or formatted incorrectly Use strict format YYYY-MM-DD HH:MM
The planned_start_time field must be between 08:00 to 23:00. Pickup time is outside allowed operating hours Choose a time between 8:00 AM and 11:00 PM (GST)
planned_delivery_time should be greater than planned_start_time Delivery time is earlier than or equal to pickup Set planned_delivery_time to a time after planned_start_time
The Vehicle Type is not allowed... The vehicle type you entered is not recognized Use "Bike" or "Car" — contact Jeebly for van bookings
8

Operational Rules & Best Practices

Strict Operating Window

Express couriers operate exclusively between 8:00 AM and 11:00 PM Gulf Standard Time (GST). Any order submitted with a pickup or delivery timestamp outside this window will be rejected with an HTTP 400 error.

Dubai Only & GPS Coordinates

Both origin and destination must be within Dubai. Passing pick_lat, pick_long, drop_lat, and drop_long GPS coordinates significantly improves rider route calculation and prevents on-field delivery delays.

COD Remittance & Bank Info

For Cash On Delivery (COD) shipments, ensure your official corporate bank account is on record with Jeebly. If bank details are missing, order creation is blocked to protect your collection payouts.

Fleet Allocation

Use "Bike" for quick urban envelopes, food, or small parcels (up to 5 pkgs). For larger items or fragile boxes, set vehicle_type to "Car" to ensure adequate courier cargo volume.

9

Express Delivery Lifecycle Workflow

The complete on-demand express integration workflow consists of three primary endpoints designed for high-speed, direct fulfillment:

Step 1 (Current) POST
Create Express Order

Submit pickup and delivery parameters to book the consignment and receive your AWB No.

Open Console
Step 2 POST
Track Express Order

Monitor live courier location, pickup confirmation, and delivery milestones using the order ID.

Tracking Guide
Step 3 POST
Cancel Express Order

Cancel an express shipment before the courier arrives at the pickup origin to release the rider.

Cancel Guide