Payment Request Callback & Webhook URLs

This section explains the three URL fields that complete the payment flow: CallbackUrl, FailureCallbackUrl, and SuccessWebHookUrl.

CallbackUrl

Purpose
Once the payment page has processed the payment attempt (card, wallet, or Pay by Bank) or a notification of an inbound Pay by Bank payment is received, the payer’s browser is redirected to CallbackUrl. This is normally a page on your site that shows the outcome of the attempt.

How it is invoked

  • HTTP GET.
  • If the URL contains the placeholder {id}, it is replaced with the payment request’s ID before the redirect.

Example

https://merchant.example.com/checkout/result/{id}
→ https://merchant.example.com/checkout/result/86ee37d9‑5cda‑4ba1‑a40a‑2c4e464e3b2f

Recommended handling

  1. Read the id value from the path or query string.
  2. Call the Get Payment Request API with that ID.
  3. Show an appropriate success/failure/pending message to the payer.

FailureCallbackUrl

Purpose
Optional URL used when the payer leaves the payment page (e.g., is sent to their bank during a Pay by Bank flow) and the attempt ultimately fails. If this property is not supplied, the payer is redirected back to the OriginUrl that initiated the payment.

How it is invoked

  • HTTP GET.
  • {id} placeholder is substituted exactly as for CallbackUrl.

Example

https://merchant.example.com/checkout/failed/{id}
→ https://merchant.example.com/checkout/failed/86ee37d9‑5cda‑4ba1‑a40a‑2c4e464e3b2f

Recommended handling

  1. Read the id and call Get Payment Request for status details.
  2. Display a suitable "payment failed" message and instructions for the payer.

SuccessWebHookUrl

Purpose
A server‑to‑server notification that the payment request has reached FullyPaid. This allows your backend to complete the order lifecycle without relying on the payer’s session.

When it fires
Immediately after any event (card settlement, wallet capture, inbound Pay by Bank credit) transitions the payment request to FullyPaid.

How it is invoked

  • HTTP GET.

  • Two query parameters are appended:

    • id – the Payment Request ID
    • orderid – the OrderID supplied when the request was created (may be empty)

Example

https://merchant.example.com/api/payment/success
  ?id=86ee37d9‑5cda‑4ba1‑a40a‑2c4e464e3b2f
  &orderid=INV‑2025‑1287

Recommended handling