API Introduction

Welcome to the ZeptoExpress API! You can use our API to access ZeptoExpress API endpoints to start creating delivery orders. Our API is organized around REST. JSON will be returned in all responses from the API, including errors.


Authentication

You authenticate to the ZeptoExpress API by providing your API Secret Keys in the request. You can get your API keys from your account's settings page.

Authentication to the API occurs via HTTP Basic Auth. Provide your API key as the basic auth username. You do not need to provide a password.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. You must authenticate for all requests.

ATTRIBUTES
token

string
Unique token of the app that has been registered and allowed to make queries via ZeptoExpress API platform. Token is complusory for every call via the API.
app_id

string
Unique string of numbers of the app that has been assigned upon approval of registration. App ID is compulsory for every call via the API.
$ curl -X POST https://zeptoapi.com/api/rest/authenticate \
       -d token=764b26d5dd8772af73eef8110a33f5d9 \
       -d app_id=131862568712

Output

"result": [
  {
   "status": true,
   "email": "[email protected]",
   "company_name": "ZeptoExpress Berhad",
   "domain_name": "www.zeptoexpress.com",
   "contact_person": "John Doe",
   "contact_telno": "0122643163",
   "app_description": "API for e-commerce",
   "merchant_id": "1009",
   "api_status": "Sandbox Mode"
  }
]


Error

"result": [
  {
   "status": false,
   "message": "Token or app_id do not have permission to retrieve records"
  }
]

curl uses the -token and app_id flag to pass basic auth credentials. A sample test API key has been provided in all the examples on the page, so you can test out any example right away.


Zone Calculator

Zone Calculator API lets you get estimates of mileage and also price between zones.

ATTRIBUTES
token

string
Unique token of the app that has been registered and allowed to make queries via ZeptoExpress API platform. Token is complusory for every call via the API.
app_id

string
Unique string of numbers of the app that has been assigned upon approval of registration. App ID is compulsory for every call via the API.
pickup

string
The pickup zone for the order. Present if the order is for goods to be shipped. Zone Format "SGR" for Selangor
delivery

string
The delivery zone for the order that will be delivered. Zone Format "KUL" for Kuala Lumpur
zones

values
SGR=Selangor
KUL=Kuala Lumpur
PJY=Putra Jaya
CBJ=Cyberjaya

Note : Available coverage zones. All prices will have a surcharge of 50% between 8PM - 10AM daily.
$ curl -X POST https://zeptoapi.com/api/rest/calculator/zone \
       -d token=764b26d5dd8772af73eef8110a33f5d9 \
       -d app_id=131862568712 \
       -d pickup="SGR" \
       -d delivery="KUL"

Output

"result": [
  {
   "status": true,
   "distance": "28.8 km",
   "price": 30   }
]


Error

"result": [
  {
   "status": false,
   "message": "Pickup or delivery address is not in range"
  }
]

Note: Only zones that are listed will return values. A sample test API key has been provided in all the examples on the page, so you can test out any example right away.


Post Code Calculator

Post Code Calculator API lets you get estimates of mileage and also price between 2 zones.

ATTRIBUTES
token

string
Unique token of the app that has been registered and allowed to make queries via ZeptoExpress API platform. Token is complusory for every call via the API.
app_id

string
Unique string of numbers of the app that has been assigned upon approval of registration. App ID is compulsory for every call via the API.
pickup

string
The pickup post code for the order. Present if the order is for goods to be shipped. Post Code Format "55100"
delivery

string
The delivery post code for the order that will be delivered. Post Code Format "56000"
postcodes

values
Example :
55100
63200
43200
59100

Note : All prices will have a surcharge of 50% between 8PM - 10AM daily.
$ curl -X POST https://zeptoapi.com/api/rest/calculator/postcode/ \
       -d token=764b26d5dd8772af73eef8110a33f5d9 \
       -d app_id=131862568712 \
       -d pickup=55100 \
       -d delivery=56000

Output

"result": [
  {
   "status": true,
   "pickup_latlng": "3.139199,101.7324927",
   "delivery_latlng": "3.090795,101.7258578",
   "distance_km": 12.4,
   "price_myr": 10
  }
]


Error

"result": [
  {
   "status": false,
   "message": "post code is out of range"
  }
]

Note: A sample test API key has been provided in all the examples on the page, so you can test out any example right away.


Address Calculator

Address Calculator allows you to get the estimate of 2 way-points and also pricing.

ATTRIBUTES
token

string
Unique token of the app that has been registered and allowed to make queries via ZeptoExpress API platform. Token is complusory for every call via the API.
app_id

string
Unique string of numbers of the app that has been assigned upon approval of registration. App ID is compulsory for every call via the API.
pickup

string
The pickup address for the order. Present if the order is for goods to be shipped.
delivery

string
The delivery address for the order that will be delivered.

Note : All prices will have a surcharge of 50% between 8PM - 10AM daily.
vehicle

integer
Vehicle type list

1 = Zepto Bike
2 = Zepto Car
3 = Zepto Truck
4 = Zepto Run
schedule

datetime
Example : 2017-03-24 02:11:42
Format : Y-m-d H:i:s

country

string
UK = United Kingdom
IT = Italy
MY = Malaysia
SG = Singapore
$ curl -X POST https://zeptoapi.com/api/rest/calculator/address \
       -d token=764b26d5dd8772af73eef8110a33f5d9 \
       -d app_id=131862568712 \
       -d pickup="Damai Perdana 3/1A, Bandar Damai Perdana" \
       -d delivery="Jalan 4/3H, Seksyen 3, Bandar Baru Bangi" \
       -d vehicle=1 \
       -d schedule="2017-03-24 02:11:42" \
       -d country="MY"

Output

"result": [
  {
   "status": true,
   "pickup_latlng": "3.0472518,101.7385738",
   "delivery_latlng": "2.9615434,101.7774194",
   "distance_km": "22",
   "price_myr": 18
   "daylight": "day"
  }
]


Error

"result": [
  {
   "status": false,
   "message": "Please provide pickup address and delivery address"
  }
]

Note: A sample test API key has been provided in all the examples on the page, so you can test out any example right away.


Live Tracker

Live Tracker POST API allows you to retrieve request of rider's current location. You will need to pass in the unique id of each Job.

ATTRIBUTES
token

string
Unique token of the app that has been registered and allowed to make queries via ZeptoExpress API platform. Token is complusory for every call via the API.
app_id

string
Unique string of numbers of the app that has been assigned upon approval of registration. App ID is compulsory for every call via the API.
jobid

integer
Unique integer of jobs that has been created on ZeptoExpress.
delivery_status

integer
1 = Pending
2 = Completed
99 = Cancel
$ curl -X POST https://zeptoapi.com/api/rest/tracker \
       -d token=764b26d5dd8772af73eef8110a33f5d9 \
       -d app_id=131862568712 \
       -d jobid=420

Output

"result": [
  {
   "status": true,
   "rider": "3.1013016666666666,101.74051666666668",
   "delivery": "3.0167499,101.6163062",
   "pickup": "3.0762323,101.5885561"
   "delivery_status": "2"
  }
]


Error

"result": [
  {
   "status": false,
   "message": "jobid or rider does not match"
  }
]

Note: A sample test API key has been provided in all the examples on the page, so you can test out any example right away.


Create Booking

Create Job API allows you to create new jobs on ZeptoExpress via POST method.

ATTRIBUTES
token

string
Unique token of the app that has been registered and allowed to make queries via ZeptoExpress API platform. Token is complusory for every call via the API.
app_id

string
Unique string of numbers of the app that has been assigned upon approval of registration. App ID is compulsory for every call via the API.
sender_fullname

string
Fullname of the customer who will be making the delivery order.
sender_email

string
The email address of the customer who will be making the delivery order.
sender_phone

string
Contact mobile no of the person who will be making the delivery order.
recipient_fullname

string
Fullname of the customer who will be receiving the delivery order.
recipient_email

string
The email address of the customer who will be receiving the delivery order.
recipient_phone

string
Contact mobile no of the person who will be receiving SMS notifications for the delivery secret code.
pickup_address
string
The pickup address for the order. Present if the order is for goods to be shipped.
delivery_address

string
The delivery address for the order that will be delivered.
pickup_latlng

string
The pickup latlong is based from the pickup address given. This value can be obtained from the Address Calculator API
delivery_latlng

string
The delivery latlong is based from the delivery address given. This value can be obtained from the Address Calculator API
distance_km

string
Distance are are calculated based on estimated of pickup and delivery LatLong. This value can be obtained from the Address Calculator API
price_myr

string
Price are based on distance of 2 location points. This value can be obtained from the Address Calculator API
trip_type

integer
Choose your trip type whether it's a 1 way delivery or 2 way (return) delivery. Use "1" for one way delivery and "2" for return delivery.
instruction_notes

string
Enter instructional notes to our riders for example if you want our riders to do any specific tasks.
datetime_pickup

timestamp
You may choose to schedule or to create the job "NOW". Parameter will be in timestamp format for scheduled deliveries or "NOW". Scheduled format 2015-06-30 14:30:28
unit_no_pickup

string
Enter pickup unit/floor/building
unit_no_delivery

string
Enter delivery unit/floor/building
vehicle

string
1 = ZeptoBike
2 = ZeptoCar
3 = ZeptoTruck
4 = ZeptoRun
country

string
UK = United Kingdom
IT = Italy
MY = Malaysia
SG = Singapore
$ curl -X POST https://zeptoapi.com/api/rest/booking/new \
       -d token=764b26d5dd8772af73eef8110a33f5d9 \
       -d app_id=131862568712 \
       -d sender_fullname="John Doe" \
       -d sender_email="[email protected]" \
       -d sender_phone="+60122643163" \
       -d recipient_fullname="Steven Lee" \
       -d recipient_email="[email protected]" \
       -d recipient_phone="+60123728133" \
       -d pickup_address="5,Damai Perdana 3/1A,Bandar Damai Perdana" \
       -d delivery_address="Jalan 4/3H, Seksyen 3, Bandar Baru Bangi" \
       -d pickup_latlng="3.0472518,101.7385738" \
       -d delivery_latlng="2.9615434,101.7774194" \
       -d distance_km=20.3 \
       -d price_myr=21 \
       -d trip_type=1 \
       -d instruction_notes="Please call me when you have reached." \
       -d datetime_pickup=NOW \
       -d unit_no_pickup="1-14, 1st Floor" \
       -d unit_no_delivery="7, 2nd Floor" \
       -d vehicle=1 \
       -d country="MY"

Output

"booking": [
  {
   "status": true,
   "jobid": "521"
   "rider": 0
   "secret_code_pickup": "154477"
   "secret_code_delivery": "401050"
   "payment_url": "https://www.zeptopay.co/app/billplz-gateway?v=22e2693ea35bf1049266ea9c40a37ffb&j=521"
  }
]


Error

"booking": [
  {
   "status": false,
   "message": "Parameters does not match the required fields"
  }
]

Note: All parameters are required in order to create a new job via the API. A sample test API key has been provided in all the examples on the page, so you can test out any example right away.


Booking Details

Booking Details API lets you retrieve jobs created from your app_id.

ATTRIBUTES
token

string
Unique token of the app that has been registered and allowed to make queries via ZeptoExpress API platform. Token is complusory for every call via the API.
app_id

string
Unique string of numbers of the app that has been assigned upon approval of registration. App ID is compulsory for every call via the API.
jobid

string
Unique integer of jobs that has been created on ZeptoExpress.
$ curl -X POST https://zeptoapi.com/api/rest/booking/details \
       -d token=764b26d5dd8772af73eef8110a33f5d9 \
       -d app_id=131862568712 \
       -d jobid=420
       			

Output

"booking_details": [
  {
   "status": true,
   "booking_id": "420",
   "delivery_status": "2",
   "distance": "12 km",
   "price_myr": "10.00",
   "pickup_address": "7A, Jalan SS 15\/4b, Ss 15, 47500 Subang Jaya",
   "delivery_address": "73-1, Jalan Puteri 5\/7, Bandar Puteri, 47100 Puchong",
   "pickup_latlng": "3.0762323,101.5885561",
   "delivery_latlng": "3.0167499,101.6163062",
   "trip_type": "1",
   "instruction_notes": ""
   "date_created": "2015-07-22 14:36:09"
   "date_delivered": "2015-07-22 16:50:11"
   "return_job": null
   "date_pickup": null
  }
]
"secret_code": [
  {
   "secret_code_delivery": "357684",
  }
]
"rider_details": [
  {
   "rider_fullname": "Alif Abdul Aziz B Selamat",
   "rider_email": "[email protected]",
   "rider_mobile": "0182722189",
   "rider_vehicleno": "WVP 357"
   "rider_photo": "ae578e33be854b6\/95639b8efa83866c2e4.png"
  }
]
"sender_details": [
  {
   "sender_fullname": "Goh CH",
   "sender_email": "[email protected]",
   "sender_phone": "60172272155"
  }
]
"recipient_details": [
  {
   "recipient_fullname": "Goh",
   "recipient_email": "[email protected]",
   "recipient_phone": "0172772155"
  }
]


Error

"booking_details": [
  {
   "status": false,
   "message": "jobid does not match"
  }
]

Note: Only zones that are listed will return values. A sample test API key has been provided in all the examples on the page, so you can test out any example right away.


Retrieve History

Retrieve History allows you to get all jobid created using your merchant account via ZeptoExpress API.

ATTRIBUTES
token

string
Unique token of the app that has been registered and allowed to make queries via ZeptoExpress API platform. Token is complusory for every call via the API.
app_id

string
Unique string of numbers of the app that has been assigned upon approval of registration. App ID is compulsory for every call via the API.
$ curl -X POST https://zeptoapi.com/api/rest/history/info \
       -d token=764b26d5dd8772af73eef8110a33f5d9 \
       -d app_id=131862568712

Output

"result": [
  {
   "1": {
      "jobid": "1299",
      "rider": "0"
      "status": true
   },
   "2": {
      "jobid": "1298",
      "rider": "0"
      "status": true
   },
   "3": {
      "jobid": "1297",
      "rider": "0"
      "status": true
   },
   "4": {
      "jobid": "1296",
      "rider": "0"
      "status": true
   },
   "5": {
      "jobid": "1295",
      "rider": "0"
      "status": true
   },
   "6": {
      "jobid": "1294",
      "rider": "0"
      "status": true
   },
   "7": {
      "jobid": "1293",
      "rider": "0"
      "status": true
   },
   "8": {
      "jobid": "1292",
      "rider": "0"
      "status": true
   },
   "9": {
      "jobid": "1291",
      "rider": "0"
      "status": true
   },
   "10": {
      "jobid": "1290",
      "rider": "0"
      "status": true
   },
   "status": true
  }
]


Error

"result": [
  {
   "status": false,
   "message": "Token or app_id do not have permission to retrieve records"
  }
]

Note: A sample test API key has been provided in all the examples on the page, so you can test out any example right away.

ZeptoLab Sdn Bhd © 2016. All Rights Reserved.