Skip to main content
GET
/realms/{realmId}/organizations/{organizationId}/accounts/{accountId}/wallets/{walletId}/transfer-requests/{transferRequestId}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

realmId
string
required
organizationId
string
required
accountId
string
required
walletId
string
required
transferRequestId
string
required

Response

200 - application/json

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.

id
string
required
realmId
string
required
organizationId
string
required
accountId
string
required

The account BOTH wallets belong to (one organization = one account).

walletId
string
required

The SUBJECT wallet (the path wallet) — never the org default wallet.

defaultWalletId
string
required

The organization's default wallet — the counterparty on every transfer request — snapshotted at creation so a later default-wallet change cannot retarget an already-open request.

destinationCategory
enum<string>
required

The balance category on the SUBJECT wallet's side — see the payload.

Available options:
FLEX_NATIONAL,
FLEX_INTERNATIONAL,
FOOD,
GAS,
MOBILITY,
TOLL,
FLEX_NATIONAL_WITHOUT_WITHDRAWALS,
ADS,
SAAS,
HOTEL,
AIRLINES,
TRAVEL
amount
number
required

Signed integer cents — see CreateWalletTransferRequestPayload.amount.

requester
object
required
status
enum<string>
required
Available options:
PENDING_APPROVAL,
REQUESTED,
CONFIRMED,
CANCELLED,
EXPIRED,
FAILED,
SCHEDULED
createdAt
string
required
updatedAt
string
required
environment
enum<string>
required
Available options:
LIVE,
TEST
walletName
string

Display name of the subject wallet, snapshotted at creation from the already-loaded wallet doc (a later rename does not propagate) — carried so the policy-request (and this doc's own reads) can show it without a wallet lookup. Absent on docs created before the field existed and on legacy wallets with no name.

txnCurrency
enum<string>

The wallet's currency as an ISO-4217 numeric code, in string form ("986" = BRL). Set from the wallet when the request is created and never accepted as input. Absent on requests created before this field existed.

Available options:
784,
971,
008,
051,
973,
032,
036,
533,
944,
977,
052,
050,
048,
108,
060,
096,
068,
984,
986,
044,
064,
072,
933,
084,
124,
976,
947,
756,
948,
990,
152,
156,
170,
970,
188,
192,
132,
203,
262,
208,
214,
012,
818,
232,
230,
978,
242,
238,
826,
981,
936,
292,
270,
324,
320,
328,
344,
340,
332,
348,
360,
376,
356,
368,
364,
352,
388,
400,
392,
404,
417,
116,
174,
408,
410,
414,
136,
398,
418,
422,
144,
430,
426,
434,
504,
498,
969,
807,
104,
496,
446,
929,
480,
462,
454,
484,
979,
458,
943,
516,
566,
558,
578,
524,
554,
512,
590,
604,
598,
608,
586,
985,
600,
634,
946,
941,
643,
646,
682,
090,
690,
938,
752,
702,
654,
925,
706,
968,
728,
930,
222,
760,
748,
764,
972,
934,
788,
776,
949,
780,
901,
834,
980,
800,
840,
997,
940,
858,
927,
860,
926,
928,
704,
548,
882,
396,
950,
961,
959,
955,
956,
957,
958,
951,
532,
960,
952,
964,
953,
962,
994,
963,
965,
999,
886,
710,
967,
924
description
string
policyRequestId
string
autoResolutionRequestedAt
string

When a confirm first asked the policy engine to execute the matched auto-approving policy for this request. Informational; once set, every later confirm of this request is reconciled against that execution.

scheduledAt
string
scheduledTimeZone
string
scheduleId
string
approvalExpiresAt
string
confirmedAt
string
canceledAt
string

ONE l — the fleet spelling for this timestamp (pix/boleto/ted all use canceledAt). The STATUS value keeps two (CANCELLED), which all of them already share; only the timestamp was inconsistent.

failureReason
string
customFields
object

Custom-field values, keyed by the definition's slug.

confirmingAt
string