URL: /baas/api/integration/flows/individual-customer/activation --- title: 'Phase 5: Account Activation' description: 'Activate customer account, generate IBAN, and enable wallet' --- # Phase 5: Account Activation Activation is the final step before the customer can perform financial operations. This phase generates the IBAN and activates the wallet. ## Prerequisites Checklist **ALL prerequisites must be met before activation:** | Prerequisite | Required Status | Check | |--------------|-----------------|-------| | Verification | `APPROVED` | ✅ | | Terms & Conditions | `ACCEPTED` | ✅ | | Privacy Policy | `ACCEPTED` | ✅ | | Data Processing | `ACCEPTED` | ✅ | | Customer Status | Not `ACTIVE` | ✅ | --- ## Check Activation Readiness Before attempting activation, verify all prerequisites are met. **Endpoint:** `GET /api/v2.1/customer/individual/{customerId}/owner/{tenantId}/activation/check` **Headers:** ```http Authorization: Bearer {jwt-token} ``` **Status:** `200 OK` ```json { "code": 200, "message": "Activation check completed", "data": { "activationAllowed": true, "consentOk": true, "verificationOk": true, "powerTenantApprovalOk": true, "powerTenantApprovalRequired": false, "riskLevel": "LOW", "isHighRisk": false, "customerId": "cust-550e8400-e29b-41d4-a716-446655440010", "powerTenant": "97e7ff29-15f3-49ef-9681-3bbfcce4f6cd", "ownerTenant": "97e7ff29-15f3-49ef-9681-3bbfcce4f6cd" } } ``` ```json { "code": 200, "message": "Activation check completed", "data": { "activationAllowed": false, "consentOk": false, "verificationOk": true, "riskLevel": "LOW", "customerId": "cust-550e8400-e29b-41d4-a716-446655440010", "missingConsents": ["PRIVACY_POLICY", "DATA_PROCESSING"] } } ``` --- ## Activate Customer Account **Endpoint:** `POST /api/v2.1/customer/individual/{customerId}/activation` **Headers:** ```http Authorization: Bearer {admin-jwt-token} ``` **Request Body:** ```json { "activationReason": "All verification and consents completed successfully", "activatedBy": "admin-user-id" } ``` **Status:** `200 OK` ```json { "code": 200, "message": "Customer activated successfully", "data": { "activationStatus": "ACTIVATED", "customerId": "cust-550e8400-e29b-41d4-a716-446655440010", "iban": "FR7630001007941234567890185", "bic": "SOGEFRPP", "activatedAt": "2026-01-14T14:00:00.000Z", "wallet": { "walletId": "wallet-aa0e8400-e29b-41d4-a716-446655440050", "id": "wallet-aa0e8400-e29b-41d4-a716-446655440050", "iban": "FR7630001007941234567890185", "bic": "SOGEFRPP", "currency": "EUR", "balance": "0.00", "reservedBalance": "0.00", "status": "ACTIVE", "asset": { "assetId": "asset-bb0e8400-e29b-41d4-a716-446655440051", "assetType": "FIAT", "currency": "EUR", "currentBalance": "0.00", "availableBalance": "0.00", "blockedBalance": "0.00", "lastUpdated": "2026-01-14T14:00:00.000Z" }, "createdAt": "2026-01-13T10:30:00.000Z", "activatedAt": "2026-01-14T14:00:00.000Z" } } } ``` **Status:** `400 Bad Request` ```json { "code": 400, "message": "Missing required consents", "data": { "activationStatus": "CONSENT_REQUIRED", "customerId": "cust-550e8400-e29b-41d4-a716-446655440010", "missingConsentTypes": ["PRIVACY_POLICY", "DATA_PROCESSING"], "missingConsentDetails": { "PRIVACY_POLICY": { "consentType": "PRIVACY_POLICY", "title": "Privacy Policy and Data Protection", "required": true, "status": "MISSING", "reason": "Customer has not provided active consent", "acceptUrl": "/api/v2.1/customer/individual/{customerId}/consents/privacy" }, "DATA_PROCESSING": { "consentType": "DATA_PROCESSING", "title": "Data Processing Agreement", "required": true, "status": "MISSING", "acceptUrl": "/api/v2.1/customer/individual/{customerId}/consents/data-processing" } }, "totalRequiredConsents": 3, "totalMissingConsents": 2, "nextSteps": [ "Accept Privacy Policy", "Accept Data Processing Agreement", "Retry activation" ] } } ``` **Status:** `422 Unprocessable Entity` ```json { "code": 422, "message": "Customer not verified", "data": { "activationStatus": "VERIFICATION_REQUIRED", "customerId": "cust-550e8400-e29b-41d4-a716-446655440010", "verificationStatus": "PENDING_REVIEW", "reason": "Customer verification must be APPROVED before activation", "currentVerificationId": "verif-880e8400-e29b-41d4-a716-446655440030", "verificationStatusUrl": "/api/v2.1/verifications/{verificationId}", "estimatedCompletionTime": "1-2 business days" } } ``` --- ## What Happens During Activation ```mermaid flowchart TD A[Activation Request] --> B{Check Prerequisites} B -->|All Met| C[Generate IBAN] B -->|Missing| D[Return Error] C --> E[Activate Wallet] E --> F[Update Customer Status] F --> G[Publish Events] G --> H[Return Success] style C fill:#e8f5e9 style E fill:#e8f5e9 style F fill:#e8f5e9 ``` ### Activation Steps 1. **Validate Prerequisites** - Check verification and consents 2. **Generate IBAN** - Create unique IBAN for customer 3. **Activate Wallet** - Change wallet status from INACTIVE to ACTIVE 4. **Update Status** - Set customer status to ACTIVE 5. **Publish Events** - CustomerActivated, WalletActivated (Kafka) 6. **Send Notifications** - Email confirmation to customer --- ## Key IDs Created | Field | Example Value | Description | |-------|---------------|-------------| | `iban` | FR7630001007941234567890185 | Customer's IBAN for payments | | `bic` | SOGEFRPP | Bank Identifier Code | | `walletId` | wallet-aa0e8400... | Wallet identifier for transactions | --- ## IBAN Format ``` FR76 + [Bank Code] + [Account Number] + [Check Digits] └─── Country Code (France) ``` --- ## Next Step After activation, proceed to **Phase 6: Wallet Operations** to manage the customer's wallet. Query balance and allowed operations