Home · Apps · rl-bank-mvp
Status: Draft, intended to match the current implementation slice.
publicSetMyCardFrozen(input)Sets the frozen state for a customer-owned card.
Input:
cardId: String!frozen: Boolean!Output:
data contains updated card objectdebugCorrelationId: String on the payload when availableBehavior:
frozen=true, target card status becomes FROZENfrozen=false, target card status becomes ACTIVEpublicUpdateMyCardSpendingLimit(input)Updates the customer-visible spending limit for a card.
Input:
cardId: String!spendingLimit: Float!Output:
data contains updated card objectdebugCorrelationId: String on the payload when availableValidation:
50020000CLOSEDpublicListMyActivityReturns a reverse-chronological activity feed for the authenticated customer.
Output item fields:
idcategory — CARD, TRANSFER, NOTIFICATION, ACCOUNTtitledescriptioncreatedAtreadAt nullablecardId nullableaccountId nullabletransactionId nullablenotificationId nullabledebugCorrelationId nullableSources:
publicListMyNotificationsReturns customer-scoped in-app notifications ordered newest-first.
Output item fields:
idtitlebodylevel — INFO, SUCCESS, WARNINGreadAt nullablecreatedAtrelatedCardId nullablerelatedAccountId nullabledebugCorrelationId nullablepublicMarkMyNotificationRead(input)Marks a customer-owned notification as read.
Input:
notificationId: String!Output:
CardObjectAdd fields:
canFreeze: Boolean!canUnfreeze: Boolean!canUpdateSpendingLimit: Boolean!AccountObjectAdd fields for account-detail realism:
recentTransactionCount: Int!inflowTotal30d: Float!outflowTotal30d: Float!balanceGap: Float!These are derived summary fields, not separate stored source-of-truth balances.
publicListMyAccountsExisting query remains in use, but account items should now include the derived fields above so the apps can render a believable portfolio view.
publicGetMyAccount(input)Existing query remains the single-account detail fetch.
publicListMyTransactionsExisting query remains the source for recent account history. Apps may filter transactions client-side by accountId for the selected account in this slice.
Where the implementation returns debug metadata for servicing operations, prefer a non-breaking optional field:
debugCorrelationId: StringadminListAccountsForSupport(input)Returns a support-oriented list of accounts for staff users with account.read.
Input:
pagination.pageIndex: Intpagination.pageSize: Intsearch: String optional, matched against customer id, account id, account number, and masked account number tailOutput item fields:
idcustomerIdaccountNumbermaskedAccountNumberaccountTypeproductNamecurrencystatusavailableBalancecurrentBalancelastTransactionAtrecentTransactionCountadminGetAccountSupportDetail(input)Returns a support detail payload for a specific account.
Input:
accountId: String!Output fields:
account — enriched account objectrecentTransactions[]recentTransfers[]recentNotifications[]recentAuditLogs[]availableStatusTransitions[]Behavior:
account.readadminUpdateAccountStatus(input)Updates an account status from the support workspace.
Input:
accountId: String!targetStatus: AccountStatus!reason: String!Output:
data contains the refreshed support detail payloadValidation:
account.managereason must be non-empty after trimACTIVE -> FROZENFROZEN -> ACTIVEACTIVE -> CLOSEDFROZEN -> CLOSEDCLOSED cannot transition further in this sliceaccount.read gates support read accessaccount.manage gates support servicing mutationsCommon failure cases:
account.manage for account servicingError messaging goal: