An account is a bank account managed by Helix belonging to a customer. To correlate a specific account in Helix to a specific account item in your system, use the tag property. An account is in contrast to an external account which is a customer bank account managed by a different financial institution.


account Object

PropertyData Type (length)Description
accessTypeCode**enumThe type of access the customerId has to the account. Valid values include:
- FULL: customer can do anything with the account; read, withdraw funds, deposit funds
- RDONLY: customer can read data associated with the account, but not edit the account itself, withdraw funds, or deposit funds
- NONE: customer can do nothing with the account.
accountBalancedecimalTotal balance of account, including funds that have holds placed on them. Represents all settled transactions on the account to date. This is the balance used for interest accrual calculations, if this is an interest-bearing account.
accountIdintegerHelix-assigned unique ID for the account
accountMinimumBalancedecimalLowest dollar amount the account can be overdrawn
Example: -100.00
Note: Use of this feature must be enabled for your program by Q2 at the product level.
accountNumberstring (50)Bank account number
Generated during account creation.
Note: This field must be enabled by Q2
accountNumberMaskedstringMasked version of accountNumber
availableBalancedecimalBalance available for immediate withdrawal. Settling a transaction for a DDA account will typically credit the availableBalance immediately. However, savings or FBO accounts may have a "deposit hold time" or a "new customer hold time", meaning there could be a length of time between when the transaction is settled and the corresponding funds are made available for withdrawal.
balanceLastModifiedDatedatetimeMost recent date any of the following were altered in any way:
- accountBalance
- availableBalance
- pendingBalance
categorystring (50)Freeform text for grouping accounts. Useful for grouping and trending in reports.
closedDatedatetimeDate the account was closed
createdDatedatetimeDate the account was created
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 of the customer who owns the account.
customerPriority**integerThe priority of ownership the customer has for the account. Primary owner always has a customerPriority of 1. Joint owners have a customerPriority of 2 or higher. This value is unique and sequential amongst all active owners for a given account. Lower numbers indicate higher priority of ownership. Upon death of the primary owner, the joint account ownership will shift to the account owner with a customerPriority of 2, if any.
firstDepositDatedatetimeThe date and time the first credit transaction settled on the account. Example: '2021-01-07T19:00:59.761-06:00'
globalAccountAccessEnabledbooleantrue for an account which can pull or push funds from all external accounts in your program. This property is read-only, assignable only by Helix or a bank user.
isCloseablebooleanIndicates whether the account can be closed via /account/close. This property is assignable only at account creation time and cannot be updated.
isJointAccount**booleantrue if totalCustomers > 1, false otherwise
isLockedbooleantrue if this account is locked. Read-only. An account can be locked via /account/lock, Admin Console or an automated process. An account can be unlocked via /account/unlock or Admin Console
isPrimarybooleanIndicates whether the account is the primary account for the customer. Read-only. Automatically set when account is created.
isPrimaryCustomer**booleantrue if customerId matches primaryCustomerId
lastModifiedDatedatetimeDate when the account was last altered in any way (excluding the balance properties -- see balanceLastModifiedDate)
legalName1string (100)Primary legal name used to identify the account
legalName2string (100)Secondary legal name used to identify the account (or a continuation of legalName1 if more characters are needed)
lockReasonTypeCodeenumReason the lock was applied to the account
Valid values include:
- UNK: Unknown
- FRD: Fraud investigation
- ADM: Administrative
- TMP: Temporary
- FRZ: Freeze
- SUS: Suspected fraud
- CO: Credits only
- RTN: Return Risk
- REC: Recovery
- DED: Deceased
- DOR: Dormant
lockTypeCodeenumType of account lock
Valid values include:
- UNL: Unlocked
- CST: Customer Locked (locked via the API. Or, if a user of the Admin Console specifies the lock can be removed via the API)
- SYS: System Locked (locked via the API, Admin Console or an automated process. Cannot be unlocked via the API)
namestring (50)A caller-specified, user-friendly name for this account. Must be unique within a given customer .
pendingBalancedecimalBalance of pending deposit transactions. When a pending deposit transaction settles, it will debit this balance. Deposit transactions, which settle immediately, will never affect this balance.
primaryCustomerId**integerThe identification number of the primary owner for the account. By default, this is the customerId passed when /account/create is called.
productIdintegerThe Helix-assigned unique ID of the product to which this account is associated. Configured products can be found on the products property of the program object.
recurringContributionAmount*decimalThe amount to contribute on a recurring basis.
recurringContributionEndDate*datetimeThe earliest date on which future recurring contributions should end. Must be greater than the recurringContributionStartDate . If recurringContributionEndDate is in the past, this effectively disables recurring contributions. i.e. same behavior as though recurringContributionType=None.
recurringContributionFromExternalAccountId*integerThe externalAccountId from which funds will be transferred on a recurring basis. Refers to an external account object.
recurringContributionNextDate*datetimeThe date the next recurring contribution is scheduled to occur. This property is read-only, but setting recurringContributionStartDate causes this date to change.
recurringContributionStartDate*datetimeThe earliest date on which future recurring contributions should start. Note if the day specified is less than or equal to "tomorrow", the first recurring contribution will occur the following period. So if today is the 8th and a value between 1 and 9 is specified, the first recurring contribution will happen the following period. If a value between 10 and 28 is specified, the first recurring contribution will happen during the current period. The value for the day portion of the date must be between 1 and 28.
recurringContributionType*enumThe frequency with which recurring contributions occur. Possible values:
- Monthly
- BiWeekly
- None (default)
regDWithdrawalCountintegerCount of withdrawals on a Savings product with RegD Fee enabled for current month. Increments per withdrawal transaction and if needed, based on product configuration, will create a single Fee transaction at month-end.
routingNumberstringRouting Transit Number (RTN) is a nine-digit bank code used to identify the financial institution where bank account is held. Read-only.
NOTE: This field must be enabled by Q2
routingNumberMaskedstringMasked version of routingNumber
sourceLinksarrayReserved for future use
statusenumAccount status

Valid values include:
- Inactive
- Dormant
- PendingOpen
- Open
- PendingClosed
- Closed
Note: Once an account is closed, it cannot be re-opened.
subCategorystring (50)Freeform text for grouping accounts. Useful for grouping and trending in reports.
tagstring (50)A caller-specified, unique identifier for this account. Must be unique within your program.
targetAmountdecimalAmount the customer wants the availableAmount to amount to
targetDatedatetimeDate on which the customer would like the targetAmount to be met
targetLinksarrayReserved for future use
targetMetDatedatetimeThe first date the availableAmount reached or exceeded the targetAmount. Since a customer may withdraw funds then deposit more funds without closing an account, it is possible to surpass the targetAmount multiple times. However, the targetMetDate is updated only the first time.
targetMetPercentdecimalThe percent of progress towards reaching the targetAmount. Essentially availableBalance / targetAmount. Rounded to 2 decimals of precision.
totalCustomers**integerThe total number of customers with some type of access to the account.
typeenumThe type of the product associated with the account via productId. Possible values:
- Checking
- Savings (RegD restrictions apply)
- Prepaid
- ForBenefitOf (A more restrictive dda account)

*Property relates to Recurring Contribution functionality. This is an optional feature that must be enabled by Q2 and requires an additional subscription fee.

**Property relates to joint account functionality. Use of joint account functionality requires approval from your bank partner.