Skip to main content

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 URLWebhook URL
What it isWhere the customer's browser is redirected after checkoutWhere our server sends a POST notification
Set wherePer-transaction, as callbackUrl in the Initialize requestOnce, in Dashboard > Settings > API Keys & Webhooks
TriggerEvery time, as soon as the customer finishes on the checkout page (success or failure)Only on a successful transaction
ReliabilityDepends on the customer's browser actually following the redirectRetried up to 3 times if your server doesn't return 2xx
Use it forGetting the customer back to your site/appThe 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.

Don't comment out callbackUrl

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:

Example redirect
https://www.my-website.com?isSuccess=true&successMessage=Transaction+successful.+Approved+by+Financial+Institution&transactionId=e85pzickley8sqfli6be&reference=0jak5i8c8W38U4O&amount=10
ParamDescription
isSuccesstrue / false
successMessageHuman-readable result message
transactionIdThe transactionId you passed on Initialize
referenceThe gateway's payment reference
amountThe 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.

You usually don't need the Register Webhook API endpoint

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.