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

# Digital Banking & Mobile APIs

> Build custom iOS/Android apps and Web Banking portals using the Self-Service API suite.

Nucleus provides a full headless banking API suite (`/nucleus/api/v1/self/*`) designed specifically for Microfinance Banks to build and deploy their own branded digital channels without exposing administrative or cross-tenant endpoints.

All requests require the customer's authenticated session header:

```http theme={null}
Authorization: Basic {customerSessionToken}
Nucleus-Platform-TenantId: {tenantSlug}
```

***

## 1. Digital Customer Registration

Allow unbanked or new customers to self-register via your mobile app:

```bash theme={null}
POST /nucleus/api/v1/self/registration
Content-Type: application/json

{
  "firstname": "Zainab",
  "lastname": "Bello",
  "email": "zainab.bello@example.com",
  "mobileNo": "08012345678",
  "bvn": "22212345678",
  "password": "SecureMobilePassword123!"
}
```

**What the engine executes automatically:**

1. Validates the BVN against NIBSS / sandbox verification engine.
2. Creates a customer profile (`m_client`) with Tier 1 KYC status.
3. Automatically opens a primary savings account with a derived 10-digit NUBAN.
4. Generates customer self-service login credentials (`is_self_service_user = true`).

***

## 2. Account Discovery & Balances

Fetch the customer's accounts, current balance, and available balance:

```bash theme={null}
GET /nucleus/api/v1/self/accounts
```

### Response:

```json theme={null}
{
  "savingsAccounts": [
    {
      "id": 12,
      "accountNo": "0123456789",
      "productName": "Standard Savings",
      "accountBalance": 450000.00,
      "availableBalance": 448000.00,
      "currency": {
        "code": "NGN",
        "name": "Nigeria Naira",
        "displaySymbol": "₦"
      },
      "status": {
        "value": "Active"
      }
    }
  ]
}
```

***

## 3. Account Statements & Transaction History

```bash theme={null}
GET /nucleus/api/v1/self/savingsaccounts/12/transactions?offset=0&limit=15
```

```json theme={null}
{
  "pageItems": [
    {
      "id": 8421,
      "transactionType": { "value": "Deposit" },
      "date": [2026, 9, 12],
      "amount": 50000.00,
      "runningBalance": 450000.00,
      "narrative": "NIP Transfer from GTBank / Kalu Jude"
    }
  ]
}
```

***

## 4. Fund Transfers (Intra-Bank & NIP)

Execute an immediate fund transfer:

```bash theme={null}
POST /nucleus/api/v1/self/accounttransfers
Content-Type: application/json

{
  "fromOfficeId": 2,
  "fromClientId": 1,
  "fromAccountType": 2,
  "fromAccountId": 12,
  "toOfficeId": 2,
  "toClientId": 5,
  "toAccountType": 2,
  "toAccountId": 18,
  "transferAmount": 25000.00,
  "transferDate": "12 September 2026",
  "transferDescription": "Invoice settlement INV-009",
  "dateFormat": "dd MMMM yyyy",
  "locale": "en"
}
```

***

## 5. Mobile Loan Applications

Permit pre-qualified customers to apply for micro-loans directly from the app:

```bash theme={null}
POST /nucleus/api/v1/self/loans
Content-Type: application/json

{
  "clientId": 1,
  "productId": 3,
  "principal": 100000.00,
  "loanTermFrequency": 6,
  "loanTermFrequencyType": 2,
  "numberOfRepayments": 6,
  "repaymentEvery": 1,
  "repaymentFrequencyType": 2,
  "interestRatePerPeriod": 2.5,
  "amortizationType": 1,
  "interestType": 0,
  "expectedDisbursementDate": "15 September 2026",
  "submittedOnDate": "12 September 2026",
  "dateFormat": "dd MMMM yyyy",
  "locale": "en"
}
```
