What are SePay Webhooks?

SePay Webhooks push bank transaction events to your server in real time. Review features and prerequisites before starting your integration.

||

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

  1. SePay account
  2. At least 1 linked bank account. See Bank accounts for the supported list.
  3. 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