NAV

Introduction

Welcome to the developer documentation for Deliveree, a comprehensive logistics and supply chain solution provider. Our Deliveree developer endpoints are designed to empower developers, partners, and clients to seamlessly integrate our logistics capabilities into their own systems. This document provides all the necessary information to get started with our API, including endpoints, authentication methods, and example requests.

Booking Flow

Workflow

Booking Status

To ensure comprehensive testing of the entire process and validate the correct reception of all statuses, the booking status is configured to change to the next one after 5-15 seconds. Please noted that only Sandbox environment has this setup.

Below table is all of the booking statuses:

Booking Status Description
locating_driver Once a booking is created by the customer, the system will broadcast the booking to all available drivers for their acceptance.
driver_accept_booking This status indicates that a driver has accepted the booking and is now assigned to the job.
delivery_in_progress This status indicates that the driver has picked up the shipment and is currently en route to the delivery destination.
delivery_complete The cargo has been successfully delivered to the designated destination, completing the delivery process.
canceled Indicates that the booking has been canceled before completion.
locating_driver_timeout This status indicates that the system was unable to find a driver within the allocated time period for the booking.

Support

If you encounter any issues or have questions, our support team is here to help. You can reach out via:

Change Logs

Date Changes
09 Sep 24 Upgrade all the endpoints from v1 to v10 to increase performance

Getting Started

The Deliveree API offers a comprehensive suite of tools that enable clients to efficiently check prices, and create, and manage bookings. To start using the API, follow these steps:

Time Display

All timestamp information in Deliveree API are presented in ISO8601 with offset.

Authentication

When your account manager sets up your account initially, you will receive an API key. It is crucial to securely store this key and refrain from embedding it in client-side code.

To authenticate API requests, include the API key in the request header with the key “Api-Key”. Requests made without this key will result in a 401 Unauthorized response.

For further assistance, please contact our team via email with your contact information, and we will promptly assist you.

curl -H 'Authorization: YOUR_API_KEY' \
'https://api.deliveree.com/public_api/v1/deliveries'

Environment URLs

To facilitate development and testing, the Deliveree API provides separate environments for sandbox and production. These environments allow you to safely test and integrate our services before going live.

Request

Our API follows REST principles, characterized by:

Response Status

The DELIVEREE API utilizes HTTP status codes to communicate the outcome of your requests, encompassing both successful and unsuccessful responses. Detailed information is also included in JSON format to provide further context.

Response Status Description
200 - OK Request completed as expected.
201 - Created Used for requests that create new objects (i.e. Delivery).
204 - No Content The server has completed the request but does not need to return a body (i.e. DELETE requests).
304 - Not Modified Resource hasn’t been updated since the date provided.
400 - Bad Request You did something wrong. Often a missing argument or parameter
401 - Unauthorized Authentication was incorrect.
403 - Forbidden The request is understood, but it has been refused or access is not allowed.
404 - Not Found The requested resource could not be found.
405 - Method Not Allowed Exceed the request limit.
422 - Invalid Request The request body is parse-able however with invalid content or there are issues.
50X - Errors Occur when something goes wrong in the Deliveree API.

Pagination

Requests that return multiple items are paginated by default, with each page containing up to 25 items. Use the page parameter to navigate through pages or specify offsets. Additionally, you can adjust the page size using the per_page parameter, supporting custom sizes of up to 100 items per page.

{
  "pagination": {
          "total_count": 422,
          "per_page": 10,
          "next_page": "?page=3&per_page=10...",
          "previous_page": "?page=1&per_page=10..."
  }
}

Error

Error responses contain specific details regarding the encountered issue.

HTTP/1.1 401 Unauthorized
Content-Type: application/json
{
    "statusCode": 401,
    "code": 4010,
    "message": "401 Unauthorized"
}

Webhooks

Webhooks enable you to receive real-time updates on your ongoing deliveries. By configuring a URL for us to POST updates to, you’ll receive the most current information to display to your customers.

Webhook Endpoint

To utilize webhooks, set up your web application to accept HTTP POST requests from us. These requests will include JSON objects that represent the events that have occurred. Please contact our team to configure this URL endpoint.

For every job status update, we will send a JSON payload to the configured endpoint. You can find more details about the possible statuses in our documentation.

Security

Encryption: You can use either an HTTP or HTTPS URL for webhooks. While HTTP is generally sufficient, HTTPS is recommended if your data is sensitive or if you want to protect against replay attacks.

Authentication: Each request we send includes a webhook authentication header. Since this header is the only way to verify the origin of your data, it is crucial to validate it. If the authentication header is incorrect, you should respond with a 401 Unauthorized status.

Header Description
Authorization The unique key for a webhook which we use to authorize our requests. (This key can be generated by you)

API Endpoints v1

Get A Delivery Quote

The first step in using the Deliveree API is to obtain a delivery quote. This helps you assess the cost and availability of our services, which may vary depending on factors such as distance and vehicle type.

This API endpoint will be deprecated on 31 Mar 25. Please use version 10 instead.

Request v1

POST /public_api/v1/deliveries/get_quote

Headers v1

Name Type Description
Authorization * string API Key
Accept-Language string User language

Parameters v1

Name Type Description
time_type * string There are 2 time_type : “now” and “schedule”. “now” is a delivery that needs to happen now. “schedule” is a delivery in the future (at least 2 hours from current time).
pickup_time datetime (ISO Time) For time_type=“now”, the pickup_time can be blank as the Delivery needs to happen now.
For time_type=“schedule”, the pickup_time needs a value.
vehicle_type_id integer Optional specific Vehicle Type ID.
The return quotes will only for vehicle type you provide.
Use this when you know exactly what vehicle type you need.
packs array List of Pack’s informations.
Include dimensions(length, width, height), weight, quantity.
locations * array List of Short Location (incl. pick-up and drop-off locations).
The first location in the list is the pick-up location. The following locations are drop-off locations. The route is designed based on the order of the locations you post.
Example :
  1. Location 1 = pickup
  2. Location 2 = first drop-off by the driver
  3. Location 3 = second drop-off by the driver<
  4. etc
Minimum locations required : 2 (1x pickup and 1x drop-off)
Maximum locations :
  • Up to 23 Locations for Indonesia
  • Up to 15 Locations for Thailand
  • Up to 15 Locations for Philippines
extra_services array List of Extra Service (incl. normal and goods insurance).
$ curl -X POST /public_api/v1/deliveries/get_quote \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
   --header "Accept-Language:en" \
   --data '{
              "time_type": "now",
              "vehicle_type_id":21,
              "packs": [
                {
                  "dimensions": [1,2,3],
                  "weight": 100,
                  "quantity": 2
                },
                {
                  "dimensions": [2,2,5],
                  "weight": 20,
                  "quantity": 1
                }
              ],
              "locations": [
                {
                  "address": "Jl. Sultan Iskandar Muda No.21, Arteri Pondok Indah, Pd. Pinang, Kby. Lama, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta, Indonesia",
                  "latitude": -6.2608232,
                  "longitude": 106.7884168
                },
                {
                  "address": "Gedung Inti Sentra, Jl. Taman Kemang, RT.14/RW.1, Bangka, Mampang Prpt., Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta, Indonesia",
                  "latitude": -6.2608232,
                  "longitude": 106.7884168,
                  "need_cod": true,
                  "cod_invoice_fees": 5000,
                  "need_pod":true
                },
                {
                  "address": "Lavenue Apartemen, Jl. Ps. Minggu Raya, RT.7/RW.2, Pancoran, South Jakarta City, Jakarta, Indonesia",
                  "latitude": -6.248446679393533,
                  "longitude": 106.84431951392108,
                  "recipient_name": "Duke",
                  "recipient_phone": "+84903856534",
                  "note": "Office tower, 19th floor"
                }
              ],
              "extra_services": [
                {
                  "extra_requirement_id": 140,
                  "selected_amount": 1
                },
                {
                  "extra_requirement_id": 416,
                  "selected_amount": 1,
                  "extra_requirement_pricing_id": 2146
                }
              ]
            }'

Extra Service v1

An extra service is an object representing an extra service of delivery

Name Type Description
extra_requirement_id * integer Extra service Id.
selected_amount integer Selected amount of extra service.
extra_requirement_pricing_id integer Extra service pricing id of goods insurance.
name string Name of extra service.
unit_price float Unit price of extra service.
display_level_price string Display text for level price of goods insurance pricing.
display_fees string Display text for fees of goods insurance pricing.
display_fees_without_currency string Display text for fees without currency of goods insurance pricing.
position integer Position of extra service.
is_insurance boolean The extra service has goods insurance or not.

Short Location v1

A location is an object representing a location. We highly recommend using latitude and longitude address for location accuracy.

Name Type Description
address * string Address of the location.
latitude float Latitude component of the location.
longitude float Longitude component of the location.
need_cod boolean The location need COD or not.
cod_invoice_fees float The COD amount that needs to be collected by the driver at that location. Is required if need_cod is true.
need_pod boolean The location need POD or not.

Proof of Delivery (POD) and Cash on Delivery (COD) v1

Each location can include a POD and/or a COD (set need_cod / need_pod as true or false). Our API returns a total_fee based on our pricing by country. Note that if you request a COD, the cod_invoice_fees (amount that needs to be collected by the driver) is required.

Pack v1

Pack is kind of package you want to delivery.

Name Type Description
dimensions * array Array [length, width, height] of pack by Centimeter.
weight * float Weight of pack by Kilogram.
quantity * integer Quantity of pack.

Responses v1

We return a list of fees for all available vehicle types.

Name Type Description
vehicle_type_id integer The ID of vehicle type (use it to create a delivery).
vehicle_type_name string The name of vehicle type (ex. Motorbike, City Car, etc).
time_type string Available in 2 types: “now” and “schedule”.
total_fees string Estimated Delivery Fee for the vehicle type.
distance_fees string The estimated fee to deliver through the locations excluding extra service and reimbursement.
cod_pod_fees string The estimated fee for COD/POD service.
cod_pod boolean Booking has COD/POD service.
company_type_discount string The company discount value.
surcharge_fees string The estimated fee for surge during the high demand.
surcharge_adjustments string The estimated fee for special adjustment.
way_point_fees string The estimated fee for additional location.
commission_discount string The commission discount to driver.
booking_extra_requirements array List of Extra Service (incl. normal and goods insurance).
currency string Currency of the amount fee (ex. Rp, Usd, etc).
total_distance float Total amount of distances, calculated in kilometers.
vehicle_type array List of Vehicle Type.
best_transit_time string The estimated transit time to the final destination.
quick_choices array List of available quick choices.
HTTP/1.1 200 OK
Content-Type: application/json
{
     "data": [
        {
            "vehicle_type_id": 27,
            "vehicle_type_name": "BMW i8",
            "time_type": "schedule",
            "total_fees": 169000.0,
            "distance_fees": 80000.0,
            "cod_pod_fees": 1000.0,
            "cod_pod": true,
            "company_type_discount": 8000.0,
            "surcharges_fees": 0,
            "surcharges_adjustments": 0,
            "way_point_fees": 0.0,
            "commission_discount": -0.0,
            "booking_extra_requirements": [
                {
                    "selected_amount": 2,
                    "extra_requirement_id": 1000,
                    "name": "Rope Rental",
                    "unit_price": 18000.0,
                    "position": null,
                    "is_insurance": false
                },
                {
                    "selected_amount": 1,
                    "extra_requirement_id": 998,
                    "name": "Goods Insurance",
                    "unit_price": 60000.0,
                    "position": null,
                    "is_insurance": true
                }
            ],
            "currency": "₫",
            "total_distance": 10.0,
            "vehicle_type": {
                "id": 27,
                "name": "BMW i8",
                "cargo_length": 200.0,
                "cargo_height": 200.0,
                "cargo_width": 200.0,
                "cargo_weight": 800.0,
                "cargo_cubic_meter": 9.0,
                "quick_choices": [
                    {
                        "id": 440,
                        "schedule_time": 40,
                        "time_type": "schedule"
                    },
                    {
                        "id": 531,
                        "schedule_time": 15,
                        "time_type": "now"
                    }
                ]
            },
            "best_transit_time": 6770,
            "eta_locations_id": 2888471
        }
    ]
}

Vehicle Type v1

Name Type Description
id integer The ID of the vehicle.
name string Name of the Vehicle.
cargo_length float Cargo length of a vehicle.
cargo_height float Cargo height of a vehicle.
cargo_width float Cargo width of a vehicle.
cargo_weight float Cargo weight of a vehicle.
cargo_cubic_meter float Cargo cubic meter of a vehicle.
quick_choices array List of available quick choices.

Quick Choice v1

Name Type Description
id integer Id of quick choice.
schedule_time datetime Schedule time in minutes.
time_type string Available in 2 types: “now” and “schedule”.

Create A Delivery

This API endpoint will be deprecated on 31 Mar 25. Please use version 10 instead.

Request v1

POST /public_api/v1/deliveries

Headers v1

Name Type Description
Authorization * string API Key
Accept-Language string User language

Required Parameter by User Type v1

BP as Non-Bp Account v1

Name Type Description
booking_payment_type * string Set value of Booking Payment Type equal to ‘cash’.
customer_id * integer Customer Id is an id of a specific account, which BP wants to create. This account must be an employee of the company.
location array Location list must contains at least 1 location with is_payer = true.

Non-BP Account v1

Name Type Description
location array Location list must contains at least 1 location with is_payer = true.

Parameters v1

Name Type Description
vehicle_type_id * integer Vehicle Type ID, provided when requesting a “Delivery Quote” (ex. 1 which is Motorbike).
customer_id integer Customer ID.
booking_payment_type string Booking Payment type is available in 2 types: credit and cash (apply for key from BP.)
note string Note of for the entire delivery. This one is different from “note per location”. (ex. Fragile Item that needs good care).
time_type * string There are 2 time_type : “now” and “schedule”. “now” is a delivery that needs to happen now. “schedule” is a delivery in the future (at least 2 hours from current time).
pickup_time datetime (ISO Time) For time_type=“now”, the pickup_time can be blank as the Delivery needs to happen now.
For time_type=“schedule”, the pickup_time needs a value.
job_order_number string Optional Job/Order number that identifies the package. Example: “Order #690”.
allow_parking_fees boolean Driver may have to pay for parking.
allow_tolls_fees boolean Driver can use tolls roads.
allow_waiting_time_fees boolean Driver may have to wait 60 min or more.
optimize_route boolean Re-order your destinations to achieve the fastest route.
send_first_to_favorite boolean Prioritizing booking to your favorite drivers first before everyone else.
locations * array List of Location (incl. pick-up and drop-off locations).
The first location in the list is the pick-up location. The following locations are drop-off locations. The route is designed based on the order of the locations you post.
Example :
  1. Location 1 = pickup
  2. Location 2 = first drop-off by the driver
  3. Location 3 = second drop-off by the driver<
  4. etc
Minimum locations required : 2 (1x pickup and 1x drop-off)
Maximum locations :
  • Up to 23 Locations for Indonesia
  • Up to 15 Locations for Thailand
  • Up to 15 Locations for Philippines
require_signatures boolean Require signatures and applies to all locations.
extra_services array List of Extra Service (incl. normal and goods insurance).
quick_choice boolean Allow to use quick choice for time type now. It will be the pickup time for a booking.
quick_choice_id integer id of quick choice.
$ curl -X POST /public_api/v1/deliveries \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
   --header "Accept-Language:en" \
   --data '{
              "vehicle_type_id": 1,
              "note": "Fragile item that needs good care.",
              "time_type": "now",
              "quick_choice": true,
              "quick_choice_id": 186,
              "job_order_number": "66666",
              "locations": [
                {
                  "address": "Jl. Sultan Iskandar Muda No.21, Arteri Pondok Indah, Pd. Pinang, Kby. Lama, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta, Indonesia",
                  "latitude": -6.2608232,
                  "longitude": 106.7884168,
                  "recipient_name": "Duke",
                  "recipient_phone": "+84903398399",
                  "note": "Second floor, room 609"
                },
                {
                  "address": "Gedung Inti Sentra, Jl. Taman Kemang, RT.14/RW.1, Bangka, Mampang Prpt., Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta, Indonesia",
                  "latitude": -6.2608232,
                  "longitude": 106.7884168,
                  "recipient_name": "Nam",
                  "recipient_phone": "+84903856534",
                  "note": "First floor, right room.",
                  "need_cod": true,
                  "cod_note": "You need to get money from Nam",
                  "cod_invoice_fees": 5000,
                  "need_pod":true,
                  "pod_note": "You need to ..."
                },
                {
                  "address": "Lavenue Apartemen, Jl. Ps. Minggu Raya, RT.7/RW.2, Pancoran, South Jakarta City, Jakarta, Indonesia",
                  "latitude": -6.248446679393533,
                  "longitude": 106.84431951392108,
                  "recipient_name": "Duke",
                  "recipient_phone": "+84903856534",
                  "note": "Office tower, 19th floor"
                }
              ],
              "require_signatures": true,
              "extra_services": [
                {
                  "extra_requirement_id": 140,
                  "selected_amount": 1
                },
                {
                  "extra_requirement_id": 416,
                  "selected_amount": 1,
                  "extra_requirement_pricing_id": 2146
                }
              ]
            }'

Location v1

A location is an object representing a location of delivery

Name Type Description
address * string Address of the location.
latitude float Latitude component of the location.
longitude float Longitude component of the location.
recipient_name * string Name of a personal recipient at the location (our driver needs to contact person at the location, ex. Thomas Eichenberger).
recipient_phone * string Phone number of a personal recipient at the location (our driver needs to call that person when arriving).
is_payer boolean The recipient is payer or not
note string Additional instructions for the driver at the location. Each location has a particular note (ex. Pickup Location: Building G2, 18th floor. Drop-off location: Ground Floor, please ring).
status string Delivery status.
failed_delivery_reason string Reason for failed delivery (If Delivery status is Failed).
need_cod boolean The location need COD or not.
cod_note string COD note.
cod_invoice_fees float The COD amount that needs to be collected by the driver at that location. Is required if need_cod is true.
need_pod boolean The location need POD or not.
pod_note string POD note.
position_trackings array List of Position Tracking.
proof_of_delivery_photos array List of Proof of delivery photos and documents.
signature_url string The Signature Url.
tracking_sharing string The location tracking url.

Responses v1

Name Type Description
id integer ID of delivery.
customer_id integer ID of customer.
driver_id integer ID of driver.
vehicle_type_id integer ID of vehicle type.
company_id integer ID of company (if the delivery is from a Business).
time_type string Time type of delivery (“now” or “schedule”).
status string Status of delivery.
note text Note of entire delivery (not the note per location).
total_fees float Amount Fee.
currency string Currency of Delivery (ex. Rp, Usd, etc).
tracking_url string URL to view status of delivery. That URL can be opened in a browser to follow the driver real-time and see the ETA to locations).
job_order_number string Order Number.
created_at datetime Time of Creation of the delivery (ISO Time).
eta_from_driver_to_pickup integer ETA in seconds from current driver location to pickup location.
distance_from_driver_to_pickup float Distance between driver and pickup location (Unit: Kilometer).
pickup_time string Timestamp when user confirm via SMS. (ISOTime).
completed_at string Timestamp when driver complete booking. (ISOTime).
driver object Driver Information. In case the booking is on process, this field will be null.
vehicle object Vehicle Information, include “plate_number” as String.
locations array List of Location (incl. pick-up and drop-off locations).
HTTP/1.1 201 Created
Content-Type: application/json
{
    "id": 100,
    "customer_id": 22,
    "driver_id": 403,
    "vehicle_type_id": 1,
    "company_id": 33,
    "time_type": "now",
    "status": "delivery_in_progress",
    "note": "Just a note",
    "total_fees": 500,
    "currency": "Rp",
    "tracking_url": "https://webapp.deliveree.com/...",
    "job_order_number": "66666",
    "created_at": "2016-01-29T01:35:08Z",
    "eta_from_driver_to_pickup": 1800,
    "distance_from_driver_to_pickup": 10.5,
    "pickup_time": "2021-07-01T18:38:17+07:00",
    "completed_at": null,
    "driver": null,
    "vehicle": {
      "vehicle_attributes": {
        "plate_number": null
      }
    },
    "locations": [
      {
        "id": 707438,
        "name": "Jl. Sultan Iskandar Muda No.21, Arteri Pondok Indah, Pd. Pinang, Kby. Lama, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta, Indonesia",
        "driver_note": null,
        "note": "Second floor, room 609",
        "recipient_name": "Duke",
        "status": "",
        "failed_delivery_reason": "", 
        "position_trackings": [],
        "proof_of_delivery_photos": [],
        "signature_url": null
      },
      {
        "id": 707439,
        "name": "Gedung Inti Sentra, Jl. Taman Kemang, RT.14/RW.1, Bangka, Mampang Prpt., Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta, Indonesia",
        "driver_note": null,
        "note": "First floor, right room.",
        "recipient_name": "Duke",
        "status": "",
        "failed_delivery_reason": "",
        "position_trackings": [],
        "proof_of_delivery_photos": [],
        "signature_url": null
      },
      {
        "id": 707440,
        "name": "Lavenue Apartemen, Jl. Ps. Minggu Raya, RT.7/RW.2, Pancoran, South Jakarta City, Jakarta, Indonesia",
        "driver_note": null,
        "note": "Office tower, 19th floor",
        "recipient_name": "Duke",
        "status": "",
        "failed_delivery_reason": "",
        "position_trackings": [],
        "proof_of_delivery_photos": [],
        "signature_url": null
      }
    ],
    "require_signatures": true,
    "booking_extra_requirements": [
      {
        "selected_amount": 1,
        "extra_requirement_id": 140,
        "name": "Extra Helper",
        "unit_price": 50000,
        "display_level_price": null,
        "display_fees": "Free",
        "display_fees_without_currency": "Free",
        "position": 1,
        "is_insurance": false
      },
      {
        "selected_amount": 1,
        "extra_requirement_id": 416,
        "name": "Goods Insurance",
        "unit_price": 0.0,
        "display_level_price": "Rp 1.000.000.000",
        "display_fees": "Free",
        "display_fees_without_currency": "Free",
        "position": 1,
        "is_insurance": true
      }
    ]
}

Exceed Request Limitation v1

We highly recommend you to use your longitude and latitude API services. In case, if you’re using the Geo Coordinates service from Deliveree, please note it is limited. You will see an error message if it reaches the query limit.

Odd/Even Booking ID v1

Bookings created on Sandbox with an odd-numbered booking ID will automatically be completed; while bookings with an even-numbered ID has to manually be completed by using the “Test My Booking” tab in the Sandbox API Dashboard.

For Example:

Get Delivery Details

You can check the delivery status at any time, but we highly recommend using webhooks if you can implement them for real-time updates.

This API endpoint will be deprecated on 31 Mar 25. Please use version 10 instead.

Request v1

$ curl -X GET /public_api/v1/deliveries/1 \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
   --header "Accept-Language:en"
GET /public_api/v1/deliveries/{id}

Headers v1

Name Type Description
Authorization * string API Key
Accept-Language string User language

Parameters v1

Name Type Description
id * integer ID of Delivery.

Responses v1

Name Type Description
id integer ID of delivery.
customer_id integer ID of customer.
customer_name string Name of customer.
driver_id integer ID of driver.
driver array Information of Driver.
vehicle_type_id integer ID of vehicle type.
company_id integer ID of company (if the delivery is from a Business).
time_type string Time type of delivery (“now” or “schedule”).
status string Status of delivery.
need_confirmation string Booking has confirmed reimbursement yet.
note text Note of entire delivery (not the note per location).
total_fees float Amount Fee.
currency string Currency of Delivery (ex. Rp, Usd, etc).
tracking_url string URL to view status of delivery. That URL can be opened in a browser to follow the driver real-time and see the ETA to locations).
job_order_number string Order Number.
eta_from_driver_to_pickup integer ETA in seconds from current driver location to pickup location.
distance_from_driver_to_pickup float Distance between driver and pickup location (Unit: Kilometer).
original_estimate_values float Original estimated time to final destination.
current_estimate_values float Current estimated time to final destination.
current_estimate_status float Current estimated status to final destination.
pickup_time string Timestamp when user confirm via SMS (ISOTime).
completed_at string Timestamp when driver complete booking (ISOTime).
created_at datetime Time of Creation of the delivery (ISO Time).
locations * array List of Location (incl. pick-up and drop-off locations).
The first location in the list is the pick-up location. The following locations are drop-off locations. The route is designed based on the order of the locations you post.
Example :
  1. Location 1 = pickup
  2. Location 2 = first drop-off by the driver
  3. Location 3 = second drop-off by the driver<
  4. etc
Minimum locations required : 2 (1x pickup and 1x drop-off)
Maximum locations :
  • Up to 23 Locations for Indonesia
  • Up to 15 Locations for Thailand
  • Up to 15 Locations for Philippines

Driver v1

Name Type Description
id integer ID of driver.
name string Name of customer.
phone string Number phone of driver.
driver_image_url string Link avatar of driver.
last_known_position_lat float Last latitude position of driver.
last_known_position_lng float Last longitude position of driver.

Position Tracking v1

Name Type Description
id integer ID of position tracking.
latitude float Position latitude driver tracked.
longitude float Position longitude driver tracked.
tracked_at datetime Position driver tracked.
tracking_type string List of type driver tracked
Tracking type include types [“location_stuffing”, “location_have_arrived”, “location_accept_delivery”, “location_inside_radius”, “location_outside_radius” ]
Explain :
  • “location_stuffing”: Driver go to location and click button “start stuffing”
  • “location_have_arrived”: Driver go to location and click button “i have arrived”
  • “location_accept_delivery”: Driver go to location and click button “accept delivery”
  • “location_inside_radius”: Driver go to inside radius of location
  • “location_outside_radius”: Driver go to outside radius of location

Proof of Delivery Photos and Documents v1

Name Type Description
photo_type string Type of photo.
photo_name string Name of photo.
image_url string URL of photo.
image_content_type string Photo content type.
HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 100,
    "customer_id": 22,
    "driver_id": 403,
    "driver": {
        "id": 403,
        "name": "Duke the driver",
        "phone": "+84903398399",
        "driver_image_url": "https://webapp.deliveree.com/...",
        "last_known_position_lat": 10.767930,
        "last_known_position_lng": 106.696440
    },
    "vehicle_type_id": 1,
    "company_id": 33,
    "time_type": "now",
    "status": "delivery_in_progress",
    "note": "Just a note",
    "total_fees": 500,
    "currency": "Rp",
    "tracking_url": "https://webapp.deliveree.com/...",
    "job_order_number": "66666",
    "eta_from_driver_to_pickup": 60,
    "distance_from_driver_to_pickup": 1.2,
    "created_at": "2016-01-29T01:35:08Z",
    "pickup_time": "2016-02-01T01:36:08Z",
    "completed_at": null,
    "vehicle": {
        "vehicle_attributes": {
            "plate_number": "SPIL Blue 40ft - 000.01"
        }
    },
    "locations": [
        {
            "address": "Jl. Sultan Iskandar Muda No.21, Arteri Pondok Indah, Pd. Pinang, Kby. Lama, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta, Indonesia",
            "latitude": -6.2608232,
            "longitude": 106.7884168,
            "recipient_name": "Duke",
            "recipient_phone": "+84903398399",
            "note": "Second floor, room 609",
            "status": "",
            "failed_delivery_reason": "",
            "position_trackings": [
                {
                    "id": 1,
                    "latitude": -6.272444,
                    "longitude": 106.805534,
                    "tracked_at": "2016-01-29T03:35:08Z",
                    "tracking_type": "location_have_arrived"
                },
                {
                    "id": 2,
                    "latitude": -6.272444,
                    "longitude": 106.805534,
                    "tracked_at": "2016-01-29T03:55:08Z",
                    "tracking_type": "location_accept_delivery"
                }
            ],
            "proof_of_delivery_photos": [
                {
                    "photo_type": "proof_of_delivery",
                    "photo_name": "Proof of delivery",
                    "image_url": "https://webapp.deliveree.com/...",
                    "image_content_type": "image/png"
                },
                {
                    "photo_type": "proof_of_delivery",
                    "photo_name": "Proof of delivery",
                    "image_url": "https://webapp.deliveree.com/...",
                    "image_content_type": "image/png"
                }
            ],
            "signature_url": "https://webapp.deliveree.com/...",
            "tracking_sharing": "https://webapp.deliveree.com/..."
        },
        {
            "address": "Gedung Inti Sentra, Jl. Taman Kemang, RT.14/RW.1, Bangka, Mampang Prpt., Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta, Indonesia",
            "latitude": -6.2608232,
            "longitude": 106.7884168,
            "recipient_name": "Nam",
            "recipient_phone": "+84903856534",
            "note": "First floor, right room.",
            "status": "Failed",
            "failed_delivery_reason": "Recipient rejected",
            "need_cod": true,
            "cod_note": "You need to get money from Nam",
            "cod_invoice_fees": 5000,
            "need_pod":true,
            "pod_note": "You need to ...",
            "position_trackings": [
                {
                    "id": 3,
                    "latitude": -1.003189,
                    "longitude": 101.972332,
                    "tracked_at": "2016-01-29T05:35:08Z",
                    "tracking_type": "location_have_arrived"
                },
                {
                    "id": 4,
                    "latitude": -1.003189,
                    "longitude": 101.972332,
                    "tracked_at": "2016-01-29T05:55:08Z",
                    "tracking_type": "location_accept_delivery"
                }
            ],
            "proof_of_delivery_photos": [
                {
                    "photo_type": "proof_of_delivery",
                    "photo_name": "Proof of delivery",
                    "image_url": "https://webapp.deliveree.com/...",
                    "image_content_type": "image/png"
                },
                {
                    "photo_type": "proof_of_delivery",
                    "photo_name": "Proof of delivery",
                    "image_url": "https://webapp.deliveree.com/...",
                    "image_content_type": "image/png"
                }
            ],
            "signature_url": "https://webapp.deliveree.com/...",
            "tracking_sharing": "https://webapp.deliveree.com/..."
        },
        {
            "address": "Lavenue Apartemen, Jl. Ps. Minggu Raya, RT.7/RW.2, Pancoran, South Jakarta City, Jakarta, Indonesia",
            "latitude": -6.248446679393533,
            "longitude": 106.84431951392108,
            "recipient_name": "Duke",
            "recipient_phone": "+84903856534",
            "note": "Office tower, 19th floor",
            "status": "",
            "failed_delivery_reason": "",
            "position_trackings": [
                {
                    "id": 3,
                    "latitude": -1.003189,
                    "longitude": 101.972332,
                    "tracked_at": "2016-01-29T05:35:08Z",
                    "tracking_type": "location_have_arrived"
                },
                {
                    "id": 4,
                    "latitude": -1.003189,
                    "longitude": 101.972332,
                    "tracked_at": "2016-01-29T05:55:08Z",
                    "tracking_type": "location_accept_delivery"
                }
            ],
            "proof_of_delivery_photos": [
                {
                    "photo_type": "proof_of_delivery",
                    "photo_name": "Proof of delivery",
                    "image_url": "https://webapp.deliveree.com/...",
                    "image_content_type": "image/png"
                },
                {
                    "photo_type": "proof_of_delivery",
                    "photo_name": "Proof of delivery",
                    "image_url": "https://webapp.deliveree.com/...",
                    "image_content_type": "image/png"
                }
            ],
            "signature_url": "https://webapp.deliveree.com/...",
            "tracking_sharing": "https://webapp.deliveree.com/..."
        }
    ],
    "require_signatures": true,
    "booking_extra_requirements": [
        {
            "selected_amount": 1,
            "extra_requirement_id": 140,
            "name": "Extra Helper",
            "unit_price": 50000,
            "display_level_price": null,
            "display_fees": "Free",
            "display_fees_without_currency": "Free",
            "position": 1,
            "is_insurance": false
        },
        {
            "selected_amount": 1,
            "extra_requirement_id": 416,
            "name": "Goods Insurance",
            "unit_price": 0.0,
            "display_level_price": "Rp 1.000.000.000",
            "display_fees": "Free",
            "display_fees_without_currency": "Free",
            "position": 1,
            "is_insurance": true
        }
    ]
}

Cancel A Delivery

A Delivery can be cancelled without fee before it has been accepted by a driver or within the 5 first minutes if the driver has not yet picked up the package.

This API endpoint will be deprecated on 31 Mar 25. Please use version 10 instead.

Request v1

$ curl -X POST /public_api/v1/deliveries/1/cancel \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
   --header "Accept-Language:en"
POST /public_api/v1/deliveries/{id}/cancel

Headers v1

Name Type Description
Authorization * string API Key
Accept-Language string User language

Parameters v1

Name Type Description
id * integer ID of Delivery.

Responses v1

We don’t return content for this API, please check the HTTP STATUS to know the result.

Get Deliveries List

List of all deliveries of a customer.

This API endpoint will be deprecated on 31 Mar 25. Please use version 10 instead.

Request v1

$ curl -X GET /public_api/v1/deliveries \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
   --header "Accept-Language:en" \
GET /public_api/v1/deliveries/

Headers v1

Name Type Description
Authorization * string API Key
Accept-Language string User language

Parameters v1

$ curl -X GET /public_api/v1/deliveries?per_page=30&page=1&to_date=12%2F12%2F2021&sort_by=customer_name&order_by=desc&search=BMW+i8&status=canceled \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
   --header "Accept-Language:en" \
Name Type Description
page integer Define the number of pages or offsets.
per_page integer Set up the number of items displayed per page.
from_date datetime Bookings with pickup time less than this parameter will be filtered (format: dd/mm/yyyy).
to_date datetime Bookings with pickup time greater than this parameter will be filtered (format: dd/mm/yyyy).
status string To display booking status.
search string Text search to find customer name, vehicle type and booking id.
sort_by string Sort by id, time type, vehicle type, pickup time and customer name.
order_by string Order by ascending and (default) descending.

Responses v1

Name Type Description
pagination.total_count integer Total number of results.
pagination.per_page integer Number of result in current page.
pagination.next_page string URL for the next page.
pagination.previous_page string URL for the previous page.
data array List of Delivery object.
HTTP/1.1 200 OK
Content-Type: application/json

{
    "pagination": {
        "total_count": 500,
        "per_page": 25,
        "next_page": "https://api.deliveree.com/public_api/{version}/...",
        "previous_page": "https://api.deliveree.com/public_api/{version}/..."
    },
    "data": [
        {
          "id": 263979,
          "customer_id": 5348,
          "driver_id": 403,
          "vehicle_type_id": 1,
          "company_id": 569,
          "time_type": "now",
          "status": "delivery_in_progress",
          "note": "Fragile item that needs good care.",
          "total_fees": 400,
          "currency": "฿",
          "tracking_url": "http://localhost:3000/SqCkEVNiUbfLFey97",
          "job_order_number": "66666",
          "eta_from_driver_to_pickup": null,
          "distance_from_driver_to_pickup": null,
          "created_at": "2021-07-01T18:37:16+07:00",
          "pickup_time": null,
          "completed_at": null,
          "driver": null,
          "vehicle": {
            "vehicle_attributes": {
              "plate_number": null
            }
          },
          "locations": [
            {
              "id": 707398,
              "name": "buu dien thanh pho ho chi minh",
              "driver_note": null,
              "note": "Second floor, room 609",
              "recipient_name": "Duke",
              "position_trackings": [],
              "proof_of_delivery_photos": [],
              "signature_url": null
            },
            {
              "id": 707399,
              "name": "buu dien thanh pho ho chi minh",
              "driver_note": null,
              "note": "Second floor, room 609",
              "recipient_name": "Duke",
              "position_trackings": [],
              "proof_of_delivery_photos": [],
              "signature_url": null
            }
          ],
          "require_signatures": true,
          "booking_extra_requirements": [
            {
              "selected_amount": 1,
              "extra_requirement_id": 140,
              "name": "Extra Helper",
              "unit_price": 50000,
              "display_level_price": null,
              "display_fees": "Free",
              "display_fees_without_currency": "Free",
              "position": 1,
              "is_insurance": false
            },
            {
                "selected_amount": 1,
                "extra_requirement_id": 416,
                "name": "Goods Insurance",
                "unit_price": 0.0,
                "display_level_price": "Rp 1.000.000.000",
                "display_fees": "Free",
                "display_fees_without_currency": "Free",
                "position": 1,
                "is_insurance": true
            }
          ]
        },
    ...
    ]
}

Delivery v1

A delivery is an object representing a delivery.

Name Type Description
id integer ID of delivery.
customer_id integer ID of customer.
driver_id integer ID of driver.
vehicle_type_id integer ID of vehicle type.
company_id integer ID of company (if the delivery is from a Business).
time_type string Time type of delivery (“now” or “schedule”).
status string Status of delivery.
note text Note of the entire delivery (not the note per location).
total_fees float Amount Fee.
currency string Currency of Delivery (ex. Rp, Usd, etc).
tracking_url string URL to view status of delivery. That URL can be opened in a browser to follow the driver real-time and see the ETA to locations.
job_order_number string Order Number.
created_at datetime Time of Creation of the delivery (ISO Time).
eta_from_driver_to_pickup integer ETA in seconds from current driver location to pickup location.
distance_from_driver_to_pickup float Distance between driver and pickup location (Unit: Kilometer).
pickup_time string Timestamp when user confirm via SMS (ISOTime).
completed_at string Timestamp when driver complete booking (ISOTime).
driver object Driver Information. In case the booking is on process, this field will be null.
vehicle object Vehicle Information, include “plate_number” as String.
locations array List of Location (incl. pick-up and drop-off locations).

Get Vehicle Types

We return a list vehicle types of a specific area.

This API endpoint will be deprecated on 31 Mar 25. Please use version 10 instead.

Request v1

$ curl -X GET /public_api/v1/vehicle_types \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
GET /public_api/v1/vehicle_types

Headers v1

Name Type Description
Authorization * string API Key

Parameters v1

No need parameters.

Responses v1

Name Type Description
ID integer ID of vehicle type.
name string Name of vehicle type.
cargo_length float Cargo length of vehicle type (cm).
cargo_height float Cargo height of vehicle type (cm).
cargo_width float Cargo width of vehicle type (cm).
cargo_weight float Cargo weight of vehicle type (kg).
cargo_cubic_meter float Cargo cubic meter of vehicle type (m3).
minimum_pickup_time_schedule datetime Minimum pickup time with type schedule.
minimum_pickup_time_fullday datetime Minimum pickup time with type full-day.
minimum_pickup_time_fpr datetime Minimum pickup time with type fpr.
minimum_pickup_time_fpr datetime Minimum pickup time with type fpr.
quick_choices array List of quick choices.
HTTP/1.1 200 OK
Content-Type: application/json

{
    "data": [
        {
            "id": 27,
            "name": "Closed Van",
            "cargo_length": 200,
            "cargo_height": 175,
            "cargo_width": 180,
            "cargo_weight": 1700,
            "cargo_cubic_meter": 7,
            "minimum_pickup_time_now": "2021-09-24T10:44:06.664+07:00",
            "minimum_pickup_time_schedule": "2021-09-24T11:44:06.664+07:00",
            "minimum_pickup_time_fullday": "2021-09-24T11:44:06.664+07:00",
            "minimum_pickup_time_fpr": "2021-09-25T09:44:06.664+07:00",
            "quick_choices": [
                {
                    "id": 318,
                    "schedule_time": 15,
                    "time_type": "now"
                },
                {
                    "id": 319,
                    "schedule_time": 30,
                    "time_type": "now"
                },
                {
                    "id": 320,
                    "schedule_time": 45,
                    "time_type": "schedule"
                }
            ]
        },
        {
            "id": 82,
            "name": "L300",
            "cargo_length": 210,
            "cargo_height": 125,
            "cargo_width": 125,
            "cargo_weight": 1000,
            "cargo_cubic_meter": 3.3,
            "minimum_pickup_time_schedule": "2021-09-24T10:44:06.684+07:00",
            "minimum_pickup_time_fullday": "2021-09-24T10:44:06.684+07:00",
            "minimum_pickup_time_fpr": "2021-09-25T09:44:06.684+07:00"
        }
    ]
}

Get Extra Services

We return a list of extra services of a specific vehicle type.

This API endpoint will be deprecated on 31 Mar 25. Please use version 10 instead.

Request v1

$ curl -X GET /public_api/v1/vehicle_types/21/extra_services \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
GET /public_api/v1/vehicle_types/{vehicle_type_id}/extra_services

Headers v1

Name Type Description
Authorization * string API Key

Parameters v1

Name Type Description
dropoff_count integer Number of drop off.
time_type string Time type of delivery (“now” or “schedule”).

Responses v1

Name Type Description
id integer Id of extra service.
amount integer Amount of extra service.
unit_price float Unit price of extra service.
name string Name of extra service.
position integer Position of extra service.
pricings array List of Extra Service Pricing (This is used only for goods insurance).
pricing_method string Pricing method of extra service(“normal” or “by_options”).
  • “by_options”: pricing method for goods insurance.
  • “normal”: pricing method for normal extra services.
HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": [
    {
        "id": 140,
        "amount": 1,
        "unit_price": 50000,
        "name": "Extra Helper",
        "position": 1,
        "pricing_method": "normal"
    },
    {
        "id": 416,
        "amount": 0,
        "unit_price": 0.0,
        "name": "Goods Insurance",
        "position": 2,
        "pricings": [
            {
                "id": 2146,
                "fees": 0.0,
                "position": 1,
                "level_price": 1000000000.0,
                "display_level_price": "Rp 1 billion",
                "display_fees": "Free",
                "display_fees_without_currency": "Free"
            }
        ],
        "pricing_method": "by_options"
    }
  ]
}

Extra Service Pricing v1

Name Type Description
id integer Id of goods insurance pricing.
fees float Fee of goods insurance pricing.
position integer Position of goods insurance pricing.
level_price float Level price of goods insurance pricing.
display_level_price string Display text for level price of goods insurance pricing.
display_fees string Display text for fees of goods insurance pricing.
display_fees_without_currency string Display text for fees without currency of goods insurance pricing.

Get User Profile

Get current user profile.

This API endpoint will be deprecated on 31 Mar 25. Please use version 10 instead.

Request v1

$ curl -X POST /public_api/v1/customers/user_profile \
   --header "Content-Type:application/json" \
   --header "Authorization: YOUR_API_KEY" \
   --header "Accept-Language:en"
POST /public_api/v1/customers/user_profile

Headers v1

Name Type Description
Authorization * string API Key
Accept-Language string User language

Responses v1

Name Type Description
name string Name of company or customer.
user_type string Check bp_account and non_bp_account.
country_code string User country code.
time_zone string User time zone.
currency string Currency (ex. Rp, Usd, etc).
fleet_price_url string Fleet price URL.
allow_post_payment string Allow post payment.
HTTP/1.1 200 OK
Content-Type: application/json

{
    "name": "Company Name",
    "user_type": "bp_account",
    "country_code": "ID",
    "time_zone": "Bangkok",
    "currency": "Rp",
    "fleet_price_url": "https://www.deliveree.com/id/en/whole-vehicle-fleet-prices/",
    "allow_post_payment": true
}

API Endpoints v10

Get A Delivery Quote

The first step in using the Deliveree API is to obtain a delivery quote. This helps you assess the cost and availability of our services, which may vary depending on factors such as distance and vehicle type.

Request

POST /public_api/v10/deliveries/get_quote

Headers

Name Type Description
Authorization * string API Key
Accept-Language string User language

Parameters

Name Type Description
time_type * string There are 2 time_type : “now” and “schedule”. “now” is a delivery that needs to happen now. “schedule” is a delivery in the future (at least 2 hours from current time).
pickup_time string For time_type=“now”, the pickup_time can be blank as the Delivery needs to happen now.
For time_type=“schedule”, the pickup_time needs a value.
vehicle_type_id integer Optional specific Vehicle Type ID.
The return quotes will only for vehicle type you provide.
Use this when you know exactly what vehicle type you need.
packs array List of Pack
Include dimensions(length, width, height), weight, quantity.
locations * array List of Short Location (incl. pick-up and drop-off locations).
The first location in the list is the pick-up location. The following locations are drop-off locations. The route is designed based on the order of the locations you post.
Example :
  1. Location 1 = pickup
  2. Location 2 = first drop-off by the driver
  3. Location 3 = second drop-off by the driver<
  4. etc
Minimum locations required : 2 (1x pickup and 1x drop-off)
Maximum locations :
  • Up to 23 Locations for Indonesia
  • Up to 15 Locations for Thailand
  • Up to 15 Locations for Philippines
extra_services array List of Extra Service (incl. normal and goods insurance).
$ curl -X POST /public_api/v10/deliveries/get_quote \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
   --header "Accept-Language:en" \
   --data '{
              "time_type": "now",
              "vehicle_type_id":21,
              "packs": [
                {
                  "dimensions": [1,2,3],
                  "weight": 100,
                  "quantity": 2
                },
                {
                  "dimensions": [2,2,5],
                  "weight": 20,
                  "quantity": 1
                }
              ],
              "locations": [
                {
                  "address": "Jl. Sultan Iskandar Muda No.21, Arteri Pondok Indah, Pd. Pinang, Kby. Lama, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta, Indonesia",
                  "latitude": -6.2608232,
                  "longitude": 106.7884168
                },
                {
                  "address": "Gedung Inti Sentra, Jl. Taman Kemang, RT.14/RW.1, Bangka, Mampang Prpt., Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta, Indonesia",
                  "latitude": -6.2608232,
                  "longitude": 106.7884168,
                  "need_cod": true,
                  "cod_invoice_fees": 5000,
                  "need_pod":true
                },
                {
                  "address": "Lavenue Apartemen, Jl. Ps. Minggu Raya, RT.7/RW.2, Pancoran, South Jakarta City, Jakarta, Indonesia",
                  "latitude": -6.248446679393533,
                  "longitude": 106.84431951392108,
                  "recipient_name": "Duke",
                  "recipient_phone": "+84903856534",
                  "note": "Office tower, 19th floor"
                }
              ],
              "extra_services": [
                {
                  "extra_requirement_id": 140,
                  "selected_amount": 1
                },
                {
                  "extra_requirement_id": 416,
                  "selected_amount": 1,
                  "extra_requirement_pricing_id": 2146
                }
              ]
            }'

Extra Service

An extra requirement (or service) is an object representing an extra requirement or service of delivery

Name Type Description
extra_requirement_id * integer Extra service Id.
selected_amount integer Selected amount of extra service.
extra_requirement_pricing_id integer Extra service pricing id of goods insurance.

Short Location

A location is an object representing a location. We highly recommend using latitude and longitude address for location accuracy.

Name Type Description
address * string Address of the location.
latitude float Latitude component of the location.
longitude float Longitude component of the location.
need_cod boolean The location need COD or not.
cod_invoice_fees float The COD amount that needs to be collected by the driver at that location. Is required if need_cod is true.
need_pod boolean The location need POD or not.

Proof of Delivery (POD) and Cash on Delivery (COD)

Each location can include a POD and/or a COD (set need_cod / need_pod as true or false). Our API returns a total_fee based on our pricing by country. Note that if you request a COD, the cod_invoice_fees (amount that needs to be collected by the driver) is required.

Pack

Pack is kind of package you want to delivery.

Name Type Description
dimensions * array Array [length, width, height] of pack by Centimeter.
weight * float Weight of pack by Kilogram.
quantity * integer Quantity of pack.

Responses

We return a list of fees for all available vehicle types.

Name Type Description
vehicle_type_id integer The ID of vehicle type (use it to create a delivery).
time_type string Available in 2 types: “now” and “schedule”.
total_fees float Estimated Delivery Fee for the vehicle type.
currency string Currency of the amount fee (ex. Rp, Usd, etc).
total_distance float Total amount of distances, calculated in kilometers.
distance_fees float The estimated fee to deliver through the locations excluding extra service and reimbursement.
way_points_fees float The estimated fee for additional location.
cod_pod_fees float The estimated fee for COD/POD service.
extra_fees float The estimated fee for additional extra services.
surcharges_fees float The estimated fee for surge during the high demand.
surcharges_adjustments_fees float The estimated fee for special adjustment.
HTTP/1.1 201 Created
Content-Type: application/json
[
    {
        "vehicle_type_id": 21,
        "time_type": "now",
        "total_fees": 200000.0,
        "currency": "Rp",
        "total_distance": 9,
        "distance_fees": 140000,
        "way_point_fees": 5000,
        "cod_pod_fees": 5000,
        "extra_fees": 50000,
        "surcharges_fees": 0,
        "surcharges_adjustments_fees": 0
    }
]

Create A Delivery

Request

POST /public_api/v10/deliveries

Headers

Name Type Description
Authorization * string API Key
Accept-Language string User language

Required Parameter by User Type

BP as Non-Bp Account

Name Type Description
booking_payment_type * string Set value of Booking Payment Type equal to ‘cash’.
customer_id * integer Customer Id is an id of a specific account, which BP wants to create. This account must be an employee of the company.
locations array Location list must contains at least 1 location with is_payer = true.

Non-BP Account

Name Type Description
locations array Location list must contains at least 1 location with is_payer = true.

Parameters

Name Type Description
vehicle_type_id * integer Vehicle Type ID, provided when requesting a “Delivery Quote” (ex. 1 which is Motorbike).
customer_id integer Customer ID.
booking_payment_type string Booking Payment type is available in 2 types: credit and cash (apply for key from BP.)
note string Note of for the entire delivery. This one is different from “note per location”. (ex. Fragile Item that needs good care).
time_type * string There are 2 time_type : “now” and “schedule”. “now” is a delivery that needs to happen now. “schedule” is a delivery in the future (at least 2 hours from current time).
pickup_time string For time_type=“now”, the pickup_time can be blank as the Delivery needs to happen now.
For time_type=“schedule”, the pickup_time needs a value (ISO Time).
job_order_number string Optional Job/Order number that identifies the package. Example: “Order #690”.
allow_parking_fees boolean Driver may have to pay for parking.
allow_tolls_fees boolean Driver can use tolls roads.
allow_waiting_time_fees boolean Driver may have to wait 60 min or more.
optimize_route boolean Re-order your destinations to achieve the fastest route.
send_first_to_favorite boolean Prioritizing booking to your favorite drivers first before everyone else.
marked_as_favorite boolean Mark this booking as favorite.
locations * array List of Location (incl. pick-up and drop-off locations).
The first location in the list is the pick-up location. The following locations are drop-off locations. The route is designed based on the order of the locations you post.
Example :
  1. Location 1 = pickup
  2. Location 2 = first drop-off by the driver
  3. Location 3 = second drop-off by the driver<
  4. etc
Minimum locations required : 2 (1x pickup and 1x drop-off)
Maximum locations :
  • Up to 23 Locations for Indonesia
  • Up to 15 Locations for Thailand
  • Up to 15 Locations for Philippines
require_signatures boolean Require signatures and applies to all locations.
extra_services array List of Extra Service (incl. normal and goods insurance).
estimate_transit_times_attributes object Information of Estimate Transit Time.
discount_code string Discount code.
booking_location_tracking_attributes object Information of Location Tracking.
$ curl 'https://api.sandbox.deliveree.com/public_api/v10/deliveries' \
--header 'Authorization:YOUR_API_KEY' \
--header 'Content-Type:application/json' \
--header "Accept-Language:en" \
--data '{
    "vehicle_type_id": 21,
    "booking_payment_type": "credit",
    "note": "Please be careful!",
    "time_type": "schedule",
    "pickup_time": "2024-08-13T16:30:32+07:00",
    "job_order_number": "sb-668e35617d13f9eddcf101f1",
    "allow_parking_fees": true,
    "allow_tolls_fees": true,
    "allow_waiting_time_fees": true,
    "send_first_to_driver": false,
    "marked_as_favorite": true,
    "locations": [
        {
            "address": "Jl. Tugu Monas No.1, Gambir, Kecamatan Gambir, Kota Jakarta Pusat, Daerah Khusus Ibukota Jakarta 10110, Indonesia",
            "latitude": -6.17537,
            "longitude": 106.82711,
            "recipient_name": "Erna",
            "recipient_phone": "+629046487946",
            "note": "First location",
            "is_payer": false
        },
        {
            "address": "Jl. Senen Raya No. 66, Pasar Baru, Sawah Besar, Kota Jakarta Pusat, DKI Jakarta, Indonesia, 10710",
            "latitude": -6.171188608007963,
            "longitude": 106.83708972121016,
            "recipient_name": "LJ",
            "recipient_phone": "+629046487946",
            "note": "Second location",
            "need_cod": false,
            "cod_note": "Collect the money",
            "cod_invoice_fees": 100,
            "need_pod": false,
            "pod_note": "",
            "is_payer": true
        }
    ],
    "require_signatures": true,
    "extra_services": [
        {
            "extra_requirement_id": 140,
            "selected_amount": 1
        },
        {
            "extra_requirement_id": 416,
            "selected_amount": 1,
            "extra_requirement_pricing_id": 2146
        }
    ],
    "estimate_transit_times_attributes": [],
    "discount_code": "khoa123",
    "booking_location_tracking_attributes": null
}'

Location

A location is an object representing a location of delivery

Name Type Description
address * string Address of the location.
latitude float Latitude component of the location.
longitude float Longitude component of the location.
recipient_name * string Name of a personal recipient at the location (our driver needs to contact person at the location, ex. Thomas Eichenberger).
recipient_phone * string Phone number of a personal recipient at the location (our driver needs to call that person when arriving).
is_payer boolean The recipient is payer or not
note string Additional instructions for the driver at the location. Each location has a particular note (ex. Pickup Location: Building G2, 18th floor. Drop-off location: Ground Floor, please ring).
need_cod boolean The location need COD or not.
cod_note string COD note.
cod_invoice_fees float The COD amount that needs to be collected by the driver at that location. Is required if need_cod is true.
need_pod boolean The location need POD or not.
pod_note string POD note.

Estimate Transit Time

An estimated transit time represents the estimated time that the delivery takes.

Name Type Description
eta * string Estimate transit time (ISO Time).
worst_case_eta string Worst case possible estimate transit time (ISO Time).

Location Tracking

A Location Tracking representing the location of client when booking (not related to booking locations)

Name Type Description
latitude * float Latitude component of the location.
longitude * float Longitude component of the location.

Responses

Name Type Description
booking_id integer ID of delivery.
HTTP/1.1 200 OK 
Content-Type: application/json 
{
    "booking_id": 69853
}

Exceed Request Limitation

We highly recommend you to use your longitude and latitude API services. In case, if you’re using the Geo Coordinates service from Deliveree, please note it is limited. You will see an error message if it reaches the query limit.

Odd/Even Booking ID

Bookings created on Sandbox with an odd-numbered booking ID will automatically be completed; while bookings with an even-numbered ID has to manually be completed by using the “Test My Booking” tab in the Sandbox API Dashboard.

For Example:

Get Delivery Details

You can check the delivery status at any time, but we highly recommend using webhooks if you can implement them for real-time updates.

Request

$ curl -X GET /public_api/v10/deliveries/1 \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
   --header "Accept-Language:en"
GET /public_api/v10/deliveries/{id}

Headers

Name Type Description
Authorization * string API Key
Accept-Language string User language

Parameters

Name Type Description
id * integer ID of Delivery.

Responses

Name Type Description
id integer ID of delivery.
customer_id integer ID of customer.
customer_name string Name of customer.
driver_id integer ID of driver.
driver object Information of Driver.
vehicle_type_info object Information of Vehicle.
company_id integer ID of company (if the delivery is from a business).
time_type string Time type of delivery (“now” or “schedule”).
status string Status of delivery.
need_confirmation boolean Booking has confirmed reimbursement yet.
note string Note of entire delivery (not the note per location).
total_fees float Amount Fee.
currency string Currency of Delivery (ex. Rp, Usd, etc).
tracking_url string URL to view status of delivery.
job_order_number string Order Number.
eta_from_driver_to_pickup integer ETA in seconds from current driver location to pickup location.
distance_from_driver_to_pickup float Distance between driver and pickup location (Unit: Kilometer).
original_estimate_values array A string array of Original estimated time best case and worst case to final destination.
current_estimate_values array A string array of Current estimated time best case and worst case to final destination.
current_estimate_status string Current estimated status to final destination.
pickup_time string Timestamp when user confirm via SMS (ISOTime).
completed_at string Timestamp when driver complete booking (ISOTime).
created_at string Time of Creation of the delivery (ISO Time).
vehicle object Vehicle Information, include “plate_number” as String.
locations * array List of Location (incl. pick-up and drop-off locations).
The first location in the list is the pick-up location. The following locations are drop-off locations. The route is designed based on the order of the locations you post.
Example :
  1. Location 1 = pickup
  2. Location 2 = first drop-off by the driver
  3. Location 3 = second drop-off by the driver<
  4. etc
Minimum locations required : 2 (1x pickup and 1x drop-off)
Maximum locations :
  • Up to 23 Locations for Indonesia
  • Up to 15 Locations for Thailand
  • Up to 15 Locations for Philippines
require_signatures boolean Require Signatures.
extra_services array List of Extra Requirement (incl. normal and goods insurance).
distance_fees float Distance fees of booking.
cod_pod_fees float COD/POD fees.
cod_pod boolean Included Cod/Pod?
company_type_discount float Discount for company.
surcharges_fees float Surcharge fees (Demand Adjustment).
surcharges_adjustments_fees float Surcharge adjustment (Special Adjustment).
way_point_fees float Waypoint fees of booking.

Driver

Name Type Description
id integer ID of driver.
name string Name of driver.
phone string Number phone of driver.
driver_image_url string Link avatar of driver.
last_known_position_lat float Last latitude position of driver.
last_known_position_lng float Last longitude position of driver.

Vehicle Type

Name Type Description
id integer The ID of the vehicle.
name string Name of the Vehicle.
cargo_length float Cargo length of a vehicle.
cargo_height float Cargo height of a vehicle.
cargo_width float Cargo width of a vehicle.
cargo_weight float Cargo weight of a vehicle.
cargo_cubic_meter float Cargo cubic meter of a vehicle.

Position Tracking

Name Type Description
id integer ID of position tracking.
latitude float Position latitude driver tracked.
longitude float Position longitude driver tracked.
tracked_at string Position driver tracked (ISO Time).
tracking_type string List of type driver tracked
Tracking type include types [“location_stuffing”, “location_have_arrived”, “location_accept_delivery”, “location_inside_radius”, “location_outside_radius” ]
Explain :
  • “location_stuffing”: Driver go to location and click button “start stuffing”
  • “location_have_arrived”: Driver go to location and click button “i have arrived”
  • “location_accept_delivery”: Driver go to location and click button “accept delivery”
  • “location_inside_radius”: Driver go to inside radius of location
  • “location_outside_radius”: Driver go to outside radius of location

Proof of Delivery Photos and Documents

Name Type Description
photo_type string Type of photo.
photo_name string Name of photo.
image_url string URL of photo.
image_content_type string Photo content type.

Extra Requirement

An extra service is an object representing an extra service of delivery

Name Type Description
selected_amount integer Selected amount of extra service.
extra_requirement_id integer Extra service Id.
name string Name of extra service.
unit_price float Unit price of extra service.
display_level_price string Display text for level price of pricing.
display_fees string Display text for fees of unit price.
display_fees_without_currency string Display text for fees without currency of unit price.
position integer Position of extra service.
is_insurance boolean The extra service has goods insurance or not.

Location Detail

Name Type Description
id integer Location ID.
name string Location Name.
latitude float Latitude component of the location.
longitude float Longitude component of the location.
recipient_name string Name of a personal recipient at the location (our driver needs to contact person at the location, ex. Thomas Eichenberger).
recipient_phone string Phone number of a personal recipient at the location (our driver needs to call that person when arriving).
note string Additional instructions for the driver at the location. Each location has a particular note (ex. Pickup Location: Building G2, 18th floor. Drop-off location: Ground Floor, please ring).
driver_note string Driver Note.
delivery_status string Delivery status.
failed_delivery_reason string Reason for failed delivery (If Delivery status is Failed).
position_trackings array List of Position Tracking.
proof_of_delivery_photos array List of Proof of delivery photos and documents.
signature_url string The Signature Url.
tracking_sharing string The location tracking url.
arrived_at string Timestamp when driver arrive (ISO Time).
leaved_at string Timestamp when driver leave (ISO Time).
parking_fees float Parking fees
parking_confirmed boolean Parking confirmed.
parking_photo_url string Photo of parking fees.
parking_photo_content_type string Content type of parking fees photo.
tolls_fees float Tolls fees.
tolls_confirmed float Tolls confirmed.
tolls_photo_url string Photo of tolls fees.
tolls_photo_content_type string Content type of tolls fees photo.
waiting_time_fees float Waiting time fees.
waiting_time_confirmed boolean Waiting time confirmed.
formatted_waiting_time string Formatted waiting time.
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 1484576,
  "customer_id": 1686,
  "customer_name": "khoa nguyen",
  "driver_id": 8988,
  "vehicle_type_info": {
    "id": 130,
    "name": "MVP",
    "cargo_length": 200,
    "cargo_height": 200,
    "cargo_width": 200,
    "cargo_weight": 800,
    "cargo_cubic_meter": 10
  },
  "company_id": 212,
  "time_type": "schedule",
  "status": "delivery_completed",
  "need_confirmation": false,
  "note": "",
  "total_fees": 10893,
  "currency": "₫",
  "tracking_url": "https://dev3.deliveree.com/kaG8RVUVXCb1tFv6A",
  "job_order_number": "",
  "eta_from_driver_to_pickup": null,
  "distance_from_driver_to_pickup": null,
  "original_estimate_values": [
    "2024-07-06T01:06:02.000+07:00"
  ],
  "current_estimate_values": [
    "2024-07-05T18:05:15.331+07:00"
  ],
  "current_estimate_status": "now",
  "created_at": "2024-07-05T17:50:15+07:00",
  "pickup_time": "2024-07-05T17:59:26.000+07:00",
  "completed_at": "2024-07-05T18:00:20+07:00",
  "driver": {
    "id": 8988,
    "name": "khoa nguyen 1",
    "phone": "+84938324405",
    "driver_image_url": "http://localhost:3000/system/drivers/driver_images/000/008/988/original/driver_image_1550568621737.jpeg?1550568816",
    "last_known_position_lat": 10.7877075,
    "last_known_position_lng": 106.6602419
  },
  "vehicle": {
    "vehicle_attributes": {
      "plate_number": "ac1234"
    }
  },
  "locations": [
    {
      "id": 3720383,
      "name": "1 Hoàng Việt, Phường 4, Tân Bình, Hồ Chí Minh, Vietnam",
      "driver_note": "",
      "note": "",
      "recipient_name": "khoa nguyen",
      "delivery_status": "delivered",
      "failed_delivery_reason": "",
      "position_trackings": [
        {
          "id": 388145,
          "latitude": 10.7974861,
          "longitude": 106.659168,
          "tracked_at": "2024-07-05T17:58:02.000+07:00",
          "tracking_type": "location_have_arrived_automatic"
        }
      ],
      "proof_of_delivery_photos": [
        {
          "photo_type": "proof_of_delivery",
          "photo_name": "Proof of delivery",
          "image_url": "http://localhost:3000/system/photos/images/000/690/867/original/Goods%201484576%20FR.png?1720177172",
          "image_content_type": "image/png"
        }
      ],
      "signature_url": "http://localhost:3000/system/locations/signatures/003/720/383/original/Signature%201484576%20FR.png?1720177169",
      "arrived_at": "2024-07-05T17:58:02.000+07:00",
      "leaved_at": "2024-07-05T17:59:29.894+07:00",
      "latitude": 10.7973509271362,
      "longitude": 106.65942506426,
      "parking_fees": 0,
      "parking_confirmed": true,
      "parking_photo_url": null,
      "parking_photo_content_type": null,
      "tolls_fees": 0,
      "tolls_confirmed": true,
      "tolls_photo_url": null,
      "tolls_photo_content_type": null,
      "waiting_time_fees": 0,
      "waiting_time_confirmed": true,
      "formated_waiting_time": "",
      "tracking_sharing": "https://dev3.deliveree.com/32LYUhfFho3NtAyr8"
    },
    {
      "id": 3720384,
      "name": "333/2/5, 333/2/5 Lê Văn Sỹ, Ward 1, Tan Binh District, Ho Chi Minh, 70000, Vietnam",
      "driver_note": "",
      "note": "",
      "recipient_name": "khoa nguyen",
      "delivery_status": "delivered",
      "failed_delivery_reason": "",
      "position_trackings": [
        {
          "id": 388146,
          "latitude": 10.7974958,
          "longitude": 106.6591604,
          "tracked_at": "2024-07-05T17:59:39.000+07:00",
          "tracking_type": "location_have_arrived_automatic"
        }
      ],
      "proof_of_delivery_photos": [
        {
          "photo_type": "proof_of_delivery",
          "photo_name": "Proof of delivery",
          "image_url": "http://localhost:3000/system/photos/images/000/690/870/original/Goods%201484576%20TO1.png?1720177220",
          "image_content_type": "image/png"
        }
      ],
      "signature_url": "http://localhost:3000/system/locations/signatures/003/720/384/original/Signature%201484576%20TO1.png?1720177216",
      "arrived_at": "2024-07-05T17:59:39.000+07:00",
      "leaved_at": "2024-07-05T18:00:16.995+07:00",
      "latitude": 10.7953694746388,
      "longitude": 106.665866455307,
      "parking_fees": 0,
      "parking_confirmed": true,
      "parking_photo_url": null,
      "parking_photo_content_type": null,
      "tolls_fees": 0,
      "tolls_confirmed": true,
      "tolls_photo_url": null,
      "tolls_photo_content_type": null,
      "waiting_time_fees": 0,
      "waiting_time_confirmed": true,
      "formated_waiting_time": "",
      "tracking_sharing": "https://dev3.deliveree.com/32LYUhfFho3NtAyr8"
    }
  ],
  "require_signatures": true,
  "extra_services": [
    {
      "selected_amount": 3,
      "extra_requirement_id": 1733,
      "name": "Eric extra",
      "unit_price": 111,
      "display_level_price": "Free",
      "display_fees": "₫ 111",
      "display_fees_without_currency": "111",
      "position": 1,
      "is_insurance": false
    }
  ],
  "distance_fees": 24000,
  "cod_pod_fees": 0,
  "cod_pod": true,
  "company_type_discount": 13440,
  "surcharges_fees": 0,
  "surcharges_adjustments_fees": 0,
  "way_point_fees": 0
}

Cancel A Delivery

A Delivery can be cancelled without fee before it has been accepted by a driver or within the 5 first minutes if the driver has not yet picked up the package.

Request

$ curl -X POST /public_api/v10/deliveries/1/cancel \
   --header "Authorization:YOUR_API_KEY" \
   --header "Accept-Language:en"
POST /public_api/v10/deliveries/{id}/cancel

Headers

Name Type Description
Authorization * string API Key
Accept-Language string User language

Parameters

Name Type Description
id * integer ID of Delivery.

Responses

We don’t return content for this API, please check the HTTP STATUS to know the result.

Get Deliveries List

List of all deliveries of a customer.

Request

$ curl -X GET /public_api/v10/deliveries \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
   --header "Accept-Language:en" \
GET /public_api/v10/deliveries/

Headers

Name Type Description
Authorization * string API Key
Accept-Language string User language

Parameters

$ curl -X GET /public_api/v10/deliveries?per_page=30&page=1&to_date=12%2F12%2F2021&sort_by=id&order_by=desc&search=BMW+i8&status=canceled \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
   --header "Accept-Language:en" \
Name Type Description
page integer Define the number of pages.
per_page integer Set up the number of items displayed per page.
from_date string Bookings with pickup time less than this parameter will be filtered.
to_date string Bookings with pickup time greater than this parameter will be filtered.
status string To display booking status.
search string Text search to find vehicle type and booking id.
sort_by string Sort by id and pickup time.
order_by string Order by ascending and (default) descending.

Response

Name Type Description
pagination.per_page integer Number of result in current page.
pagination.next_page string Query string for the next page.
pagination.previous_page string Query string for the previous page.
data array List of Delivery Details object.
HTTP/1.1 200 OK
Content-Type: application/json

{
    "pagination": {
        "per_page": 25,
        "next_page": "https://api.deliveree.com/public_api/{version}/...",
        "previous_page": "https://api.deliveree.com/public_api/{version}/..."
    },
    "data": [
        {
          "id": 263979,
          "customer_id": 5348,
          "driver_id": 403,
          "vehicle_type_id": 1,
          "vehicle_type_name": "van",
          "company_id": 569,
          "time_type": "now",
          "status": "delivery_in_progress",
          "total_fees": 400,
          "currency": "฿",
          "tracking_url": "http://localhost:3000/SqCkEVNiUbfLFey97",
          "job_order_number": "66666",
          "eta_from_driver_to_pickup": null,
          "distance_from_driver_to_pickup": null,
          "created_at": "2021-07-01T18:37:16+07:00",
          "pickup_time": null,
          "completed_at": null,
          "driver": null,
          "vehicle": {
            "vehicle_attributes": {
              "plate_number": null
            }
          },
          "locations": [
            {
              "id": 707398,
              "name": "buu dien thanh pho ho chi minh",
              "note": "Second floor, room 609",
              "recipient_name": "Duke",
              "recipient_phone": "0999999999",
            },
            {
              "id": 707399,
              "name": "buu dien thanh pho ho chi minh",
              "note": "Second floor, room 609",
              "recipient_name": "Duke",
              "recipient_phone": "0999999999",
            }
          ],
        },
    ...
    ]
}

Delivery

A delivery is an object representing a delivery.

Name Type Description
id integer ID of delivery.
customer_id integer ID of customer.
driver_id integer ID of driver.
vehicle_type_id integer ID of vehicle type.
vehicle_type_name string Name of vehicle type.
company_id integer ID of company (if the delivery is from a Business).
time_type string Time type of delivery (“now” or “schedule”).
status string Status of delivery.
total_fees float Amount Fee.
currency string Currency of Delivery (ex. Rp, Usd, etc).
tracking_url string URL to view status of delivery. That URL can be opened in a browser to follow the driver real-time and see the ETA to locations.
job_order_number string Order Number.
created_at datetime Time of Creation of the delivery (ISO Time).
eta_from_driver_to_pickup integer ETA in seconds from current driver location to pickup location.
distance_from_driver_to_pickup float Distance between driver and pickup location (Unit: Kilometer).
pickup_time string Timestamp when user confirm via SMS (ISOTime).
completed_at string Timestamp when driver complete booking (ISOTime).
driver object Driver Information. In case the booking is on process, this field will be null.
vehicle object Vehicle Information, include “plate_number” as String.
locations array List of locations details including id, name, note, recipient name, recipient phone.

Get Vehicle Types

We return a list vehicle types of a specific area.

Request

$ curl -X GET /public_api/v10/vehicle_types \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
GET /public_api/v10/vehicle_types

Headers

Name Type Description
Authorization * string API Key

Parameters

No need parameters.

Responses

Name Type Description
ID integer ID of vehicle type.
name string Name of vehicle type.
cargo_length float Cargo length of vehicle type (cm).
cargo_height float Cargo height of vehicle type (cm).
cargo_width float Cargo width of vehicle type (cm).
cargo_weight float Cargo weight of vehicle type (kg).
cargo_cubic_meter float Cargo cubic meter of vehicle type (m3).
minimum_pickup_time_schedule string Minimum pickup time with type schedule (ISO Time).
minimum_pickup_time_fullday string Minimum pickup time with type full-day (ISO Time).
minimum_pickup_time_fpr string Minimum pickup time with type fpr (ISO Time).
HTTP/1.1 200 OK
Content-Type: application/json

{
    "data": [
        {
            "id": 27,
            "name": "Closed Van",
            "cargo_length": 200,
            "cargo_height": 175,
            "cargo_width": 180,
            "cargo_weight": 1700,
            "cargo_cubic_meter": 7,
            "minimum_pickup_time_now": "2021-09-24T10:44:06.664+07:00",
            "minimum_pickup_time_schedule": "2021-09-24T11:44:06.664+07:00",
            "minimum_pickup_time_fullday": "2021-09-24T11:44:06.664+07:00",
            "minimum_pickup_time_fpr": "2021-09-25T09:44:06.664+07:00"
        },
        {
            "id": 82,
            "name": "L300",
            "cargo_length": 210,
            "cargo_height": 125,
            "cargo_width": 125,
            "cargo_weight": 1000,
            "cargo_cubic_meter": 3.3,
            "minimum_pickup_time_schedule": "2021-09-24T10:44:06.684+07:00",
            "minimum_pickup_time_fullday": "2021-09-24T10:44:06.684+07:00",
            "minimum_pickup_time_fpr": "2021-09-25T09:44:06.684+07:00"
        }
    ]
}

Get Extra Services

We return a list of extra services of a specific vehicle type.

Request

$ curl -X GET /public_api/v10/vehicle_types/21/extra_services?time_type=now \
   --header "Content-Type:application/json" \
   --header "Authorization:YOUR_API_KEY" \
GET /public_api/v10/vehicle_types/{vehicle_type_id}/extra_services

Headers

Name Type Description
Authorization * string API Key

Parameters

Name Type Description
dropoff_count integer Number of drop off.
time_type string Time type of delivery (“now” or “schedule”).

Responses

Name Type Description
id integer Id of extra service.
amount integer Amount of extra service.
unit_price float Unit price of extra service.
name string Name of extra service.
position integer Position of extra service.
pricings array List of Extra Service Pricing (This is used only for goods insurance).
pricing_method string Pricing method of extra service(“normal” or “by_options”).
  • “by_options”: pricing method for goods insurance.
  • “normal”: pricing method for normal extra services.
HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": [
    {
        "id": 140,
        "amount": 1,
        "unit_price": 50000,
        "name": "Extra Helper",
        "position": 1,
        "pricing_method": "normal"
    },
    {
        "id": 416,
        "amount": 0,
        "unit_price": 0.0,
        "name": "Goods Insurance",
        "position": 2,
        "pricings": [
            {
                "id": 2146,
                "fees": 0.0,
                "position": 1,
                "level_price": 1000000000.0,
                "display_level_price": "Rp 1 billion",
                "display_fees": "Free",
                "display_fees_without_currency": "Free"
            }
        ],
        "pricing_method": "by_options"
    }
  ]
}

Extra Service Pricing

Name Type Description
id integer Id of goods insurance pricing.
fees float Fee of goods insurance pricing.
position integer Position of goods insurance pricing.
level_price float Level price of goods insurance pricing.
display_level_price string Display text for level price of goods insurance pricing.
display_fees string Display text for fees of goods insurance pricing.
display_fees_without_currency string Display text for fees without currency of goods insurance pricing.

Get User Profile

Get current user profile.

Request

$ curl -X POST /public_api/v10/customers/user_profile \
   --header "Content-Type:application/json" \
   --header "Authorization: YOUR_API_KEY" \
   --header "Accept-Language:en"
POST /public_api/v10/customers/user_profile

Headers

Name Type Description
Authorization * string API Key
Accept-Language string User language

Responses

Name Type Description
name string Name of company or customer.
user_type string Check bp_account and non_bp_account.
country_code string User country code.
time_zone string User time zone.
currency string Currency (ex. Rp, Usd, etc).
fleet_price_url string Fleet price URL.
allow_post_payment string Allow post payment.
HTTP/1.1 200 OK
Content-Type: application/json

{
    "name": "Company Name",
    "user_type": "bp_account",
    "country_code": "ID",
    "time_zone": "Bangkok",
    "currency": "Rp",
    "fleet_price_url": "https://www.deliveree.com/id/en/whole-vehicle-fleet-prices/",
    "allow_post_payment": true
}