This guide describes the procedure for creating a secondary account using the <a href="ref:post_addaccount" target="_blank">Add Account</a> endpoint. With this endpoint you can add a secondary account to an existing account holder without running <<glossary:CIP>> on that account holder.

Follow this procedure to:

  • Add a secondary account to an existing account holder, such as a savings or overdraft account. For overdraft accounts, also consult the <a href="doc:creating-an-overdraft-account" target="_blank">Creating an Overdraft Account</a> guide.

  • Add a secondary card product to an existing account holder, either a virtual or personalized card

Do not follow this procedure to:

  • Onboard a new customer for a physical or virtual card; instead, see the <a href="doc:create-account-procedure" target="_blank">Creating an Account</a> guide.

  • Deposit funds into an account at the time of account creation; instead, see the <a href="doc:create-account-procedure" target="_blank">Creating an Account</a> guide.

  • Create a secondary account for a different customer than the primary account holder, such as a spouse or child; instead, see the <a href="doc:create-account-procedure" target="_blank">Creating an Account</a> guide.

Note

Before following this procedure read the <a href="doc:about-accounts" target="_blank">About Accounts</a> guide to familiarize yourself with Galileo's account structure and conventions, especially the <a href="doc:about-accounts#create-account-vs-add-account" target="_blank">Create Account vs Add Account</a> use cases.

## Result of calling Add Account

When <a href="ref:post_addaccount" target="_blank">Add Account</a> has been called successfully, these items are created or updated in the Galileo system. See <a href="doc:about-accounts#new-account-creation" target="_blank">New account creation</a> in the _About Accounts_ guide for details.

  • **Customer record** — Referenced from the customer record of the primary account. However, the customer ID and ID type fields are not referenced, because Add Account does not perform <<glossary:CIP>>.

  • **Account record** — Contains general account information.

  • **Card record** (for card products) — Contains card information. You can receive unmasked <<glossary:PAN>>/<<glossary:CVV>>/<<glossary:expiry date>> values only if you are <<glossary:PCI>> compliant.

## Relationship to primary account

Accounts that are added with the <a href="ref:post_addaccount" target="_blank">Add Account</a> endpoint are associated with the primary account such that the primary account holder is also the secondary account holder. At the time you call this endpoint you must decide whether to share the balance with the primary account. You cannot share or unshare balances after the secondary account has been created. See <a href="doc:about-accounts#joint-accounts-and-shared-balances" target="_blank">Joint accounts and shared balances</a> in the _About Accounts_ guide for more information.

### Additional product, separate balances

In this scenario the secondary account does not share a balance with the primary account.

To create this scenario, follow these steps:

  1. Call the <a href="ref:post_createaccount" target="_blank">Create Account</a> endpoint to create the customer's first account (primary account).

  2. Call the <a href="ref:post_addaccount" target="_blank">Add Account</a> endpoint to create the secondary account. In the request to the Add Account endpoint pass these parameters:

    • `accountNo:` primary account number

    • `sharedBalance: 0` or leave blank

This is the relationship that is set up:



<!--add-account-separate-balance.pnggggg-->

### Additional product, shared balance

In this scenario the secondary account shares a balance with the primary account.



<!--add-account-shared-balance.pnggggg-->

To create this scenario, follow these steps:

  1. Call the <a href="ref:post_createaccount" target="_blank">Create Account</a> endpoint to create the first customer's account (primary account).

  2. Call the <a href="ref:post_addaccount" target="_blank">Add Account</a> endpoint to create the secondary account. In the request to the Add Account endpoint pass these parameters:

    • `accountNo:` primary account number

    • `sharedBalance: 1`

## Parameters

This table explains the parameters that are specific to the Add Account endpoint. See the <a href="ref:post_addaccount" target="_blank">Add Account</a> reference for details.

ParameterUsage
`accountNo`The primary account to associate with this secondary account. This can be a primary account number or a secondary account number.
`prodId`Identifier for the product. Product parameters must permit this product to be a secondary account to the product of the account specified in `accountNo`.
`sharedBalance`Pass `1` when creating a secondary account that will transact on the same balance as the specified `accountNo`; otherwise, do not populate.

Note

If you want to add an external account ID to an account created with `addAccount`, call `updateAccount` and populate `externalAccountId`.

## Add Account workflow

Consult this flowchart and explanation for the <a href="ref:post_addaccount" target="_blank">Add Account</a> workflow. The actual sequence of events in the Galileo system may vary.

Note

Before calling <a href="ref:post_addaccount" target="_blank">Add Account</a>, you must have already performed the <a href="doc:create-account-procedure" target="_blank">Creating an Account</a> procedure to onboard the customer.



<!--addAccount-flowchart.pnggggg-->

  1. Populate the <a href="ref:post_addaccount" target="_blank">Add Account</a> request and send.

  2. Galileo performs a number of preliminary checks. Failures return the status codes shown in the diagram.

  3. Galileo references the account holder profile information and creates a new account with `status: W` (waiting to be processed).

    • If `sharedBalance: 1` the balance ID is set to the primary account balance ID.

    • If `sharedBalance: 0` the balance ID is unique.

  4. If the account cannot be created, the endpoint returns `status_code: -1`.

  5. If account creation was successful, Galileo sends two messages:

    • API response with `status_code: 0` (successful)

    • Account Event <a href="ref:api-reference-events-api-app-completed" target="_blank">`CAPP: app_completed`</a>, if you are configured to receive it.

  6. Galileo runs an account setup process to determine whether other criteria for the account have been fulfilled, according to product settings. When all criteria are fulfilled, the Galileo system checks the XAACT product parameter for how to set the account status:

    • **First character** — Account active/inactive (Y/N)

    • **Second character** — <a href="ref:api-reference-account-statuses" target="_blank">Account status</a>

    • **Third character** — <a href="ref:api-reference-card-statuses" target="_blank">Card status</a> (if any)

    For example, if the product is a card account, and XAACT is `YNX`, then when account setup is completed these are the settings:

    • Account `active: Y`

    • Account `status: N` (active)

    • Card `status: X` (set to emboss)

See <a href="doc:setting-up-a-card-program#lifecycle-of-a-card" target="_blank">Lifecycle of a card</a> in _Setting Up a Card Program_ for the next steps when the account has a card.

## Sample endpoint request and response

Consult the <a href="ref:post_addaccount" target="_blank">Add Account</a> reference to see how to build the API request and to see the response schema.

## Status codes

Consult the <a href="ref:post_addaccount" target="_blank">Add Account</a> reference to see status codes and next steps.

## View the new account

Use the <a href="ref:post_getaccountoverview" target="_blank">Get Account Overview</a> endpoint to retrieve account status and other information. Consult <a href="doc:about-accounts#retrieving-account-information" target="_blank">Retrieving account information</a> in _About Accounts_ for a list of endpoints and the specific account information they retrieve.