Địa chỉ IP của SePay
Danh sách địa chỉ IP mà SePay sử dụng để gửi webhooks, IPN callbacks và các kết nối ra ngoài đến hệ thống của bạn. Thêm các IP này vào allowlist trên firewall để đảm bảo nhận được thông báo từ SePay.
SePay sử dụng các địa chỉ IP dưới đây để gửi các kết nối ra ngoài (outbound) đến hệ thống của bạn. Các kết nối này bao gồm:
- Webhooks — Thông báo giao dịch theo thời gian thực
- IPN (Instant Payment Notification) — Thông báo thanh toán từ Cổng thanh toán và BankHub
- Các callback khác — Mọi kết nối từ SePay đến server của bạn
Nếu hệ thống của bạn sử dụng firewall hoặc bất kỳ cơ chế lọc IP nào, bạn cần thêm tất cả các địa chỉ IP bên dưới vào allowlist (whitelist) để đảm bảo nhận được thông báo từ SePay.
Danh sách địa chỉ IP
172.236.138.20172.233.83.68171.244.35.2151.158.108.68151.158.109.79103.255.238.139
Bạn cần allowlist tất cả các địa chỉ IP trên. SePay có thể gửi request từ bất kỳ IP nào trong danh sách này. Danh sách IP có thể được cập nhật trong tương lai — hãy kiểm tra trang này định kỳ hoặc theo dõi thông báo từ SePay.
Cấu hình Firewall
Nếu bạn cần cấu hình firewall, hãy cho phép các kết nối đến (inbound) từ các IP trên đến cổng mà server của bạn lắng nghe (thường là cổng 443 cho HTTPS).
URL webhook và IPN của bạn phải sử dụng HTTPS. SePay không gửi request đến các URL HTTP không mã hóa.
Ví dụ cấu hình
iptables (Linux):
# Cho phép kết nối từ SePay đến cổng 443iptables -A INPUT -s 172.236.138.20 -p tcp --dport 443 -j ACCEPTiptables -A INPUT -s 172.233.83.68 -p tcp --dport 443 -j ACCEPTiptables -A INPUT -s 171.244.35.2 -p tcp --dport 443 -j ACCEPTiptables -A INPUT -s 151.158.108.68 -p tcp --dport 443 -j ACCEPTiptables -A INPUT -s 151.158.109.79 -p tcp --dport 443 -j ACCEPTiptables -A INPUT -s 103.255.238.139 -p tcp --dport 443 -j ACCEPT
Nginx (allow directive):
# Trong block location nhận webhooklocation /webhook {allow 172.236.138.20;allow 172.233.83.68;allow 171.244.35.2;allow 151.158.108.68;allow 151.158.109.79;allow 103.255.238.139;deny all;proxy_pass http://your_backend;}
Xác thực nguồn gọi
Ngoài việc lọc IP, SePay khuyến nghị sử dụng thêm các phương thức xác thực sau:
- API Key — SePay gửi header
Authorization: Apikey YOUR_API_KEYtrong mỗi request. Kiểm tra header này để xác nhận request đến từ SePay. - OAuth 2.0 — Dành cho các tích hợp yêu cầu mức bảo mật cao hơn.
Kết hợp lọc IP với xác thực API Key/OAuth 2.0 sẽ cung cấp hai lớp bảo mật cho hệ thống của bạn.
Tài liệu liên quan
- Bắt đầu nhanh với Webhooks — Hướng dẫn tổng quan tích hợp webhook
- Lập trình Webhooks (PHP) — Code mẫu nhận webhook bằng PHP
- Lập trình Webhooks (Node.js) — Code mẫu nhận webhook bằng Node.js
- Thông báo biến động số dư (BankHub) — Cấu hình IPN cho BankHub