Skip to main content
Version: 1.0.0

Create Order

Create a new order by user (support both GET/POST method)

curl --request POST \
--url https://apistg.ahamove.com/v1/order/create \
--header 'Cache-Control: no-cache' \
--header 'accept: application/json' \
--header 'content-type: application/x-www-form-urlencoded' \
--data-urlencode 'service_id=SGN-BIKE' \
--data-urlencode 'payment_method=CASH' \
--data-urlencode 'promo_code=KHUYENMAI' \
--data-urlencode 'remarks=This is note for order' \
--data-urlencode 'order_time=0' \
--data-urlencode 'requests=[{"_id":"SGN-BIKE-TIP","num":2}]' \
--data-urlencode 'path=[{"lat":10.7692105,"lng":106.6637935,"address":"725 Hẻm số 7 Thành Thái, Phường 14, Quận 10, Hồ Chí Minh, Việt Nam","short_address":"Quận 10","name":"nmbmb","mobile":"84xxxxxxxxx"},{"lat":10.7828887,"lng":106.704898,"address":"Miss Ao Dai Building, 21 Nguyễn Trung Ngạn, Bến Nghé, Quận 1, Hồ Chí Minh, Vietnam","name":"Bao","mobile":"84xxxxxxxxx","remarks":"call me","cod":85000,"tracking_number":"1234"}]' \
--data-urlencode 'items=[{"_id": "TS","num": 2,"name": "Sua tuoi","price": 15000},{"_id": "ST","num": 2,"name": "Sinh to","price": 30000}]' \
--data-urlencode 'token=<TOKEN_STG>'

HTTP Request​

POST https://apistg.ahamove.com/v1/order/create (x-wwww-form-urlencoded)

or

GET https://apistg.ahamove.com/v1/order/create

Parameters​

# Parameters
{
"order_time": 0,
"path": [
{
"lat": 10.7692105,
"lng": 106.6637935,
"address": "725 Hẻm số 7 Thành Thái, Phường 14, Quận 10, Hồ Chí Minh, Việt Nam",
"short_address": "Quận 10",
"name": "nmbmb",
"mobile":"84xxxxxxxxx"
},
{
"lat": 10.7828887,
"lng": 106.704898,
"address": "Miss Ao Dai Building, 21 Nguyễn Trung Ngạn, Bến Nghé, Quận 1, Hồ Chí Minh, Vietnam",
"name": "Bao",
"mobile":"84xxxxxxxxx",
"remarks": "call me",
"cod": 85000,
"tracking_number": "1234"
}
],
"service_id": "SGN-BIKE",
"requests": [
{
"_id": "SGN-BIKE-TIP",
"num": 2
}
],
"images": [],
"promo_code": "KHUYENMAI",
"remarks": "Call me when arrived",
"payment_method": "CASH",
"items": [
{
"_id": "TS",
"num": 2,
"name": "Sua tuoi",
"price": 15000
},
{
"_id": "ST",
"num": 2,
"name": "Sinh to lua mach",
"price": 30000
}
]
}
ParameterTypeRequiredDescription
tokenStringYesThe user Token.
order_timeNumber (Unix timestamp)YesThe pickup time. Set 0 to pickup ASAP.
pathStringYesAt least 2 pairs (described in more detail below).
service_idStringYesAhamove Service ID (SGN-BIKE, SGN-POOL, etc.).
requestsArrayYesJSONArray representing Special Requests.
payment_methodStringYesPayment method chosen by user
- BALANCE: Payment through the Ahamove account of the user
- CASH: Payment in cash by the Sender
- CASH_BY_RECIPIENT: Payment in cash by the Recipient
imagesArrayNoJSONArray representing image urls.
promo_codeStringNoPromo code to discount shipping fee.
remarksStringNoRemarks.
idle_untilNumber (Unix timestamp)YesThe broadcast time. Set idle_until=order_time if order_time > 0. Optional if order_time is 0.
itemsArrayNoJSONArray representing items (for Food Partners)
typeStringNoOrder type, for eg: warehouse, etc … Treat as normal flow incase type is not specified
need_optimize_routeBooleanNoIn case, if partner need Ahamove to optimize route (1 pickup, > 2 drop off points)

Path​

Representing From path[0] and multiple Tos path[x], x > 0

ParameterTypeRequiredDescription
addressStringYesAddress of the location.
latNumberYesLatitude of the location (Optional but highly recommended).
lngNumberYesLongitude of the location (Optional but highly recommended).
nameStringYesRecipient's name. Optional if is path[0].
mobileStringYesRecipient's mobile number. Optional if is path[0].
tracking_numberStringNoTracking number for the package (Partner's internal order id, not required but Ahamove highly recommended having this field in path[x]).
remarksStringNoNote to supplier, for multiple delivery points.
codNumberNoCOD amount (Cash on delivery)
require_podBooleanNoIf true, supplier will be required proof of delivery before complete the transaction
buildingStringNoBuilding name for delivery to door
apt_numberStringNoApartment, Suite or Floor number for delivery to door

Note​

lat and lng is not required but address field in parameters needs to have correct information as shown in the format below

[House number] [Street name], [Ward], [District], [Province/City], Việt nam

Ex: 117 Hùng Vương, Phường 4, Quận 5, Thành phố Hồ Chí Minh, Việt Nam
or 117 Hùng Vương, Phường 4, Quận 5, Hồ Chí Minh

Some types of Invalid Address :

  • 658 võ văn kiệt p1 Quận 5 Hồ Chí Minh
  • 58 Nghĩa Thục - Phường 5 - Quận 5 - Hồ Chí Minh - Việt Nam
  • 22 Bùi Hữu Nghĩa
  • 60/62 chiêu anh các
  • 930 vo văn Kiệt p5q5
  • Có ji e gởi đia chỉ 835/17c trần hung dao p1 q5 tphcm giúp c nha, Phường 01, Quận 5, Thành phố Hồ Chí Minh
  • 54 Bạch Vân (Nhà màu xanh cuối hẻm, gọi số 0908999999), Phường 5, Quận 5, TP Hồ Chí Minh
  • 189 Trần Tuấn Khải F.5 Q.5 Ngay ngã 3 Trần Hưng Đạo
  • địa chỉ: 53 Huỳnh Mẫn Đạt phường 5 Quận 5 TP.HCM ĐT: 0912123456
  • 14/20 .an binh p5q5
  • 155 Trần Tuần Khải, p5, q5
  • Số 1 bạch Vân phường 5 quận 5 TPHCM
  • đc hẻm 93/107/16 đường bạch vân p5 q5
  • 112 An Bình P5, Quận 5, HCM
  • 1025, Phường 5, Quận 5

Response​

JSON response example:

{
"order_id": "USAGND",
"status": "ASSIGNING",
"shared_link": "https://cloudstg.ahamove.com/share-order/USAGND/84909055578",
"order": {
"_id": "USAGND",
"currency": "VND",
"user_main_account": 0,
"user_bonus_account": 0,
"total_pay": 33000,
"distance": 1.02,
"duration": 268,
"distance_fee": 23000,
"request_fee": 10000,
"stop_fee": 0,
"vat_fee": 0,
"discount": 0,
"path": [
{
"address": "Nhà Thờ Đức Bà, Vietnam",
"lat": 10.7797855,
"lng": 106.6990189
},
{
"address": "Chợ Bến Thành, Vietnam",
"lat": 10.7725451,
"lng": 106.6980413
}
],
"from_location": {
"type": "Point",
"coordinates": [106.6990189, 10.7797855]
},
"requests": [
{
"_id": "SGN-BIKE-TIP",
"num": 2
}
],
"items": [],
"total_fee": 33000,
"remarks": "This is note for order",
"app": "Ahamove",
"service_id": "SGN-BIKE",
"city_id": "SGN",
"user_id": "84xxxxxxxxx",
"user_name": "TEST CREATE AN ORDER",
"user_imei": null,
"create_time": 1565577713.2757928,
"order_time": 1565577713.2757928,
"index": 12,
"status": "ASSIGNING",
"partner": "TESTPARTNER",
"polylines": "ukx`A}rfjS~CuDhHnGlBnA|DoEdFcB|BhBxBtDzBmA",
"online_pay": 0,
"notify_package_return": true,
"uniform_user_feedback": 2,
"pending_period": 100,
"stoppoint_price": 0,
"special_request_price": 10000,
"vat": 0,
"distance_price": 23000,
"voucher_discount": 0,
"subtotal_price": 33000,
"total_price": 33000
}
}

Status-Code: 200 OK

Errors​

CodeTextDescription
400INVALID_ADDRESSInvalid Address
404Not Found- Token not found (Token has expired. When a new token is created, the old token has expired)
- Path not found
- Service not found
406Not Acceptable- Booking time not valid
- Address not valid
- Request not valid
- Distance not valid
- Invalid pickup area
- Invalid delivery area
- Concurrent order not allowed (If partner not in token)
- Large COD not allowed for first time user
- Post paid not set for partner
- Not supported payment method
- Not enough credit
- User’s phone number associated with
- Token has been used for a partner
- Child order status not valid (When creating parent order)
- Parent order existed for #ABCXYZ (When creating a parent order but child orders already had a parent)
- Idle until not valid (When client sent idle_until < current_time)
- COD is not valid ( When total COD exceeds the maximum value which was configured in service)
- Number of stop points are not valid
408Request timeoutGoogle Distance API does not return results in 10 seconds.
409Conflict- New order not allow (Not allow 2 consecutive orders in 1 minute)
- Tracking number duplicated (Not allow to create duplicated tracking number within 60s)
500Internal Server ErrorWe had a problem with our server. Try again later.
503Service UnavailableWe're temporarily offline for maintenance. Please try again later.