Địa chỉ IP công khai của SePay

Danh sách địa chỉ IP mà SePay sử dụng để gửi webhook, IPN callback và kết nối API outbound. Whitelist các IP này để đảm bảo giao tiếp server an toàn.

||

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à Bank Hub
  • 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

IPv4

Code
1
2
3
4
5
6
172.236.138.20
172.233.83.68
171.244.35.2
151.158.108.68
151.158.109.79
103.255.238.139

IPv6

Code
1
2
2400:8905::2000:8cff:fe98:45cd
2600:3c15::2000:8aff:fedd:874b
Quan trọng

Bạn cần allowlist tất cả các địa chỉ IP (cả IPv4 và IPv6) ở 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).

Yêu cầu 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) — IPv4:

Bash
1
2
3
4
5
6
7
# Cho phép kết nối từ SePay đến cổng 443
iptables -A INPUT -s 172.236.138.20 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -s 172.233.83.68 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -s 171.244.35.2 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -s 151.158.108.68 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -s 151.158.109.79 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -s 103.255.238.139 -p tcp --dport 443 -j ACCEPT

ip6tables (Linux) — IPv6:

Bash
1
2
3
# IPv6 dùng ip6tables, không dùng iptables
ip6tables -A INPUT -s 2400:8905::2000:8cff:fe98:45cd -p tcp --dport 443 -j ACCEPT
ip6tables -A INPUT -s 2600:3c15::2000:8aff:fedd:874b -p tcp --dport 443 -j ACCEPT

Nginx (allow directive):

NGINX
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Trong block location nhận webhook
location /webhook {
# IPv4
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;
# IPv6
allow 2400:8905::2000:8cff:fe98:45cd;
allow 2600:3c15::2000:8aff:fedd:874b;
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_KEY trong 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