URL: /baas/api/integration/flows/individual-customer/wallet-operations --- title: 'Phase 6: Wallet Operations' description: 'Query balance, check allowed operations, and view transaction limits' --- # Phase 6: Wallet Operations After activation, the customer can query their wallet balance, check allowed operations, and view transaction limits. ## Prerequisites | Requirement | Status | |-------------|--------| | Customer Status | `ACTIVE` | | Wallet Status | `ACTIVE` | | Valid Session | JWT token | --- ## Get Wallet Balance **Endpoint:** `GET /api/v2.1/fintrans/{accountId}/balance` **Path Parameters:** - `accountId`: Wallet ID from activation response **Headers:** ```http Authorization: Bearer {jwt-token} ``` **Status:** `200 OK` ```json { "code": 200, "message": "Balance retrieved successfully", "data": { "walletId": "wallet-aa0e8400-e29b-41d4-a716-446655440050", "iban": "FR7630001007941234567890185", "currency": "EUR", "status": "ACTIVE", "currentBalance": "500000", "currentBalanceFormatted": "5000.00", "availableBalance": "450000", "availableBalanceFormatted": "4500.00", "blockedBalance": "50000", "blockedBalanceFormatted": "500.00", "lastTransaction": "2026-01-14T15:30:00.000Z", "balanceHistory": [ { "date": "2026-01-14", "balance": "5000.00" } ] } } ``` ### Balance Fields | Field | Description | |-------|-------------| | `currentBalance` | Total balance in minor units (cents) | | `currentBalanceFormatted` | Formatted balance with currency | | `availableBalance` | Balance available for transactions | | `blockedBalance` | Balance blocked for pending transactions | **Balance Format:** Balances are returned in minor units (cents). Divide by 100 for the actual amount. Example: `500000` = €5000.00 --- ## Get Allowed Operations **Endpoint:** `GET /api/v2.1/fintrans/{accountId}/allowed-operations` **Query Parameters:** - `includeBeneficiaries`: true/false - `includeConsents`: true/false **Headers:** ```http Authorization: Bearer {jwt-token} ``` **Status:** `200 OK` ```json { "code": 200, "message": "Allowed operations retrieved successfully", "data": { "accountId": "wallet-aa0e8400-e29b-41d4-a716-446655440050", "operations": [ { "operationType": "TRANSFER", "allowedNetworks": ["SEPA", "SWIFT"], "requiresConsent": true, "requiresApproval": false, "enabled": true }, { "operationType": "PAYMENT", "allowedNetworks": ["SEPA"], "requiresConsent": true, "requiresApproval": false, "enabled": true }, { "operationType": "TOPUP", "allowedNetworks": ["SEPA"], "requiresConsent": false, "requiresApproval": false, "enabled": true } ], "limits": { "perTxn": { "EUR": 2000 }, "daily": { "EUR": 5000 }, "monthly": { "EUR": 50000 } }, "accountLimits": { "dailyTransactionLimit": 5000, "monthlyTransactionLimit": 50000, "singleTransactionLimit": 2000, "currency": "EUR", "limitType": "CATEGORY_BASED", "categoryName": "HIGH_RISK_INDIVIDUAL" }, "consentStatus": { "hasValidPaymentConsent": true, "hasRecurringPaymentConsent": false, "hasPreApprovalConsent": false, "hasInternationalTransferConsent": true, "missingConsents": [], "allRequiredConsentsValid": true, "lastUpdated": "2026-01-14T14:00:00.000Z" }, "enabledFeatures": [ "TRANSFER", "PAYMENT", "INTERNATIONAL", "SCHEDULED_PAYMENT" ], "beneficiaries": [], "beneficiaryRules": [ { "ruleType": "ALLOWED_TYPES", "allowedValues": ["INTERNAL", "SEPA", "SWIFT"], "description": "Allowed beneficiary types" }, { "ruleType": "REQUIRE_PRE_REGISTRATION", "value": true, "description": "Beneficiaries must be pre-registered" } ] } } ``` --- ## Operation Types | Operation | Description | Networks | |-----------|-------------|----------| | `TRANSFER` | Send money to beneficiary | SEPA, SWIFT | | `PAYMENT` | Make a payment | SEPA | | `TOPUP` | Add funds to wallet | SEPA | --- ## Transaction Limits Limits are determined by customer categorization: ### High-Risk Individual | Limit Type | Amount (EUR) | |------------|--------------| | Per Transaction | 2,000 | | Daily | 5,000 | | Monthly | 50,000 | ### Standard Individual | Limit Type | Amount (EUR) | |------------|--------------| | Per Transaction | 5,000 | | Daily | 10,000 | | Monthly | 100,000 | Limits are enforced at transaction time. Exceeding limits will result in transaction rejection. --- ## Consent Status The `consentStatus` object indicates which payment consents are in place: | Field | Description | |-------|-------------| | `hasValidPaymentConsent` | Basic payment consent active | | `hasRecurringPaymentConsent` | Recurring payments enabled | | `hasPreApprovalConsent` | Pre-approved payments enabled | | `hasInternationalTransferConsent` | International transfers enabled | | `allRequiredConsentsValid` | All required consents are active | --- ## Get Transaction History **Endpoint:** `GET /api/v2.1/fintrans/{accountId}/orders` **Query Parameters:** - `page`: Page number (default: 0) - `size`: Page size (default: 20) - `status`: Filter by status - `fromDate`: Start date filter - `toDate`: End date filter **Headers:** ```http Authorization: Bearer {jwt-token} ``` **Status:** `200 OK` ```json { "code": 200, "message": "Orders retrieved successfully", "data": { "content": [ { "orderId": "order-ff0e8400-e29b-41d4-a716-446655440081", "operationType": "TRANSFER", "status": "COMPLETED", "amount": "100000", "amountFormatted": "1000.00", "currency": "EUR", "beneficiaryName": "Jane Smith", "beneficiaryIban": "GB82WEST12345698765432", "reference": "FAM-2026-001", "createdAt": "2026-01-14T15:45:00.000Z", "executedAt": "2026-01-14T15:45:30.000Z" } ], "page": 0, "size": 20, "totalElements": 1, "totalPages": 1 } } ``` --- ## Next Step Proceed to **Phase 7: Payment Operations** to add beneficiaries and execute transfers. Add beneficiaries and execute transfers