External Account

Helix enables you to transfer funds between your customers' accounts on Helix and their existing checking and savings accounts at any financial institution within the US and its territories. Customer accounts at other financial institutions are referred to as external accounts.

There is a limit to the number of external accounts a customer can have. This limit is defined by the perUserExternalAccountCountMax property on the program object.

The total number of external accounts for a customer is calculated as follows:

  • All with a status of Unverified, VerifyLocked or Verified
  • All with a status of Archived AND tied to at least one transaction that has settled in the past 90 calendar days

🚧

Note

Another external account cannot be added via the Helix API If the limit has been reached. There must be human intervention (by a CSR) to validate the new external account and it must be created via the Helix Admin site. This is a fraud prevention mechanism.


externalAccount Object

PropertyData Type (length)Description
accountNumberstring (17)The account number of this account at the external bank. Valid values include alphanumeric characters (a-z, A-Z, 0-9) and specified special characters.

See [externalAccount.accountNumber allowed special characters] (doc:externalaccountaccountnumberallowedspecialcharacters) for more details
accountNumberMaskedstringLast 4 digits of the accountNumber property value, preceded by 6 '*', e.g., ******1234
businessNamestring (100)Name of the business that owns the external account. Use instead of firstName and lastName if the customer is a business entity.
customField1string (50)A property for holding client-defined data. There is no business logic in Helix for a custom field.
customField2string (50)A property for holding client-defined data. There is no business logic in Helix for a custom field.
customField3string (50)A property for holding client-defined data. There is no business logic in Helix for a custom field.
customField4string (50)A property for holding client-defined data. There is no business logic in Helix for a custom field.
customField5string (50)A property for holding client-defined data. There is no business logic in Helix for a custom field.
customerIdintegerHelix-assigned unique ID for the customer who owns this external bank account.
externalAccountIdintegerHelix-assigned unique ID for the external account. Will be returned via /externalAccount/create or /externalAccount/initiate. See Verifying External Accounts for more information about these endpoints.
firstNamestring (50)First name of the person who owns the external bank account
isActivedeprecatedUse status instead.
isLockedbooleanIndicates if the external account is locked - typically caused by fraud prevention mechanisms or manual intervention via Helix Admin Console

Note: Other flags such as status=Verified must also be set before a customer can perform any functions. See Verifying External Accounts.
lastModifiedDatedatetimeDate when the object was last altered in any way
lastNamestring (50)Last name of the person who owns the external bank account
lockedDatedatetimeDenotes the last time isLocked was set to true. Example: 2014-01-01T00:00:00.000+00:00
lockedReasonstring (255)The reason isLocked was set to true. Freeform.
namestring (50)Bank name according to FDIC. If your program has ACH via Nacha enabled, the routingNumber will be used to retrieve the actual Nacha bank name (via the Federal Reserve data file). If your program does not have ACH via Nacha enabled, the value provided here will be stored verbatim.
nickNamestring (50)A user-friendly name that can be displayed in place of the name property (which, if your program has ACH via NACHA enabled, will be automatically assigned the bank name returned by the Federal Reserve data file for the given routingNumber).
Example: Helix Checking
nocCodestringNotification of Change code.
routingNumberstring (50)Routing transit number (RTN) is a nine-digit bank code used to identify a financial institution.
routingNumberMaskedstringLast 4 digits of the routingNumber property value, preceded by 6 '*', e.g., ******1234
statusenumStatus of the external account

Valid values include:

- Unverified
- VerifyLocked
- Verified
- Denied
- Expired
- Archived
statusDatedatetimeThe date the status last changed
tagstring (50)A caller-specified, immutable, unique identifier for this external account. Must be unique among all external accounts within your program.
typeenumType of external account

Valid values values:

- Savings
- Checking
- Business Checking
- Business Savings
- Prepaid
- Loan

V