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
ID duy nhất của ứng dụng sẽ được cung cấp sau khi nhà cung cấp đăng ký thành công với Zalopay.
- app_user string required
ID nhà cung cấp.
- app_trans_id string required
ID giao dịch duy nhất của ứng dụng, định dạng: yyMMddxxxxxxxxx. Độ dài tối đa là 40 ký tự. Ví dụ: 180208181007242.
- app_time int64 required
Thời điểm (timestamp) khi đơn hàng được tạo ra, tính bằng mili giây (ms). Giới hạn khác biệt là 15 phút.
- amount int64 required
Số tiền sẽ được tính phí (thanh toán).
- title string
Tiêu đề tùy chọn của đơn hàng.
- description string required
Người dùng sẽ thấy văn bản này khi họ ở trong màn hình xác nhận thanh toán.
- callback_url string
Zalopay sẽ sử dụng URL này để thông báo khi thanh toán thành công. Nếu không được cung cấp, URL gọi lại mặc định của ứng dụng sẽ được sử dụng.
- device_info string
Chuỗi JSON mô tả thông số kỹ thuật của thiết bị.
- item string required
Chuỗi JSON mô tả các mục đơn hàng. Sử dụng
"[]"
nếu rỗng - embed_data string 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 site, 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\"}"}
promotioninfo
+ Kiểu dữ liệu: json string
+ Định dạng:{"campaigncode":"code"}
+ Mô tả: Dùng để triển khai chương trình khuyến mãi. Ví dụ:{"promotioninfo": "{\"campaigncode\":\"blackfriday\"}"}
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"}
subscription
+ Kiểu dữ liệu: json string
+ Mô tả: Thông tin dành cho đơn hàng subscription.- id: Mã định danh duy nhất cho từng gói subscription. Sử dụng cùng một id khi user thực hiện gia hạn gói.
- plan_name: Tên gói đăng ký.
- base_price: Giá gốc của gói đăng ký, chưa bao gồm giảm giá, thuế hoặc các phí khác. Đây là số tiền người dùng cần thanh toán cho lần gia hạn tiếp theo.
- start_date: Thời gian bắt đầu kích hoạt gói đăng ký.
- end_date: Thời gian kết thúc của gói đăng ký.
- reminder_before: Số ngày trước khi gia hạn mà mong muốn người dùng sẽ nhận được thông báo nhắc nhở (không bắt buộc).
- billing_cycle: Chu kỳ thanh toán. Các giá trị hợp lệ: yearly, monthly, weekly, 3 months, 2 weeks, 10 days,... (không bắt buộc)+ Ví dụ:
{"subscription":"{\"id\":\"PACKAGE_1\",\"name\":\"Monthly TV Package\",\"base_price\":100000,\"start_date\":\"2024-11-01T00:00:00+07:00\",\"end_date\":\"2024-11-30T23:59:59+07:00\",\"reminder_before\":3,\"billing_cycle\":\"monthly\"}"}
+ Lưu ý: start_date và end_date tuân theo tiêu chuẩn ISO 8601. Ví dụ: "2024-11-01T00:00:00+07:00". - mac string required
Đây là chữ ký của đơn hàng. Nó được tính bằng cách sử dụng thông tin đầu vào như sau: hmac_input = app_id +
|
+ app_trans_id +|
+ app_user +|
+ amount +|
+ app_time +|
+ embe_data +|
+ item và sử dụng SHA256 với khóa HMAC của ứng dụng làm khóa chữ ký. Vui lòng tham khảo phần truyển dữ liệu an toàn để biết thêm chi tiết. - product_code string
Possible values: [
AGREEMENT
]Nếu đơn hàng là cho thỏa thuận thanh toán, trường này phải là "AGREEMENT".
- bank_code string
- phone string
Số điện thoại của người dùng.
- email string
Email của người dùng.
- address string
Địa chỉ của người dùng.
Request Body required
- app_id int32 required
ID duy nhất của ứng dụng sẽ được cung cấp sau khi nhà cung cấp đăng ký thành công với Zalopay.
- app_user string required
ID nhà cung cấp.
- app_trans_id string required
ID giao dịch duy nhất của ứng dụng, định dạng: yyMMddxxxxxxxxx. Độ dài tối đa là 40 ký tự. Ví dụ: 180208181007242.
- app_time int64 required
Thời điểm (timestamp) khi đơn hàng được tạo ra, tính bằng mili giây (ms). Giới hạn khác biệt là 15 phút.
- amount int64 required
Số tiền sẽ được tính phí (thanh toán).
- title string
Tiêu đề tùy chọn của đơn hàng.
- description string required
Người dùng sẽ thấy văn bản này khi họ ở trong màn hình xác nhận thanh toán.
- callback_url string
Zalopay sẽ sử dụng URL này để thông báo khi thanh toán thành công. Nếu không được cung cấp, URL gọi lại mặc định của ứng dụng sẽ được sử dụng.
- device_info string
Chuỗi JSON mô tả thông số kỹ thuật của thiết bị.
- item string required
Chuỗi JSON mô tả các mục đơn hàng. Sử dụng
"[]"
nếu rỗng - embed_data string 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 site, 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\"}"}
promotioninfo
+ Kiểu dữ liệu: json string
+ Định dạng:{"campaigncode":"code"}
+ Mô tả: Dùng để triển khai chương trình khuyến mãi. Ví dụ:{"promotioninfo": "{\"campaigncode\":\"blackfriday\"}"}
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"}
subscription
+ Kiểu dữ liệu: json string
+ Mô tả: Thông tin dành cho đơn hàng subscription.- id: Mã định danh duy nhất cho từng gói subscription. Sử dụng cùng một id khi user thực hiện gia hạn gói.
- plan_name: Tên gói đăng ký.
- base_price: Giá gốc của gói đăng ký, chưa bao gồm giảm giá, thuế hoặc các phí khác. Đây là số tiền người dùng cần thanh toán cho lần gia hạn tiếp theo.
- start_date: Thời gian bắt đầu kích hoạt gói đăng ký.
- end_date: Thời gian kết thúc của gói đăng ký.
- reminder_before: Số ngày trước khi gia hạn mà mong muốn người dùng sẽ nhận được thông báo nhắc nhở (không bắt buộc).
- billing_cycle: Chu kỳ thanh toán. Các giá trị hợp lệ: yearly, monthly, weekly, 3 months, 2 weeks, 10 days,... (không bắt buộc)+ Ví dụ:
{"subscription":"{\"id\":\"PACKAGE_1\",\"name\":\"Monthly TV Package\",\"base_price\":100000,\"start_date\":\"2024-11-01T00:00:00+07:00\",\"end_date\":\"2024-11-30T23:59:59+07:00\",\"reminder_before\":3,\"billing_cycle\":\"monthly\"}"}
+ Lưu ý: start_date và end_date tuân theo tiêu chuẩn ISO 8601. Ví dụ: "2024-11-01T00:00:00+07:00". - mac string required
Đây là chữ ký của đơn hàng. Nó được tính bằng cách sử dụng thông tin đầu vào như sau: hmac_input = app_id +
|
+ app_trans_id +|
+ app_user +|
+ amount +|
+ app_time +|
+ embe_data +|
+ item và sử dụng SHA256 với khóa HMAC của ứng dụng làm khóa chữ ký. Vui lòng tham khảo phần truyển dữ liệu an toàn để biết thêm chi tiết. - product_code string
Possible values: [
AGREEMENT
]Nếu đơn hàng là cho thỏa thuận thanh toán, trường này phải là "AGREEMENT".
- bank_code string
- phone string
Số điện thoại của người dùng.
- email string
Email của người dùng.
- address string
Địa chỉ của người dùng.
- 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
- sub_return_code integer
Lý do chi tiết giải thích tại sao hoạt động đã thất bại. Vui lòng tham khảo sub status code để biết thêm chi tiết.
- sub_return_message string
- zp_trans_token string
- order_url string
{
"return_code": 0,
"return_message": "string",
"sub_return_code": 0,
"sub_return_message": "string",
"zp_trans_token": "string",
"order_url": "string"
}