Khởi tạo app
Register app
Để bắt đầu sử dụng Nhanh API, bạn cần đăng kí tài khoản developer và tạo ứng dụng tại https://open.nhanh.vn.
Chú ý: tài khoản developer chỉ dùng để quản trị ứng dụng trên open.nhanh.vn, không yêu cầu phải có quyền quản trị trên Nhanh.vn, tài khoản cấp quyền cho ứng dụng mới cần có quyền trên Nhanh.vn.
Một ứng dụng có thể được dùng cho nhiều doanh nghiệp trên Nhanh.vn. Một doanh nghiệp trên Nhanh.vn cũng có thể dùng nhiều ứng dụng khác nhau. VD bạn có thể dùng 1 app thiết kế landing page, 1 app affiliate, cả 2 app đều đồng bộ đơn hàng về Nhanh.vn để xử lý tập trung.
Khi người dùng (VD tài khoản giám đốc doanh nghiệp trên Nhanh.vn) cấp quyền cho ứng dụng của bạn, Nhanh API sẽ tạo ra 1 access token gắn với doanh nghiệp (businessId) và appId của bạn, kèm theo các permissions (quyền được thao tác với dữ liệu nào) do người dùng chọn ở bước đăng nhập cấp quyền cho app.
Tên App
Do bạn tự đặt, dùng để hiển thị cho user khi đăng nhập cấp quyền cho app của bạn
Trạng thái
Dùng để bật tắt ứng dụng. Khi bạn đổi trạng thái sang Ngừng hoạt động, thì app sẽ không thể gọi API và không nhận được webhooks nữa
Redirect URL
Là link trên hệ thống của bạn, sau khi user đăng nhập cấp quyền, Nhanh sẽ redirect về URL này, kèm accessCode, bạn dùng accessCode để đổi lấy accessToken (Đọc thêm các bước lấy accessCode và accessToken bên dưới)
Bật webhooks
Dùng để bật tắt việc nhận webhooks, đọc thêm về webhooks tại đây
Webhooks callback URL
Là link trên hệ thống của bạn dùng để nhận webhooks Nhanh bắn sang
Webhooks verify token
Là 1 chuỗi kí tự do bạn tự định nghĩa, có độ dài từ 16 -> 128 kí tự, bao gồm cả số và chữ. Khi Nhanh.vn gửi webhooks data cho bạn, sẽ bao gồm cả webhooksVerifyToken giúp bạn xác minh request đến từ Nhanh.vn. Chú ý: verify token sẽ được gửi kèm trong request body, không phải gửi theo header Authentication, đọc thêm về việc nhận webhooks tại đây

Lấy access token
Để lấy được accessToken, bạn cần thực hiện 3 bước sau:

Lấy access code
Bước 1: Ứng dụng của bạn cần chuyển tới trang đăng nhập của Nhanh.vn https://nhanh.vn/oauth?version=API_VERSION&appId=YOUR_APPID&returnLink=YOUR_RETURN_LINK
version
string
Phiên bản API (phiên bản hiện tại: 2.0).
appId
int
ID app.
returnLink
string
Sau khi người dùng đăng nhập và cấp quyền, Nhanh.vn sẽ redirect về URL này, kèm GET param accessCode. Chú ý returnLink bắt buộc chạy https, và phải được đăng ký trên app của bạn.
Đăng nhập cấp quyền
Bước 2: Người dùng sẽ đăng nhập và chọn các quyền được cấp cho ứng dụng.
Giao diện khi user đăng nhập cấp quyền:

Các quyền của token sẽ tương ứng với các quyền được thao tác trên Nhanh.vn của tài khoản đang lấy token. VD bạn dùng tài khoản Giám đốc sẽ có thể chọn toàn bộ quyền, bạn dùng tài khoản nhân viên chỉ đang được thao tác với "Danh sách sản phẩm", thì ở bước cấp quyền, tài khoản này cũng chỉ chọn được "Danh sách sản phẩm" và accessToken do tài khoản này tạo ra cũng sẽ chỉ gọi được "/api/product/search" mà không dùng được với các API khác.
Khi người dùng chọn "Đồng ý", Nhanh.vn sẽ redirect ngược lại về YOUR_RETURN_LINK kèm theo mã accessCode. VD bên trên nếu YOUR_RETURN_LINK = https://example.org/nhanh/auth thì Nhanh API sẽ redirect ngược lại về link https://example.org/nhanh/auth?accessCode=
Đổi access token
Bước 3: Gọi API để đổi accessCode lấy accessToken. Chú ý có sự khác biệt giữa v2.0 và v3.0, bạn cần dùng đúng phiên bản bên dưới:
accessCode
: chỉ có hạn 10 phút, và sẽ hết hạn ngay sau khi lấy accessToken thành công.secretKey
: Vào Danh sách app, click vào tên app, vào trang chi tiết để lấy secretKey.accessToken
: có hạn sử dụng 1 năm từ thời điểm được tạo. Hiện Nhanh chưa hỗ trợ refresh token. Hệ thống của bạn cần có cơ chế cảnh báo người dùng để đăng nhập cấp quyền và lấy token mới khi gần hết hạn token cũ.
Get access token v3
Chú ý: v3.0 chỉ duy trì 1 accessToken cho 1 appId + businessId. Khi bạn tạo ra 1 accessToken mới, thì accessToken cũ (cùng appId + businessId) sẽ chỉ còn hiệu lực thêm 15 phút, sau đó sẽ không thể dùng accessToken cũ nữa.
Request
curl --location --globoff 'https://pos.open.nhanh.vn/v3.0/app/getaccesstoken?appId={{appId}}&businessId={{businessId}}' \
--header 'Content-Type: application/json' \
--data '{
"accessCode": "ACCESS CODE",
"secretKey": "APP SECRET KEY"
}'
Response
{
"code": 1,
"data": {
"accessToken": "ACCESS TOKEN",
"expiredAt": 1785603599,
"businessId": 110668,
"depotIds": [],
"pageIds": [],
"permissions": []
}
}
code
int
1 = success or 0 = failed
messages
array
is an array of error messages if code = 0
accessToken
string
Access token (random from 128 to 256 characters)
expiredAt
Timestamp
Hạn sử dụng accessToken, VD: 1785603599
businessId
int
ID doanh nghiệp trên Nhanh.vn
depotIds
array
Các kho hàng được phép thao tác. Nếu mảng rỗng thì sẽ được thao tác với toàn bộ các kho hàng.
pageIds
array
Các page được phép thao tác. Nếu mảng rỗng thì sẽ được thao tác với toàn bộ các page.
permissions
string
Các quyền được phép thao tác: Sản phẩm, đơn hàng... Do user chọn ở bước cấp quyền
Get access token v2
App của bạn dùng accessCode này POST sang https://pos.open.nhanh.vn/api/oauth/access_token để lấy được accessToken và các permissions được cấp cho accessToken này.
Request params:
version
string
2.0 hoặc 3.0
appId
int
Your appId
accessCode
string
Access code
secretKey
string
App secret key

Response:
code
int
1 = success or 0 = failed
messages
array
is an array of error messages if code = 0
accessToken
string
Access token (random from 128 to 256 characters)
expiredDateTime
string
Hạn sử dụng accessToken, VD: 2022-09-25 15:30:00, nên dùng key mới là expiredAt
expiredAt
Timestamp
Hạn sử dụng accessToken, VD: 1785603599
businessId
int
ID doanh nghiệp trên Nhanh.vn
depotIds
array
Các kho hàng được phép thao tác theo token. Nếu mảng rỗng thì sẽ được thao tác với toàn bộ các kho hàng.
permissions
string
Các quyền được phép thao tác: Sản phẩm, đơn hàng... Do user chọn ở bước cấp quyền
Last updated