finnpay.
Finn Pay · query reference

URL trước.
Xác nhận sau.

Điền trước thông tin thanh toán bằng query string. Không tạo đơn tự động — người dùng luôn kiểm tra và xác nhận trên giao diện.

Bắt đầu nhanh

Nối các tham số bằng dấu & sau dấu ?.

https://pay.finnvnoi.top/?amount=50000&name=Nguyen%20Van%20A&content=Thanh%20toan&timeout=2&timeout_unit=hours
Mở URL mẫu →

Tham số

amountSố nguyên VND

Số tiền cần nhận. Bỏ trống để người chuyển tự nhập.

nameChuỗi · 100 ký tự

Tên người chuyển được điền sẵn.

require_name1

Bắt buộc nhập tên trước khi xác nhận.

contentChuỗi · 100 ký tự

Nội dung chuyển khoản. Bỏ trống thì hệ thống tự sinh mã PAY ….

timeoutSố dương

Thời gian chờ, mặc định 30.

timeout_unitminutes · hours · days

Đơn vị thời gian; tổng thời gian tối đa 30 ngày.

refChuỗi · 100 ký tự

Mã tham chiếu của hệ thống gọi.

Ví dụ

Số tiền cố định, bắt buộc tên

/?amount=125000&content=Thanh%20toan%20don%20123&require_name=1&timeout=1&timeout_unit=days&ref=order-123

Không cố định số tiền, tự sinh nội dung

/?timeout=30&timeout_unit=minutes

Tên, nội dung và thời gian 7 ngày

/?name=Nguyen%20Van%20A&content=Ung%20ho&timeout=7&timeout_unit=days

Quy tắc

  • Mở URL không tạo bản ghi ngay.
  • Người dùng bấm Xác nhận và tạo sau khi kiểm tra popup.
  • Có amount: số tiền nhận và nội dung đều phải khớp.
  • Không có amount: dùng số tiền thực nhận sau khi khớp nội dung.
  • Nội dung trùng được thêm mã để duy nhất.
  • CODE MFA không truyền qua URL.
Không đưa mã xác thực vào query string. URL có thể xuất hiện trong lịch sử trình duyệt, log hoặc referrer.

URL encoding

Dùng URLSearchParams để encode tiếng Việt và khoảng trắng:

const url = new URL('https://pay.finnvnoi.top/');
url.searchParams.set('amount', '50000');
url.searchParams.set('name', 'Nguyễn Văn A');
url.searchParams.set('content', 'Thanh toán đơn 123');
console.log(url.toString());