Webhook

Webhook is an HTTP request a payment platform sends to the merchant's server when a transaction changes status, such as approved, declined or paid out, and in payments it is the authoritative record that the merchant's ledger should act on.

Also called: webhooks, callback, server-to-server notification, payment notification, IPN, status notification

Updated

On this page4 sections

How does a webhook work?

The merchant registers an HTTPS endpoint with the platform and chooses which events to receive. When a transaction changes state, the platform sends a POST request with a JSON body describing it. The merchant’s server checks that the request is genuine, usually by verifying a signature, returns a success status quickly, and processes the event. Stripe’s documentation recommends returning a 2xx response before any complex logic, and retries undelivered events for up to three days in live mode.

Why do webhooks matter in payments?

Many payments finish after the customer has left. Bank transfers, instant payments, vouchers, 3-D Secure flows and payouts can all resolve seconds, minutes or days later. As an illustrative example: a merchant confirms orders on the browser redirect. Of 20,000 payments a day, 150 redirects fail and the customers see no confirmation, while 40 payments redirect as successful but are reversed by the provider. Crediting only on the webhook fixes both, and the support tickets with them.

What goes wrong with webhooks?

Duplicates, out-of-order delivery, endpoints that time out under load, and handlers that trust unverified requests. Good practice is to verify signatures, process asynchronously through a queue, deduplicate by event or transaction ID, ignore events that would downgrade a final status, and reconcile anything still open with a status lookup.

Where does Omno use it?

Omno sends a webhook for transaction status changes to the merchant’s backend for Pay-In and Pay-Out, in one format whichever provider processed the payment. Webhooks and the Get Transaction Info endpoint are the source of truth for final statuses, failed deliveries are retried up to 10 times with every attempt visible in the delivery log, and the webhooks guide covers safe handling.

Frequently asked questions

Why not rely on the browser redirect after payment?

Because the redirect only tells you where the customer's browser went, not what the provider decided. Customers close tabs, mobile browsers drop redirects, and some methods confirm minutes or hours later. The webhook to your server, or a status lookup through the API, is the record to trust.

Can the same webhook arrive twice?

Yes. Stripe's documentation, for example, says endpoints might occasionally receive the same event more than once and that events are not guaranteed to arrive in the order they were generated. Process webhooks idempotently, keyed on the event or transaction, and never let a late event overwrite a final status.

esc
↑↓ to move ↵ to open All results