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

#PrerequisiteRequired Status
1User has COMPLIANCE_OFFICER or ADMIN_USER role
2Organization statusNot already ACTIVE
3Verification statusAPPROVED
4Director verificationAPPROVED (bypassed)
5Role requirements for business typeMet
6Minimum personnel1 director, 1 shareholder, 1 employee
7Terms & ConditionsACCEPTED
8Privacy PolicyACCEPTED
9Data ProcessingACCEPTED
10Director consentsAll 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

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 TypeRequired Roles
B2BCOMPLIANCE_OFFICER
B2CCUSTOMER_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

FeatureDescription
SEPA_TRANSFERSSEPA credit transfers
SWIFT_TRANSFERSInternational wire transfers
BULK_PAYMENTSBatch payment processing
DIRECT_DEBITSDirect debit collections

Transaction Limits (Category-Based)

Medium-Risk Business

Limit TypeAmount (EUR)
Daily200,000
Monthly500,000
Single Transaction100,000

High-Risk Business

Limit TypeAmount (EUR)
Daily50,000
Monthly200,000
Single Transaction25,000

Next Step

After activation, proceed to Phase 6: Beneficiary Management.

Phase 6: Beneficiary Management

Add business beneficiaries

Type to search…

↑↓ navigate open esc close