Callback URL vs Webhook URL
A single payment involves two distinct URLs that are easy to mix up because they're both "where we send you information after payment." They're configured differently, fire at different times, and serve different purposes.
| Callback URL | Webhook URL | |
|---|---|---|
| What it is | Where the customer's browser is redirected after checkout | Where our server sends a POST notification |
| Set where | Per-transaction, as callbackUrl in the Initialize request | Once, in Dashboard > Settings > API Keys & Webhooks |
| Trigger | Every time, as soon as the customer finishes on the checkout page (success or failure) | Only on a successful transaction |
| Reliability | Depends on the customer's browser actually following the redirect | Retried up to 3 times if your server doesn't return 2xx |
| Use it for | Getting the customer back to your site/app | The source of truth for updating order status server-side |
Because the callback URL depends on the customer's browser, don't treat it as your only confirmation of payment — always confirm the transaction server-side via the webhook or Fetch Transaction Status.
If callbackUrl is omitted or commented out in your Initialize request, the customer won't be redirected back to your site after payment.
Callback URL: what you get back
After checkout, the customer's browser is redirected to your callbackUrl with the transaction result as query parameters:
https://www.my-website.com?isSuccess=true&successMessage=Transaction+successful.+Approved+by+Financial+Institution&transactionId=e85pzickley8sqfli6be&reference=0jak5i8c8W38U4O&amount=10
| Param | Description |
|---|---|
isSuccess | true / false |
successMessage | Human-readable result message |
transactionId | The transactionId you passed on Initialize |
reference | The gateway's payment reference |
amount | The amount charged |
Treat this as a hint to show the right screen to the customer — verify the actual outcome with Fetch Transaction Status or your webhook handler before, e.g., releasing an order.
Webhook URL: how to set it up
See the full Webhooks guide for the payload shape and setup steps. The short version: configure it once from the dashboard.
There's also a Register Webhook URL API endpoint in the reference. For most merchants this isn't necessary — setting the webhook URL from Settings > API Keys & Webhooks in the dashboard is the primary, supported path, and it's already in effect once you save it there.