/realms/{realmId}/organizations/{organizationId}/accounts/{accountId}/wallets/{walletId}/transfer-requests/{transferRequestId}/cancel
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Response
Successful response
The persisted Mongoose entity — the commons WalletTransferRequestView (the PINNED wire contract the ruleengine/platform modules being built alongside this one already type their clients against — see commons/app/banking/interfaces/walletTransferRequest.ts) plus two banking-internal fields that never need a place in that contract: - environment (LIVE|TEST): recorded at creation from the x-environment header so confirm/deny/cancel never depend on the CALLER resending one — the ROOT/ruleengine service caller (confirm on quorum-approve, deny on quorum-deny) has no reason to know or carry it. - confirmingAt: the atomic-claim lock confirmWalletTransferRequestCommand uses so a concurrent double-confirm 409s instead of double-moving money (see commands/confirmWalletTransferRequest.ts). Both ride as harmless extra keys on the wire response (banking has no presenter layer — see banking/CLAUDE.md) rather than being stripped; only confirmingAt is deleted by the model's toJSON transform since it is a pure internal lock with no reason to ever reach a client.
FLEX_NATIONAL, FLEX_INTERNATIONAL, FOOD, GAS, MOBILITY, TOLL, FLEX_NATIONAL_WITHOUT_WITHDRAWALS, ADS, SAAS, HOTEL, AIRLINES, TRAVEL FLEX_NATIONAL, FLEX_INTERNATIONAL, FOOD, GAS, MOBILITY, TOLL, FLEX_NATIONAL_WITHOUT_WITHDRAWALS, ADS, SAAS, HOTEL, AIRLINES, TRAVEL PENDING_APPROVAL, REQUESTED, CONFIRMED, DENIED, CANCELLED, EXPIRED, FAILED, ERROR LIVE, TEST