PaymentResult
The terminal (or near-terminal) outcome of a payment attempt, as reported by the client SDK.
Critical invariant this app teaches: a Success here is a hint, not proof. Only the backend — after signature verification and webhook reconciliation — decides the true state. The orchestrator always confirms server-side before trusting a client Success.
Inheritors
Types
Link copied to clipboard
Link copied to clipboard
data class Failure(val code: FailureCode, val message: UiText, val raw: RedactedPayload) : PaymentResult
Link copied to clipboard
data class Pending(val reason: PendingReason, val verification: Map<String, String> = emptyMap(), val raw: RedactedPayload = RedactedPayload.EMPTY) : PaymentResult
Not yet terminal — e.g. UPI SUBMITTED. Requires polling the backend to resolve.
Link copied to clipboard
data class Success(val paymentId: String, val verification: Map<String, String>, val raw: RedactedPayload) : PaymentResult