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 any financial institution within the US and its territorie (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.
customerIdinteger

Helix-assigned unique ID for the

customer

who owns this external bank account.

externalAccountIdinteger

Helix-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
statusenum

Status 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.
typeenum

Type of external account

Valid values include:
  • Savings
  • Checking
  • Business Checking
  • Business Savings
  • Prepaid
  • Loan
  • General Ledger
    Note: General ledger accounts can only be created through the Helix Admin Console and cannot be created via /externalAccount/create.
    If a Notice of Change (NOC) is received indicating the destination account is a general ledger account, Helix will automatically update the external account type to General Ledger to ensure compliance with Nacha guidelines.