Appearance
Events
Subscribe to Cash App order lifecycle signals.
When to use
Navigate to success, show failed or expired UI. For the current order you can also read getActiveOrder().
Methods
| Method | Event | When |
|---|---|---|
onOrderCompleted | cashApp:orderCompleted | Payment succeeded ({ sessionId, order }) |
onOrderFailed | cashApp:orderFailed | Payment failed ({ sessionId, order, payload }) |
onOrderExpired | cashApp:orderExpired | Local timer hit expiresAt ({ sessionId, order }) |
onOrderReset | cashApp:orderReset | Local order cleared via reset() ({ sessionId, order }) |
onDepositStatus | cashApp:depositStatus | Optional raw status (pending / success / failure) |
Each returns an unsubscribe function. You can also use client.on('cashApp:…') — see Events (Core).
Order events include sessionId and are delivered only for the live session. A createOrder still in flight when restartSession() completes is discarded (SESSION_REPLACED) and does not emit on the new session.
Prefer onOrderCompleted / onOrderFailed / onOrderExpired / onOrderReset for UI. Use onDepositStatus only when you need the raw status payload.
Example
ts
const offs = [
client.cashApp.onOrderCompleted(({ order }) => {
// success screen — then getCompletedTransactionSummary()
console.log('paid', order.id);
}),
client.cashApp.onOrderFailed(({ order }) => {
// failed UI — create a new order or go back
console.log('failed', order.id);
}),
client.cashApp.onOrderExpired(({ order }) => {
// expired UI — create a new order or go back
console.log('expired', order.id);
}),
client.cashApp.onOrderReset(({ order }) => {
// local clear — `order` is the previous active order, or `null`
console.log('reset', order?.id);
}),
];
// later
offs.forEach(off => off());Related
- Orders & checkout for create / checkout fields
- Expiry for countdown helpers
- Errors for failure mapping