When a bank transaction lands in a linked account, SePay sends an HTTP POST with the transaction data to a URL you configure. Your server receives the POST, processes the transaction, then returns HTTP 200 to SePay.
You can monitor inbound transfers, outbound transfers, or both, and filter by specific bank account, virtual account, or payment code. SePay supports four authentication methods (HMAC-SHA256, API Key, OAuth 2.0, or none) and automatically retries up to 7 times spaced by Fibonacci intervals (about 33 minutes total) when your endpoint fails. Delivery logs, manual replay, and alerts via Telegram, Slack, or Discord are included.
Prerequisites
- SePay account
- At least 1 linked bank account. See Bank accounts for the supported list.
- A public URL that accepts POST requests. For local dev, use ngrok or similar.
Once ready, head to Quick start to create your first webhook.
Next
- Quick start: create your first webhook, PHP/Node.js code
- Integrate webhook: payload, valid response, idempotency
- Create webhook: 4-step form, filters, test send
- Authentication: HMAC-SHA256, API Key, OAuth 2.0
- Monitoring: delivery logs, alerts, incidents