Nhảy tới nội dung
Phiên bản: 3.0.0

Tạo đơn

Tạo đơn hàng với một hoặc nhiều điểm giao hàng

Tạo đơn dùng service_idrequests

curl --location 'https://partner-apistg.ahamove.com/v3/orders' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{
"order_time": 0,
"path": [
{
"lat": 10.76975346,
"lng": 106.6636615,
"address": "7/28 Thành Thái, Phường 14, Quận 10, Thành phố Hồ Chí Minh",
"short_address": "Thành Thái, Quận 10",
"name": "Lan",
"mobile": "84944309348",
"remarks": "Đến nơi lấy hàng đọc mã đơn để nhận hàng"
},
{
"lat": 10.8018493,
"lng": 106.714466,
"address": "475A Điện Biên Phủ, Phường 25, Bình Thạnh, Thành phố Hồ Chí Minh",
"short_address": "Đại Học Hutech, Quận Bình Thạnh, Hồ Chí Minh",
"name": "Anh",
"mobile": "0912345678",
"cod": 100000,
"item_value": 250000,
"tracking_number": "ABCD1234",
"remarks": "Gọi điện trước khi giao. Giao hàng cẩn thận"
}
],
"service_id": "SGN-BIKE",
"requests": [
{
"_id": "SGN-BIKE-TIP",
"num": 1
},
{
"_id": "SGN-BIKE-BULKY",
"tier_code": "TIER_2"
}
],
"payment_method": "CASH",
"remarks": "Ghi chú đơn hàng",
"promo_code" : "AHMKM",
"items": [
{
"_id": "TG",
"num": 1,
"name": "Tủ gỗ nhỏ",
"price": 450000
},
{
"_id": "GDB",
"num": 2,
"name": "Gương để bàn",
"price": 120000
}
],
"package_detail": [
{
"weight": 10,
"length": 1.2,
"width": 0.8,
"height": 2.0,
"description": "Nội thất"
}
]
}'

Tạo đơn dùng group_service_idgroup_requests

Ahamove sẽ tự xác định service_id dựa vào định vị của địa chỉ lấy hàng và group_service_id

curl --location 'https://partner-apistg.ahamove.com/v3/orders' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{
"order_time": 0,
"path": [
{
"lat": 10.76975346,
"lng": 106.6636615,
"address": "7/28 Thành Thái, Phường 14, Quận 10, Thành phố Hồ Chí Minh",
"short_address": "Thành Thái, Quận 10",
"name": "Lan",
"mobile": "84944309348",
"remarks": "Đến nơi lấy hàng đọc mã đơn để nhận hàng"
},
{
"lat": 10.8018493,
"lng": 106.714466,
"address": "475A Điện Biên Phủ, Phường 25, Bình Thạnh, Thành phố Hồ Chí Minh",
"short_address": "Đại Học Hutech, Quận Bình Thạnh, Hồ Chí Minh",
"name": "Anh",
"mobile": "0912345678",
"cod": 100000,
"item_value": 250000,
"tracking_number": "ABCD1234",
"remarks": "Gọi điện trước khi giao. Giao hàng cẩn thận"
}
],
"group_service_id": "BIKE",
"group_requests": [
{
"_id": "TIP",
"num": 1
},
{
"_id": "BULKY",
"tier_code": "TIER_2"
}
],
"payment_method": "CASH",
"remarks": "Ghi chú đơn hàng",
"promo_code" : "AHMKM",
"items": [
{
"_id": "TG",
"num": 1,
"name": "Tủ gỗ nhỏ",
"price": 450000
},
{
"_id": "GDB",
"num": 2,
"name": "Gương để bàn",
"price": 120000
}
],
"package_detail": [
{
"weight": 10,
"length": 1.2,
"width": 0.8,
"height": 2.0,
"description": "Nội thất"
}
]
}'

HTTP Request

POST https://partner-apistg.ahamove.com/v3/orders

Headers

ParameterValueYêu cầuMô tả
Content-Typeapplication/json
AuthorizationBearer <token>Token của người tạo đơn

Body

{
"order_time": 0,
"path": [
{
"lat": 10.76975346,
"lng": 106.6636615,
"address": "7/28 Thành Thái, Phường 14, Quận 10, Thành phố Hồ Chí Minh",
"short_address": "Thành Thái, Quận 10",
"name": "Lan",
"mobile": "84944309348",
"remarks": "Đến nơi lấy hàng đọc mã đơn để nhận hàng"
},
{
"lat": 10.8018493,
"lng": 106.714466,
"address": "475A Điện Biên Phủ, Phường 25, Bình Thạnh, Thành phố Hồ Chí Minh",
"short_address": "Đại Học Hutech, Quận Bình Thạnh, Hồ Chí Minh",
"name": "Anh",
"mobile": "0912345678",
"cod": 100000,
"item_value": 250000,
"tracking_number": "ABCD1234",
"remarks": "Gọi điện trước khi giao. Giao hàng cẩn thận"
}
],
"service_id": "SGN-BIKE",
"requests": [
{
"_id": "SGN-BIKE-TIP",
"num": 1
},
{
"_id": "SGN-BIKE-BULKY",
"tier_code": "TIER_2"
}
],
"payment_method": "CASH",
"remarks": "Ghi chú đơn hàng",
"promo_code": "AHMKM",
"items": [
{
"_id": "TG",
"num": 1,
"name": "Tủ gỗ nhỏ",
"price": 450000
},
{
"_id": "GDB",
"num": 2,
"name": "Gương để bàn",
"price": 120000
}
],
"package_detail": [
{
"weight": 10,
"length": 1.2,
"width": 0.8,
"height": 2.0,
"description": "Nội thất"
}
]
}

Parameters

ParameterTypeYêu cầuMô tả
order_timeFloat (Unix timestamp)Thời gian giao hàng. Đặt đơn hàng giao ngay thì order_time = 0
pathArrayDanh sách các điểm lấy và giao hàng. Tối thiểu phải có 2 path (thông tin lấy và giao)
service_idStringMã dịch vụ của AhaMove (SGN-BIKE, SGN-ECO,...)
requestsArrayDanh sách các dịch vụ kèm theo
group_service_idStringNhóm mã dịch vụ của AhaMove (BIKE, ECO, TRUCK-500,...)
group_requestsArrayNhóm các mã của dịch vụ kèm theo (TIP, BULKY, D2D,...)
payment_methodStringPhương thức thanh toán đơn hàng
- BALANCE: Thanh toán bằng tài khoản người tạo đơn
- CASH: Thanh toán bằng tiền mặt bởi người gửi hàng
- CASH_BY_RECIPIENT: Thanh toán bằng tiền mặt bởi người nhận hàng
promo_codeStringKhôngMã khuyến mãi
remarksStringKhôngChú thích cho tài xế
idle_untilFloat (Unix timestamp)KhôngHẹn giờ giao hàng. Truyền idle_until = order_time (nếu order_time > 0 ) là thời điểm đơn bắt đầu tìm tài xế
itemsArrayKhôngDanh sách hàng hóa (nếu có)
package_detailArrayKhôngCác thông số kích thước đơn hàng
route_optimizedBooleanKhôngTrue trong trường hợp Đối tác muốn Ahamove tối ưu giao hàng để tiết kiệm chi phí (1 điểm lấy hàng, nhiều hơn 2 điểm giao hàng)

Cách để lấy group_service_idgroup_requests

Cấu trúc của mã dịch vụ:

service_id = city_id + group_service_id

Ví dụ:

service_idgroup_service_id
SGN-BIKEBIKE
SGN-ECOECO
SGN-2H2H
SGN-2H-PUBLIC2H-PUBLIC
SGN-SAMEDAYSAMEDAY
SGN-TRUCK-500TRUCK-500
SGN-TRUCK-1000TRUCK-1000
SGN-VAN-500VAN-500
Cấu trúc của mã dịch vụ kèm theo:

requests._id = service_id + group_requests

Ví dụ:

requests._idgroup_requests
SGN-BIKE-TIPTIP
SGN-BIKE-BULKYBULKY
SGN-BIKE-INSURANCEINSURANCE
SGN-BIKE-D2DD2D
SGN-BIKE-SMSSMS
SGN-BIKE-FRAGILEFRAGILE
SGN-BIKE-ROUND-TRIPROUND-TRIP

Path

Hiển thị từ path[0] đến nhiều path[x], x > 0

ParameterTypeYêu cầuMô tả
addressStringĐịa chỉ lấy hàng, giao hàng đúng định dạng
latNumberVĩ độ của địa điểm (Không bắt buộc nhưng đề xuất Đối tác nên sử dụng)
lngNumberKinh độ của địa điểm (Không bắt buộc nhưng đề xuất Đối tác nên sử dụng)
nameStringTên người gửi, người nhận
mobileStringSố điện thoại người gửi, người nhận
tracking_numberStringKhôngMã theo dõi của gói hàng (Mã đơn hàng nội bộ của Đối tác, không bắt buộc nhưng Ahamove đề xuất nên có mã này trong path[x])
remarksStringKhôngChú thích dành cho tài xế của từng điểm lấy hàng, giao hàng
codIntKhôngSố tiền COD người gửi cần thu của người nhận (chỉ truyền ở điểm giao hàng)
item_valueInt64KhôngGiá trị thực của gói hàng, dùng cho mục đích bảo hiểm hàng hóa

Model của requests và group_requests

KeyTypeYêu cầuMô tả
_idStringID của dịch vụ kèm theo (ex: SGN-BIKE-TIP (requests) hoặc TIP (group_requests))
numIntKhôngSố lượng, chỉ áp dụng với các dịch vụ kèm theo có Group ID là PER_UNIT
tier_codeStringKhôngMức cồng kềnh, chỉ áp dụng với các dịch vụ kèm theo có Group ID là BULKY

Model của items

KeyTypeYêu cầuMô tả
_idIntID của hàng hóa
nameStringTên hàng hóa
priceIntGiá hàng hóa
numIntTổng số lượng hàng hóa

Model của package_detail

KeyTypeYêu cầuMô tả
weightFloatKhối lượng gói hàng (kg)
lengthFloatKhôngChiều dài gói hàng (m)
widthFloatKhôngChiều rộng gói hàng (m)
heightFloatKhôngChiều cao gói hàng (m)
descriptionStringKhôngMô tả về loại hàng hóa

Lưu ý

latlng là không bắt buộc nhưng trường address trong parameters cần phải đầy đủ thông tin và theo đúng định dạng như bên dưới:

[Số nhà] [Tên đường], [Phường/Xã], [Quận/Huyện], [Tỉnh/Thành], Việt Nam

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

Các yêu cầu về địa chỉ khi truyền sang Ahamove

  1. Địa chỉ rõ ràng, các phần thông tin cách nhau bởi dấu phẩy
  2. Địa chỉ có thể tìm được trên google map (Có thể dùng luôn google plus code)
  3. Địa chỉ không trùng lập các thông tin Phường/Quận/Tỉnh (Đối với các Đối tác cho Khách hàng chọn địa chỉ theo dạng dropdown)

Một số dạng Địa chỉ không hợp lệ :

  • 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": "24ABCD",
"status": "ASSIGNING",
"shared_link": "https://expressstg.ahamove.com/s/241018N83HHH",
"order": {
// order detail
"_id": "24ABCD",
"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": [
{
"lat": 10.76975346,
"lng": 106.6636615,
"address": "7/28 Thành Thái, Phường 14, Quận 10, Thành phố Hồ Chí Minh",
"short_address": "Thành Thái, Quận 10",
"name": "Lan",
"mobile": "84944309348",
"remarks": "Đến nơi lấy hàng đọc mã đơn để nhận hàng"
},
{
"lat": 10.8018493,
"lng": 106.714466,
"address": "475A Điện Biên Phủ, Phường 25, Bình Thạnh, Thành phố Hồ Chí Minh",
"short_address": "Đại Học Hutech, Quận Bình Thạnh, Hồ Chí Minh",
"name": "Anh",
"mobile": "0912345678",
"cod": 100000,
"item_value": 250000,
"tracking_number": "ABCD1234",
"remarks": "Gọi điện trước khi giao. Giao hàng cẩn thận"
}
],
"requests": [
{
"_id": "SGN-BIKE-TIP",
"num": 1
},
{
"_id": "SGN-BIKE-BULKY",
"tier_code": "TIER_2"
}
],
"items": [],
"total_fee": 33000,
"remarks": "Ghi chú đơn hàng",
"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

Các lỗi thường gặp

Mã lỗiCodeMô tả
400BAD_REQUESTYêu cầu tạo đơn chứa dữ liệu không hợp lệ
400MISSING_REQUIRED_INFOThiếu các trường thông tin bắt buộc
400MISSING_PATH_INFOPath không đủ số lượng điểm giao tối thiểu
401NOT_AUTHORIZEDToken không hợp lệ (Token hết hạn. Khi token mới được tạo thì token cũ sẽ bị hết hạn)
404SERVICE_NOT_FOUNDKhông tìm thấy dịch vụ
404REQUEST_NOT_FOUNDKhông tìm thấy dịch vụ kèm theo
406INVALID_MAX_DISTANCEKhoảng cách giao hàng không hợp lệ, lớn hơn khoảng cách cho phép của dịch vụ
406INVALID_MAX_CODCOD lớn hơn hạn mức COD tối đa của dịch vụ hoặc lớn hơn hạn mức COD của người dùng
406NOT_ENOUGH_CREDITTài khoản thanh toán không đủ tiền hoặc không phải tài khoản công nợ
406INVALID_MAX_STOP_POINTSố lượng điểm giao vượt quá số điểm giao tối đa của dịch vụ
406INVALID_MIN_STOP_POINTSố lượng điểm giao chưa đạt số điểm giao tối thiểu của dịch vụ
406SERVICE_NOT_VALID_AT_PICKUPDịch vụ không hỗ trợ ở điểm lấy hàng
406INVALID_PICKUP_AREADịch vụ không hỗ trợ ở khu vực lấy hàng
406INVALID_DELIVERY_AREADịch vụ không hỗ trợ ở khu vực giao hàng
406INVALID_SERVICE_HOURThời điểm tạo đơn không nằm trong khung giờ hoạt động của dịch vụ
406INVALID_FUTURE_ORDER_TIMEThời gian hẹn giờ tạo đơn không phù hợp (vd: thời gian hẹn giờ tạo đơn lớn hơn một tháng kể từ thời điểm hiện tại)
409DUPLICATE_TRACKING_NUMBERTrùng mã tracking number (nếu partner có cấu hình chặn trùng mã tracking number khi tạo đơn)
500INTERNAL_SERVER_ERRORHệ thống của chúng tôi có lỗi xảy ra. Xin thử lại sau
- Không thể định vị được khu vực tỉnh thành của địa chỉ
- Dữ liệu truyền lên chứa trường thông tin không đúng loại dữ liệu
503SERVICE_UNAVAILABLEChúng tôi tạm thời đang không hoạt động để bảo trì. Xin vui lòng thử lại sau