Jeebly
POST Scheduled Delivery API • Version 1.0.9

Scheduled Order Creation
API Guide

Complete technical specification and developer reference for creating new scheduled delivery shipments in the Jeebly network. Configure package dimensions, sender/receiver addresses, delivery speed, and payment options with instant AWB generation.

Try in API Console
Version: 1.0.9 Method: POST Format: JSON Prepaid & COD Supported
POST v1.0.9
Create Shipment

Scheduled Delivery Endpoint

DEMO / SANDBOX:
https://demo.jeebly.com/customer/create_shipment
PRODUCTION LIVE:
https://myjeebly.jeebly.com/customer/create_shipment
Auth Headers:X-API-KEY, client_key
Content-Type:application/json
Max COD Amount:5,000 AED
Jump to Field Reference
1

What Is This API?

Use this API to create a new shipment order in the Jeebly delivery ecosystem. The Order Creation API allows customers and automated ecommerce systems to create shipment orders by providing consignment parameters such as service type (Same Day / Next Day), payment method (Prepaid / COD), sender (pickup) and receiver (delivery) addresses, package weight, and number of items.

Upon successful validation of all mandatory fields and operational booking rules, the API registers the consignment, assigns routing rules, and returns an immediate unique AWB (Air Waybill) number for end-to-end tracking and label printing.

API Details & Environments

Property Value Action
Request URL (Demo) https://demo.jeebly.com/customer/create_shipment
Request URL (Production) https://myjeebly.jeebly.com/customer/create_shipment
HTTP Method POST —
Content-Type application/json —
Delivery Speeds

Supports Next Day Delivery (NDD) and Same Day Delivery (SDD) across all supported UAE cities with automated cut-off time enforcement.

Flexible Payment Modes

Full support for Prepaid consignments as well as Cash on Delivery (COD) up to 5,000 AED per order with automated wallet/bank settlement.

2

Authentication Headers

Every request submitted to the Jeebly API must include two mandatory authentication headers. Requests lacking these headers or supplying invalid credentials will be rejected with an immediate 400 Bad Request or 401 Unauthorized response.

Header Name Description Required
X-API-KEY Your unique secret API security key assigned to your merchant account. Yes
client_key Your Jeebly customer account key identifying your corporate billing profile. Yes
Content-Type Must always be set to application/json. Yes
Need your API Credentials?

You can generate and manage your API keys directly from your merchant dashboard or check out the step-by-step instructions on the keys portal.

Get Your API Keys
3

Sample Request

Below is a complete, ready-to-test example request showing all mandatory and optional fields formatted according to the v1.0.9 specification:

curl --location 'https://demo.jeebly.com/customer/create_shipment' \
--header 'X-API-KEY: YOUR_API_KEY' \
--header 'client_key: YOUR_CLIENT_KEY' \
--header 'Content-Type: application/json' \
--data '{
  "delivery_type": "Next Day",
  "load_type": "Non-document",
  "consignment_type": "Forward",
  "description": "Electronics",
  "weight": 1,
  "payment_type": "prepaid",
  "cod_amount": 0,
  "num_pieces": 1,
  "origin_address_name": "John Smith",
  "origin_address_mob_no_country_code": "+971",
  "origin_address_mobile_number": "123456789",
  "origin_address_house_no": "Villa 10",
  "origin_address_building_name": "Sunrise Tower",
  "origin_address_area": "Al Quoz",
  "origin_address_landmark": "Near City Mall",
  "origin_address_city": "Dubai",
  "origin_address_type": "Normal",
  "destination_address_name": "Jane Doe",
  "destination_address_mob_no_country_code": "+971",
  "destination_address_mobile_number": "123456789",
  "destination_address_house_no": "Apt 205",
  "destination_address_building_name": "Marina Heights",
  "destination_address_area": "Dubai Marina",
  "destination_address_landmark": "Near Metro Station",
  "destination_address_city": "Dubai",
  "destination_address_type": "Western",
  "pickup_date": "2026-06-15"
}'
{
  "delivery_type": "Next Day",
  "load_type": "Non-document",
  "consignment_type": "Forward",
  "description": "Electronics",
  "weight": 1,
  "payment_type": "prepaid",
  "cod_amount": 0,
  "num_pieces": 1,
  "origin_address_name": "John Smith",
  "origin_address_mob_no_country_code": "+971",
  "origin_address_mobile_number": "123456789",
  "origin_address_house_no": "Villa 10",
  "origin_address_building_name": "Sunrise Tower",
  "origin_address_area": "Al Quoz",
  "origin_address_landmark": "Near City Mall",
  "origin_address_city": "Dubai",
  "origin_address_type": "Normal",
  "destination_address_name": "Jane Doe",
  "destination_address_mob_no_country_code": "+971",
  "destination_address_mobile_number": "123456789",
  "destination_address_house_no": "Apt 205",
  "destination_address_building_name": "Marina Heights",
  "destination_address_area": "Dubai Marina",
  "destination_address_landmark": "Near Metro Station",
  "destination_address_city": "Dubai",
  "destination_address_type": "Western",
  "pickup_date": "2026-06-15"
}
const myHeaders = new Headers();
myHeaders.append("X-API-KEY", "YOUR_API_KEY");
myHeaders.append("client_key", "YOUR_CLIENT_KEY");
myHeaders.append("Content-Type", "application/json");

const raw = JSON.stringify({
  "delivery_type": "Next Day",
  "load_type": "Non-document",
  "consignment_type": "Forward",
  "description": "Electronics",
  "weight": 1,
  "payment_type": "prepaid",
  "cod_amount": 0,
  "num_pieces": 1,
  "origin_address_name": "John Smith",
  "origin_address_mob_no_country_code": "+971",
  "origin_address_mobile_number": "123456789",
  "origin_address_house_no": "Villa 10",
  "origin_address_building_name": "Sunrise Tower",
  "origin_address_area": "Al Quoz",
  "origin_address_landmark": "Near City Mall",
  "origin_address_city": "Dubai",
  "origin_address_type": "Normal",
  "destination_address_name": "Jane Doe",
  "destination_address_mob_no_country_code": "+971",
  "destination_address_mobile_number": "123456789",
  "destination_address_house_no": "Apt 205",
  "destination_address_building_name": "Marina Heights",
  "destination_address_area": "Dubai Marina",
  "destination_address_landmark": "Near Metro Station",
  "destination_address_city": "Dubai",
  "destination_address_type": "Western",
  "pickup_date": "2026-06-15"
});

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: raw,
  redirect: "follow"
};

fetch("https://demo.jeebly.com/customer/create_shipment", requestOptions)
  .then((response) => response.json())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
import requests
import json

url = "https://demo.jeebly.com/customer/create_shipment"

payload = json.dumps({
  "delivery_type": "Next Day",
  "load_type": "Non-document",
  "consignment_type": "Forward",
  "description": "Electronics",
  "weight": 1,
  "payment_type": "prepaid",
  "cod_amount": 0,
  "num_pieces": 1,
  "origin_address_name": "John Smith",
  "origin_address_mob_no_country_code": "+971",
  "origin_address_mobile_number": "123456789",
  "origin_address_house_no": "Villa 10",
  "origin_address_building_name": "Sunrise Tower",
  "origin_address_area": "Al Quoz",
  "origin_address_landmark": "Near City Mall",
  "origin_address_city": "Dubai",
  "origin_address_type": "Normal",
  "destination_address_name": "Jane Doe",
  "destination_address_mob_no_country_code": "+971",
  "destination_address_mobile_number": "123456789",
  "destination_address_house_no": "Apt 205",
  "destination_address_building_name": "Marina Heights",
  "destination_address_area": "Dubai Marina",
  "destination_address_landmark": "Near Metro Station",
  "destination_address_city": "Dubai",
  "destination_address_type": "Western",
  "pickup_date": "2026-06-15"
})

headers = {
  'X-API-KEY': 'YOUR_API_KEY',
  'client_key': 'YOUR_CLIENT_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)
print(response.json())
Want to test this payload interactively right now with live responses?
Open API Console
4

Field Reference

The payload schema is structured into three primary segments: Shipment Details, Pickup Address (Origin), and Delivery Address (Destination).

Part A

Shipment Details

Defines the parcel classification, dimensions, service speed, and billing specifications.

Field Name Type Description Sample Values Required
delivery_type String Defines the service speed and commitment level for delivery. "Same Day" or "Next Day" Yes
load_type String Specifies whether the parcel contains documents or merchandise/goods. "Document" or "Non-document" Yes
consignment_type String Defines whether the consignment flow is a standard forward dispatch or a customer return. "Forward" or "Reverse" Yes
description String A short summary describing the goods inside the shipment (max 200 characters). "Electronics", "Apparel" No
weight Number Gross package weight in kilograms. Whole numbers only (1 to 20 KG). Decimals not permitted. 1 to 20 Yes
payment_type String Specifies whether shipping/order fees are already settled (Prepaid) or collected upon handover (COD). "Prepaid" or "COD" Yes
cod_amount Float Cash amount in AED to collect from the recipient. Must be 0 for Prepaid shipments, and between 0.01 and 5000 for COD. 0 (Prepaid) or 250.50 (COD) Yes if COD
num_pieces Number Total count of individual packages/cartons forming this single consignment (1 to 10). 1 to 10 Yes
customer_reference_number String Your internal ERP / CRM / order invoice reference number (4 to 30 characters). "CRM65262", "INV-9021" No
Part B

Pickup Address (Origin)

Specifies where the Jeebly driver should arrive to collect the package.

Field Name Type Description Sample Values Required
origin_address_name String Full name of the contact person or warehouse dispatcher at the pickup location. Max 255 chars. "John Smith" Yes
origin_address_mob_no_country_code String Country code prefix (2 to 4 digits). Numbers only (e.g., +971). "+971" Yes
origin_address_mobile_number String Contact mobile number of the sender. Digits only (max 20 digits). "501234567" Yes
origin_address_alt_ph_country_code String Alternate phone country dialing code (optional, 2 to 4 digits). "+971", "+91" No
origin_address_alternate_phone String Alternate contact mobile number (optional, max 20 digits). "559876543" No
origin_address_house_no String Villa, apartment, suite, or warehouse unit number. Max 255 chars. "Villa 10", "Unit 4B" Yes
origin_address_building_name String Building name, business tower, or compound name. Max 255 chars. "Sunrise Tower" Yes
origin_address_area String Community or locality name of pickup location. Max 255 chars. "Al Quoz", "Al Barsha" Yes
origin_address_landmark String Notable physical landmark assisting driver navigation. Max 255 chars. "Near City Mall" Yes
origin_address_city String Origin city name. Must match one of the 8 supported UAE cities verbatim. "Dubai" Yes
origin_address_type String Address format type. "Normal" Yes
Part C

Delivery Address (Destination)

Specifies the recipient and delivery drop-off location.

Field Name Type Description Sample Values Required
destination_address_name String Full name of the recipient receiving the shipment. Max 255 chars. "Jane Doe" Yes
destination_address_mob_no_country_code String Country dialing code for recipient's mobile (2 to 4 digits). Digits only. "+971" Yes
destination_address_mobile_number String Receiver's primary contact mobile phone. Digits only (max 20 digits). "509876543" Yes
destination_details_alt_ph_country_code String Alternate phone country code (optional, 2 to 4 digits). "+971" No
destination_details_alternate_phone String Secondary mobile phone number of recipient (optional). "521234567" No
destination_address_house_no String Apartment, villa, or office number of recipient. Max 255 chars. "Apt 205" Yes
destination_address_building_name String Building name, residential tower, or complex. Max 255 chars. "Marina Heights" Yes
destination_address_area String Destination community / district name. Max 255 chars. "Dubai Marina" Yes
destination_address_landmark String Visual landmark near delivery location. Max 255 chars. "Near Metro Station" Yes
destination_address_city String Destination city name. Must match one of the 8 supported UAE cities verbatim. "Dubai" Yes
destination_address_type String Address format standard. Accepts "Normal" or "Western". "Normal", "Western" Yes
pickup_date String The scheduled date for parcel pickup in YYYY-MM-DD format. Cannot be a past date or a Sunday. "2026-06-15" Yes
5

Supported UAE Cities

The following 8 UAE cities are strictly accepted in the origin_address_city and destination_address_city fields. City names are case-sensitive and must be provided exactly as spelled below:

Abu Dhabi
Ajman
Al-Ain
Dubai
Fujairah
Ras Al Khaimah
Sharjah
Umm Al-Quwain
Important Rule for Same Day Delivery (SDD)

When delivery_type is set to "Same Day", the pickup city (origin_address_city) and delivery city (destination_address_city) must be identical. Inter-city same-day deliveries are not supported.

6

Success Response (200 OK)

A 200 OK response confirms that the consignment request was validated, accepted, and recorded in the Jeebly dispatch queue.

Understanding the AWB Number

The returned "AWB No" (e.g., JB304362) is your primary Air Waybill shipment identifier. Store this reference in your database to query tracking updates, print thermal labels, or cancel shipments.

200 OK application/json
{
  "success": "true",
  "message": "Created Successfully.",
  "AWB No": "JB304362"
}
Response Field Type Description
success String Status flag ("true" on successful creation, "false" if validation fails).
message String System message confirming successful creation: "Created Successfully."
AWB No String Unique Jeebly Air Waybill tracking reference assigned to this parcel.
7

Error Responses (400 Bad Request)

A 400 Bad Request response signifies that one or more payload values breached validation rules. The message attribute explains the precise reason.

Showing 82 of 82 error cases
#1. API Key missing or payload format incorrect 400 Bad Request
{
  "success": "false",
  "message": "Invalid JSON format"
}
#2. X-API-KEY is invalid or expired 400 Bad Request
{
  "success": "false",
  "message": "Invalid API token"
}
#3. Space passed as value in delivery_type 400 Bad Request
{
  "success": "false",
  "message": "Please select a valid Delivery Type"
}
#4. Incorrect data passed as value in delivery_type 400 Bad Request
{
  "success": "false",
  "status": 400,
  "message": "Please select valid Delivery type"
}
#5. Space or incorrect data in load_type 400 Bad Request
{
  "success": "false",
  "status": 400,
  "message": "Please select valid Consignment Load type"
}
#6. Space or incorrect data in consignment_type 400 Bad Request
{
  "success": "false",
  "status": 400,
  "message": "Please select valid Consignment type"
}
#7. Description exceeds 200 characters 400 Bad Request
{
  "success": "false",
  "message": "The description field cannot exceed 200 characters in length."
}
#8. Space passed as value in description 400 Bad Request
{
  "success": "false",
  "message": "The description field is required."
}
#9. Weight exceeds 20 KG 400 Bad Request
{
  "success": "false",
  "message": "Please select valid weight"
}
#10. Weight is less than 0 or negative 400 Bad Request
{
  "success": "false",
  "message": "Please select valid weight"
}
#11. Space or invalid value in payment_type 400 Bad Request
{
  "success": "false",
  "message": "Please select valid Consignment payment type"
}
#12. COD amount passed with Prepaid payment type 400 Bad Request
{
  "success": "false",
  "message": "cod amount should be zero for a prepaid order"
}
#13. Bank details missing for COD shipment 400 Bad Request
{
  "success": "false",
  "message": "For settlement of COD amount, we will require your bank details"
}
#14. COD amount is less than 0.1 for COD order 400 Bad Request
{
  "success": "false",
  "message": "cod amount cannot be zero or less than Zero for a cod order"
}
#15. COD amount exceeds 5000 AED 400 Bad Request
{
  "success": "false",
  "message": "cod amount should be less than 5000"
}
#16. Space passed in payment_type format 400 Bad Request
{
  "success": "false",
  "message": "Invalid JSON format."
}
#17. Bank settlement details pending for COD 400 Bad Request
{
  "success": "false",
  "message": "For settlement of COD amount, we will require your bank details"
}
#18. num_pieces is less than 0 400 Bad Request
{
  "success": "false",
  "message": "Please select valid num of pieces unit"
}
#19. num_pieces is more than 10 400 Bad Request
{
  "success": "false",
  "message": "Please select valid num of pieces unit"
}
#20. Space or invalid data in num_pieces 400 Bad Request
{
  "success": "false",
  "message": "Invalid JSON format."
}
#21. customer_reference_number is less than 4 characters 400 Bad Request
{
  "success": "false",
  "message": "The customer_reference_number field must be at least 4 characters in length."
}
#22. customer_reference_number exceeds 30 characters 400 Bad Request
{
  "success": "false",
  "message": "The customer_reference_number field cannot exceed 30 characters in length."
}
#23. Space passed in customer_reference_number 400 Bad Request
{
  "success": "false",
  "message": "The customer_reference_number field is required."
}
#24. Blank passed in origin_address_name 400 Bad Request
{
  "success": "false",
  "message": "Please pass the valid Name in the origin_address_name"
}
#25. origin_address_name exceeds 255 characters 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_name field cannot exceed 255 characters in length."
}
#26. Space or missing origin_address_name 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_name field is required."
}
#27. origin_address_mob_no_country_code less than 2 digits 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_mob_no_country_code field is required."
}
#28. origin_address_mob_no_country_code exceeds 4 characters 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_mob_no_country_code field cannot exceed 4 characters in length."
}
#29. Space passed in origin_address_mob_no_country_code 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_mob_no_country_code field is required."
}
#30. Letters/characters in origin_address_mob_no_country_code 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_mob_no_country_code field must contain only numbers."
}
#31. Blank passed in origin_address_mob_no_country_code 400 Bad Request
{
  "success": "false",
  "messages": "Please select valid Country Code"
}
#32. Blank passed in origin_address_mobile_number 400 Bad Request
{
  "success": "false",
  "message": "Please select a valid Mobile Number"
}
#33. Space in origin_address_mobile_number 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_mobile_number field is required."
}
#34. origin_address_mobile_number exceeds 20 characters 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_mobile_number field cannot exceed 20 characters in length."
}
#35. Letters passed in origin_address_mobile_number 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_mobile_number field must contain only numbers."
}
#36. Invalid origin_details_alt_ph_country_code 400 Bad Request
{
  "success": "false",
  "message": "The origin_details_alt_ph_country_code field is required."
}
#37. origin_details_alt_ph_country_code exceeds 4 characters 400 Bad Request
{
  "success": "false",
  "message": "The origin_details_alt_ph_country_code field cannot exceed 4 characters in length."
}
#38. Space in origin_details_alt_ph_country_code 400 Bad Request
{
  "success": "false",
  "message": "The origin_details_alt_ph_country_code field is required."
}
#39. Characters in origin_details_alt_ph_country_code 400 Bad Request
{
  "success": "false",
  "message": "The origin_details_alt_ph_country_code field must contain only numbers."
}
#40. destination_address_mob_no_country_code less than 4 chars 400 Bad Request
{
  "success": "false",
  "message": "The destination_address_mob_no_country_code field cannot exceed 4 characters in length."
}
#41. origin_details_alternate_phone exceeds 20 characters 400 Bad Request
{
  "success": "false",
  "message": "The origin_details_alternate_phone field cannot exceed 20 characters in length."
}
#42. Space in origin_details_alternate_phone 400 Bad Request
{
  "success": "false",
  "message": "The origin_details_alternate_phone field is required."
}
#43. Letters in origin_details_alternate_phone 400 Bad Request
{
  "success": "false",
  "message": "The origin_details_alternate_phone field must contain only numbers."
}
#44. Space in origin_address_house_no 400 Bad Request
{
  "success": "false",
  "message": "Please select valid House Number"
}
#45. Blank in origin_address_house_no 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_house_no field is required."
}
#46. origin_address_house_no exceeds 255 characters 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_house_no field cannot exceed 255 characters in length."
}
#47. origin_address_building_name exceeds 255 characters 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_building_name field cannot exceed 255 characters in length."
}
#48. origin_address_area exceeds 255 characters 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_area field cannot exceed 255 characters in length."
}
#49. origin_address_landmark exceeds 255 characters 400 Bad Request
{
  "success": "false",
  "message": "The origin_address_landmark field cannot exceed 255 characters in length."
}
#50. Invalid city or space in origin_address_city 400 Bad Request
{
  "success": "false",
  "message": "Please select valid pickup City"
}
#51. destination_address_name exceeds 255 characters 400 Bad Request
{
  "success": "false",
  "message": "The destination_address_name field cannot exceed 255 characters in length."
}
#52. destination_address_mob_no_country_code less than 4 digits 400 Bad Request
{
  "success": "false",
  "message": "The destination_address_mob_no_country_code field is required."
}
#53. destination_address_mob_no_country_code exceeds 4 digits 400 Bad Request
{
  "success": "false",
  "message": "The destinition_address_mob_no_country_code field cannot exceed 4 characters in length."
}
#54. Space in destination_address_mob_no_country_code 400 Bad Request
{
  "success": "false",
  "message": "The destinition_address_mob_no_country_code field is required."
}
#55. Letters in destination_address_mob_no_country_code 400 Bad Request
{
  "success": "false",
  "message": "The destinition_address_mob_no_country_code field must contain only numbers."
}
#56. Blank in destination_address_mob_no_country_code 400 Bad Request
{
  "success": "false",
  "messages": "Please select valid Country Code"
}
#57. Blank in destination_address_mobile_number 400 Bad Request
{
  "success": "false",
  "message": "Please select a valid Mobile Number"
}
#58. Space in destination_address_mobile_number 400 Bad Request
{
  "success": "false",
  "message": "The destinition_address_mobile_number field is required."
}
#59. destination_address_mobile_number exceeds 20 characters 400 Bad Request
{
  "success": "false",
  "message": "The destinition_address_mobile_number field cannot exceed 20 characters in length."
}
#60. Letters in destination_address_mobile_number 400 Bad Request
{
  "success": "false",
  "message": "The destinition_address_mobile_number field must contain only numbers."
}
#61. Less value in destination_details_alt_ph_country_code 400 Bad Request
{
  "success": "false",
  "message": "The destinition_details_alt_ph_country_code field is required."
}
#62. destination_details_alt_ph_country_code exceeds 4 chars 400 Bad Request
{
  "success": "false",
  "message": "The destinition_details_alt_ph_country_code field cannot exceed 4 characters in length."
}
#63. Space in destination_details_alt_ph_country_code 400 Bad Request
{
  "success": "false",
  "message": "The destinition_details_alt_ph_country_code field is required."
}
#64. Invalid characters in destination_details_alt_ph_country_code 400 Bad Request
{
  "success": "false",
  "message": "The destinition_details_alt_ph_country_code field must contain only numbers."
}
#65. destination_address_mob_no_country_code less than 4 digits 400 Bad Request
{
  "success": "false",
  "message": "The destination_address_mob_no_country_code field is required."
}
#66. destination_details_alternate_phone exceeds 20 characters 400 Bad Request
{
  "success": "false",
  "message": "The destination_details_alternate_phone field cannot exceed 20 characters in length."
}
#67. Space in destination_details_alternate_phone 400 Bad Request
{
  "success": "false",
  "message": "The destination_details_alternate_phone field is required."
}
#68. Letters in destination_details_alternate_phone 400 Bad Request
{
  "success": "false",
  "message": "The destination_details_alternate_phone field must contain only numbers."
}
#69. destination_address_house_no exceeds 255 characters 400 Bad Request
{
  "success": "false",
  "message": "The destination_address_house_no field cannot exceed 255 characters in length."
}
#70. destination_address_building_name exceeds 255 characters 400 Bad Request
{
  "success": "false",
  "message": "The destination_address_building_name field cannot exceed 255 characters in length."
}
#71. destination_address_area exceeds 255 characters 400 Bad Request
{
  "success": "false",
  "message": "The destination_address_area field cannot exceed 255 characters in length."
}
#72. destination_address_landmark exceeds 255 characters 400 Bad Request
{
  "success": "false",
  "message": "The destination_address_landmark field cannot exceed 255 characters in length."
}
#73. Invalid city name or space in destination_address_city 400 Bad Request
{
  "success": "false",
  "message": "Please select valid Destination City"
}
#74. Invalid or space in destination_address_type 400 Bad Request
{
  "success": "false",
  "message": "Please select valid address type"
}
#75. Today's date selected with Next Day Delivery after 4:00 PM 400 Bad Request
{
  "success": "false",
  "message": "Pickup not allowed after 4 PM on given Pickup date"
}
#76. Today's date selected with Same Day Delivery after 11:00 AM 400 Bad Request
{
  "success": "false",
  "message": "Pickup not allowed after 11 AM on given Pickup date"
}
#77. Sunday's date selected for pickup 400 Bad Request
{
  "success": "false",
  "message": "Sunday pickup not Allowed"
}
#78. Different origin & destination cities with Same Day Delivery 400 Bad Request
{
  "success": "false",
  "message": "Same Day service not available between selected cities"
}
#79. [Client's Own AWB] consignment_number less than 4 chars 400 Bad Request
{
  "success": "false",
  "message": "The consignment_number field must be at least 4 characters in length."
}
#80. [Client's Own AWB] consignment_number exceeds 20 characters 400 Bad Request
{
  "success": "false",
  "message": "The consignment_number field cannot exceed 20 characters in length."
}
#81. [Client's Own AWB] Space passed in consignment_number 400 Bad Request
{
  "success": "false",
  "message": "The consignment_number field is required."
}
#82. [Client's Own AWB] Blank passed in consignment_number 400 Bad Request
{
  "success": "false",
  "message": "Please pass the Consignment Number"
}
8

Troubleshooting & Resolution Matrix

Quick reference guide for resolving the most frequent integration errors encountered during API onboarding:

Error Message What It Means How to Fix It
Invalid JSON format The request body is malformed or not valid JSON. Check for missing commas, unescaped quotes, or unmatched curly brackets.
Invalid API token Your X-API-KEY header value is wrong, revoked, or missing. Double-check your API key from the Jeebly portal or re-generate a new key.
Invalid Customer Key Your client_key header value is wrong or missing. Verify your registered merchant client key with your Jeebly account manager.
Please select a valid Delivery Type delivery_type was invalid or empty. Pass exactly "Same Day" or "Next Day" (case-sensitive).
Please select valid Consignment Load type load_type was invalid. Pass exactly "Document" or "Non-document".
cod amount should be zero for a prepaid order You passed a non-zero COD amount while payment_type is "prepaid". Set cod_amount to 0 for all Prepaid consignments.
For settlement of COD amount, we will require your bank details Your account is not configured with bank payout credentials for COD collection. Update and verify your commercial bank details in the Jeebly merchant portal.
Sunday pickup not Allowed You specified a Sunday date in the pickup_date field. Choose any operational day from Monday to Saturday.
Pickup not allowed after 4 PM on given Pickup date It is past 4:00 PM GST and you chose today's date for Next Day delivery. Schedule the pickup date for tomorrow or a future date.
Pickup not allowed after 11 AM on given Pickup date It is past 11:00 AM GST and you chose today's date for Same Day delivery. Select a future pickup date or change delivery type to Next Day.
Same Day service not available between selected cities The pickup and delivery cities are different for a Same Day delivery order. Same Day delivery is strictly intra-city (within the same city only).
Developer Pro-Tip: Check the 'success' Flag

Always inspect the "success" boolean/string field in the response JSON payload, not just the HTTP status code. A 200 HTTP status code can still contain a failed order validation if the "success" value is "false".

9

Operational Booking Rules

To ensure guaranteed dispatch and delivery SLAs across the UAE, all orders created through this endpoint must satisfy these operational parameters:

Daily Booking Cut-off Times
  • Same Day Delivery (SDD): Must be created before 11:00 AM GST if pickup date equals today.
  • Next Day Delivery (NDD): Must be created before 4:00 PM GST if pickup date equals today.
Pickup Days & Sundays

Pickups operate Monday through Saturday. The API strictly disallows pickup bookings on Sundays ("Sunday pickup not Allowed").

Weight & Item Limitations
  • Package Weight: Minimum 1 KG, Maximum 20 KG. Whole numbers only (decimals not accepted).
  • Pieces / Items: Minimum 1 piece, Maximum 10 pieces per single consignment.
Cash on Delivery (COD) Caps

For COD orders, cod_amount must be between 0.01 AED and 5,000 AED. Verified commercial bank details must be registered in your account.