Add account balance enquiry via GET /accounts/balance
The CBS API now exposes a balance endpoint, which it previously did not. Several comments in the codebase asserted that no such endpoint existed anywhere in the API; those are corrected here rather than left to mislead. Balance is fetched lazily, per account, from the Account Details card: - `accounts.balance` endpoint, `CbsAccountBalance` type, and a `getAccountBalance` query with `keepUnusedDataFor: 0` — a balance is the most perishable figure in the app and must not outlive its screen. - The call is triggered by the customer, not by render. Every call reaches the core banking system, and a balance should not appear over someone's shoulder just for opening a screen. - `supportsBalanceEnquiry` gates the control by account type only, with no status check: a dormant savings account cannot be debited but still has a balance. Deposits are excluded because the endpoint does not serve them. - `ACCOUNT_BALANCE_NOT_AVAILABLE` added to the error catalogue as a non-retryable refusal, so the card states it instead of inviting a tap that gets the identical answer. Also carries in-progress work already present in the tree: customer-facing account type labels (`accountTypeLabel`) applied across the account card, selector, mini statement, balance enquiry and MMID screens. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
2dcb10775c
commit
86f9647437
@@ -251,6 +251,19 @@ export interface CbsAccount {
|
||||
mmid: string | null;
|
||||
}
|
||||
|
||||
/**
|
||||
* One account's balance, as `GET /accounts/balance` returns it.
|
||||
*
|
||||
* Deliberately not folded into `CbsAccount`: `GET /accounts` does not carry a
|
||||
* balance, and the two are fetched at different moments for different reasons.
|
||||
* Keeping them apart is what stops a stale figure riding along on an account
|
||||
* list that was cached for some other purpose.
|
||||
*/
|
||||
export interface CbsAccountBalance {
|
||||
/** In rupees. The bank's live figure at the moment of the call. */
|
||||
balance: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* One deposit as `GET /accounts/deposits/detail` returns it.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user