Skip to main content

Transaction Statuses

Fetch Transaction Status, Get Payment Details, and webhooks all describe a transaction's outcome with the same three fields. They're not interchangeable — use them for what they're each meant for.

Branch on isSuccessful

isSuccessful is a boolean and is the field your code should check. It's unambiguous and won't change wording between endpoints.

FieldTypeUse it for
isSuccessfulbooleanThe source of truth. true means the transaction succeeded — branch your logic on this.
statusstringOne of Successful, Failed, or Pending. Useful for display or logging, and for distinguishing "still processing" (Pending) from a hard failure.
gatewayResponsestringA human-readable message (e.g. "Transaction Successful. Approved by Financial Institution"). Useful for showing the customer or support team why a transaction failed — don't parse it programmatically, since the wording can vary.

Pending transactions

A Pending status means the transaction is still processing (for example, awaiting OTP/token confirmation) — it is not a failure. Don't treat isSuccessful: false alongside status: "Pending" the same way you'd treat a genuine failure; poll Fetch Transaction Status or wait for the webhook before deciding the transaction failed.