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

# Individual Customer (B2C) Flow

> Complete lifecycle guide for Individual customer onboarding and operations

# Individual Customer (B2C) Flow

Complete end-to-end guide for onboarding individual (B2C) customers - from registration through to active payment operations.

## Flow Overview

The Individual Customer flow encompasses the complete customer journey from initial registration through to active wallet operations and payments. This is a **LINEAR FLOW** with strict prerequisites at each stage.

```mermaid theme={null}
flowchart LR
    A[Registration] --> B[Session]
    B --> C[Verification]
    C --> D[Consents]
    D --> E[Activation]
    E --> F[Wallet Ops]
    F --> G[Payments]
    
    style A fill:#e3f2fd
    style B fill:#e3f2fd
    style C fill:#fff8e1
    style D fill:#fff8e1
    style E fill:#e8f5e9
    style F fill:#e8f5e9
    style G fill:#e8f5e9
```

## Timeline

```
Registration → Verification → Consent → Activation → Operations
   (5 min)      (1-3 days)    (5 min)   (instant)    (ongoing)
```

## Key Characteristics

| Characteristic            | Description                                         |
| ------------------------- | --------------------------------------------------- |
| **Risk-Based Processing** | High-risk customers require power tenant approval   |
| **Consent-Driven**        | Operations blocked until required consents accepted |
| **Smart Categorization**  | Feature-based customer categorization               |
| **State Machine**         | Strict state transitions with no backward movement  |
| **Tenant Isolation**      | Complete tenant-level data isolation                |

***

## The 7 Phases

<Steps>
  <Step title="Phase 1: Registration & Onboarding">
    Create customer record, user credentials, and default inactive wallet with optional categorization assignment.

    **Key Endpoint:** `POST /api/v2.1/customer/individual/registration`

    **Duration:** \~5 minutes
  </Step>

  <Step title="Phase 2: Session Management">
    Authenticate user and generate JWT token for subsequent API calls.

    **Key Endpoint:** `POST /api/v2.1/customer/individual/{customerId}/users/{userId}/sessions`

    **Duration:** Instant
  </Step>

  <Step title="Phase 3: Verification Process">
    Submit identity documents and await approval. High-risk customers require POWER\_TENANT approval.

    **Key Endpoint:** `POST /api/v2.1/customer/individual/{customerId}/verification`

    **Duration:** 1-3 business days
  </Step>

  <Step title="Phase 4: Consent Management">
    Accept three mandatory consents: Terms & Conditions, Privacy Policy, Data Processing.

    **Key Endpoint:** `POST /api/v2.1/customer/individual/{customerId}/consents/{type}`

    **Duration:** \~5 minutes
  </Step>

  <Step title="Phase 5: Account Activation">
    Activate customer account, generate IBAN, and activate wallet.

    **Key Endpoint:** `POST /api/v2.1/customer/individual/{customerId}/activation`

    **Duration:** Instant
  </Step>

  <Step title="Phase 6: Wallet Operations">
    Query balance, check allowed operations, and view transaction limits.

    **Key Endpoint:** `GET /api/v2.1/fintrans/{accountId}/balance`

    **Duration:** Ongoing
  </Step>

  <Step title="Phase 7: Payment Operations">
    Add beneficiaries, prepare orders, and execute transfers.

    **Key Endpoint:** `POST /api/v2.1/fintrans/{accountId}/types/transfer/execute`

    **Duration:** Ongoing
  </Step>
</Steps>

***

## Critical Prerequisites

### For Registration

* Valid email address
* Strong password (min 8 chars, mixed case, numbers, special chars)
* Tenant access credentials

### For Verification

* Customer record created
* Valid session token

### For Activation

<Warning>
  **ALL prerequisites must be met:**

  1. Verification status: `APPROVED`
  2. Terms & Conditions: `ACCEPTED`
  3. Privacy Policy: `ACCEPTED`
  4. Data Processing: `ACCEPTED`
  5. Customer status: Not already `ACTIVE`
</Warning>

### For Operations

* Active wallet
* Valid payment consents
* Pre-registered beneficiaries

***

## Phase Navigation

<CardGroup cols={2}>
  <Card title="Phase 1: Registration" icon="user-plus" href="/baas/api/integration/flows/individual-customer/registration">
    Customer registration with categorization
  </Card>

  <Card title="Phase 2: Session Management" icon="key" href="/baas/api/integration/flows/individual-customer/session-management">
    Authentication and JWT tokens
  </Card>

  <Card title="Phase 3: Verification" icon="shield-check" href="/baas/api/integration/flows/individual-customer/verification">
    KYC verification process
  </Card>

  <Card title="Phase 4: Consent Management" icon="file-signature" href="/baas/api/integration/flows/individual-customer/consent-management">
    Mandatory consent acceptance
  </Card>

  <Card title="Phase 5: Activation" icon="check-circle" href="/baas/api/integration/flows/individual-customer/activation">
    Account activation & IBAN generation
  </Card>

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

  <Card title="Phase 7: Payment Operations" icon="money-bill-transfer" href="/baas/api/integration/flows/individual-customer/payment-operations">
    Beneficiaries and transfers
  </Card>
</CardGroup>

***

## Quick Reference: All Endpoints

| Phase | Endpoint                                                                         | Method | Description                |
| ----- | -------------------------------------------------------------------------------- | ------ | -------------------------- |
| 1     | `/api/v2.1/customer/individual/categorization/hierarchy/{tenantId}`              | GET    | Get categorization options |
| 1     | `/api/v2.1/customer/individual/registration`                                     | POST   | Register customer          |
| 2     | `/api/v2.1/customer/individual/{customerId}/users/{userId}/sessions`             | POST   | Create session (login)     |
| 2     | `/api/v2.1/customer/individual/{customerId}/users/{userId}/sessions/{sessionId}` | DELETE | Delete session (logout)    |
| 3     | `/api/v2.1/customer/individual/{customerId}/verification/initiate`               | POST   | Initiate verification      |
| 3     | `/api/v2.1/customer/individual/{customerId}/verification`                        | POST   | Submit verification        |
| 3     | `/api/v2.1/verifications/{verificationId}`                                       | GET    | Check verification status  |
| 4     | `/api/v2.1/customer/individual/{customerId}/consents/terms`                      | POST   | Accept terms               |
| 4     | `/api/v2.1/customer/individual/{customerId}/consents/privacy`                    | POST   | Accept privacy             |
| 4     | `/api/v2.1/customer/individual/{customerId}/consents/data-processing`            | POST   | Accept data processing     |
| 5     | `/api/v2.1/customer/individual/{customerId}/activation`                          | POST   | Activate customer          |
| 6     | `/api/v2.1/fintrans/{accountId}/balance`                                         | GET    | Get balance                |
| 6     | `/api/v2.1/fintrans/{accountId}/allowed-operations`                              | GET    | Get allowed operations     |
| 7     | `/api/v2.1/fintrans/{accountId}/beneficiaries`                                   | POST   | Add beneficiary            |
| 7     | `/api/v2.1/fintrans/{accountId}/types/transfer/prepare`                          | POST   | Prepare transfer           |
| 7     | `/api/v2.1/fintrans/{accountId}/types/transfer/execute`                          | POST   | Execute transfer           |
