Tạo đơn hàng
Merchant Server gửi thông tin đơn hàng tới Zalopay Server để tạo đơn hàng.
- application/json
- application/x-www-form-urlencoded
Request Body required
- app_id int32 required
Định danh cho ứng dụng (web, app, pos ...) hay dịch vụ (auto-debit, disbursement ...) của Merchant được cấp khi đăng ký tích hợp phương thức thanh toán với Zalopay.
- app_user string(50) required
Thông tin của người dùng thanh toán đơn hàng: id/username của user. Nếu không định danh được có thể dùng thông tin mặc định, chằng hạn như tên ứng dụng và không được để trống.
- app_trans_id string(40) required
Mã giao dịch Merchant gửi qua hệ thống Zalopay để user thực hiện thanh toán (TXID của giao dịch đơn hàng). Mã giao dịch phải bắt đầu theo format yymmdd của ngày hiện tại.
Theo format yymmdd_Mã đơn hàng thanh toán. Ví dụ: 250210_OrderID.
Merchant dùng giá trị này cho việc tra cứu thông tin trạng thái giao dịch và đối soát, yymmdd phải đúng TimeZone Vietnam (GMT+7) (Vì các giao dịch đối soát theo ngày giờ Việt Nam). - app_time int64 required
Thời gian tạo đơn hàng (unix timestamp in milisecond). Thời gian tính đến milisecond, lấy theo giờ hiện hành.
- expire_duration_seconds long
Thời gian hết hạn của đơn hàng. Thời gian tính bằng giây (giá trị nhỏ nhất: 300, giá trị lớn nhất: 2592000).
- amount int64 required
Giá trị của đơn hàng.
- description string(256) required
Thông tin mô tả về dịch vụ đang được thanh toán dùng để hiển thị cho user trên ứng dụng Zalopay và trên tool quản lý Merchant của Zalopay (mctool).
- callback_url string
Đây là URL của Merchant, sau khi Zalopay thu tiền thành công sẽ thông báo kết quả thanh toán của đơn hàng về cho Merchant, theo phương thức callback (server-to-server).
callback_url có thể được truyền động theo từng đơn hàng hoặc cấu hình mặc định trên hệ thống của Zalopay. - sub_app_id string(50)
Đây là định danh dịch vụ/nhóm dịch vụ sử dụng thanh toán trên ứng dụng của Merchant. Đối với các Merchant đặc biệt, khi tạo đơn hàng cần truyền thông tin này vào.
- item string(2048) required
Mảng JSON mô tả các mục đơn hàng. Sử dụng
"[]"
nếu rỗng - embed_data string(2048) required
Chuỗi JSON bao gồm thông tin đặc biệt của đơn hàng.
Sử dụng"{}"
nếu rỗng
Một số trường đặc biệt của embed_data:
preferred_payment_method
+ Kiểu dữ liệu: Array string
+ Định dạng:["domestic_card", "vietqr", "..."]
. Tham khảo tại đây
+ Mô tả: Dùng để hiển thị phương thức thanh toán tùy chọn trên cổng Zalopay, ví dụ:{"preferred_payment_method":["vietqr"]}
redirecturl
+ Kiểu dữ liệu: string
+ Định dạng: URL
+ Mô tả: Redirect về url này sau khi thanh toán trên cổng Zalopay (override redirect url lúc đăng ký app với Zalopay). Ví dụ:{"redirecturl": "https://docs.zalopay.vn/result"}
columninfo
+ Kiểu dữ liệu: JSON string
+ Định dạng:{"column_name": "value"}
+ Mô tả: Thêm thông tin hiển thị ở phần Quản lý giao dịch chi tiết trên Merchant tool, nếu cột chưa tồn tại cần vào phần Cài đặt hiển thị dữ liệu để cấu hình. Ví dụ:{"columninfo": "{\"branch_id\": \"HCM\",\"store_id\": \"CH123\",\"store_name\": \"Saigon Centre\",\"mc_campaign_id\": \"FREESHIP\"}"}
zlppaymentid
+ Kiểu dữ liệu: string
+ Mô tả: Mã thông tin thanh toán. Chỉ truyền khi đối tác cần nhận tiền đối soát về nhiều tài khoản khác nhau. Hệ thống Zalopay sẽ tạo ra một mã Thanh toán (tương ứng với mỗi Tài khoản ngân hàng đối tác cung cấp) và gởi lại cho đối tác thiết lập. Ví dụ:{"zlppaymentid": "P4201372"}
- mac string required
Thông tin chứng thực: mac = HMAC(hmac_algorihtm, mac key, hmacinput), chi tiết như bên dưới:
- hmac_algorihtm: là phương thức bảo mật được Merchant đăng ký với Zalopay, mặc định là HmacSHA256.
- mac key: được cung cấp bởi Zalopay.
- hmac_input = app_id +|
+ app_trans_id +|
+ app_user +|
+ amount +|
+ app_time +|
+ embed_data +|
+ item.
Vui lòng tham khảo phần truyền dữ liệu an toàn để biết thêm chi tiết. - bank_code string
Chỉ áp dụng trong trường hợp thanh toán online, tham khảo chi tiết bên dưới:
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": []}"
: Cổng Zalopay hiển thị danh sách tất cả các hình thức và ngân hàng được hỗ trợ (ATM, CC, Zalopay, Zalopay QR đa năng, Apple Pay ...).
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": ["domestic_card", "account"]}"
: Cổng Zalopay hiển thị form cho người dùng nhập thông tin thẻ ATM để thanh toán.
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": ["international_card"]}"
: Cổng Zalopay hiển thị form cho người dùng nhập thông tin thẻ Tín dụng để thanh toán.
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": ["zalopay_wallet"]}"
: Cổng Zalopay hiển thị Zalopay QR để thanh toán bằng Zalopay/Zalopay trên Zalo.
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": ["vietqr"]}"
: Cổng Zalopay hiển thị Zalopay QR đa năng (VietQR) để thanh toán bằng các ứng dụng Ngân hàng và Zalopay.
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": ["bnpl"]}"
: Cổng Zalopay hiển thị Zalopay QR để thanh toán bằng Zalopay/Zalopay trên Zalo và nguồn tiền thanh toán của user sẽ ưu tiên Tài khoản trả sau.
Request Body required
- app_id int32 required
Định danh cho ứng dụng (web, app, pos ...) hay dịch vụ (auto-debit, disbursement ...) của Merchant được cấp khi đăng ký tích hợp phương thức thanh toán với Zalopay.
- app_user string(50) required
Thông tin của người dùng thanh toán đơn hàng: id/username của user. Nếu không định danh được có thể dùng thông tin mặc định, chằng hạn như tên ứng dụng và không được để trống.
- app_trans_id string(40) required
Mã giao dịch Merchant gửi qua hệ thống Zalopay để user thực hiện thanh toán (TXID của giao dịch đơn hàng). Mã giao dịch phải bắt đầu theo format yymmdd của ngày hiện tại.
Theo format yymmdd_Mã đơn hàng thanh toán. Ví dụ: 250210_OrderID.
Merchant dùng giá trị này cho việc tra cứu thông tin trạng thái giao dịch và đối soát, yymmdd phải đúng TimeZone Vietnam (GMT+7) (Vì các giao dịch đối soát theo ngày giờ Việt Nam). - app_time int64 required
Thời gian tạo đơn hàng (unix timestamp in milisecond). Thời gian tính đến milisecond, lấy theo giờ hiện hành.
- expire_duration_seconds long
Thời gian hết hạn của đơn hàng. Thời gian tính bằng giây (giá trị nhỏ nhất: 300, giá trị lớn nhất: 2592000).
- amount int64 required
Giá trị của đơn hàng.
- description string(256) required
Thông tin mô tả về dịch vụ đang được thanh toán dùng để hiển thị cho user trên ứng dụng Zalopay và trên tool quản lý Merchant của Zalopay (mctool).
- callback_url string
Đây là URL của Merchant, sau khi Zalopay thu tiền thành công sẽ thông báo kết quả thanh toán của đơn hàng về cho Merchant, theo phương thức callback (server-to-server).
callback_url có thể được truyền động theo từng đơn hàng hoặc cấu hình mặc định trên hệ thống của Zalopay. - sub_app_id string(50)
Đây là định danh dịch vụ/nhóm dịch vụ sử dụng thanh toán trên ứng dụng của Merchant. Đối với các Merchant đặc biệt, khi tạo đơn hàng cần truyền thông tin này vào.
- item string(2048) required
Mảng JSON mô tả các mục đơn hàng. Sử dụng
"[]"
nếu rỗng - embed_data string(2048) required
Chuỗi JSON bao gồm thông tin đặc biệt của đơn hàng.
Sử dụng"{}"
nếu rỗng
Một số trường đặc biệt của embed_data:
preferred_payment_method
+ Kiểu dữ liệu: Array string
+ Định dạng:["domestic_card", "vietqr", "..."]
. Tham khảo tại đây
+ Mô tả: Dùng để hiển thị phương thức thanh toán tùy chọn trên cổng Zalopay, ví dụ:{"preferred_payment_method":["vietqr"]}
redirecturl
+ Kiểu dữ liệu: string
+ Định dạng: URL
+ Mô tả: Redirect về url này sau khi thanh toán trên cổng Zalopay (override redirect url lúc đăng ký app với Zalopay). Ví dụ:{"redirecturl": "https://docs.zalopay.vn/result"}
columninfo
+ Kiểu dữ liệu: JSON string
+ Định dạng:{"column_name": "value"}
+ Mô tả: Thêm thông tin hiển thị ở phần Quản lý giao dịch chi tiết trên Merchant tool, nếu cột chưa tồn tại cần vào phần Cài đặt hiển thị dữ liệu để cấu hình. Ví dụ:{"columninfo": "{\"branch_id\": \"HCM\",\"store_id\": \"CH123\",\"store_name\": \"Saigon Centre\",\"mc_campaign_id\": \"FREESHIP\"}"}
zlppaymentid
+ Kiểu dữ liệu: string
+ Mô tả: Mã thông tin thanh toán. Chỉ truyền khi đối tác cần nhận tiền đối soát về nhiều tài khoản khác nhau. Hệ thống Zalopay sẽ tạo ra một mã Thanh toán (tương ứng với mỗi Tài khoản ngân hàng đối tác cung cấp) và gởi lại cho đối tác thiết lập. Ví dụ:{"zlppaymentid": "P4201372"}
- mac string required
Thông tin chứng thực: mac = HMAC(hmac_algorihtm, mac key, hmacinput), chi tiết như bên dưới:
- hmac_algorihtm: là phương thức bảo mật được Merchant đăng ký với Zalopay, mặc định là HmacSHA256.
- mac key: được cung cấp bởi Zalopay.
- hmac_input = app_id +|
+ app_trans_id +|
+ app_user +|
+ amount +|
+ app_time +|
+ embed_data +|
+ item.
Vui lòng tham khảo phần truyền dữ liệu an toàn để biết thêm chi tiết. - bank_code string
Chỉ áp dụng trong trường hợp thanh toán online, tham khảo chi tiết bên dưới:
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": []}"
: Cổng Zalopay hiển thị danh sách tất cả các hình thức và ngân hàng được hỗ trợ (ATM, CC, Zalopay, Zalopay QR đa năng, Apple Pay ...).
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": ["domestic_card", "account"]}"
: Cổng Zalopay hiển thị form cho người dùng nhập thông tin thẻ ATM để thanh toán.
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": ["international_card"]}"
: Cổng Zalopay hiển thị form cho người dùng nhập thông tin thẻ Tín dụng để thanh toán.
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": ["zalopay_wallet"]}"
: Cổng Zalopay hiển thị Zalopay QR để thanh toán bằng Zalopay/Zalopay trên Zalo.
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": ["vietqr"]}"
: Cổng Zalopay hiển thị Zalopay QR đa năng (VietQR) để thanh toán bằng các ứng dụng Ngân hàng và Zalopay.
-"bank_code": ""
,"embed_data": "{"preferred_payment_method": ["bnpl"]}"
: Cổng Zalopay hiển thị Zalopay QR để thanh toán bằng Zalopay/Zalopay trên Zalo và nguồn tiền thanh toán của user sẽ ưu tiên Tài khoản trả sau.
- 200
OK
- application/json
- Schema
- Example (from schema)
Schema
- return_code integer
Mã trạng thái. Vui lòng tham khảo mã trạng thái để biết thêm chi tiết.
- return_message string
Mô tả mã trạng thái.
- sub_return_code integer
Mã trạng thái chi tiết. Vui lòng tham khảo mã trạng thái để biết thêm chi tiết.
- sub_return_message string
Mô tả mã trạng thái.
- zp_trans_token string
Token của giao dịch.
Trong trường hợp tích hợp theo mô hình AppToApp, dùng giá trị này để mở ứng dụng Zalopay trên thiết bị của người dùng để người dùng thực hiện thanh toán.
Trong trường hợp thanh toán token, dùng giá trị này để gọi API Pay by token. - order_token string
Token của đơn hàng.
- order_url string
Dùng để chuyển tiếp người dùng đến trang thanh toán trên Cổng Zalopay.
- qr_code string
Dùng để tạo Zalopay QR đa năng hiển thị trên ứng dụng bán hàng của Doanh nghiệp.
Zalopay QR đa năng là một trong những giải pháp thanh toán hoàn toàn mới, chấp nhận thanh toán được thực hiện bởi ứng dụng Zalopay/Zalo & các ngân hàng thuộc hệ thống NAPAS.
{
"return_code": 0,
"return_message": "string",
"sub_return_code": 0,
"sub_return_message": "string",
"zp_trans_token": "string",
"order_token": "string",
"order_url": "string",
"qr_code": "string"
}