KreedX — Banking API and Payments Platformby DigiPulse Solutions
Developer Docs

Webhooks & Transaction Status

Some transactions finish instantly; others come back PENDING and settle a little later. Here is how to learn how they ended.


Sample guide

This shows how it works across our APIs. Exact header names, values and any extra steps are confirmed with your sandbox credentials.

Two ways to get the result

  1. Webhook — we call an HTTPS endpoint you provide whenever a status changes. This is your main path: no polling, no delay.
  2. Status call — you ask for a transaction by its reference. Use it as a backstop when a webhook has not arrived, and for support lookups.

What a webhook carries

A JSON body with the transaction's references and its new status, for example:

Webhook body — sample
{
  "event": "transaction.updated",
  "referenceId": "KRXB71Q2M8",
  "clientReference": "order_20260921_0001",
  "status": "SUCCESS",
  "amount": 1240,
  "updatedAt": "2026-09-21T10:42:07+05:30"
}

Handling webhooks well

  1. Reply with a 2xx quickly, then do the work. Slow replies look like failures and get retried.
  2. Expect the same event more than once. Use referenceId to ignore repeats.
  3. Only move a status forward — PENDING to SUCCESS or FAILED — never back.
  4. Verify the sender. How webhooks are signed is shared with your credentials; until you check it, treat the body as a hint and confirm with a status call.

Give us a test endpoint early

A webhook URL is one of the five things to have ready. A temporary one is fine in sandbox — it only has to be HTTPS.

Status calls

Each API that can return PENDING has a status call:

APIMethodEndpoint
Bill Payments APIGET/v1/bbps/payments/{referenceId}
Cash Management APIGET/v1/cms/collections/{collectionId}
Card Bill Payment APIGET/v1/cards/payments/{referenceId}