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