URL: /baas/api/integration/flows/organization-customer/activation
---
title: 'Phase 5: Organization Activation'
description: '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
**ALL prerequisites must be met before activation:**
| # | 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:**
```http
X-User-ID: user-660e8400-e29b-41d4-a716-446655440011
X-User-Roles: ADMIN_USER
Authorization: Bearer {jwt-token}
```
**Request Body:**
```json
{
"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`
```json
{
"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`
```json
{
"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`
```json
{
"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
```mermaid
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
1. **Validate User Permission** - Check COMPLIANCE_OFFICER or ADMIN_USER role
2. **Check Organization Status** - Verify not already ACTIVE
3. **Validate Verification** - Confirm APPROVED status
4. **Validate Role Requirements** - Check minimum roles for business type
5. **Check Minimum Personnel** - At least 1 director, shareholder, employee
6. **Check Organization Consents** - All three mandatory consents
7. **Generate IBAN** - Create unique IBAN for organization
8. **Activate Wallet** - Enable transaction capabilities
9. **Apply Limits** - Category-based transaction limits
10. **Update Status** - Set organization to ACTIVE
11. **Publish Events** - OrganizationActivated, WalletActivated (Kafka)
12. **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**.
Add business beneficiaries