Skip to main content
Webhooks allow Singapay to push real-time notifications to your server whenever an event occurs — such as a transaction status change, disbursement completion, or product expiration. Instead of polling the API, your endpoint receives an HTTP POST request the moment something happens.

How it works

When an event is triggered, Singapay sends a POST request to the webhook URL you have configured in your merchant dashboard. Your server must respond with HTTP 200 OK to acknowledge receipt.

Retry mechanism

If your endpoint does not return HTTP 200 OK, SingaPay automatically retries delivery. See Webhook retry mechanism for status-specific rules, intervals, and failure notifications.

Webhook categories

Webhooks are grouped by event type: Money In
  • Virtual Account Transaction
  • QRIS Acquirer Transaction
  • Payment Link Transaction
  • E-Wallet Native Transaction
  • Subscription Cycle
Money Out
  • Disbursement Transaction
  • E-Wallet Top Up Transaction
  • QRIS Issuer Transaction
Optional
  • Payment Link Inquiry
  • Product Expiration
  • Transaction Money-In Expiration

Best practices

  • Always validate the webhook payload before processing.
  • Return 200 OK as quickly as possible — offload heavy processing to a background job.
  • Handle duplicate deliveries idempotently, since retries may deliver the same event more than once.
  • Log all incoming webhook payloads for debugging and reconciliation.