Phase 5: Organization Activation
Role validation, activation, and wallet enablement
Phase 5: Organization Activation
Activation is the final step that enables the organization to perform financial operations. This phase includes role validation, IBAN generation, and wallet activation.
Prerequisites Checklist
| # | Prerequisite | Required Status |
|---|---|---|
| 1 | User has COMPLIANCE_OFFICER or ADMIN_USER role | ✅ |
| 2 | Organization status | Not already ACTIVE |
| 3 | Verification status | APPROVED |
| 4 | Director verification | APPROVED (bypassed) |
| 5 | Role requirements for business type | Met |
| 6 | Minimum personnel | 1 director, 1 shareholder, 1 employee |
| 7 | Terms & Conditions | ACCEPTED |
| 8 | Privacy Policy | ACCEPTED |
| 9 | Data Processing | ACCEPTED |
| 10 | Director consents | All DATA_PROCESSING (bypassed) |
Activate Organization
Endpoint: POST /api/v2.1/customer/organization/{organizationId}/activation
Headers:
X-User-ID: user-660e8400-e29b-41d4-a716-446655440011
X-User-Roles: ADMIN_USER
Authorization: Bearer {jwt-token}Request Body:
{
"activationReason": "All prerequisites met - verification approved, all consents accepted, personnel requirements satisfied",
"activatedBy": "admin-user-id",
"activationNotes": "Organization ready for live operations"
}Status: 200 OK
{
"code": 200,
"message": "Organization activated successfully",
"data": {
"activation": {
"message": "Organization activated successfully",
"status": "ACTIVE",
"activatedAt": "2026-01-15T14:00:00.000Z",
"activatedBy": "admin-user-id",
"warnings": [
"Optional consent 'MARKETING_COMMUNICATIONS' not given"
]
},
"organizationId": "org-880e8400-e29b-41d4-a716-446655440110",
"iban": "FR7630001007941234567890186",
"bic": "SOGEFRPP",
"accountName": "Acme Corporation Limited",
"wallet": {
"walletId": "wallet-aa0e8400-e29b-41d4-a716-446655440120",
"id": "wallet-aa0e8400-e29b-41d4-a716-446655440120",
"iban": "FR7630001007941234567890186",
"bic": "SOGEFRPP",
"currency": "EUR",
"balance": "0.00",
"status": "ACTIVE",
"accountType": "BUSINESS",
"features": [
"SEPA_TRANSFERS",
"SWIFT_TRANSFERS",
"BULK_PAYMENTS",
"DIRECT_DEBITS"
]
},
"limits": {
"dailyLimit": "200000.00",
"monthlyLimit": "500000.00",
"singleTransactionLimit": "100000.00",
"currency": "EUR"
},
"nextSteps": [
"Add beneficiaries for payments",
"Create payment consents",
"Fund wallet via incoming transfer",
"Begin transaction operations"
]
}
}Status: 400 Bad Request
{
"code": 400,
"message": "Missing required consents",
"data": {
"activationStatus": "CONSENT_REQUIRED",
"missingConsents": ["DATA_PROCESSING"],
"consentDetails": {
"TERMS_AND_CONDITIONS": {
"status": "ACCEPTED",
"acceptedAt": "2026-01-15T10:00:00.000Z",
"acceptedBy": "Jane Smith (CEO)"
},
"PRIVACY_POLICY": {
"status": "ACCEPTED",
"acceptedAt": "2026-01-15T10:05:00.000Z",
"acceptedBy": "Jane Smith (CEO)"
},
"DATA_PROCESSING": {
"status": "MISSING",
"required": true,
"acceptUrl": "/api/v2.1/customer/organization/{orgId}/consents/data-processing"
}
}
}
}Status: 422 Unprocessable Entity
{
"code": 422,
"message": "Organization not verified",
"data": {
"activationStatus": "VERIFICATION_REQUIRED",
"verificationStatus": "PENDING_REVIEW",
"verificationId": "verif-ff0e8400-e29b-41d4-a716-446655440160",
"reason": "Organization verification must be APPROVED before activation",
"estimatedCompletionTime": "1-2 business days"
}
}Activation Validation Flow
flowchart TD
A[Activation Request] --> B{Check User Role}
B -->|Invalid| C[403 Forbidden]
B -->|Valid| D{Check Org Status}
D -->|Already Active| E[200 Already Active]
D -->|Not Active| F{Check Verification}
F -->|Not Approved| G[422 Not Verified]
F -->|Approved| H{Check Role Requirements}
H -->|Missing Roles| I[400 Missing Roles]
H -->|Met| J{Check Consents}
J -->|Missing| K[400 Missing Consents]
J -->|All Present| L[Generate IBAN]
L --> M[Activate Wallet]
M --> N[Update Status]
N --> O[Publish Events]
O --> P[200 Success]
Role Requirements by Business Type
| Business Type | Required Roles |
|---|---|
B2B | COMPLIANCE_OFFICER |
B2C | CUSTOMER_SERVICE |
What Happens During Activation
- Validate User Permission - Check COMPLIANCE_OFFICER or ADMIN_USER role
- Check Organization Status - Verify not already ACTIVE
- Validate Verification - Confirm APPROVED status
- Validate Role Requirements - Check minimum roles for business type
- Check Minimum Personnel - At least 1 director, shareholder, employee
- Check Organization Consents - All three mandatory consents
- Generate IBAN - Create unique IBAN for organization
- Activate Wallet - Enable transaction capabilities
- Apply Limits - Category-based transaction limits
- Update Status - Set organization to ACTIVE
- Publish Events - OrganizationActivated, WalletActivated (Kafka)
- Send Notifications - Email confirmation
Business Account Features
| Feature | Description |
|---|---|
SEPA_TRANSFERS | SEPA credit transfers |
SWIFT_TRANSFERS | International wire transfers |
BULK_PAYMENTS | Batch payment processing |
DIRECT_DEBITS | Direct debit collections |
Transaction Limits (Category-Based)
Medium-Risk Business
| Limit Type | Amount (EUR) |
|---|---|
| Daily | 200,000 |
| Monthly | 500,000 |
| Single Transaction | 100,000 |
High-Risk Business
| Limit Type | Amount (EUR) |
|---|---|
| Daily | 50,000 |
| Monthly | 200,000 |
| Single Transaction | 25,000 |
Next Step
After activation, proceed to Phase 6: Beneficiary Management.
Phase 6: Beneficiary Management
Add business beneficiaries