Phase 5: Account Activation
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
| 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:
Authorization: Bearer {jwt-token}Status: 200 OK
{
"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"
}
}{
"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:
Authorization: Bearer {admin-jwt-token}Request Body:
{
"activationReason": "All verification and consents completed successfully",
"activatedBy": "admin-user-id"
}Status: 200 OK
{
"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
{
"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
{
"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
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
- Validate Prerequisites - Check verification and consents
- Generate IBAN - Create unique IBAN for customer
- Activate Wallet - Change wallet status from INACTIVE to ACTIVE
- Update Status - Set customer status to ACTIVE
- Publish Events - CustomerActivated, WalletActivated (Kafka)
- 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.
Phase 6: Wallet Operations
Query balance and allowed operations