CỔNG THANH TOÁN VNPAY - THANH TOÁN BẰNG MÃ TOKEN

Giới thiệu

////

Quy trình thanh toán TOKEN

- Khách hàng vào Website/App TMĐT và chọn thanh toán với thông tin thẻ đã lưu qua VNPAY.
- Website/App TMĐT gửi thông tin yêu cầu thanh toán sang VNPAY. Thông tin gửi sang theo đặc tả kỹ thuật của tài liệu này.
- Khách hàng nhập thông tin xác thực OTP Ngân hàng tại VNPAY.
- Sau khi khách hàng xác thực thông tin giao dịch, VNPAY sẽ xử lý và trả lại kết quả cho Website/App TMĐT qua 2 đường:
Return URL Redirect trực tiếp kết quả về đường dẫn mà Website/App TMĐT đã gửi trong request yêu cầu lưu trữ thông tin thẻ.
IPN URL (server to server): Cập nhật kết quả giao dịch do VNPAY phản hồi
- Đường return URL Website/App TMĐT thông báo kết quả thanh toán tới khách hàng.

Yêu cầu tạo Token

Sơ đồ tuần tự

Endpoint: https://sandbox.vnpayment.vn/token_ui/create-token.html
Http method: GET
Content-Type: application/x-www-form-urlencoded

URL có dạng:

https://sandbox.vnpayment.vn/token_ui/create-token.html?vnp_app_user_id=4&vnp_cancel_url=https://sandbox.vnpayment.vn/token-web-demo/payment-cancel&vnp_card_type=01&vnp_command=token_create&vnp_create_date=20220328100546&vnp_ip_addr=10.22.7.92&vnp_locale=vi&vnp_return_url=https://sandbox.vnpayment.vn/token-web-demo/return-card-add&vnp_tmn_code=B9KOCLN0&vnp_txn_desc=Tao moi token&vnp_txn_ref=286&vnp_version=2.0.1&vnp_secure_hash={value}

Danh sách tham số - Thông tin gửi sang VNPAY (vnp_command=token_create)

Tham số Kiểu dữ liệu Bắt buộc/Tùy chọn Mô tả
vnp_version Alphanumeric[1,8] Bắt buộc Phiên bản api mà merchant kết nối. Phiên bản hiện tại là : 2.1.0
vnp_command Alpha[1,16] Bắt buộc Mã API sử dụng, mã cho giao dịch tạo token là: token_create
vnp_tmn_code Alphanumeric[8] Bắt buộc Mã định danh kết nối của merchant được tạo trên hệ thống của VNPAY. VNPAY cung cấp cho merchant kết nối. Ví dụ: TOKEN001
vnp_app_user_id Alphanumeric[1,255] Bắt buộc User đăng nhập Web/App
vnp_bank_code Alphanumeric[3,20] Tùy chọn Mã Ngân hàng hoặc mã loại thẻ thanh toán. Ví dụ: VISA
vnp_locale Alpha[2] Tùy chọn Ngôn ngữ thanh toán. Hiện tại hỗ trợ 2 ngôn ngữ.
- Tiếng Việt: vn
- Tiếng Anh: en
vnp_card_type Numeric[2] Bắt buộc Loại thẻ thanh toán:
- Nội địa: 01
- Quốc tế: 02
vnp_txn_ref Alphanumeric[1,100] Bắt buộc Mã tham chiếu của giao dịch tại hệ thống của merchant. Mã này là duy nhất đùng để phân biệt các đơn hàng gửi sang VNPAY. Không được trùng lặp trong ngày
vnp_txn_desc Alphanumeric[1,255] Bắt buộc Thông tin mô tả nội dung thanh toán
vnp_return_url Alphanumeric[10,255] Bắt buộc Địa chỉ trả về khi khách hàng thực hiện tạo token xong. Ví dụ: https://example.com/return
vnp_cancel_url Alphanumeric[10,255] Tùy chọn Địa chỉ trả về khi khách hàng thực hiện cancel. Ví dụ: https://example.com/cancel
vnp_ip_addr Alphanumeric[7,45] Bắt buộc Địa chỉ IP của khách hàng thực hiện giao dịch. Ví dụ: 123.123.123.123
vnp_create_date Alphanumeric[14] Bắt buộc Thời gian ghi nhận giao dịch tại website của merchant GMT+7, định dạng: yyyyMMddHHmmss. Ví dụ: 20190702080900
vnp_secure_hash Alphanumeric[32,256] Bắt buộc Mã kiểm tra (checksum) để đảm bảo dữ liệu của giao dịch không bị thay đổi trong quá trình chuyển từ merchant sang VNPAY. Việc tạo ra mã này phụ thuộc vào cấu hình của merchant và phiên bản api sử dụng. Phiên bản hiện tại hỗ trợ HMACSHA512

Danh sách tham số - Thông tin nhận về từ VNPAY (vnp_command=token_create)

URL có dạng:

https://{merchant-domain}/returnUrl?vnp_app_user_id=4&vnp_bank_code=NCB&vnp_bank_tran_no=20220328100858&vnp_card_number=970419xxxxxxxxx2198&vnp_card_type=01&vnp_command=token_create&vnp_pay_date=20220328100847&vnp_response_code=00&vnp_tmn_code=B9KOCLN0&vnp_token=100164843693860tJaGIVVVVVVVVVVhpKzNOi7SCTBlpTDWtTsV9km06FssVNH0P&vnp_transaction_no=13713726&vnp_transaction_status=00&vnp_txn_desc=Tao moi token&vnp_txn_ref=286&vnp_secure_hash={value}
Tham số Kiểu dữ liệu Bắt buộc/Tùy chọn Mô tả
vnp_app_user_id Alphanumeric[1,255] Bắt buộc User đăng nhập Web/App
vnp_token Alphanumeric[64] Tùy chọn Token do hệ thống VNPAY sinh ra
vnp_card_number Numeric[15,19] Tùy chọn Số thẻ thanh toán đã được masking. Ví dụ: 123456xxxxx6789
vnp_command Alpha[1,16] Bắt buộc Mã API sử dụng, mã cho giao dịch tạo token là: token_create
vnp_tmn_code Alphanumeric[8] Bắt buộc Mã định danh kết nối của merchant được tạo trên hệ thống của VNPAY. VNPAY cung cấp cho merchant kết nối. Ví dụ: TOKEN001
vnp_response_code Numeric[2] Bắt buộc Mã phản hồi kết quả tạo token. Quy định mã trả lời 00 tương ứng với kết quả Thành công cho tất cả các API. Tham khảo bảng mã lỗi
vnp_txn_ref Alphanumeric[1,100] Bắt buộc Là mã giao dịch tham chiếu của hệ thống merchant gửi sang VNPAY yêu cầu tạo Token.
vnp_txn_desc Alphanumeric[1,255] Bắt buộc Thông tin mô tả nội yêu cầu tạo Token
vnp_transaction_no Alpha[3,18] Tùy chon Mã giao dịch tại VNPAY
vnp_card_type Numeric[2] Tùy chọn Loại thẻ thanh toán:
- Nội địa: 01
- Quốc tế: 02
vnp_bank_code Alphanumeric[3,20] Tùy chọn Mã Ngân hàng hoặc mã loại thẻ thanh toán. Ví dụ: VISA
vnp_bank_tran_no Alphanumeric[3,255] Tùy chọn Mã giao dịch tại Ngân hàng
vnp_transaction_status Numeric[2] Bắt buộc Tình trạng của giao dịch tại Cổng thanh toán VNPAY. Tham khảo bảng mã lỗi
- 00: Giao dịch thanh toán được thực hiện thành công tại VNPAY
- Khác 00: Giao dịch không thành công tại VNPAY
vnp_pay_date Alphanumeric[14] Bắt buộc Thời gian ghi nhận giao dịch tại VNPAY GMT+7, định dạng: yyyyMMddHHmmss. Ví dụ: 20190702080900
vnp_secure_hash Alphanumeric[32,256] Bắt buộc Mã kiểm tra (checksum) để đảm bảo dữ liệu của giao dịch không bị thay đổi trong quá trình chuyển từ VNPAY về merchant. Việc tạo ra mã này phụ thuộc vào cấu hình của merchant và phiên bản api sử dụng. Phiên bản hiện tại hỗ trợ HMACSHA512

Thanh toán và Tạo token

Sơ đồ tuần tự

Endpoint: https://sandbox.vnpayment.vn/token_ui/pay-create-token.html
Http method: GET
Content-Type: application/x-www-form-urlencoded

URL có dạng:

https://sandbox.vnpayment.vn/token_ui/pay-create-token.html?vnp_amount=2000000&vnp_app_user_id=4&vnp_cancel_url=https://sandbox.vnpayment.vn/token-web-demo/payment-cancel&vnp_card_type=01&vnp_command=pay_and_create&vnp_create_date=20220328101555&vnp_curr_code=VND&vnp_ip_addr=10.22.7.92&vnp_locale=vi&vnp_return_url=https://sandbox.vnpayment.vn/token-web-demo/nav1-step3&vnp_store_token=1&vnp_tmn_code=B9KOCLN0&vnp_txn_desc=Tao moi token&vnp_txn_ref=292&vnp_version=2.0.1&vnp_secure_hash={value}

Danh sách tham số - Thông tin gửi sang VNPAY (vnp_command=pay_and_create)

Tham số Kiểu dữ liệu Bắt buộc/Tùy chọn Mô tả
vnp_version Alphanumeric[1,8] Bắt buộc Phiên bản api mà merchant kết nối. Phiên bản hiện tại là : 2.1.0
vnp_command Alpha[1,16] Bắt buộc Mã API sử dụng, mã cho giao dịch tạo token là: pay_and_create
vnp_tmn_code Alphanumeric[8] Bắt buộc Mã định danh kết nối của merchant được tạo trên hệ thống của VNPAY. VNPAY cung cấp cho merchant kết nối. Ví dụ: TOKEN001
vnp_app_user_id Alphanumeric[1,255] Bắt buộc User đăng nhập Web/App
vnp_bank_code Alphanumeric[3,20] Tùy chọn Mã Ngân hàng hoặc mã loại thẻ thanh toán. Ví dụ: VISA
vnp_locale Alpha[2] Tùy chọn Ngôn ngữ thanh toán. Hiện tại hỗ trợ 2 ngôn ngữ.
- Tiếng Việt: vn
- Tiếng Anh: en
vnp_card_type Numeric[2] Bắt buộc Loại thẻ thanh toán:
- Nội địa: 01
- Quốc tế: 02
vnp_txn_ref Alphanumeric[1,100] Bắt buộc Mã tham chiếu của giao dịch tại hệ thống của merchant. Mã này là duy nhất đùng để phân biệt các đơn hàng gửi sang VNPAY. Không được trùng lặp trong ngày
vnp_amount Numeric[1,12] Bắt buộc Số tiền thanh toán. Số tiền không mang các ký tự phân tách thập phân, phần nghìn, ký tự tiền tệ. Để gửi số tiền thanh toán là 10,000 VND (mười nghìn VNĐ) thì merchant cần nhân thêm 100 lần (khử phần thập phân), sau đó gửi sang VNPAY là: 1000000
vnp_curr_code Alpha[3] Bắt buộc Đơn vị tiền tệ sử dụng thanh toán. Hiện tại chỉ hỗ trợ VND
vnp_txn_desc Alphanumeric[1,255] Bắt buộc Thông tin mô tả nội dung thanh toán
vnp_return_url Alphanumeric[10,255] Bắt buộc Địa chỉ trả về khi khách hàng thực hiện tạo token xong. Ví dụ: https://example.com/return
vnp_cancel_url Alphanumeric[10,255] Tùy chọn Địa chỉ trả về khi khách hàng thực hiện cancel. Ví dụ: https://example.com/cancel
vnp_ip_addr Alphanumeric[7,45] Bắt buộc Địa chỉ IP của khách hàng thực hiện giao dịch. Ví dụ: 123.123.123.123
vnp_create_date Alphanumeric[14] Bắt buộc Thời gian ghi nhận giao dịch tại website của merchant GMT+7, định dạng: yyyyMMddHHmmss. Ví dụ: 20190702080900
vnp_store_token Numeric[1] Tùy chọn Lưu lại token hay không. Mặc định là có lưu token sau thanh toán thành công: 1
vnp_secure_hash Alphanumeric[32,256] Bắt buộc Mã kiểm tra (checksum) để đảm bảo dữ liệu của giao dịch không bị thay đổi trong quá trình chuyển từ merchant sang VNPAY. Việc tạo ra mã này phụ thuộc vào cấu hình của merchant và phiên bản api sử dụng. Phiên bản hiện tại hỗ trợ HMACSHA512

Danh sách tham số - Thông tin nhận về từ VNPAY (vnp_command=pay_and_create)

URL có dạng:

https://{merchant-domain}/returnUrl?vnp_amount=2000000&vnp_app_user_id=4&vnp_bank_code=NCB&vnp_bank_tran_no=20220328101710&vnp_card_number=970419xxxxxxxxx2198&vnp_card_type=01&vnp_command=pay_and_create&vnp_curr_code=VND&vnp_pay_date=20220328101704&vnp_response_code=00&vnp_tmn_code=B9KOCLN0&vnp_token=1001648437430Bbokwn87777777777MtWwQaal2o3RiztP6HEoD8RfDpz3k7H10o&vnp_transaction_no=13713744&vnp_transaction_status=00&vnp_txn_desc=Tao moi token&vnp_txn_ref=292&vnp_secure_hash={value}
Tham số Kiểu dữ liệu Bắt buộc/Tùy chọn Mô tả
vnp_app_user_id Alphanumeric[1,255] Bắt buộc User đăng nhập Web/App
vnp_token Alphanumeric[64] Tùy chọn Token do hệ thống VNPAY sinh ra
vnp_card_number Numeric[15,19] Tùy chọn Số thẻ thanh toán đã được masking. Ví dụ: 123456xxxxx6789
vnp_command Alpha[1,16] Bắt buộc Mã API sử dụng, mã cho giao dịch tạo token là: pay_and_create
vnp_tmn_code Alphanumeric[8] Bắt buộc Mã định danh kết nối của merchant được tạo trên hệ thống của VNPAY. VNPAY cung cấp cho merchant kết nối. Ví dụ: TOKEN001
vnp_response_code Numeric[2] Bắt buộc Mã phản hồi kết quả tạo token. Quy định mã trả lời 00 tương ứng với kết quả Thành công cho tất cả các API. Tham khảo bảng mã lỗi
vnp_txn_ref Alphanumeric[1,100] Bắt buộc Là mã giao dịch tham chiếu của hệ thống merchant gửi sang VNPAY yêu cầu thanh toán.
vnp_txn_desc Alphanumeric[1,255] Bắt buộc Thông tin mô tả nội dung thanh toán
vnp_transaction_no Alpha[3,18] Tùy chon Mã giao dịch tại VNPAY
vnp_card_type Numeric[2] Tùy chọn Loại thẻ thanh toán:
- Nội địa: 01
- Quốc tế: 02
vnp_bank_code Alphanumeric[3,20] Tùy chọn Mã Ngân hàng hoặc mã loại thẻ thanh toán. Ví dụ: VISA
vnp_bank_tran_no Alphanumeric[3,255] Tùy chọn Mã giao dịch tại Ngân hàng
vnp_transaction_status Numeric[2] Bắt buộc Tình trạng của giao dịch tại Cổng thanh toán VNPAY. Tham khảo bảng mã lỗi
- 00: Giao dịch thanh toán được thực hiện thành công tại VNPAY
- Khác 00: Giao dịch không thành công tại VNPAY
vnp_amount Numeric[1,12] Bắt buộc Số tiền thanh toán. VNPAY trả về merchant với số tiền nhân thêm 100 lần
vnp_curr_code Alpha[3] Bắt buộc Đơn vị tiền tệ sử dụng thanh toán VND
vnp_pay_date Alphanumeric[14] Bắt buộc Thời gian ghi nhận giao dịch tại VNPAY GMT+7, định dạng: yyyyMMddHHmmss. Ví dụ: 20190702080900
vnp_secure_hash Alphanumeric[32,256] Bắt buộc Mã kiểm tra (checksum) để đảm bảo dữ liệu của giao dịch không bị thay đổi trong quá trình chuyển từ VNPAY về merchant. Việc tạo ra mã này phụ thuộc vào cấu hình của merchant và phiên bản api sử dụng. Phiên bản hiện tại hỗ trợ HMACSHA512

Thanh toán bằng mã Token

Sơ đồ tuần tự

Endpoint: https://sandbox.vnpayment.vn/token_ui/payment-token.html
Http method: GET
Content-Type: application/x-www-form-urlencoded

URL có dạng:

https://sandbox.vnpayment.vn/token_ui/payment-token.html?vnp_amount=2000000&vnp_app_user_id=4&vnp_cancel_url=https://sandbox.vnpayment.vn/token-web-demo/payment-cancel&vnp_command=token_pay&vnp_create_date=20220328101834&vnp_curr_code=VND&vnp_ip_addr=10.22.7.92&vnp_locale=vi&vnp_return_url=https://sandbox.vnpayment.vn/token-web-demo/nav1-step3&vnp_tmn_code=B9KOCLN0&vnp_token=1001648437430Bbokwn87777777777MtWwQaal2o3RiztP6HEoD8RfDpz3k7H10o&vnp_txn_desc=thanh toan&vnp_txn_ref=293&vnp_version=2.0.1&vnp_secure_hash={value}

Danh sách tham số - Thông tin gửi sang VNPAY (vnp_command=token_pay)

Tham số Kiểu dữ liệu Bắt buộc/Tùy chọn Mô tả
vnp_version Alphanumeric[1,8] Bắt buộc Phiên bản api mà merchant kết nối. Phiên bản hiện tại là : 2.1.0
vnp_command Alpha[1,16] Bắt buộc Mã API sử dụng, mã cho giao dịch tạo token là: token_pay
vnp_tmn_code Alphanumeric[8] Bắt buộc Mã định danh kết nối của merchant được tạo trên hệ thống của VNPAY. VNPAY cung cấp cho merchant kết nối. Ví dụ: TOKEN001
vnp_txn_ref Alphanumeric[1,100] Bắt buộc Mã tham chiếu của giao dịch tại hệ thống của merchant. Mã này là duy nhất đùng để phân biệt các đơn hàng gửi sang VNPAY. Không được trùng lặp trong ngày
vnp_app_user_id Alphanumeric[1,255] Bắt buộc User đăng nhập Web/App
vnp_token Alphanumeric[64] Bắt buộc Mã token thực hiện giao dịch thanh toán. Ví dụ: 1001552464969RLrBoOOFOOOOOO6IJyr83OX34tLkKJACBvOaPii6WUXMDCzzv0n
vnp_amount Numeric[1,12] Bắt buộc Số tiền thanh toán. Số tiền không mang các ký tự phân tách thập phân, phần nghìn, ký tự tiền tệ. Để gửi số tiền thanh toán là 10,000 VND (mười nghìn VNĐ) thì merchant cần nhân thêm 100 lần (khử phần thập phân), sau đó gửi sang VNPAY là: 1000000
vnp_curr_code Alpha[3] Bắt buộc Đơn vị tiền tệ sử dụng thanh toán. Hiện tại chỉ hỗ trợ VND
vnp_txn_desc Alphanumeric[1,255] Bắt buộc Thông tin mô tả nội dung thanh toán
vnp_create_date Alphanumeric[14] Bắt buộc Thời gian ghi nhận giao dịch tại website của merchant GMT+7, định dạng: yyyyMMddHHmmss. Ví dụ: 20190702080900
vnp_ip_addr Alphanumeric[7,45] Bắt buộc Địa chỉ IP của khách hàng thực hiện giao dịch. Ví dụ: 123.123.123.123
vnp_locale Alpha[2] Tùy chọn Ngôn ngữ thanh toán. Hiện tại hỗ trợ 2 ngôn ngữ.
- Tiếng Việt: vn
- Tiếng Anh: en
vnp_return_url Alphanumeric[10,255] Bắt buộc Địa chỉ trả về khi khách hàng thực hiện tạo token xong. Ví dụ: https://example.com/return
vnp_cancel_url Alphanumeric[10,255] Tùy chọn Địa chỉ trả về khi khách hàng thực hiện cancel. Ví dụ: https://example.com/cancel
vnp_secure_hash Alphanumeric[32,256] Bắt buộc Mã kiểm tra (checksum) để đảm bảo dữ liệu của giao dịch không bị thay đổi trong quá trình chuyển từ merchant sang VNPAY. Việc tạo ra mã này phụ thuộc vào cấu hình của merchant và phiên bản api sử dụng. Phiên bản hiện tại hỗ trợ HMACSHA512

Danh sách tham số - Thông tin nhận về từ VNPAY (vnp_command=token_pay)

URL có dạng:

https://{merchant-domain}/returnUrl?vnp_amount=2000000&vnp_app_user_id=4&vnp_bank_code=NCB&vnp_bank_tran_no=20220328101913&vnp_card_number=970419xxxxxxxxx2198&vnp_card_type=01&vnp_command=token_pay&vnp_curr_code=VND&vnp_pay_date=20220328101907&vnp_response_code=00&vnp_tmn_code=B9KOCLN0&vnp_token=1001648437430Bbokwn87777777777MtWwQaal2o3RiztP6HEoD8RfDpz3k7H10o&vnp_transaction_no=13713749&vnp_transaction_status=00&vnp_txn_desc=thanh toan&vnp_txn_ref=293&vnp_secure_hash={value}
Tham số Kiểu dữ liệu Bắt buộc/Tùy chọn Mô tả
vnp_app_user_id Alphanumeric[1,255] Bắt buộc User đăng nhập Web/App
vnp_token Alphanumeric[64] Tùy chọn Token do hệ thống VNPAY sinh ra
vnp_card_number Numeric[15,19] Tùy chọn Số thẻ thanh toán đã được masking. Ví dụ: 123456xxxxx6789
vnp_command Alpha[1,16] Bắt buộc Mã API sử dụng, mã cho giao dịch tạo token là: token_pay
vnp_card_type Numeric[2] Tùy chọn Loại thẻ thanh toán:
- Nội địa: 01
- Quốc tế: 02
vnp_bank_code Alphanumeric[3,20] Tùy chọn Mã Ngân hàng hoặc mã loại thẻ thanh toán. Ví dụ: VISA
vnp_bank_tran_no Alphanumeric[3,255] Tùy chọn Mã giao dịch tại Ngân hàng
vnp_tmn_code Alphanumeric[8] Bắt buộc Mã định danh kết nối của merchant được tạo trên hệ thống của VNPAY. VNPAY cung cấp cho merchant kết nối. Ví dụ: TOKEN001
vnp_txn_ref Alphanumeric[1,100] Bắt buộc Là mã giao dịch tham chiếu của hệ thống merchant gửi sang VNPAY yêu cầu thanh toán.
vnp_txn_desc Alphanumeric[1,255] Bắt buộc Thông tin mô tả nội dung thanh toán
vnp_amount Numeric[1,12] Bắt buộc Số tiền thanh toán. VNPAY trả về merchant với số tiền nhân thêm 100 lần
vnp_curr_code Alpha[3] Bắt buộc Đơn vị tiền tệ sử dụng thanh toán VND
vnp_response_code Numeric[2] Bắt buộc Mã phản hồi kết quả tạo token. Quy định mã trả lời 00 tương ứng với kết quả Thành công cho tất cả các API. Tham khảo bảng mã lỗi:////////
vnp_pay_date Alphanumeric[14] Bắt buộc Thời gian ghi nhận giao dịch tại VNPAY GMT+7, định dạng: yyyyMMddHHmmss. Ví dụ: 20190702080900
vnp_transaction_no Alpha[3,18] Tùy chon Mã giao dịch tại VNPAY
vnp_transaction_status Numeric[2] Bắt buộc Tình trạng của giao dịch tại Cổng thanh toán VNPAY. Xem thêm tại://///////
- 00: Giao dịch thanh toán được thực hiện thành công tại VNPAY
- Khác 00: Giao dịch không thành công tại VNPAY
vnp_secure_hash Alphanumeric[32,256] Bắt buộc Mã kiểm tra (checksum) để đảm bảo dữ liệu của giao dịch không bị thay đổi trong quá trình chuyển từ VNPAY về merchant. Việc tạo ra mã này phụ thuộc vào cấu hình của merchant và phiên bản api sử dụng. Phiên bản hiện tại hỗ trợ HMACSHA512

Xóa Token

Sơ đồ tuần tự

Endpoint: https://sandbox.vnpayment.vn/token_ui/remove-token.html
Http method: GET
Content-Type: application/x-www-form-urlencoded

Danh sách tham số - Thông tin gửi sang VNPAY (vnp_command=token_remove)

Tham số Kiểu dữ liệu Bắt buộc/Tùy chọn Mô tả
vnp_version Alphanumeric[1,8] Bắt buộc Phiên bản api mà merchant kết nối. Phiên bản hiện tại là : 2.1.0
vnp_command Alpha[1,16] Bắt buộc Mã API sử dụng, mã cho giao dịch tạo token là: token_remove
vnp_tmn_code Alphanumeric[8] Bắt buộc Mã định danh kết nối của merchant được tạo trên hệ thống của VNPAY. VNPAY cung cấp cho merchant kết nối. Ví dụ: TOKEN001
vnp_app_user_id Alphanumeric[1,255] Bắt buộc User đăng nhập Web/App
vnp_txn_ref Alphanumeric[1,100] Bắt buộc Mã tham chiếu của giao dịch tại hệ thống của merchant. Mã này là duy nhất đùng để phân biệt các đơn hàng gửi sang VNPAY. Không được trùng lặp trong ngày
vnp_token Alphanumeric[64] Bắt buộc Mã token cần xóa
vnp_txn_desc Alphanumeric[1,255] Bắt buộc Nội dung của yêu cầu xóa token ( Request Description)
vnp_create_date Alphanumeric[14] Bắt buộc Thời gian phát sinh yêu cầu xóa Token GMT+7, định dạng: yyyyMMddHHmmss. Ví dụ: 20190702080900
vnp_ip_addr Alphanumeric[7,45] Bắt buộc Địa chỉ IP của máy chủ thực hiện gọi API. Ví dụ: 123.123.123.123
vnp_secure_hash Alphanumeric[32,256] Bắt buộc Mã kiểm tra (checksum) để đảm bảo dữ liệu của giao dịch không bị thay đổi trong quá trình chuyển từ merchant sang VNPAY. Việc tạo ra mã này phụ thuộc vào cấu hình của merchant và phiên bản api sử dụng. Phiên bản hiện tại hỗ trợ HMACSHA512

Danh sách tham số - Thông tin nhận về từ VNPAY (vnp_command=token_remove)

Tham số Kiểu dữ liệu Bắt buộc/Tùy chọn Mô tả
vnp_response_code Numeric[2] Bắt buộc Mã phản hồi kết quả xử lý của API. Quy định mã trả lời 00 ứng với yêu cầu querydr được thực hiện thành công. Tham khảo thêm tại bảng mã lỗi:
vnp_message Alphanumeric[1,255] Bắt buộc Mô tả ngắn gọn thông tin mã lỗi trả về từ VNPAY



Bảng mã lỗi của hệ thống thanh toán PAY

Mã lỗi Mô tả
Bảng mã lỗi vnp_transaction_status
00 Giao dịch thành công
01 Giao dịch chưa hoàn tất
02 Giao dịch bị lỗi
04 Giao dịch đảo (Khách hàng đã bị trừ tiền tại Ngân hàng nhưng GD chưa thành công ở VNPAY)
05 VNPAY đang xử lý giao dịch này (GD hoàn tiền)
06 VNPAY đã gửi yêu cầu hoàn tiền sang Ngân hàng (GD hoàn tiền)
07 Giao dịch bị nghi ngờ gian lận
09 GD Hoàn trả bị từ chối
Mã lỗi Mô tả
Bảng mã lỗi ResponseCode Tao Token (vnp_command = token_create)
01 Giao dịch đã tồn tại
02 Merchant không hợp lệ (kiểm tra lại vnp_tmn_code)
03 Dữ liệu gửi sang không đúng định dạng
04 Khởi tạo GD không thành công do Website đang bị tạm khóa
08 Giao dịch không thành công do: Hệ thống Ngân hàng đang bảo trì. Xin quý khách tạm thời không thực hiện giao dịch bằng thẻ/tài khoản của Ngân hàng này
24 Giao dịch bị hủy
79 Khác hàng thực hiện xác thực sai quá số lần cho phépy
97 Sai chữ ký
Mã lỗi Mô tả
Bảng mã lỗi ResponseCode Thanh toán và tạo Token (vnp_command = pay_and_create) & Thanh toán bằng Token (vnp_command = token_pay)
01 Giao dịch đã tồn tại
02 Merchant không hợp lệ (kiểm tra lại vnp_tmn_code)
03 Dữ liệu gửi sang không đúng định dạng
04 Khởi tạo GD không thành công do Website đang bị tạm khóa
08 Giao dịch không thành công do: Hệ thống Ngân hàng đang bảo trì. Xin quý khách tạm thời không thực hiện giao dịch bằng thẻ/tài khoản của Ngân hàng này.
24 Giao dịch bị hủy
79 Khác hàng thực hiện xác thực sai quá số lần cho phép
97 Sai chữ ký
99 Lỗi hệ thống
Mã lỗi Mô tả
Bảng mã lỗi ResponseCode Xóa Token
03 Giao dịch đã tồn tại
04 Khởi tạo GD không thành công do TmnCode đang bị tạm khóa
08 Giao dịch không thành công do: Hệ thống Ngân hàng đang bảo trì. Xin quý khách tạm thời không thực hiện giao dịch bằng thẻ/tài khoản của Ngân hàng này.
97 Sai chữ ký
99 Lỗi hệ thống
Mã lỗi Mô tả
RspCode Merchant phản hồi lại VNPAY qua đầu IPN URL
00 Kết quả cập nhật thành công trạng thái giao dịch vào CSDL của merchant
01 Không tìm thấy giao dịch VNPAY trả về trong CSDL của merchant
02 Giao dịch đã được confirm
04 Số tiền không hợp lệ
97 Sai chữ ký
99 Lỗi hệ thống (lỗi còn lại, không có trong danh sách mã lỗi đã liệt kê)