From deb22465123c828ff6ae9adc2d6ceb57b9071f98 Mon Sep 17 00:00:00 2001 From: ntombing Date: Mon, 29 Sep 2025 13:47:47 +0200 Subject: [PATCH 1/4] Move Multiple accounts to Main docs --- .../multiple-accounts/guide-multiple-accounts-integration.mdx | 0 .../onboarding}/multiple-accounts/multiple-accounts.mdx | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename docs/{preview => topics/onboarding}/multiple-accounts/guide-multiple-accounts-integration.mdx (100%) rename docs/{preview => topics/onboarding}/multiple-accounts/multiple-accounts.mdx (100%) diff --git a/docs/preview/multiple-accounts/guide-multiple-accounts-integration.mdx b/docs/topics/onboarding/multiple-accounts/guide-multiple-accounts-integration.mdx similarity index 100% rename from docs/preview/multiple-accounts/guide-multiple-accounts-integration.mdx rename to docs/topics/onboarding/multiple-accounts/guide-multiple-accounts-integration.mdx diff --git a/docs/preview/multiple-accounts/multiple-accounts.mdx b/docs/topics/onboarding/multiple-accounts/multiple-accounts.mdx similarity index 100% rename from docs/preview/multiple-accounts/multiple-accounts.mdx rename to docs/topics/onboarding/multiple-accounts/multiple-accounts.mdx From 721deaaa5b8dafc553b4935e5068543e7c3d754e Mon Sep 17 00:00:00 2001 From: ntombing Date: Mon, 29 Sep 2025 15:03:28 +0200 Subject: [PATCH 2/4] Move to accounts section --- .../guide-multiple-accounts-integration.mdx | 0 .../multiple-accounts/multiple-accounts.mdx | 0 .../guide-multiple-accounts-integration.mdx | 190 ++++++++++++++++++ .../multiple-accounts/multiple-accounts.mdx | 171 ++++++++++++++++ 4 files changed, 361 insertions(+) rename docs/{topics/onboarding => preview}/multiple-accounts/guide-multiple-accounts-integration.mdx (100%) rename docs/{topics/onboarding => preview}/multiple-accounts/multiple-accounts.mdx (100%) create mode 100644 docs/topics/accounts/multiple-accounts/guide-multiple-accounts-integration.mdx create mode 100644 docs/topics/accounts/multiple-accounts/multiple-accounts.mdx diff --git a/docs/topics/onboarding/multiple-accounts/guide-multiple-accounts-integration.mdx b/docs/preview/multiple-accounts/guide-multiple-accounts-integration.mdx similarity index 100% rename from docs/topics/onboarding/multiple-accounts/guide-multiple-accounts-integration.mdx rename to docs/preview/multiple-accounts/guide-multiple-accounts-integration.mdx diff --git a/docs/topics/onboarding/multiple-accounts/multiple-accounts.mdx b/docs/preview/multiple-accounts/multiple-accounts.mdx similarity index 100% rename from docs/topics/onboarding/multiple-accounts/multiple-accounts.mdx rename to docs/preview/multiple-accounts/multiple-accounts.mdx diff --git a/docs/topics/accounts/multiple-accounts/guide-multiple-accounts-integration.mdx b/docs/topics/accounts/multiple-accounts/guide-multiple-accounts-integration.mdx new file mode 100644 index 0000000000..b989618171 --- /dev/null +++ b/docs/topics/accounts/multiple-accounts/guide-multiple-accounts-integration.mdx @@ -0,0 +1,190 @@ +--- +title: Create multiple accounts +--- + +This guide explains how to open additional accounts linked to one account holder. + +## Guide {#guide} + +1. Call the `openAccount` mutation (line 2). +2. Include the `accountHolderId` (line 4). +3. Add the `language` parameter (optional) to select the [account language](/topics/accounts/#language). If not specified, English (`en`) is used as the default language (line 5). +4. Add a `name` parameter (optional) for the account. If not specified, "My account" is used as the default name (line 6). +5. Use the `OpenAccountSuccessPayload` payload (line 9) to specify the information you'd like to receive about the additional account. +6. Include error handling for all rejection types defined in the `OpenAccountPayload` union (lines 26-73). + +## Mutation {#mutation} + +Open in API Explorer + +```graphql {2,4-6,9} showLineNumbers +mutation CreateAccount { + openAccount( + input: { + accountHolderId: "$ACCOUNT_HOLDER_ID" + language: en + name: "Taxes" + } + ) { + ... on OpenAccountSuccessPayload { + __typename + account { + BIC + IBAN + country + currency + id + language + name + paymentLevel + paymentAccountType + statusInfo { + status + } + } + } + ... on InternalErrorRejection { + __typename + message + } + ... on ForbiddenRejection { + __typename + message + } + ... on AccountHolderNotFoundRejection { + __typename + message + } + ... on AccountHolderTypeNotEligibleRejection { + __typename + message + } + ... on AccountHolderStatusNotEligibleRejection { + __typename + message + } + ... on AccountHolderVerificationStatusNotEligibleRejection { + __typename + message + } + ... on AccountHolderAccountsTypeNotEligibleRejection { + __typename + message + } + ... on AccountHolderAccountsStatusNotEligibleRejection { + __typename + message + } + ... on AccountMembershipNotEligibleRejection { + __typename + message + } + ... on AccountHolderProjectSettingsNotEligibleRejection { + __typename + message + } + ... on AccountHolderAccountsCreationLimitRejection { + __typename + message + } + ... on ProjectSettingsNotFoundRejection { + __typename + message + } + } +} +``` + +## Payload {#payload} + +The mutation returns all of the requested information such as the account details, the `accountId` (line 10) and the account `status` (line 16). + +```json {10,16} showLineNumbers +{ + "data": { + "openAccount": { + "__typename": "OpenAccountSuccessPayload", + "account": { + "IBAN": "FR7699999001007663023512982", + "BIC": "SWNBFR22", + "currency": "EUR", + "country": "FRA", + "id": "9217e570-f785-4c88-be55-dc8b626ca8c7", + "language": "en", + "name": "Taxes", + "paymentLevel": "Unlimited", + "paymentAccountType": "PaymentService", + "statusInfo": { + "status": "Opened" + } + } + } + } +} +``` + +## Checking your account creation limit {#checking-your-account-creation-limit} + +### Query {#account-creation-limit-query} + +1. Call the `projectInfo` query (line 2). +1. Select `multipleAccountsSettings` (line 3). +1. Add `accountCreationLimit` and `canOpenAccount` to check your account creation limit (lines 4-5). + +

Query

+ +Open in API Explorer + +```graphql {2-5} showLineNumbers +query AccountCreationLimit { + projectInfo { + multipleAccountsSettings { + accountCreationLimit + canOpenAccount + } + } +} +``` +

Payloads

+ +The `multipleAccountsSettings` query returns a payload that indicates the current status of the multiple accounts feature for an account holder. + +**Example one: Multiple accounts not active** + +This payload shows the response when the multiple accounts feature has **not** been **activated**. + +- `accountCreationLimit`: `1` indicates that only the initial account can be created. +- `canOpenAccount`: `false` confirms that additional accounts cannot be created. + +```json {5,6} showLineNumbers +{ + "data": { + "projectInfo": { + "multipleAccountsSettings": { + "accountCreationLimit": 1, + "canOpenAccount": false + } + } + } +} +``` + +**Example two: Multiple accounts active** + +This payload shows the response when the multiple accounts feature has been **activated**. + +- `accountCreationLimit`: `6` shows that a maximum of six accounts can be created. +- `canOpenAccount`: `true` confirms that additional accounts can be opened. + +```json {5,6} showLineNumbers +{ + "data": { + "projectInfo": { + "multipleAccountsSettings": { + "accountCreationLimit": 6, + "canOpenAccount": true + } + } + } +} +``` \ No newline at end of file diff --git a/docs/topics/accounts/multiple-accounts/multiple-accounts.mdx b/docs/topics/accounts/multiple-accounts/multiple-accounts.mdx new file mode 100644 index 0000000000..f5faef9030 --- /dev/null +++ b/docs/topics/accounts/multiple-accounts/multiple-accounts.mdx @@ -0,0 +1,171 @@ +--- +title: Multiple accounts +--- + +Create additional accounts for an existing company account holder without repeating the onboarding and Know Your Business (KYB) processes. + +:::info Specific coverage +Contact your Strategic Account Manager (SAM) to request the multiple accounts feature. +::: + +## Overview {#overview} + +**Multiple accounts allow a single company to create additional Swan accounts** under the same legal entity. These accounts share the same registration number and [local IBAN](/topics/accounts/ibans/#local) as the first account created during onboarding. + +Each account operates independently with its own IBAN, balances, and transaction flows, making it easy to create additional accounts for specific business needs. + +They have the same capabilities as regular accounts, including issuing and accepting all payment types (e.g., [card payments](/topics/payments/cards/), [SEPA Credit Transfers](/topics/payments/credit-transfers/sepa/)). + +To accept payments, each account requires its own [merchant profile review](/topics/merchants/#profiles), so a new profile and payment method must be requested for each additional account created. + +## Eligibility {#eligibility} + +Multiple accounts are available for **[company account](/topics/onboarding/company/) types**, which include: + +- Registered companies +- Self-employed workers +- Associations or non-profit organizations + +:::info Individual accounts +Individuals may create additional accounts. A new onboarding process is required, but Know Your Customer (KYC) isn't repeated. +::: + +## Requirements {#requirements} + +### Legal representative requirements {#legal-rep-requirements} + +All accounts under the same account holder share the **same [legal representative](/topics/onboarding/company/#representatives)** (account admin). Only the legal representative of the first account can create additional accounts. Changes to the legal representative follow the standard process but must be applied across all accounts belonging to the same account holder. + +### Account holder requirements {#account-holder-requirements} + +The following criteria must be met by the account holder: + +| **Requirement** | **Value** | +| --- | --- | +| `accountHolder.verificationStatus` | `Verified` | +| `accountHolder.status` | `Enabled` | +| `accountHolder.type` | `Company` | +| `accountHolder.account.status` | `Opened` | + +## Key benefits and use cases {#key-benefits} + +### Operational benefits {#operational-benefits} + +- Skip onboarding for each new account. +- Share KYB verification across all accounts, reducing duplicate checks. +- Perform re-KYB verification on one account holder across all accounts. + +### Use cases {#use-cases} + +- **Freelancers** can use this feature for tax management. +- **Small and medium businesses (SMBs)** often use separate accounts for advanced spending management, like managing financial flows by supplier, department, or region. +- **Homeowner associations (HOAs)** can use an "operating account" for day-to-day expenses and a "reserve account" for common area expenses (e.g. repairs). + +## Feature activation {#feature-activation} + +The multiple accounts feature is available to all partners, but **isn't activated** by default. Contact your Strategic Account Manager (SAM) to request activation before creating accounts. + +When requesting the feature, make sure to include: +- The purpose for creating additional accounts. +- The number of accounts needed. + +:::caution Compliance review +Your request is subject to a **compliance review**, as well as a contract and pricing review if accepted. +::: + +## API implementation {#implementation} + +Once the feature is activated, you can create additional accounts. + +1. Call the `openAccount` mutation. +:::info Multiple accounts guide +Follow the [**step-by-step guide**](guide-multiple-accounts-integration.mdx) to create multiple accounts. +::: + +2. Collect the legal representative's confirmation in your banking app. A consent URL or Strong Customer Authentication (SCA) is not required. + +:::caution Confirmation +You must include a clear confirmation step, such as a button, for the legal representative to confirm their intent. +::: + +The new account is created under the same account holder, sharing the same KYB and legal representative. All additional accounts have an `Unlimited` payment level and the `PaymentService` account type. + +## Account conditions {#account-conditions} + +### Account creation limit {#account-creation-limit} + +By default, users are limited to one account until the multiple accounts feature is activated. + +After the feature is activated, users may be granted a maximum number of accounts, which is defined during the compliance review and documented in a welcome letter. + +Users are restricted from creating new accounts after reaching the maximum limit. + +:::info Account status +Only accounts with an `Opened` status count toward the maximum limit. `Suspended`, `Closing`, or `Closed` accounts do not. +::: + +## Shared account details {#shared-account-details} + +### IBAN country {#iban-country} + +All accounts under the same account holder share the same IBAN country. To create an account with a different IBAN country, the legal representative must complete a new company onboarding process. + +### Company registration number {#company-registration-number} + +All additional accounts are linked to one account holder with a single registration number. To create an account for another company, the user must complete a new company onboarding process with the new company's registration number. + +## Account management {#account-management} + +### Legal documents {#legal-documents} + +The same **Terms and Conditions** and **Partnership Conditions** apply to all accounts under the same account holder. Legal documents are generated in the same way as for single accounts. + +### Account closure {#account-closure} + +Standard [account closure rules](/topics/accounts/closure/#closure-partner) apply. Each account can be closed individually. You can request closure of the first account (created during onboarding) while keeping any additional accounts active. + +## Billing {#billing} + +### End-customer billing {#end-customer-billing} + +Each active account is billed independently, resulting in one invoice per account. + +### Partner billing {#partner-billing} + +Active account pricing is applied at the account holder level, resulting in a new fee for active accounts on your invoice. + +## Setting access in Web banking {#web-banking-access} + +The web banking setting `canOpenAccount` is a project-level configuration that controls whether an account holder can open additional accounts directly from Swan Web banking. + +This setting is activated by default. Unless you deactivate it, end users will be able to open multiple accounts from Swan's interface. + +To restrict account opening to your own banking application, deactivate the `canOpenAccount` setting in your **Dashboard** > **Settings** > **Web banking**. + +### Key benefits {#web-banking-benefits} + +Controlling this setting gives you greater flexibility to: + +1. **Restrict by pricing plan:** Restrict access to the Multiple Accounts feature by pricing plan. +1. **Differentiate by account limits:** Define how many additional accounts a user can create. For instance, one additional account for Basic plans and up to five for Premium plans. + +## Rejections {#rejections} + +Multiple account creations can be rejected for the following reasons: + +| Rejection reason | Description | +| --- | --- | +| `AccountHolderNotFoundRejection` | The provided account holder ID doesn't match an existing `AccountHolder`. | +| `ForbiddenRejection` | The project isn't allowed to create multiple accounts, or the wrong context is used. | +| `AccountMembershipNotEligibleRejection` | The user isn't eligible to open the account. They must be the account legal representative. | +| `AccountHolderTypeNotEligibleRejection` | The account holder type must be `Company`. | +| `AccountHolderStatusNotEligibleRejection` | The account holder status must be `Enabled`. | +| `AccountHolderVerificationStatusNotEligibleRejection` | The account holder must have a `Verified` KYC status. | +| `AccountHolderAccountsTypeNotEligibleRejection` | All associated accounts must be `EndCustomer` or `CapitalDepositMainAccount`. | +| `AccountHolderAccountsStatusNotEligibleRejection` | No active accounts available. All associated accounts are `Closed`, `Closing`, or `Suspended`. | +| `AccountHolderAccountsCreationLimitRejection` | The maximum number of `Opened` accounts has been reached. Check project settings for multiple accounts. | +| `AccountHolderProjectSettingNotEligibleRejection` | Account creation is disabled in project settings. | + +## Guides {#guides} + +- [Create multiple accounts](guide-multiple-accounts-integration.mdx) \ No newline at end of file From 8f77e7364aaac12bedc64206d180207398bf6467 Mon Sep 17 00:00:00 2001 From: ntombing Date: Mon, 29 Sep 2025 15:17:23 +0200 Subject: [PATCH 3/4] Sidebar update --- .../{multiple-accounts.mdx => index.mdx} | 0 sidebars.js | 9 +++++++++ 2 files changed, 9 insertions(+) rename docs/topics/accounts/multiple-accounts/{multiple-accounts.mdx => index.mdx} (100%) diff --git a/docs/topics/accounts/multiple-accounts/multiple-accounts.mdx b/docs/topics/accounts/multiple-accounts/index.mdx similarity index 100% rename from docs/topics/accounts/multiple-accounts/multiple-accounts.mdx rename to docs/topics/accounts/multiple-accounts/index.mdx diff --git a/sidebars.js b/sidebars.js index 6c2f4a71c6..2ecd01ee40 100644 --- a/sidebars.js +++ b/sidebars.js @@ -90,6 +90,15 @@ module.exports = { "topics/accounts/overview/guide-export", ], }, + { + type: "category", + label: "Multiple accounts", + link: { type: "doc", id: "topics/accounts/multiple-accounts/index" }, + collapsed: true, + items: [ + "/topics/accounts/multiple-accounts/guide-multiple-accounts-integration.mdx", + ], + }, { type: "category", label: "Account memberships", From 71f4e1705887148661bce0e821560c88663d8289 Mon Sep 17 00:00:00 2001 From: ntombing Date: Mon, 29 Sep 2025 15:29:32 +0200 Subject: [PATCH 4/4] Removal from preview --- docs/preview/index.mdx | 1 - .../guide-multiple-accounts-integration.mdx | 124 ---------- .../multiple-accounts/multiple-accounts.mdx | 234 ------------------ sidebars.js | 9 - 4 files changed, 368 deletions(-) delete mode 100644 docs/preview/multiple-accounts/guide-multiple-accounts-integration.mdx delete mode 100644 docs/preview/multiple-accounts/multiple-accounts.mdx diff --git a/docs/preview/index.mdx b/docs/preview/index.mdx index b3ae40dd7e..23e53fa4f7 100644 --- a/docs/preview/index.mdx +++ b/docs/preview/index.mdx @@ -28,6 +28,5 @@ These features are in beta and available for testing. We use feedback to refine | Feature | Description | ETA | |---------|-------------|-----| | [Card insurance](card-insurance) | Comprehensive insurance coverage for Swan-issued cards including theft, fraud, and travel protection | In private beta | -| [Multiple accounts](multiple-accounts) | Enable one company account holder to create additional accounts without repeating onboarding or KYB | In private beta | \ No newline at end of file diff --git a/docs/preview/multiple-accounts/guide-multiple-accounts-integration.mdx b/docs/preview/multiple-accounts/guide-multiple-accounts-integration.mdx deleted file mode 100644 index a58617372c..0000000000 --- a/docs/preview/multiple-accounts/guide-multiple-accounts-integration.mdx +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Create multiple accounts ---- - -This guide explains how to open additional accounts linked to one account holder. - -## Guide {#guide} - -1. Call the `openAccount` mutation (line 2). -2. Include the `accountHolderId` (line 4). -3. Add the `language` parameter (optional) to select the [account language](/topics/accounts/#language). If not specified, English (`en`) is used as the default language (line 5). -4. Add a `name` parameter (optional) for the account. If not specified, "My account" is used as the default name (line 6). -5. Use the `OpenAccountSuccessPayload` payload (line 9) to specify the information you'd like to receive about the additional account. -6. Include error handling for all rejection types defined in the `OpenAccountPayload` union (lines 26-73). - -## Mutation {#mutation} - -Open in API Explorer - -```graphql {2,4-6,9} showLineNumbers -mutation CreateAccount { - openAccount( - input: { - accountHolderId: "$ACCOUNT_HOLDER_ID" - language: en - name: "Taxes" - } - ) { - ... on OpenAccountSuccessPayload { - __typename - account { - BIC - IBAN - country - currency - id - language - name - paymentLevel - paymentAccountType - statusInfo { - status - } - } - } - ... on InternalErrorRejection { - __typename - message - } - ... on ForbiddenRejection { - __typename - message - } - ... on AccountHolderNotFoundRejection { - __typename - message - } - ... on AccountHolderTypeNotEligibleRejection { - __typename - message - } - ... on AccountHolderStatusNotEligibleRejection { - __typename - message - } - ... on AccountHolderVerificationStatusNotEligibleRejection { - __typename - message - } - ... on AccountHolderAccountsTypeNotEligibleRejection { - __typename - message - } - ... on AccountHolderAccountsStatusNotEligibleRejection { - __typename - message - } - ... on AccountMembershipNotEligibleRejection { - __typename - message - } - ... on AccountHolderProjectSettingsNotEligibleRejection { - __typename - message - } - ... on AccountHolderAccountsCreationLimitRejection { - __typename - message - } - ... on ProjectSettingsNotFoundRejection { - __typename - message - } - } -} -``` - -## Payload {#payload} - -The mutation returns all of the requested information such as the account details, the `accountId` (line 10) and the account `status` (line 16). - -```json {10,16} showLineNumbers -{ - "data": { - "openAccount": { - "__typename": "OpenAccountSuccessPayload", - "account": { - "IBAN": "FR7699999001007663023512982", - "BIC": "SWNBFR22", - "currency": "EUR", - "country": "FRA", - "id": "9217e570-f785-4c88-be55-dc8b626ca8c7", - "language": "en", - "name": "Taxes", - "paymentLevel": "Unlimited", - "paymentAccountType": "PaymentService", - "statusInfo": { - "status": "Opened" - } - } - } - } -} -``` \ No newline at end of file diff --git a/docs/preview/multiple-accounts/multiple-accounts.mdx b/docs/preview/multiple-accounts/multiple-accounts.mdx deleted file mode 100644 index 9377ae26ac..0000000000 --- a/docs/preview/multiple-accounts/multiple-accounts.mdx +++ /dev/null @@ -1,234 +0,0 @@ ---- -title: Multiple accounts ---- - -Create additional accounts for an existing company account holder without repeating the onboarding and Know Your Business (KYB) processes. - -:::info Specific coverage -Contact your Strategic Account Manager (SAM) to request the multiple accounts feature. -::: - -## Overview {#overview} - -**Multiple accounts allow a single company to create additional Swan accounts** under the same legal entity. These accounts share the same registration number and [local IBAN](/topics/accounts/ibans/#local) as the first account created during onboarding. - -Each account operates independently with its own IBAN, balances, and transaction flows, making it easy to create additional accounts for specific business needs. - -They have the same capabilities as regular accounts, including issuing and accepting all payment types (e.g., [card payments](/topics/payments/cards/), [SEPA Credit Transfers](/topics/payments/credit-transfers/sepa/)). - -To accept payments, each account requires its own [merchant profile review](/topics/merchants/#profiles), so a new profile and payment method must be requested for each additional account created. - -## Eligibility {#eligibility} - -Multiple accounts are available for **[company account](/topics/onboarding/company/) types**, which include: - -- Registered companies -- Self-employed workers -- Associations or non-profit organizations - -:::info Individual accounts -Individuals may create additional accounts. A new onboarding process is required, but Know Your Customer (KYC) isn't repeated. -::: - -## Requirements {#requirements} - -### Legal representative requirements {#legal-rep-requirements} - -All accounts under the same account holder share the **same [legal representative](/topics/onboarding/company/#representatives)** (account admin). Only the legal representative of the first account can create additional accounts. Changes to the legal representative follow the standard process but must be applied across all accounts belonging to the same account holder. - -### Account holder requirements {#account-holder-requirements} - -The following criteria must be met by the account holder: - -| **Requirement** | **Value** | -| --- | --- | -| `accountHolder.verificationStatus` | `Verified` | -| `accountHolder.status` | `Enabled` | -| `accountHolder.type` | `Company` | -| `accountHolder.account.status` | `Opened` | - -## Key benefits and use cases {#key-benefits} - -### Operational benefits {#operational-benefits} - -- Skip onboarding for each new account. -- Share KYB verification across all accounts, reducing duplicate checks. -- Perform re-KYB verification on one account holder across all accounts. - -### Use cases {#use-cases} - -- **Freelancers** can use this feature for tax management. -- **Small and medium businesses (SMBs)** often use separate accounts for advanced spending management, like managing financial flows by supplier, department, or region. -- **Homeowner associations (HOAs)** can use an "operating account" for day-to-day expenses and a "reserve account" for common area expenses (e.g. repairs). - -## Feature activation {#feature-activation} - -The multiple accounts feature is available to all partners, but **isn't activated** by default. Contact your Strategic Account Manager (SAM) to request activation before creating accounts. - -When requesting the feature, make sure to include: -- The purpose for creating additional accounts. -- The number of accounts needed. - -:::caution Compliance review -Your request is subject to a **compliance review**, as well as a contract and pricing review if accepted. -::: - -## API implementation {#implementation} - -Once the feature is activated, you can create additional accounts. - -1. Call the `openAccount` mutation. -:::info Multiple accounts guide -Follow the [**step-by-step guide**](guide-multiple-accounts-integration.mdx) to create multiple accounts. -::: - -2. Collect the legal representative's confirmation in your banking app. A consent URL or Strong Customer Authentication (SCA) is not required. - -:::caution Confirmation -You must include a clear confirmation step, such as a button, for the legal representative to confirm their intent. -::: - -The new account is created under the same account holder, sharing the same KYB and legal representative. All additional accounts have an `Unlimited` payment level and the `PaymentService` account type. - -## Account conditions {#account-conditions} - -### Account creation limit {#account-creation-limit} - -By default, users are limited to one account until the multiple accounts feature is activated. - -After the feature is activated, users may be granted a maximum number of accounts, which is defined during the compliance review and documented in a welcome letter. - -Users are restricted from creating new accounts after reaching the maximum limit. - -:::info Account status -Only accounts with an Opened status count toward the maximum limit. Suspended, Closing, or Closed accounts do not. -::: - -### Checking your account creation limit {#checking-your-account-creation-limit} - -1. Call the `projectInfo` query (line 2). -1. Select `multipleAccountsSettings` (line 3). -1. Add `accountCreationLimit` and `canOpenAccount` to check your account creation limit (lines 4-5). - -

Query

- -Open in API Explorer - -```graphql {2-5} showLineNumbers -query AccountCreationLimit { - projectInfo { - multipleAccountsSettings { - accountCreationLimit - canOpenAccount - } - } -} -``` -

Payloads

- -The `multipleAccountsSettings` query returns a payload that indicates the current status of the multiple accounts feature for an account holder. - -**Example one: Multiple accounts not active** - -This payload shows the response when the multiple accounts feature has **not** been **activated**. - -- `accountCreationLimit`: `1` indicates that only the initial account can be created. -- `canOpenAccount`: `false` confirms that additional accounts cannot be created. - -```json {5,6} showLineNumbers -{ - "data": { - "projectInfo": { - "multipleAccountsSettings": { - "accountCreationLimit": 1, - "canOpenAccount": false - } - } - } -} -``` - -**Example two: Multiple accounts active** - -This payload shows the response when the multiple accounts feature has been **activated**. - -- `accountCreationLimit`: `6` shows that a maximum of six accounts can be created. -- `canOpenAccount`: `true` confirms that additional accounts can be opened. - -```json {5,6} showLineNumbers -{ - "data": { - "projectInfo": { - "multipleAccountsSettings": { - "accountCreationLimit": 6, - "canOpenAccount": true - } - } - } -} -``` -## Shared account details {#shared-account-details} - -### IBAN country {#iban-country} - -All accounts under the same account holder share the same IBAN country. To create an account with a different IBAN country, the legal representative must complete a new company onboarding process. - -### Company registration number {#company-registration-number} - -All additional accounts are linked to one account holder with a single registration number. To create an account for another company, the user must complete a new company onboarding process with the new company's registration number. - -## Account management {#account-management} - -### Legal documents {#legal-documents} - -The same **Terms and Conditions** and **Partnership Conditions** apply to all accounts under the same account holder. Legal documents are generated in the same way as for single accounts. - -### Account closure {#account-closure} - -Standard [account closure rules](/topics/accounts/closure/#closure-partner) apply. Each account can be closed individually. You can request closure of the first account (created during onboarding) while keeping any additional accounts active. - -## Billing {#billing} - -### End-customer billing {#end-customer-billing} - -Each active account is billed independently, resulting in one invoice per account. - -### Partner billing {#partner-billing} - -Active account pricing is applied at the account holder level, resulting in a new fee for active accounts on your invoice. - -## Setting access in Web banking {#web-banking-access} - -The web banking setting `canOpenAccount` is a project-level configuration that controls whether an account holder can open additional accounts directly from Swan Web banking. - -This setting is activated by default. Unless you deactivate it, end users will be able to open multiple accounts from Swan's interface. - -To restrict account opening to your own banking application, deactivate the `canOpenAccount` setting in your **Dashboard** > **Settings** > **Web banking**. - -### Key benefits {#web-banking-benefits} - -Controlling this setting gives you greater flexibility to: - -1. **Restrict by pricing plan:** Restrict access to the Multiple Accounts feature by pricing plan. -1. **Differentiate by account limits:** Define how many additional accounts a user can create. For instance, one additional account for Basic plans and up to five for Premium plans. - -## Rejections {#rejections} - -Multiple account creations can be rejected for the following reasons: - -| Rejection reason | Description | -| --- | --- | -| `AccountHolderNotFoundRejection` | The provided account holder ID doesn't match an existing `AccountHolder`. | -| `ForbiddenRejection` | The project isn't allowed to create multiple accounts, or the wrong context is used. | -| `AccountMembershipNotEligibleRejection` | The user isn't eligible to open the account. They must be the account legal representative. | -| `AccountHolderTypeNotEligibleRejection` | The account holder type must be `Company`. | -| `AccountHolderStatusNotEligibleRejection` | The account holder status must be `Enabled`. | -| `AccountHolderVerificationStatusNotEligibleRejection` | The account holder must have a `Verified` KYC status. | -| `AccountHolderAccountsTypeNotEligibleRejection` | All associated accounts must be `EndCustomer` or `CapitalDepositMainAccount`. | -| `AccountHolderAccountsStatusNotEligibleRejection` | No active accounts available. All associated accounts are `Closed`, `Closing`, or `Suspended`. | -| `AccountHolderAccountsCreationLimitRejection` | The maximum number of `Opened` accounts has been reached. Check project settings for multiple accounts. | -| `AccountHolderProjectSettingNotEligibleRejection` | Account creation is disabled in project settings. | - -## Guides {#guides} - -- [Create multiple accounts](guide-multiple-accounts-integration.mdx) \ No newline at end of file diff --git a/sidebars.js b/sidebars.js index 2ecd01ee40..9942d9107a 100644 --- a/sidebars.js +++ b/sidebars.js @@ -792,15 +792,6 @@ module.exports = { "preview/card-insurance/guide-insurance-integration", ], }, - { - type: "category", - label: "Multiple accounts", - link: { type: "doc", id: "preview/multiple-accounts/multiple-accounts" }, - collapsed: true, - items: [ - "preview/multiple-accounts/guide-multiple-accounts-integration", - ], - }, // Add more preview features here ], },