# Sub-accounts

A **Sub-account** is a restricted virtual account linked to a customer's primary current account. It is designed to act as a "pocket" or "wallet" for specific purposes, such as tax set-asides, vacation budgets, or VAT accumulation.

Unlike full [Multi-accounts](/guides/digital-banking/multi-accounts), sub-accounts are strictly internal. Funds must move through the main account to reach the outside world.

## Key characteristics

* **Internal Only:** Customers **cannot** trigger outgoing transfers (SCT) or Direct Debits (SDD) directly from a sub-account.
* **No Cards:** Debit cards cannot be linked to a sub-account.
* **No SCA:** Transfers between a main account and its sub-accounts (Intra-Customer Transfers) do **not** require Strong Customer Authentication (SCA).
* **Seizures:** Funds held in sub-accounts are legally part of the customer's assets and are included in [seizure processing](/guides/compliance/seizures).


Feature Activation
This feature is not enabled by default. Contact your Partner Manager to enable sub-accounts for your solution.

## Integration steps

### 1. Confirm Terms & Conditions

As with any new account, you must collect the customer's consent to the Solaris Terms & Conditions before opening a sub-account.

* Display the T&Cs in your UI.
* Store the **UTC timestamp** of the consent.
* **Guide:** [Legal & Compliance Screens](/guides/get-started/onboarding-requirements/1-legal-compliance-screens#solaris-terms--conditions).


### 2. Open the sub-account

Use the standard [Account Opening Request (AOR)](/guides/digital-banking/account-opening) endpoint with the specific sub-account type.

**Endpoint:** `POST /v1/accounts/opening_requests`

Account Type Configuration
You must set the `account_type` field to `CHECKING_SUBACCOUNT`.

Do **not** use `CHECKING_PERSONAL` or `CHECKING_BUSINESS`, as these create independent main accounts.


```json
{
  "customer_type": "Person",
  "customer_id": "123456789",
  "product_name": "SUB_ACCOUNT_PRODUCT_ID",
  "account_type": "CHECKING_SUBACCOUNT", // Mandatory for this feature
  "account_currency": "EUR"
}
```

### 3. Move funds (Intra-Customer Transfer)

To fund the sub-account or withdraw money back to the main account, use the **Intra-Customer Transfer (ICT)** endpoint.

* **Speed:** Instant.
* **Auth:** No SCA required.
* **Direction:** Can be used for Main → Sub or Sub → Main.


**Request:**


```shell
POST /v1/persons/{person_id}/accounts/{origin_account_id}/transactions/intra_customer_transfer
```


```json
{
  "amount": { "value": 1000, "currency": "EUR" },
  "recipient_iban": "DE_SUB_ACCOUNT_IBAN", // Target account (Main or Sub)
  "reference": "73a46685-8ac6-4fff-9d36-55288523d879", // Required UUID (Idempotency Key)
  "description": "Saving for VAT"
}
```

**Response:**


```json
{
  "id": "68df7a63b2ad4a16907eeac2cf484275",
  "reference": "73a46685-8ac6-4fff-9d36-55288523d879",
  "amount": { "value": 1000, "unit": "cents", "currency": "EUR" },
  "description": "Saving for VAT",
  "recipient_iban": "DE_SUB_ACCOUNT_IBAN",
  "created_at": "2022-04-22T16:02:54Z"
}
```

Intra-Customer Transfers API
View the full API specification for internal transfers.