Borzo Business API 1.6
Overview
Business API allows you to automatically place delivery orders in Borzo. You also can manage your orders and subscribe to updates on any changes in them.
First you should register as a client at apitest.borzodelivery.com. If you are unable to receive the SMS code when registering, please ask for it at [email protected], including your phone number in the email.
Integration of Borzo Business API is done in two steps:
- Setting everything up using test environment at robotapitest-id.borzodelivery.com;
- When it works with apitest, you can switch to production at robot-id.borzodelivery.com.
When you have successfully tested Business API integration with apitest.borzodelivery.com, please email us at [email protected], so we can enable your access to Business API in production environment.
URL for test requests: https://robotapitest-id.borzodelivery.com/api/business/1.6
URL for production requests: https://robot-id.borzodelivery.com/api/business/1.6
Requests
All requests to Business API must be made via HTTPS. Only GET and POST request methods are supported. POST requests should send all parameters in the body of the request in JSON format and UTF-8 encoding; GET requests should send parameters in the query string.
All requests must include a HTTP header X-DV-Auth-Token
.
- X-DV-Auth-Token string Required
Secret auth token. Must be sent as a HTTP header.
Your auth token can be found in your Personal cabinet.
Important! Never put your auth token in any public places!
If your token is compromised, it will be possible for anybody to place orders in your name.
Tokens can be changed in your Personal cabinet.
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' 'https://robotapitest-id.borzodelivery.com/api/business/1.6'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true
}
Responses
Business API responses are in JSON format and UTF-8 encoding.
Successful responses will have HTTP code 200 (OK). Response JSON will always have is_successful
field.
- is_successful boolean
Whether the request was successful or not.
Successful responses will have
true
here.
If there was an error, API response will have HTTP code 400 (Bad Request). The response JSON will have the following fields:
- is_successful boolean
Whether the request was successful or not.
In case of any errors it will be
false
. - errors list
List of error codes.
-
Error codes for request parameters. If
errors
field contains error codeinvalid_parameters
, this field will have detailed parameter errors. Structure of this object corresponds to structure of the request.
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"points":[{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310","contact_person":{"phone":"6288800000001"}},{}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/create-order'
HTTP/1.1 400 Bad Request
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": false,
"errors": ["invalid_parameters"],
"parameter_errors": {
"matter": ["required"],
"points": [
null,
{
"address": ["required"],
"contact_person": {
"phone": ["required"]
}
}
]
}
}
Parameter data types
- boolean
Boolean value:
true
orfalse
. - integer
Integer number without fractions.
- string
A JSON string. Example:
"active"
. - date
Date according to ISO 8601: YYYY-MM-DD. Example:
"2024-12-04"
. - timestamp
Date and time according to ISO 8601: YYYY-MM-DDTHH:MM:SSZ. Example:
"2024-12-04T00:21:48+07:00"
.Please use this exact format with semicolon in the timezone. Other ISO 8601 variants are not supported by Business API.
- float
Floating point number with fractional part.
- list
A JSON list. Example:
[{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310"}, {"address":"Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540"}]
. - object
A JSON object. Example:
{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310"}
. - money
Money amount (Rp). This is a JSON string to prevent rounding errors. Examples:
"190"
,"-49"
. - phone
A JSON string with phone number. Example:
"6288800000001"
. - coordinate
A JSON string with coordinate. Example:
"-6.3037234"
. - null
Empty value:
null
.
API methods
Order price calculation
Use this method to calculate order prices and validate parameters before actually placing the order. It is possible to calculate an incomplete order, but such calculations may be imprecise.
In response to an empty request this method will respond with minimal order price.
Request parameters
- type string
-
Delivery contents. Maximum length is 5,000 characters.
Try to make this description useful for the courier. For example, putting a category from your catalog here is better than only a concrete model number. If the item is fragile or oversized, please mention it here.
Default value:
null
. - vehicle_type_id integer
- total_weight_kg integer
Total weight in kilograms.
For orders of type standardDefault value: <code>0</code>.
- insurance_amount money
Insured amount.
Default value:
"0.00"
. - is_client_notification_enabled boolean
Whether to send SMS notifications to the client.
Default value:
false
. - is_contact_person_notification_enabled boolean
Whether to send SMS notifications to recipients on addresses.
Default value:
false
. - is_route_optimizer_enabled boolean
Automatically optimize route (addresses will be arranged in the optimal order).
Default value:
false
. - loaders_count integer
Number of necessary loaders to move the delivered goods, including the driver. Maximum is 11.
Default value: 0.
- is_motobox_required boolean
Is motobox required.
Default value:
false
. - is_thermobox_required boolean
Is thermobox required.
Default value:
false
. - payment_method string
- bank_card_id integer
Bank card ID (required for
bank_card
payment method).Default value:
null
. - points list Required
List of addresses (points) for the courier to visit.
For orders of type standardMaximum is 99 points. Default value: <code>[]</code>.
Point parameters
- contact_person object Required
Contact person on the address.
- latitude coordinate / null
Latitude of the location.
Default value:
null
. - longitude coordinate / null
Longitude of the location.
Default value:
null
. - taking_amount money
Backpayment sum to receive from the contact person at the address.
Default value:
"0.00"
. - buyout_amount money
Buyout sum the courier pays to the contact person at the address.
Default value:
"0.00"
. - is_order_payment_here boolean
Money will be paid to the courier at the address.
Default value:
false
. - is_cod_cash_voucher_required boolean
Whether to issue a cashier's check to the recipient at the point. If true, you should fill check amount in
taking_amount
.Default value:
false
. - packages list
List of packages at the point.
Default value:
[]
.Package parameters
- ware_code string
Vendor code. Maximum length is 255 characters.
Default value:
null
. - description string
Description. Maximum length is 1000 characters.
Default value:
null
. - items_count float
Amount.
Default value:
0
. - item_payment_amount string
Price per item.
Default value:
"0.00"
. - nomenclature_code string
Nomenclature code. Maximum length is 255 characters.
Default value:
null
.
-
Response parameters
- is_successful boolean
Whether the request was successful or not.
- order object
Calculated order data.
Order parameters
- type string
Order type.
- vehicle_type_id integer
Vehicle type.
- total_weight_kg integer
Total weight in kilograms.
- is_client_notification_enabled boolean
Whether to send SMS notifications to the client.
- is_contact_person_notification_enabled boolean
Whether to send SMS notifications to recipients on addresses.
- loaders_count integer
Number of necessary loaders to move the delivered goods, including the driver.
- points list
List of addresses (points) for the courier to visit.
Point parameters
- contact_person object
Contact person on the address.
- latitude coordinate / null
Latitude of the location.
- longitude coordinate / null
Longitude of the location.
- taking_amount money
Backpayment sum to receive from the contact person at the address.
- buyout_amount money
Buyout sum the courier pays to the contact person at the address.
- packages list
List of packages at the point.
- is_cod_cash_voucher_required boolean
Whether to issue a cashier's check to the recipient at the point.
- is_order_payment_here boolean
Money will be paid to the courier at the address.
- is_motobox_required boolean
Is motobox required.
- is_thermobox_required boolean
Is thermobox required.
-
- warnings list
Warnings. You will receive these warnings as error codes if you try to create an order with the same data you calculated it with. Empty list of warnings means the order data is valid.
- parameter_warnings object
Parameter warnings. You will receive these warnings as parameter error codes if you try to create an order with the same data you calculated it with.
Request example
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"matter":"Documents","points":[{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310"},{"address":"Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540"}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/calculate-order'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": null,
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": null,
"status_description": null,
"matter": "Documents",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": null,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": "2024-12-04T00:51:48+07:00"
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": null
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": null,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": "2024-12-04T01:51:48+07:00"
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": null
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
},
"warnings": ["invalid_parameters"],
"parameter_warnings": {
"points": [{
"contact_person": {
"phone": ["required"]
}
}, {
"contact_person": {
"phone": ["required"]
}
}]
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/calculate-order');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = [
'matter' => 'Documents',
'points' => [
[
'address' => 'JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310',
],
[
'address' => 'Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540',
],
],
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": null,
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": null,
"status_description": null,
"matter": "Documents",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": null,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": "2024-12-04T00:51:48+07:00"
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": null
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": null,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": "2024-12-04T01:51:48+07:00"
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": null
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
},
"warnings": ["invalid_parameters"],
"parameter_warnings": {
"points": [{
"contact_person": {
"phone": ["required"]
}
}, {
"contact_person": {
"phone": ["required"]
}
}]
}
}
Placing an order
This API method creates a new delivery order.
Request parameters
- type string
- matter string Required
Delivery contents. Maximum length is 5,000 characters.
Try to make this description useful for the courier. For example, putting a category from your catalog here is better than only a concrete model number. If the item is fragile or oversized, please mention it here.
- vehicle_type_id integer
- total_weight_kg integer
Total weight in kilograms.
For orders of type standardDefault value: <code>0</code>.
- insurance_amount money
Insured amount.
Default value:
"0.00"
. - is_client_notification_enabled boolean
Whether to send SMS notifications to the client.
Default value:
false
. - is_contact_person_notification_enabled boolean
Whether to send SMS notifications to recipients on addresses.
Default value:
false
. - is_route_optimizer_enabled boolean
Automatically optimize route (addresses will be arranged in the optimal order).
Default value:
false
. - loaders_count integer
Number of necessary loaders to move the delivered goods, including the driver. Maximum is 11.
Default value: 0.
- is_motobox_required boolean
Is motobox required.
Default value:
false
. - is_thermobox_required boolean
Is thermobox required.
Default value:
false
. - payment_method string
- bank_card_id integer
Bank card ID (required for
bank_card
payment method).Default value:
null
. - is_return_required boolean
Need to create order with return.
Default value:
false
. - points list Required
List of addresses (points) for the courier to visit.
For orders of type standardMaximum is 99 points. Default value: <code>[]</code>.
Point parameters
- address string Required
Street address. Maximum length is 350 characters.
We use Google Maps API to geocode addresses.
- contact_person object Required
Contact person on the address.
- latitude coordinate / null
Latitude of the location.
Default value:
null
. - longitude coordinate / null
Longitude of the location.
Default value:
null
. - taking_amount money
Backpayment sum to receive from the contact person at the address.
Default value:
"0.00"
. - buyout_amount money
Buyout sum the courier pays to the contact person at the address.
Default value:
"0.00"
. - is_order_payment_here boolean
Money will be paid to the courier at the address.
Default value:
false
. - is_cod_cash_voucher_required boolean
Whether to issue a cashier's check to the recipient at the point. If true, you should fill check amount in
taking_amount
.Default value:
false
. - packages list
List of packages at the point.
Default value:
[]
.Package parameters
- ware_code string
Vendor code. Maximum length is 255 characters.
Default value:
null
. - description string
Description. Maximum length is 1000 characters.
Default value:
null
. - items_count float
Amount.
Default value:
0
. - item_payment_amount string
Price per item.
Default value:
"0.00"
. - nomenclature_code string
Nomenclature code. Maximum length is 255 characters.
Default value:
null
.
-
-
Response parameters
- is_successful boolean
Whether the request was successful or not.
- order object
The created order.
Order parameters
- order_id integer
Full order ID.
- type string
Order type.
- matter string
Delivery contents.
- order_name string
Order name (short order ID).
- vehicle_type_id integer
Vehicle type.
- created_datetime timestamp
Order creation date and time.
- status string
Order status.
- status_description string
Order status description.
- total_weight_kg integer
Total weight in kilograms.
- is_client_notification_enabled boolean
Whether to send SMS notifications to the client.
- is_contact_person_notification_enabled boolean
Whether to send SMS notifications to recipients on addresses.
- loaders_count integer
Number of necessary loaders to move the delivered goods, including the driver.
- points list
List of addresses (points) for the courier to visit.
Point parameters
- point_id integer
Point ID.
- address string
Street address.
- contact_person object
Contact person on the address.
- latitude coordinate
Latitude of the location.
- longitude coordinate
Longitude of the location.
- taking_amount money
Backpayment sum to receive from the contact person at the address.
- buyout_amount money
Buyout sum the courier pays to the contact person at the address.
- packages list
List of packages at the point.
- is_cod_cash_voucher_required boolean
Whether to issue a cashier's check to the recipient at the address.
- is_order_payment_here boolean
Money will be paid to the courier at the address.
- is_return_point boolean
Return point (same as first or hub).
-
Delivery parameters
- status string
Delivery status.
-
-
-
Courier parameters
- courier_id integer
Courier ID.
- surname string
Surname of the courier.
- name string
Name of the courier.
- middlename string
Middlename of the courier.
- phone phone
Phone of the courier.
- latitude coordinate / null
Latitude of the location.
Only for active orders, if the courier is on the way.
- longitude coordinate / null
Longitude of the location.
Only for active orders, if the courier is on the way.
-
- is_motobox_required boolean
Is motobox required.
- is_thermobox_required boolean
Is thermobox required.
- payment_method string
Payment method.
- is_return_required boolean
Order has return.
- promo_code_discount_amount money
Discount amount by promo code.
Part of order price (
payment_amount
).
-
Request example
Example 1. Create order with default payment method.
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"matter":"Documents","points":[{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310","contact_person":{"phone":"6288800000001"}},{"address":"Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540","contact_person":{"phone":"6288800000001"}}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/create-order'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Documents",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/create-order');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = [
'matter' => 'Documents',
'points' => [
[
'address' => 'JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310',
'contact_person' => [
'phone' => '6288800000001',
],
],
[
'address' => 'Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540',
'contact_person' => [
'phone' => '6288800000001',
],
],
],
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Documents",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
}
Example 2. Create order with bank_card
payment method.
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"matter":"Documents","payment_method":"bank_card","bank_card_id":80,"points":[{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310","contact_person":{"phone":"6288800000001"}},{"address":"Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540","contact_person":{"phone":"6288800000001"}}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/create-order'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Documents",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "bank_card",
"bank_card_id": 80,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/create-order');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = [
'matter' => 'Documents',
'payment_method' => 'bank_card',
'bank_card_id' => 80,
'points' => [
[
'address' => 'JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310',
'contact_person' => [
'phone' => '6288800000001',
],
],
[
'address' => 'Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540',
'contact_person' => [
'phone' => '6288800000001',
],
],
],
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Documents",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "bank_card",
"bank_card_id": 80,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
}
Example 3. Create order from draft deliveries. First point cannot be delivery.
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"matter":"Documents","points":[{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310","contact_person":{"phone":"6288800000001"}},{"delivery_id":11712,"address":"Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540","contact_person":{"phone":"6288800000001"}}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/create-order'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Documents",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": 11712,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/create-order');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = [
'matter' => 'Documents',
'points' => [
[
'address' => 'JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310',
'contact_person' => [
'phone' => '6288800000001',
],
],
[
'delivery_id' => 11712,
'address' => 'Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540',
'contact_person' => [
'phone' => '6288800000001',
],
],
],
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Documents",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": 11712,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
}
Order editing
This API method can be used to edit an order in statuses: new
, available
, active
or delayed
(Order statuses).
Request parameters
- order_id integer Required
Full order ID.
To edit the order, send any number of extra parameters from order creation.
If modified value is valid, it will be applied to the order.
If a parameter is not sent with the request, its value will not be changed.
If a parameter is sent with null
value, corresponding value will be removed from the order.
When editing a point, always send its ID along with changed values, otherwise a new point will be added to the order. Also, any points with IDs not mentioned in the request will be deleted.
When editing a package, always send its ID along with changed values, otherwise a new package will be added to the point. Also, any packages with IDs not mentioned in the request will be deleted.
See order editing examples to avoid pitfalls.
Response parameters
- is_successful boolean
Whether the request was successful or not.
- order object
Modified order data.
Order parameters
- order_id integer
Full order ID.
- type string
Order type.
- matter string
Delivery contents.
- order_name string
Order name (short order ID).
- vehicle_type_id integer
Vehicle type.
- created_datetime timestamp
Order creation date and time.
- status string
Order status.
- status_description string
Order status description.
- total_weight_kg integer
Total weight in kilograms.
- is_client_notification_enabled boolean
Whether to send SMS notifications to the client.
- is_contact_person_notification_enabled boolean
Whether to send SMS notifications to recipients on addresses.
- loaders_count integer
Number of necessary loaders to move the delivered goods, including the driver.
- points list
List of addresses (points) for the courier to visit.
Point parameters
- point_id integer
Point ID.
- address string
Street address.
- contact_person object
Contact person on the address.
- latitude coordinate
Latitude of the location.
- longitude coordinate
Longitude of the location.
- taking_amount money
Backpayment sum to receive from the contact person at the address.
- buyout_amount money
Buyout sum the courier pays to the contact person at the address.
- packages list
List of packages at the point.
- is_cod_cash_voucher_required boolean
Whether to issue a cashier's check to the recipient at the address.
- is_order_payment_here boolean
Money will be paid to the courier at the address.
- is_return_point boolean
Return point (same as first or hub).
-
Delivery parameters
- status string
Delivery status.
-
-
-
Courier parameters
- courier_id integer
Courier ID.
- surname string
Surname of the courier.
- name string
Name of the courier.
- middlename string
Middlename of the courier.
- phone phone
Phone of the courier.
- latitude coordinate / null
Latitude of the location.
Only for active orders, if the courier is on the way.
- longitude coordinate / null
Longitude of the location.
Only for active orders, if the courier is on the way.
-
- is_motobox_required boolean
Is motobox required.
- is_thermobox_required boolean
Is thermobox required.
- payment_method string
Payment method.
- is_return_required boolean
Order has return.
- promo_code_discount_amount money
Discount amount by promo code.
Part of order price (
payment_amount
).
-
Request example
Example 1. Changing delivery details (matter
) and removing backpayment details (backpayment_details
).
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"order_id":1250032,"matter":"Flowers","backpayment_details":null}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/edit-order'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/edit-order');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = [
'order_id' => 1250032,
'matter' => 'Flowers',
'backpayment_details' => null,
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
Example 2. Modifying times on a point and adding a new point. First point should be kept as it was.
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"order_id":1250032,"points":[{"point_id":202685},{"point_id":202686,"required_start_datetime":"2024-12-04T01:51:48+07:00","required_finish_datetime":"2024-12-04T02:21:48+07:00"},{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310","contact_person":{"phone":"6288800000001"}}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/edit-order'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}, {
"point_id": 202687,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T02:51:48+07:00",
"required_finish_datetime": "2024-12-04T03:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/edit-order');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = [
'order_id' => 1250032,
'points' => [
[
'point_id' => 202685,
],
[
'point_id' => 202686,
'required_start_datetime' => '2024-12-04T01:51:48+07:00',
'required_finish_datetime' => '2024-12-04T02:21:48+07:00',
],
[
'address' => 'JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310',
'contact_person' => [
'phone' => '6288800000001',
],
],
],
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}, {
"point_id": 202687,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T02:51:48+07:00",
"required_finish_datetime": "2024-12-04T03:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
Example 3. Removing third point from the order.
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"order_id":1250032,"points":[{"point_id":202685},{"point_id":202686}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/edit-order'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/edit-order');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = [
'order_id' => 1250032,
'points' => [
[
'point_id' => 202685,
],
[
'point_id' => 202686,
],
],
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
Example 4. Modifying attributes of a package on second point, remove package on third point, and keep package on first point.
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"order_id":1250032,"points":[{"point_id":202685, "packages": [{"order_package_id": 3632252}]},{"point_id":202686, "packages": [{"order_package_id": 3632253, "items_count": 3}]},{"point_id": 202687}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/edit-order'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [{
"order_package_id": 3632252,
"ware_code": "140012",
"description": "Payung",
"items_count": 1,
"item_payment_amount": 30000.00
}],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [{
"order_package_id": 3632253,
"ware_code": "100112",
"description": "Topi",
"items_count": 3,
"item_payment_amount": 42000.00
}],
"is_cod_cash_voucher_required": true,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}, {
"point_id": 202687,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T02:51:48+07:00",
"required_finish_datetime": "2024-12-04T03:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "3600.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/edit-order');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = [
'order_id' => 1250032,
'points' => [
[
'point_id' => 202685,
'packages' => [
[
'order_package_id' => 3632252,
]
],
],
[
'point_id' => 202686,
'packages' => [
[
'order_package_id' => 3632253,
'items_count' => 3,
]
],
],
[
'point_id' => 202687,
],
],
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [{
"order_package_id": 3632252,
"ware_code": "140012",
"description": "Payung",
"items_count": 1,
"item_payment_amount": 30000.00
}],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [{
"order_package_id": 3632253,
"ware_code": "100112",
"description": "Topi",
"items_count": 3,
"item_payment_amount": 42000.00
}],
"is_cod_cash_voucher_required": true,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}, {
"point_id": 202687,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T02:51:48+07:00",
"required_finish_datetime": "2024-12-04T03:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "3600.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
Example 5. Setting COD payment attributes. Set the voucher requirement and COD payment amount received at the second point, and remove COD payment and voucher requirement for the third point.
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"order_id":1250032,"points":[{"point_id":202685},{"point_id":202686, "is_cod_cash_voucher_required": true, "taking_amount": 42000.00},{"point_id": 202687, "is_cod_cash_voucher_required": false, "taking_amount": 0.00}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/edit-order'
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/edit-order');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = [
'order_id' => 1250032,
'points' => [
[
'point_id' => 202685,
],
[
'point_id' => 202686,
'is_cod_cash_voucher_required' => true,
'taking_amount' => 42000.00,
],
[
'point_id' => 202687,
'is_cod_cash_voucher_required' => false,
'taking_amount' => 0.00,
],
],
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "42000.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": true,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}, {
"point_id": 202687,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T02:51:48+07:00",
"required_finish_datetime": "2024-12-04T03:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "3600.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null
}
}
Canceling an order
You may cancel an order in statuses: new
, available
, active
or delayed
(Order statuses). If a courier has visited any addresses, the order cannot be canceled.
Request parameters
- order_id integer Required
Full order ID to cancel.
Response parameters
- is_successful boolean
Whether the request was successful or not.
- order object
Canceled order data.
Order parameters
- order_id integer
Full order ID.
- type string
Order type.
- matter string
Delivery contents.
- order_name string
Order name (short order ID).
- vehicle_type_id integer
Vehicle type.
- created_datetime timestamp
Order creation date and time.
- status string
Order status.
- status_description string
Order status description.
- total_weight_kg integer
Total weight in kilograms.
- is_client_notification_enabled boolean
Whether to send SMS notifications to the client.
- is_contact_person_notification_enabled boolean
Whether to send SMS notifications to recipients on addresses.
- loaders_count integer
Number of necessary loaders to move the delivered goods, including the driver.
- points list
List of addresses (points) for the courier to visit.
Point parameters
- point_id integer
Point ID.
- address string
Street address.
- contact_person object
Contact person on the address.
- latitude coordinate
Latitude of the location.
- longitude coordinate
Longitude of the location.
- taking_amount money
Backpayment sum to receive from the contact person at the address.
- buyout_amount money
Buyout sum the courier pays to the contact person at the address.
- packages list
List of packages at the point.
- is_cod_cash_voucher_required boolean
Whether to issue a cashier's check to the recipient at the address.
- is_order_payment_here boolean
Money will be paid to the courier at the address.
- is_return_point boolean
Return point (same as first or hub).
-
Delivery parameters
- status string
Delivery status.
-
-
-
Courier parameters
- courier_id integer
Courier ID.
- surname string
Surname of the courier.
- name string
Name of the courier.
- middlename string
Middlename of the courier.
- phone phone
Phone of the courier.
- latitude coordinate / null
Latitude of the location.
Only for active orders, if the courier is on the way.
- longitude coordinate / null
Longitude of the location.
Only for active orders, if the courier is on the way.
-
- is_motobox_required boolean
Is motobox required.
- is_thermobox_required boolean
Is thermobox required.
- payment_method string
Payment method.
- is_return_required boolean
Order has return.
- promo_code_discount_amount money
Discount amount by promo code.
Part of order price (
payment_amount
).
-
Request example
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"order_id":1250032}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/cancel-order'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "canceled",
"status_description": "Pelanggan tidak merespons",
"matter": "Documents",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/cancel-order');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = [
'order_id' => 1250032,
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "canceled",
"status_description": "Pelanggan tidak merespons",
"matter": "Documents",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
}
List of orders
Use this API method to retrieve a list of your orders. The list is sorted by order_id
, descending.
Request parameters
Response parameters
- is_successful boolean
Whether the request was successful or not.
- orders list
List of orders.
Order parameters
- order_id integer
Full order ID.
- type string
Order type.
- matter string
Delivery contents.
- order_name string
Order name (short order ID).
- vehicle_type_id integer
Vehicle type.
- created_datetime timestamp
Order creation date and time.
- status string
Order status.
- status_description string
Order status description.
- total_weight_kg integer
Total weight in kilograms.
- is_client_notification_enabled boolean
Whether to send SMS notifications to the client.
- is_contact_person_notification_enabled boolean
Whether to send SMS notifications to recipients on addresses.
- loaders_count integer
Number of necessary loaders to move the delivered goods, including the driver.
- points list
List of addresses (points) for the courier to visit.
Point parameters
- point_id integer
Point ID.
- address string
Street address.
- contact_person object
Contact person on the address.
- latitude coordinate
Latitude of the location.
- longitude coordinate
Longitude of the location.
- taking_amount money
Backpayment sum to receive from the contact person at the address.
- buyout_amount money
Buyout sum the courier pays to the contact person at the address.
- packages list
List of packages at the point.
- is_cod_cash_voucher_required boolean
Whether to issue a cashier's check to the recipient at the address.
- is_order_payment_here boolean
Money will be paid to the courier at the address.
- is_return_point boolean
Return point (same as first or hub).
-
Delivery parameters
- status string
Delivery status.
-
-
-
Courier parameters
- courier_id integer
Courier ID.
- surname string
Surname of the courier.
- name string
Name of the courier.
- middlename string
Middlename of the courier.
- phone phone
Phone of the courier.
- latitude coordinate / null
Latitude of the location.
Only for active orders, if the courier is on the way.
- longitude coordinate / null
Longitude of the location.
Only for active orders, if the courier is on the way.
-
- is_motobox_required boolean
Is motobox required.
- is_thermobox_required boolean
Is thermobox required.
- payment_method string
Payment method.
- is_return_required boolean
Order has return.
- promo_code_discount_amount money
Discount amount by promo code.
Part of order price (
payment_amount
).
-
- orders_count integer
Total number of found orders for pagination.
Request example
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/orders?status=available'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"orders": [{
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}, {
"order_id": 1250035,
"order_name": "50035",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202694,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202695,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}],
"orders_count": 2
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/orders?status=available');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"orders": [{
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}, {
"order_id": 1250035,
"order_name": "50035",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Flowers",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202694,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202695,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"estimated_arrival_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}],
"orders_count": 2
}
Courier info and courier location
Use this API method to retrieve a courier info for your order.
If order has status active
(Order statuses) and the courier is on the way, courier location will be returned.
Request parameters
- order_id integer Required
Full order ID to search courier for.
Response parameters
- is_successful boolean
Whether the request was successful or not.
-
Courier parameters
- courier_id integer
Courier ID.
- surname string
Surname of the courier.
- name string
Name of the courier.
- middlename string
Middlename of the courier.
- phone phone
Phone of the courier.
- latitude coordinate / null
Latitude of the location.
Only for active orders, if the courier is on the way.
- longitude coordinate / null
Longitude of the location.
Only for active orders, if the courier is on the way.
-
Request example
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/courier?order_id=1250032'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"courier": {
"courier_id": 72384,
"surname": "Surname",
"name": "Name",
"middlename": null,
"phone": "6288800000001",
"photo_url": null,
"latitude": "-6.2914558",
"longitude": "106.8322649"
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/courier?order_id=1250032');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"courier": {
"courier_id": 72384,
"surname": "Surname",
"name": "Name",
"middlename": null,
"phone": "6288800000001",
"photo_url": null,
"latitude": "-6.2914558",
"longitude": "106.8322649"
}
}
Client profile info
Use this API method to retrieve a client info with allowed payment methods.
Response parameters
Request example
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/client'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"client": {
"name": "Name",
"phone": "6288800000001",
"email": "[email protected]",
"legal_type": "individual_person",
"allowed_payment_methods": [
"cash",
"bank_card"
]
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/client');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"client": {
"name": "Name",
"phone": "6288800000001",
"email": "[email protected]",
"legal_type": "individual_person",
"allowed_payment_methods": [
"cash",
"bank_card"
]
}
}
Available bank cards
Use this API method to retrieve available bank cards to use them in order creation.
Response parameters
Request example
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/bank-cards'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"bank_cards": [
{
"bank_card_id": 80,
"bank_card_number_mask": "411111XXXXXX1111",
"expiration_date": "2029-01-31",
"card_type": "visa"
}
]
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/bank-cards');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"bank_cards": [
{
"bank_card_id": 80,
"bank_card_number_mask": "411111XXXXXX1111",
"expiration_date": "2029-01-31",
"card_type": "visa"
}
]
}
List of labels
Use this API method to retrieve a list of labels for boxes in ZPL and PDF formats.
Request parameters
- type string
Label type.
Response parameters
Request example
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/labels?type=zpl&order_id[]=1250032&order_id[]=1250033'
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"labels": [
{
"type": "zpl",
"order_id": 1250032,
"point_id": 2783321,
"delivery_id": null,
"content": "^XA\n\n^FO600,40^GFA,779,779,19,,3FC,7FE,:IF,:::::IF0FFCI03IFI0F..."
},
{
"type": "zpl",
"order_id": 1250032,
"point_id": 2783322,
"delivery_id": null,
"content": "^XA\n\n^FO600,40^GFA,779,779,19,,3FC,7FE,:IF,:::::IF0FFCI03IFI0F..."
},
{
"type": "zpl",
"order_id": 1250032,
"point_id": 2783323,
"delivery_id": null,
"content": "^XA\n\n^FO600,40^GFA,779,779,19,,3FC,7FE,:IF,:::::IF0FFCI03IFI0F..."
},
{
"type": "zpl",
"order_id": 1250033,
"point_id": 2783375,
"delivery_id": null,
"content": "^XA\n\n^FO600,40^GFA,779,779,19,,3FC,7FE,:IF,:::::IF0FFCI03IFI0F..."
},
{
"type": "zpl",
"order_id": 1250033,
"point_id": 2783376,
"delivery_id": null,
"content": "^XA\n\n^FO600,40^GFA,779,779,19,,3FC,7FE,:IF,:::::IF0FFCI03IFI0F..."
}
]
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest-id.borzodelivery.com/api/business/1.6/labels?type=pdf&order_id[]=1250032&order_id[]=1250033');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-DV-Auth-Token: SECRET_AUTH_TOKEN']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
if ($result === false) {
throw new Exception(curl_error($curl), curl_errno($curl));
}
echo $result;
{
"is_successful": true,
"labels": [
{
"type": "pdf",
"order_id": 1250032,
"point_id": 2783321,
"delivery_id": null,
"content_base64": "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP7/AGwAYQBiAGUAbAAuAHAAZABm..."
},
{
"type": "pdf",
"order_id": 1250032,
"point_id": 2783322,
"delivery_id": null,
"content_base64": "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP7/AGwAYQBiAGUAbAAuAHAAZABm..."
},
{
"type": "pdf",
"order_id": 1250032,
"point_id": 2783323,
"delivery_id": null,
"content_base64": "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP7/AGwAYQBiAGUAbAAuAHAAZABm..."
},
{
"type": "pdf",
"order_id": 1250033,
"point_id": 2783375,
"delivery_id": null,
"content_base64": "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP7/AGwAYQBiAGUAbAAuAHAAZABm..."
},
{
"type": "pdf",
"order_id": 1250033,
"point_id": 2783376,
"delivery_id": null,
"content_base64": "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP7/AGwAYQBiAGUAbAAuAHAAZABm..."
}
]
}
Orders & Deliveries
Order is a general entity that contains all delivery points. You can track order statuses in your personal account or through requests.
Delivery is the entity of a specific order point, only one. Deliveries are created automatically when order is created and have more detailed statuses.
Status model
Order statuses
- new
Newly created order, waiting for verification from our dispatchers.
- available
Order was verified and is available for couriers.
- active
A courier was assigned and is working on the order.
- completed
Order is completed.
- reactivated
Order was reactivated and is again available for couriers.
- draft
The order is a draft and will not be delivered as such. You can create an actual order out of the draft in your Personal cabinet.
- canceled
Order was canceled.
- delayed
Order execution was delayed by a dispatcher.
Delivery statuses
- invalid
Invalid draft delivery
- draft
Draft delivery
- planned
Planned delivery (No courier assigned)
- active
Delivery in process (Courier on the way)
- finished
Delivery finished (Courier delivered the parcel)
- canceled
Delivery canceled
- delayed
Delivery delayed
- courier_assigned
Courier assigned, but still not departed
- courier_departed
Courier departed to the pick-up point
- courier_at_pickup
Courier at the pick-up point
- parcel_picked_up
Courier took parcel at the pick-up point
- courier_arrived
Courier has arrived and is waiting for a customer
- deleted
Delivery deleted
- return_planned
Return planned
- return_courier_assigned
Courier assigned to return delivery
- return_courier_departed
Courier departed for return delivery
- return_courier_picked_up
Courier picked up return delivery
- return_finished
Delivery is returned
- reattempt_planned
Reattempt planned
- reattempt_courier_assigned
Courier assigned to reattempt delivery
- reattempt_courier_departed
Courier departed for reattempt delivery
- reattempt_courier_picked_up
Courier picked up reattempt delivery
- reattempt_finished
Reattempt is finished (delivery finished)
Order types
- standard
Standard delivery. The courier will be at the addresses at your convenience.
Vehicle types
-
1 — Car / SUV / pickup (deliveries under 500 kg).
-
2 — Minivan (under 700 kg).
-
3 — Van (under 1000 kg).
-
7 — Car.
-
8 — Motorbike.
Payment methods
-
cash — Cash payment.
-
balance — Payment from balance.
-
bank_card — Payment from binded bank card.
Label types
- zpl
Label in ZPL (Zebra) format.
- pdf
Label in PDF format.
Notification about order changes
You may enter a Callback URL in your Personal cabinet and we will send notifications about order changes to that URL.
Data will be sent via HTTP method POST in JSON format and UTF-8 encoding.
If your URL responds with any HTTP status other than 2XX (OK), our server will treat it as an error. We will then retry to send the request with increasing intervals between attempts for 24 hours until we get HTTP status 2XX in response.
If a successful response was not received after 24 hours, we will stop retrying. In this case an email notification will be sent to your address.
Request parameters
- X-DV-Signature string
Signature of the request data. Use it to verify that the request actually came from our servers.
The signature will be sent as a HTTP header.
To verify the signature, calculate a HMAC hash using SHA256 and Callback Secret Key, which can be found in your Personal cabinet.
- event_datetime timestamp
Event date and time.
- event_type string
Event type:
order_created
- if order created,order_changed
- if order params changed. - order object
Order data.
Order parameters
- order_id integer
Full order ID.
- type string
Order type.
- matter string
Delivery contents.
- order_name string
Order name (short order ID).
- vehicle_type_id integer
Vehicle type.
- created_datetime timestamp
Order creation date and time.
- status string
Order status.
- status_description string
Order status description.
- total_weight_kg integer
Total weight in kilograms.
- is_client_notification_enabled boolean
Whether to send SMS notifications to the client.
- is_contact_person_notification_enabled boolean
Whether to send SMS notifications to recipients on addresses.
- loaders_count integer
Number of necessary loaders to move the delivered goods, including the driver.
- points list
List of addresses (points) for the courier to visit.
Point parameters
- point_id integer
Point ID.
- address string
Street address.
- contact_person object
Contact person on the address.
- latitude coordinate
Latitude of the location.
- longitude coordinate
Longitude of the location.
- taking_amount money
Backpayment sum to receive from the contact person at the address.
- buyout_amount money
Buyout sum the courier pays to the contact person at the address.
- packages list
List of packages at the point.
- is_cod_cash_voucher_required boolean
Whether to issue a cashier's check to the recipient at the address.
- is_order_payment_here boolean
Money will be paid to the courier at the address.
- is_return_point boolean
Return point (same as first or hub).
-
Delivery parameters
- status string
Delivery status.
-
-
-
Courier parameters
- courier_id integer
Courier ID.
- surname string
Surname of the courier.
- name string
Name of the courier.
- middlename string
Middlename of the courier.
- phone phone
Phone of the courier.
- latitude coordinate / null
Latitude of the location.
Only for active orders, if the courier is on the way.
- longitude coordinate / null
Longitude of the location.
Only for active orders, if the courier is on the way.
-
- is_motobox_required boolean
Is motobox required.
- is_thermobox_required boolean
Is thermobox required.
- payment_method string
Payment method.
- is_return_required boolean
Order has return.
- promo_code_discount_amount money
Discount amount by promo code.
Part of order price (
payment_amount
).
-
Example of a callback handler
PHP
<?php
if (!isset($_SERVER['HTTP_X_DV_SIGNATURE'])) {
echo 'Error: Signature not found';
exit;
}
$data = file_get_contents('php://input');
$signature = hash_hmac('sha256', $data, 'CALLBACK_SECRET_KEY');
if ($signature != $_SERVER['HTTP_X_DV_SIGNATURE']) {
echo 'Error: Signature is not valid';
exit;
}
echo $data;
{
"event_datetime": "2024-12-04T00:21:48+07:00",
"event_type": "order_created",
"order": {
"type": "standard",
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2024-12-04T00:21:48+07:00",
"finish_datetime": null,
"status": "available",
"status_description": "available",
"matter": "Documents",
"total_weight_kg": 0,
"is_client_notification_enabled": false,
"is_contact_person_notification_enabled": false,
"loaders_count": 0,
"backpayment_details": null,
"points": [{
"point_id": 202685,
"delivery_id": null,
"client_order_id": null,
"address": "JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310",
"latitude": "-6.3037234",
"longitude": "106.6886525",
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": {
"recipient_full_name": "Luvie Mevia Azzahra",
"recipient_position": null
},
"is_return_point": false,
"tracking_url": null,
"delivery": null
}, {
"point_id": 202686,
"delivery_id": null,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": "-6.2914558",
"longitude": "106.8322649",
"required_start_datetime": "2024-12-04T01:51:48+07:00",
"required_finish_datetime": "2024-12-04T02:21:48+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null,
"packages": [],
"is_cod_cash_voucher_required": false,
"is_order_payment_here": false,
"building_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"apartment_number": null,
"invisible_mile_navigation_instructions": null,
"place_photo_url": null,
"sign_photo_url": null,
"checkin_code": null,
"checkin": null,
"is_return_point": false,
"tracking_url": null,
"delivery": {
"status": "planned"
}
}],
"payment_amount": "15000.00",
"delivery_fee_amount": "15000.00",
"weight_fee_amount": "0.00",
"insurance_amount": "0.00",
"insurance_fee_amount": "0.00",
"loading_fee_amount": "0.00",
"money_transfer_fee_amount": "0.00",
"promo_code_discount_amount": "3000.00",
"backpayment_amount": "0.00",
"cod_fee_amount": "0.00",
"return_fee_amount": "0.00",
"waiting_fee_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"courier": null,
"is_motobox_required": false,
"payment_method": "cash",
"bank_card_id": null,
"applied_promo_code": "FIRST_ORDER",
"is_return_required": false
}
}
Notification about delivery changes
You may enter a Callback URL and enable delivery callback in your Personal cabinet and we will send notifications about delivery changes to that URL.
Data will be sent via HTTP method POST in JSON format and UTF-8 encoding.
If your URL responds with any HTTP status other than 2XX (OK), our server will treat it as an error. We will then retry to send the request with increasing intervals between attempts for 24 hours until we get HTTP status 2XX in response.
If a successful response was not received after 24 hours, we will stop retrying. In this case an email notification will be sent to your address.
Request parameters
- X-DV-Signature string
Signature of the request data. Use it to verify that the request actually came from our servers.
The signature will be sent as a HTTP header.
To verify the signature, calculate a HMAC hash using SHA256 and Callback Secret Key, which can be found in your Personal cabinet.
- event_datetime timestamp
Event date and time.
- event_type string
Event type:
delivery_created
- if delivery created,delivery_changed
- if delivery params changed. - delivery object
Delivery data.
Delivery parameters
- delivery_id integer
Unique delivery ID.
- delivery_type string
Delivery type (for now its only
plain
supported). - client_id integer
Client ID.
- address string
Street address.
- latitude coordinate / null
Delivery point coordinates (latitude).
- longitude coordinate / null
Delivery point coordinates (longitude).
- status string
Delivery status.
- status_description string
Delivery status description.
- status_datetime timestamp
Delivery status change date and time.
- created_datetime timestamp
Delivery creation date and time.
- contact_person object
Contact person on the address.
- required_start_datetime timestamp
How early the courier may arrive at the address.
- required_finish_datetime timestamp
How late the courier may arrive at the address.
- taking_amount money
Backpayment sum to receive from the contact person at the address.
- buyout_amount money
Buyout sum the courier pays to the contact person at the address.
- is_cod_cash_voucher_required boolean
Whether to issue a cashier's check to the recipient at the address.
- is_motobox_required boolean
Is motobox required (only for draft).
- is_thermobox_required boolean
Is thermobox required (only for draft).
- is_door_to_door boolean
Delivery from door to door (only for draft).
- is_return_to_first_point_required boolean
Is return to pick-up point required (only for draft).
- insurance_amount money
Insured amount (only for draft).
- weight_kg integer
Weight, in kilograms (only for draft).
-
Courier parameters
- courier_id integer
Courier ID.
- surname string
Surname of the courier.
- name string
Name of the courier.
- middlename string
Middlename of the courier.
- phone phone
Phone of the courier.
- latitude coordinate / null
Latitude of the location.
Only for active orders, if the courier is on the way.
- longitude coordinate / null
Longitude of the location.
Only for active orders, if the courier is on the way.
-
- packages list
List of packages at the delivery point.
Package parameters
-
Example of a callback handler
PHP
<?php
if (!isset($_SERVER['HTTP_X_DV_SIGNATURE'])) {
echo 'Error: Signature not found';
exit;
}
$data = file_get_contents('php://input');
$signature = hash_hmac('sha256', $data, 'CALLBACK_SECRET_KEY');
if ($signature != $_SERVER['HTTP_X_DV_SIGNATURE']) {
echo 'Error: Signature is not valid';
exit;
}
echo $data;
{
"event_datetime": "2024-12-04T00:21:48+07:00",
"event_type": "delivery_created",
"delivery": {
"delivery_id": 11712,
"delivery_type": "plain",
"order_id": 1250032,
"client_id": 180198,
"client_order_id": null,
"address": "Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540",
"latitude": null,
"longitude": null,
"status": "active",
"status_description": "active",
"status_datetime": "2024-12-04T00:21:48+07:00",
"created_datetime": "2024-12-04T00:21:48+07:00",
"order_name": "50032",
"order_payment_amount": "15000.00",
"delivery_price_amount": "15000.00",
"point_id": 203902,
"contact_person": {
"name": null,
"phone": "6288800000001"
},
"note": null,
"building_number": null,
"apartment_number": null,
"entrance_number": null,
"intercom_code": null,
"floor_number": null,
"invisible_mile_navigation_instructions": null,
"required_start_datetime": "2024-12-04T00:51:48+07:00",
"required_finish_datetime": "2024-12-04T01:21:48+07:00",
"taking_amount": "0.00",
"buyout_amount": "0.00",
"is_cod_cash_voucher_required": false,
"is_motobox_required": false,
"is_door_to_door": false,
"is_return_to_first_point_required": false,
"matter": null,
"insurance_amount": "0.00",
"weight_kg": 0,
"packages": [],
"checkin_issue_name": null,
"tracking_url": null
}
}
Use cases
How to place an order
The creation scheme for the standard order type consists of 2 stages:
- Delivery cost calculation and displaying the result to the user.
To do this, use the /calculate-order method with the same data that will be used when creating the order. At this stage, only recipient's contact data could be missed(data within the fields of thecontact_person
object) and will not affect the calculation result. The shipping cost will be returned in thepayment_amount
field.
The resulting errors will be shown in thewarnings
block, but the price will be returned even if there are critical errors. - Placing an order for delivery.
To create an order, use the /create-order method, specifying the data in all parameters designated as mandatory. Please note that in the list ofpoints
it is impossible to pass less than 2 points, since the first point must be the pick-up point.
At this stage, all errors are critical and prevent the creation of an order. The list of errors is returned in theerrors
block. After successfully placing an order, it will be displayed in your personal Borzo account.
How to track order/delivery
There are two options for tracking order/delivery changes. Automatic via callbacks and manual via request.
Automatic method
We have different callbacks for deliveries and orders for more detailed tracking and completeness of information. In case of any changes in these entities, the system automatically sends callbacks with the necessary information to the Callback URL specified in the personal account on the "Integration" tab. The callback token that is used to calculate signatures is also the same for both types of callbacks. However, the format of callbacks on orders and delivery callbacks varies, which is important to consider when receiving information via this method. If it is impossible to deliver a callback to the specified URL (HTTP code 4xx-5xx), then callbacks are re-sent at an increasing interval until a positive response is received (HTTP code 2xx), or until 24 hours have passed from the first failed attempt.
Manual method
Manual method allows you to get updated information anytime upon request. You can find detailed description about sending status request on orders and on deliveries.
Goods buyout
Rider will pay for goods he receives and then will take cash for them from the customer if during order placement you pass the following parameters:
-
buyout_amount
. Belongs to the pickup point. This parameter should contain cash that the rider will have to pay for goods during pickup. -
taking_amount
. Belongs to delivery points. Cash amount that should be taken from customers should be passed in this parameter.
Please note that sum of all buyout_amount
values in the order can never exceed sum of all taking_amount
values in the same order. If total taking amount is greater than total buyout amount in the order, backpayment_details
should be used as described in Cash remittance section to get back the difference.
Example of order with goods buyout creation:
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"matter":"Documents","points":[{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310","buyout_amount":100.00,"contact_person":{"phone":"6288800000001"}},{"address":"Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540","taking_amount":100.00,"contact_person":{"phone":"6288800000001"}}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/create-order'
Cash remittance
To enable cash remittance option the following parameters should be used during order placement:
-
backpayment_details
. Belongs to the main body. Please put your bank account details in short form here for rider to be able to send collected cash to it. -
taking_amount
. Belongs to delivery points. Cash amount that should be taken from customers should be passed in this parameter.
Example of order with cash remittance creation:
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"matter":"Documents","backpayment_details":"Sample bank details 111111111111","points":[{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310","contact_person":{"phone":"6288800000001"}},{"address":"Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540","taking_amount":100.00,"contact_person":{"phone":"6288800000001"}}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/create-order'
Cash on delivery (COD) service
To enable COD feature, you should pass the following parameters during order placement:
-
is_cod_cash_voucher_required
. Belongs to delivery points. Should be set as true to enable the option. -
taking_amount
. Belongs to delivery points. Cash amount that should be taken from customers should be passed in this parameter.
Example of order with COD option creation:
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"matter":"Documents","points":[{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310","contact_person":{"phone":"6288800000001"}},{"address":"Jl. Raya Ragunan No.39, RT.1/RW.2, Ps. Minggu, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12540","is_cod_cash_voucher_required":true,"taking_amount":100.00,"contact_person":{"phone":"6288800000001"}}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/create-order'
Error codes
Request error codes
- unexpected_error
Unexpected error. Please let us know at [email protected].
- invalid_api_version
Unknown API version. Available versions are 1.0, 1.1 and 1.2.
- required_api_upgrade
Requested API version was discontinued. You should use the latest version instead.
- requests_limit_exceeded
You have reached an API usage limit.
Limits are: 100 requests per minute, 5 000 requests per 24 hours.
- required_auth_token
X-DV-Auth-Token
header is missing from the request. - invalid_auth_token
X-DV-Auth-Token
you are sending is invalid. - required_method_get
HTTP method GET is required.
- required_method_post
HTTP method POST is required.
- invalid_post_json
POST request body must be in JSON format.
- invalid_parameters
Request parameters contain errors. Look at
parameter_errors
response field for details. - unapproved_contract
Your agreement is not approved yet (for legal entities).
- service_unavailable
Our service is temporarily unavailable. Please try again later.
- invalid_api_method
Unknown API method was requested.
- buyout_not_allowed
You do not have access to buyout feature.
- insufficient_balance_for_buyout
You do not have enough money for buyout.
- order_cannot_be_edited
Order cannot be edited.
- order_cannot_be_canceled
Order cannot be canceled.
- insufficient_balance
Your balance is too low (for legal entities).
- buyout_amount_limit_exceeded
Total buyout amount in your active orders is too large. You do not have sufficient balance / credit limit to place the new order.
- route_not_found
Route not found.
- total_payment_amount_limit_exceeded
Exceeded maximum order price.
- order_is_duplicate
Duplicate order rejected
- insufficient_funds
Insufficient funds on your bank card
- card_payment_failed
Bank card payment failed
- impossible_delivery_fee_calculation
Can't calculate delivery price. Please let tech support know at [email protected].
- tax_retension_limit
The order must be paid by balance
Request example
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/unknown'
HTTP/1.1 400 Bad Request
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": false,
"errors": ["invalid_api_method"],
"parameter_errors": null
}
Parameter error codes
- required
Required parameter was not provided.
- unknown
Unknown parameter was encountered.
- invalid_list
Invalid JSON list.
- invalid_object
Invalid JSON object.
- invalid_boolean
Invalid boolean.
- invalid_date
Invalid date or time.
- invalid_date_format
Invalid date and time format.
- invalid_float
Invalid floating point number.
- invalid_integer
Invalid integer number.
- invalid_string
Invalid string.
- invalid_order
Order ID was not found.
- invalid_point
Point ID was not found.
- invalid_order_status
Invalid order status.
- invalid_vehicle_type
Invalid vehicle type.
- invalid_phone
Invalid phone number.
- invalid_region
Address is out of the delivery area for the region.
- invalid_order_package
Package was not found.
- invalid_delivery_id
Delivery ID was not found.
- invalid_delivery_package
Package ID for delivery was not found.
- invalid_delivery_status
Invalid delivery status.
- invalid_bank_card
Bank card ID was not found.
- invalid_url
Invalid url.
- invalid_enum_value
Invalid enum value.
- invalid_postal_code
Invalid enum value.
- invalid_delivery_interval
Invalid postal code.
- different_regions
Addresses from different regions are not allowed.
- address_not_found
Address geocoding failed. Check your address with Google Maps service.
- min_length
String value is too short.
- max_length
String value is too long.
- min_date
Date and time is older than possible.
- max_date
Date and time is later than possible.
- min_size
List size is too small.
- max_size
List size is too large.
- min_value
Value is too small.
- max_value
Value is too large.
- cannot_be_past
Date and time cannot be in the past.
- start_after_end
Incorrect time interval. Start time should be earlier than the end.
- earlier_than_previous_point
Incorrect time interval. Time cannot be earlier than previous point time.
- coordinates_out_of_bounds
Point coordinates are outside acceptable delivery areas.
- not_editable
Parameter value is not allowed to edit..
- not_nullable
Parameter value can not be null.
- not_allowed
Parameter value is not allowed.
- order_payment_only_one_point
Order payment can be specified only for one point.
- cod_agreement_required
COD agreement required.
- cod_is_not_allowed_with_buyout
COD is not allowed with buyout.
- sameday_pickup_interval_too_short
Same day pickup interval is too short.
- invalid_value
Invalid promo code.
- promo_code_already_used
Promo code has already been used.
- promo_code_not_available
Promo code not available for selected address.
Request example
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"points":[{"address":"JL. Jawa, Blok J1 No. 31, Komplek Nusaloka, Tangerang, Rw. Mekar Jaya, Serpong, Kota Tangerang Selatan, Banten 15310","contact_person":{"phone":"6288800000001"}},{}]}' 'https://robotapitest-id.borzodelivery.com/api/business/1.6/create-order'
HTTP/1.1 400 Bad Request
Date: Tue, 03 Dec 2024 17:21:48 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": false,
"errors": ["invalid_parameters"],
"parameter_errors": {
"matter": ["required"],
"points": [
null,
{
"address": ["required"],
"contact_person": {
"phone": ["required"]
}
}
]
}
}
Changelog
Version 1.0
- 23.11.2017
New error codes:
route_not_found
,invalid_region
,different_regions
. - 31.05.2018
Allowed to send order IDs list for orders API method.
- 20.07.2018
New API method courier to get courier info.
- 23.10.2018
New error code
earlier_than_previous_point
.
Version 1.1
- 18.04.2019
Field
receipt_document_url
is always null.Field
receipt_document_url
is no longer available in order info. - 29.11.2019
New error codes:
coordinates_out_of_bounds
,total_payment_amount_limit_exceeded
. - 14.01.2020
Added new field to order parameters:
is_motobox_required
. - 11.03.2020
Added methods to manage deliveries: Create draft deliveries, Edit draft deliveries, Delete draft deliveries, List of deliveries.
Added callbacks to deliveries (Notification about delivery changes).
New error codes:
invalid_delivery_id
,invalid_delivery_package
,invalid_delivery_status
- 08.07.2020
Added methods to pay with bank card (for some countries): Available bank cards, Client profile info (helps get allowed payment methods)
Added
payment_method
parameter (Placing an order).New error codes:
invalid_bank_card
,insufficient_funds
,card_payment_failed
- 22.09.2020
Added ability to create order from draft deliveries (see example 3): Placing an order
Added method to calculate routes from draft deliveries: Make routes from deliveries
- 18.05.2021
Added
type
parameter (Order types).Added method to get delivery intervals for «Same day» orders: List of delivery intervals
New error codes:
invalid_delivery_interval
,sameday_pickup_interval_too_short
. - 01.10.2021
New error code
insufficient_balance_for_buyout
- 19.10.2021
Added the ability to create a COD orders without detailing by goods
- 10.01.2022
Added
promo_code
parameter to order calculation and creation requests.Added
applied_promo_code
,promo_code_discount_amount
fields to order calculation and creation responses.Added new error codes:
invalid_value
;promo_code_already_used
;promo_code_not_available
.
- 24.01.2022
Point's parameter
is_door_to_door
is set to false by default (Create draft deliveries) - 20.04.2022
Added method to retrieve a list of labels for boxes: List of labels
- 01.06.2022
Allow to create order with return.
Send flag
is_return_required
in order creation payload.
Version 1.2
- 02.06.2022
Removed obsolete order parameters
suburban_delivery_fee_amount
anddiscount_amount
. - 01.11.2022
New parameters
latitude
andlongitude
were added into Create draft deliveries, Edit draft deliveries methods. - 09.01.2023
The notification about delivery changes no longer contains the
pickup_point
anddropoff_point
fields.
Version 1.3
- 27.01.2023
Added new statuses to delivery:
courier_at_pickup
;return_planned
;return_courier_assigned
;return_courier_departed
;return_courier_picked_up
;reattempt_planned
;reattempt_courier_assigned
;reattempt_courier_departed
;reattempt_courier_picked_up
;reattempt_finished
;
Removed delivery status
return_active
. - 13.10.2023
Added new order parameters:
return_fee_amount
andwaiting_fee_amount
Version 1.4
- 21.03.2023Order payment method has been renamed from
non_cash
tobalance
. The renaming affected the input and output parameters of the following methods Order price calculation, Placing an order and Order editing, output parameters of the following methods Client profile info, Canceling an order and List of orders, as well as the order model inorder_created
andorder_changed
event callbacks. - 21.03.2023Added a new type of order named hyperlocal. The corresponding
type
parameter new value is accepted by the methods Order price calculation and Placing an order.
Version 1.5
- 10.04.2024Parameter
overnight_fee_amount
removed fromorder
section.
Version 1.6
- 28.05.2024
Parameters below became nullable in
order
section:payment_amount
;delivery_fee_amount
;weight_fee_amount
;insurance_fee_amount
;loading_fee_amount
;money_transfer_fee_amount
;promo_code_discount_amount
;cod_fee_amount
;return_fee_amount
;waiting_fee_amount
;
- 14.01.2020
Added new field to order parameters:
is_thermobox_required
.