> ## Documentation Index
> Fetch the complete documentation index at: https://docs.finhub.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# 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

<Warning>
  **ALL prerequisites must be met before activation:**
</Warning>

| 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.

<Tabs>
  <Tab title="Request">
    **Endpoint:** `GET /api/v2.1/customer/individual/{customerId}/owner/{tenantId}/activation/check`

    **Headers:**

    ```http theme={null}
    Authorization: Bearer {jwt-token}
    ```
  </Tab>

  <Tab title="Response - Ready">
    **Status:** `200 OK`

    ```json theme={null}
    {
      "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"
      }
    }
    ```
  </Tab>

  <Tab title="Response - Not Ready">
    ```json theme={null}
    {
      "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"]
      }
    }
    ```
  </Tab>
</Tabs>

***

## Activate Customer Account

<Tabs>
  <Tab title="Request">
    **Endpoint:** `POST /api/v2.1/customer/individual/{customerId}/activation`

    **Headers:**

    ```http theme={null}
    Authorization: Bearer {admin-jwt-token}
    ```

    **Request Body:**

    ```json theme={null}
    {
      "activationReason": "All verification and consents completed successfully",
      "activatedBy": "admin-user-id"
    }
    ```
  </Tab>

  <Tab title="Success Response">
    **Status:** `200 OK`

    ```json theme={null}
    {
      "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"
        }
      }
    }
    ```
  </Tab>

  <Tab title="Error - Missing Consents">
    **Status:** `400 Bad Request`

    ```json theme={null}
    {
      "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"
        ]
      }
    }
    ```
  </Tab>

  <Tab title="Error - Not Verified">
    **Status:** `422 Unprocessable Entity`

    ```json theme={null}
    {
      "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"
      }
    }
    ```
  </Tab>
</Tabs>

***

## What Happens During Activation

```mermaid theme={null}
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

1. **Validate Prerequisites** - Check verification and consents
2. **Generate IBAN** - Create unique IBAN for customer
3. **Activate Wallet** - Change wallet status from INACTIVE to ACTIVE
4. **Update Status** - Set customer status to ACTIVE
5. **Publish Events** - CustomerActivated, WalletActivated (Kafka)
6. **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.

<Card title="Phase 6: Wallet Operations" icon="arrow-right" href="/baas/api/integration/flows/individual-customer/wallet-operations">
  Query balance and allowed operations
</Card>
