MrSpeedy Business API 1.0
Overview
Business API allows you to automatically place delivery orders in MrSpeedy. You also can manage your orders and subscribe to updates on any changes in them.
First you should register as a client at robotapitest.mrspeedy.in.th. If you are unable to receive the SMS code when registering, please ask for it at api@mrspeedy.in.th, including your phone number in the email.
Integration of MrSpeedy Business API is done in two steps:
- Setting everything up using test environment at robotapitest.mrspeedy.in.th;
- When it works with apitest, you can switch to production at robot.mrspeedy.in.th.
When you have successfully tested Business API integration with robotapitest.mrspeedy.in.th, please email us at api@mrspeedy.in.th, so we can enable your access to Business API in production environment.
URL for test requests: https://robotapitest.mrspeedy.in.th/api/business/1.0
URL for production requests: https://robot.mrspeedy.in.th/api/business/1.0
API versions are increased with incompatible changes, e.g. changes to data types or removal of request parameters. Non-latest API versions will still be supported for some reasonable time. New requests and parameters in existing requests (e.g. a new field in order structure) can be added at any time without new API versions. You should ignore unknown fields in any API data structures.
If you have any questions or suggestions about the API, please email our support at api@mrspeedy.in.th.
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.mrspeedy.in.th/api/business/1.0'
HTTP/1.1 200 OK
Date: Sat, 16 Feb 2019 10:30:13 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest.mrspeedy.in.th/api/business/1.0');
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":"33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย","contact_person":{"phone":"66902299000"}},{}]}' 'https://robotapitest.mrspeedy.in.th/api/business/1.0/create-order'
HTTP/1.1 400 Bad Request
Date: Sat, 16 Feb 2019 10:30:13 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"]
}
}
]
}
}
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.
You can learn more about our prices at the tariffs page.
Request parameters
-
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.
Default value: 0.
- 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
. - loaders_count integer
Number of necessary loaders to move the delivered goods, including the driver. Maximum is 11.
Default value: 0.
- points list
List of addresses (points) for the courier to visit. Maximum is 99 points.
Default value:
[]
.- contact_person object
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"
.
Response parameters
- is_successful boolean
Whether the request was successful or not.
- order object
Calculated order data.
- 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.
- 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.
- payment_amount money
Order price.
- delivery_fee_amount money
Delivery fee.
Part of order price (
payment_amount
). - weight_fee_amount money
Large weight fee.
Part of order price (
payment_amount
). - insurance_amount money
Insured amount.
- insurance_fee_amount money
Insurance fee.
Part of order price (
payment_amount
). - loading_fee_amount money
Loading / heavy lifting fee.
Part of order price (
payment_amount
). - money_transfer_fee_amount money
Money handling fee: backpayment transfer, buyout operations.
Part of order price (
payment_amount
). - suburban_delivery_fee_amount money
Extra fee for suburban parts of the courier's route.
Part of order price (
payment_amount
). - discount_amount money
Discount amount.
Part of order price (
payment_amount
).
- 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":"33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย"},{"address":"3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย"}]}' 'https://robotapitest.mrspeedy.in.th/api/business/1.0/calculate-order'
HTTP/1.1 200 OK
Date: Sat, 16 Feb 2019 10:30:13 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"order_id": 1250032,
"order_name": null,
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": 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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": null
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": null,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": null
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
},
"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.mrspeedy.in.th/api/business/1.0/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' => '33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย',
],
[
'address' => '3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย',
],
],
];
$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": {
"order_id": 1250032,
"order_name": null,
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": 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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": null
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": null,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": null
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
},
"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
- 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.
Default value: 0.
- 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
. - loaders_count integer
Number of necessary loaders to move the delivered goods, including the driver. Maximum is 11.
Default value: 0.
- points list Required
List of addresses (points) for the courier to visit. The order can contain from 2 to 99 points.
Default value:
[]
.- 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.
- phone phone Required
Phone number of the person at 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"
.
-
Response parameters
- is_successful boolean
Whether the request was successful or not.
- order object
The created order.
- order_id integer
Full order ID.
- 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.
- 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_id integer
Point ID.
- address string
Street address.
- contact_person object
Contact person on the address.
- phone phone
Phone number of the person at 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.
-
- payment_amount money
Order price.
- delivery_fee_amount money
Delivery fee.
Part of order price (
payment_amount
). - weight_fee_amount money
Large weight fee.
Part of order price (
payment_amount
). - insurance_amount money
Insured amount.
- insurance_fee_amount money
Insurance fee.
Part of order price (
payment_amount
). - loading_fee_amount money
Loading / heavy lifting fee.
Part of order price (
payment_amount
). - money_transfer_fee_amount money
Money handling fee: backpayment transfer, buyout operations.
Part of order price (
payment_amount
). - suburban_delivery_fee_amount money
Extra fee for suburban parts of the courier's route.
Part of order price (
payment_amount
). - discount_amount money
Discount amount.
Part of order price (
payment_amount
). -
Courier parameters.
- courier_id integer
Courier ID.
- name string
Name 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' --data '{"matter":"Documents","points":[{"address":"33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย","contact_person":{"phone":"66902299000"}},{"address":"3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย","contact_person":{"phone":"66902299000"}}]}' 'https://robotapitest.mrspeedy.in.th/api/business/1.0/create-order'
HTTP/1.1 200 OK
Date: Sat, 16 Feb 2019 10:30:13 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest.mrspeedy.in.th/api/business/1.0/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' => '33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย',
'contact_person' => [
'phone' => '66902299000',
],
],
[
'address' => '3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย',
'contact_person' => [
'phone' => '66902299000',
],
],
],
];
$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": {
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}
}
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.
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_id integer
Full order ID.
- 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.
- 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_id integer
Point ID.
- address string
Street address.
- contact_person object
Contact person on the address.
- phone phone
Phone number of the person at 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.
-
- payment_amount money
Order price.
- delivery_fee_amount money
Delivery fee.
Part of order price (
payment_amount
). - weight_fee_amount money
Large weight fee.
Part of order price (
payment_amount
). - insurance_amount money
Insured amount.
- insurance_fee_amount money
Insurance fee.
Part of order price (
payment_amount
). - loading_fee_amount money
Loading / heavy lifting fee.
Part of order price (
payment_amount
). - money_transfer_fee_amount money
Money handling fee: backpayment transfer, buyout operations.
Part of order price (
payment_amount
). - suburban_delivery_fee_amount money
Extra fee for suburban parts of the courier's route.
Part of order price (
payment_amount
). - discount_amount money
Discount amount.
Part of order price (
payment_amount
). -
Courier parameters.
- courier_id integer
Courier ID.
- name string
Name 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
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.mrspeedy.in.th/api/business/1.0/edit-order'
HTTP/1.1 200 OK
Date: Sat, 16 Feb 2019 10:30:13 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest.mrspeedy.in.th/api/business/1.0/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": {
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}
}
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":"2019-02-16T19:00:13+07:00","required_finish_datetime":"2019-02-16T19:30:13+07:00"},{"address":"33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย","contact_person":{"phone":"66902299000"}}]}' 'https://robotapitest.mrspeedy.in.th/api/business/1.0/edit-order'
HTTP/1.1 200 OK
Date: Sat, 16 Feb 2019 10:30:13 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202687,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T20:00:13+07:00",
"required_finish_datetime": "2019-02-16T20:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest.mrspeedy.in.th/api/business/1.0/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' => '2019-02-16T19:00:13+07:00',
'required_finish_datetime' => '2019-02-16T19:30:13+07:00',
],
[
'address' => '33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย',
'contact_person' => [
'phone' => '66902299000',
],
],
],
];
$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": {
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202687,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T20:00:13+07:00",
"required_finish_datetime": "2019-02-16T20:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}
}
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.mrspeedy.in.th/api/business/1.0/edit-order'
HTTP/1.1 200 OK
Date: Sat, 16 Feb 2019 10:30:13 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest.mrspeedy.in.th/api/business/1.0/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": {
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": 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_id integer
Full order ID.
- 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.
- 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_id integer
Point ID.
- address string
Street address.
- contact_person object
Contact person on the address.
- phone phone
Phone number of the person at 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.
-
- payment_amount money
Order price.
- delivery_fee_amount money
Delivery fee.
Part of order price (
payment_amount
). - weight_fee_amount money
Large weight fee.
Part of order price (
payment_amount
). - insurance_amount money
Insured amount.
- insurance_fee_amount money
Insurance fee.
Part of order price (
payment_amount
). - loading_fee_amount money
Loading / heavy lifting fee.
Part of order price (
payment_amount
). - money_transfer_fee_amount money
Money handling fee: backpayment transfer, buyout operations.
Part of order price (
payment_amount
). - suburban_delivery_fee_amount money
Extra fee for suburban parts of the courier's route.
Part of order price (
payment_amount
). - discount_amount money
Discount amount.
Part of order price (
payment_amount
). -
Courier parameters.
- courier_id integer
Courier ID.
- name string
Name 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' --data '{"order_id":1250032}' 'https://robotapitest.mrspeedy.in.th/api/business/1.0/cancel-order'
HTTP/1.1 200 OK
Date: Sat, 16 Feb 2019 10:30:13 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"order": {
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "canceled",
"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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest.mrspeedy.in.th/api/business/1.0/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": {
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "canceled",
"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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}
}
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_id integer
Full order ID.
- 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.
- 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_id integer
Point ID.
- address string
Street address.
- contact_person object
Contact person on the address.
- phone phone
Phone number of the person at 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.
-
- payment_amount money
Order price.
- delivery_fee_amount money
Delivery fee.
Part of order price (
payment_amount
). - weight_fee_amount money
Large weight fee.
Part of order price (
payment_amount
). - insurance_amount money
Insured amount.
- insurance_fee_amount money
Insurance fee.
Part of order price (
payment_amount
). - loading_fee_amount money
Loading / heavy lifting fee.
Part of order price (
payment_amount
). - money_transfer_fee_amount money
Money handling fee: backpayment transfer, buyout operations.
Part of order price (
payment_amount
). - suburban_delivery_fee_amount money
Extra fee for suburban parts of the courier's route.
Part of order price (
payment_amount
). - discount_amount money
Discount amount.
Part of order price (
payment_amount
). -
Courier parameters.
- courier_id integer
Courier ID.
- name string
Name 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.
-
-
- 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.mrspeedy.in.th/api/business/1.0/orders?status=available'
HTTP/1.1 200 OK
Date: Sat, 16 Feb 2019 10:30:13 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"orders": [{
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}, {
"order_id": 1250035,
"order_name": "50035",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202695,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}],
"orders_count": 2
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest.mrspeedy.in.th/api/business/1.0/edit-order?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": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}, {
"order_id": 1250035,
"order_name": "50035",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202695,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}],
"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.
- name string
Name 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.mrspeedy.in.th/api/business/1.0/courier?order_id=1250032'
HTTP/1.1 200 OK
Date: Sat, 16 Feb 2019 10:30:13 GMT
Content-Type: application/json; charset=utf-8
{
"is_successful": true,
"courier": {
"courier_id": 72384,
"name": "Name",
"phone": "66902299000",
"photo_url": null,
"latitude": "13.6931036",
"longitude": "100.6011547"
}
}
PHP
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://robotapitest.mrspeedy.in.th/api/business/1.0/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,
"name": "Name",
"phone": "66902299000",
"photo_url": null,
"latitude": "13.6931036",
"longitude": "100.6011547"
}
}
Notification abount 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.
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
Order change date and time.
- order object
Order data.
- order_id integer
Full order ID.
- 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.
- 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_id integer
Point ID.
- address string
Street address.
- contact_person object
Contact person on the address.
- phone phone
Phone number of the person at 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.
-
- payment_amount money
Order price.
- delivery_fee_amount money
Delivery fee.
Part of order price (
payment_amount
). - weight_fee_amount money
Large weight fee.
Part of order price (
payment_amount
). - insurance_amount money
Insured amount.
- insurance_fee_amount money
Insurance fee.
Part of order price (
payment_amount
). - loading_fee_amount money
Loading / heavy lifting fee.
Part of order price (
payment_amount
). - money_transfer_fee_amount money
Money handling fee: backpayment transfer, buyout operations.
Part of order price (
payment_amount
). - suburban_delivery_fee_amount money
Extra fee for suburban parts of the courier's route.
Part of order price (
payment_amount
). - discount_amount money
Discount amount.
Part of order price (
payment_amount
). -
Courier parameters.
- courier_id integer
Courier ID.
- name string
Name 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.
-
-
If your URL responds with any HTTP status other than 200 (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 200 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.
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 found';
exit;
}
echo $data;
{
"event_datetime": "2019-02-16T17:30:13+07:00",
"order": {
"order_id": 1250032,
"order_name": "50032",
"vehicle_type_id": 8,
"created_datetime": "2019-02-16T17:30:13+07:00",
"finish_datetime": null,
"status": "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,
"client_order_id": null,
"address": "33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย",
"latitude": "13.7440632",
"longitude": "100.5541464",
"required_start_datetime": "2019-02-16T18:00:13+07:00",
"required_finish_datetime": "2019-02-16T18:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}, {
"point_id": 202686,
"client_order_id": null,
"address": "3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย",
"latitude": "13.6931036",
"longitude": "100.6011547",
"required_start_datetime": "2019-02-16T19:00:13+07:00",
"required_finish_datetime": "2019-02-16T19:30:13+07:00",
"arrival_start_datetime": null,
"arrival_finish_datetime": null,
"courier_visit_datetime": null,
"contact_person": {
"name": null,
"phone": "66902299000"
},
"taking_amount": "0.00",
"buyout_amount": "0.00",
"note": null
}],
"payment_amount": "170.00",
"delivery_fee_amount": "170.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",
"suburban_delivery_fee_amount": "0.00",
"discount_amount": "0.00",
"backpayment_amount": "0.00",
"backpayment_photo_url": null,
"itinerary_document_url": null,
"waybill_document_url": null,
"receipt_document_url": null,
"courier": null
}
}
Parameter data types
- boolean
Boolean value:
true
orfalse
. - integer
Integer number without fractions.
- string
A JSON string. Example:
"active"
. - timestamp
Date and time according to ISO 8601: YYYY-MM-DDTHH:MM:SSZ. Example:
"2019-02-16T17:30:13+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":"33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย"}, {"address":"3079/25 ถนน สุขุมวิท แขวง บางจาก เขต พระโขนง กรุงเทพมหานคร 10260 ประเทศไทย"}]
. - object
A JSON object. Example:
{"address":"33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย"}
. - money
Money amount (baht). This is a JSON string to prevent rounding errors. Examples:
"190"
,"-49"
. - phone
A JSON string with phone number. Example:
"66902299000"
. - null
Empty value:
null
.
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.
Vehicle types
-
— Car / SUV / pickup (deliveries under 500 kg). Forbidden to use when placing a new order.
-
5 — Truck.
-
7 — Car.
-
8 — Motorbike.
Error codes
Request error codes
- unexpected_error
Unexpected error. Please let us know at api@mrspeedy.in.th.
- invalid_api_version
Unknown API version. Currently there is only version 1.0.
- 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.
- 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.
Request example
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' 'https://robotapitest.mrspeedy.in.th/api/business/1.0/unknown'
HTTP/1.1 400 Bad Request
Date: Sat, 16 Feb 2019 10:30:13 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_courier
Invalid courier ID.
- invalid_phone
Invalid phone number.
- invalid_region
Address is out of the delivery area for the region.
- 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.
Request example
CURL
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"points":[{"address":"33/5 ถนน สุขุมวิท แขวง คลองเตยเหนือ เขต วัฒนา กรุงเทพมหานคร 10110 ประเทศไทย","contact_person":{"phone":"66902299000"}},{}]}' 'https://robotapitest.mrspeedy.in.th/api/business/1.0/create-order'
HTTP/1.1 400 Bad Request
Date: Sat, 16 Feb 2019 10:30:13 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"]
}
}
]
}
}