openapi: 3.2.0
info:
title: Helix Account API
version: 3.0.0
description: Helix Public API (no customer KYC/IDV). **This spec covers all of Helix 3.x and is subject to change at any time.**
servers:
- url: https://sandbox-api.helix.q2.com
description: Sandbox server
- url: https://api.helix.q2.com
description: Production server
security:
- basicAuth: []
tags:
- name: Account
description: Endpoints for the account object
paths:
/account/close:
post:
tags:
- Account
summary: Close an account
description: Close an account. If the account balance is greater than $0 or any interest is owed on the account those amounts are calculated and a transaction is implicitly created with the sum of those amounts being credited into the given `closeToAccountId`. That transaction's `tag` property is also assigned the value in the `transactionTag` property (if specified).
externalDocs:
url: https://docs.helix.q2.com/reference/accountclose
operationId: accountClose
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- customerId
- accountId
properties:
customerId:
$ref: '#/components/schemas/HelixId'
accountId:
$ref: '#/components/schemas/HelixId'
closeToAccountId:
allOf:
- description: "The Helix-assigned ID for the account to receive remaining funds. This can be the accountId of an \naccount or the externalAccountId of an \nexternalAccount. \n**Notes:** `closeToAccountId` is required if the account has a balance or earns interest. \nTo close to a petty cash account, use the Helix Admin Console or the \nBulk Account Close Process.\n"
- $ref: '#/components/schemas/HelixId'
transactionTag:
allOf:
- description: A program-wide unique identifier that is to be associated with the transaction created to move any funds out of the account being closed.
- $ref: '#/components/schemas/TagProperty'
closeReason:
type: string
enum:
- Fraud
- Never funded
- BSA reasons
- Relationship ended
- Deceased
- Other
- Consolidating Bank Accounts
- re-CIP
- Risk-Related
- Member Requested
- Negative Balance (Reopen Eligible)
- Negative Balance (Reopen Ineligible)
- ID Theft
- Account Take Over
- Dormant
description: "The following values are not enabled by default and require additional configuration. Contact the Helix Support team for more information.\n \n- `re-CIP`\n- `Risk-Related`\n- `Member Requested`\n- `Negative Balance (Reopen Eligible)`\n- `Negative Balance (Reopen Ineligible)`\n- `ID Theft`\n- `Account Take Over`\n- `Dormant`\n"
closeReasonNotes:
type: string
maxLength: 255
description: Required if `closeReason` is `Other`
responses:
'200':
description: The account closure and transaction (if applicable) details
content:
application/json:
schema:
$ref: '#/components/schemas/AccountClose200Response'
'400':
$ref: '#/paths/~1card~1lock/post/responses/400'
'401':
$ref: '#/paths/~1card~1lock/post/responses/401'
'404':
$ref: '#/paths/~1card~1lock/post/responses/404'
'405':
$ref: '#/paths/~1card~1lock/post/responses/405'
'429':
$ref: '#/paths/~1card~1lock/post/responses/429'
/account/create:
post:
tags:
- Account
summary: Create an account
description: Create a new account for a customer. See account object definition for parameter details.
externalDocs:
url: https://docs.helix.q2.com/reference/accountcreate
operationId: accountCreate
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- customerId
- name
- productId
properties:
customerId:
allOf:
- description: The Helix-assigned ID for the customer who owns the account. For business accounts, this is the `customerId` of the business entity.
- $ref: '#/components/schemas/HelixId'
name:
type: string
maxLength: 50
productId:
$ref: '#/components/schemas/HelixId'
targetDate:
type: string
format: date-time
example: '2000-07-04T00:00:00.000+00:00'
isclosable:
type: boolean
category:
type: string
maxLength: 50
subcategory:
type: string
maxLength: 50
tag:
$ref: '#/components/schemas/TagProperty'
recurringContributionType:
type: string
enum:
- None
- BiWeekly
- Monthly
recurringContributionAmount:
type: number
format: decimal
recurringContributionFromExternalAccountId:
$ref: '#/components/schemas/HelixId'
recurringContributionStartDate:
$ref: '#/components/schemas/DateTimeProperty'
recurringContributionEndDate:
$ref: '#/components/schemas/DateTimeProperty'
customField1:
type: string
maxLength: 50
customField2:
type: string
maxLength: 50
customField3:
type: string
maxLength: 50
customField4:
type: string
maxLength: 50
customField5:
type: string
maxLength: 50
accountMinimumBalance:
type: number
format: decimal
requestingCustomerId:
allOf:
- description: The Helix-assigned unique ID for the customer requesting to open the account. Only used when opening a business account.
- $ref: '#/components/schemas/HelixId'
accountNumber:
type: string
maxLength: 50
pattern: ^[0-9]{1,50}$
description: If none specified, Helix will automatically assign an account number. **Note:** Custom account numbers requires approval from Q2 and your bank partner. Custom account numbers must be numeric.
legalName1:
type: string
maxLength: 100
legalName2:
$ref: '#/components/schemas/LegalName'
responses:
'200':
description: An envelope whose data node is a account object
content:
application/json:
schema:
$ref: '#/components/schemas/AccountObject200Response'
'400':
$ref: '#/paths/~1card~1lock/post/responses/400'
'401':
$ref: '#/paths/~1card~1lock/post/responses/401'
'404':
$ref: '#/paths/~1card~1lock/post/responses/404'
'405':
$ref: '#/paths/~1card~1lock/post/responses/405'
'429':
$ref: '#/paths/~1card~1lock/post/responses/429'
/account/get/{customerId}/{accountId}:
get:
tags:
- Account
summary: Get an account
description: Retrieve a single account for the given `customerId` and `accountId`.
externalDocs:
url: https://docs.helix.q2.com/reference/accountget
operationId: accountGet
parameters:
- $ref: '#/components/parameters/CustomerIdPath'
- name: accountId
in: path
required: true
schema:
$ref: '#/components/schemas/HelixId'
responses:
'200':
description: An account object
content:
application/json:
schema:
$ref: '#/components/schemas/AccountObject200Response'
'400':
$ref: '#/paths/~1card~1lock/post/responses/400'
'401':
$ref: '#/paths/~1card~1lock/post/responses/401'
'404':
$ref: '#/paths/~1card~1lock/post/responses/404'
'405':
$ref: '#/paths/~1card~1lock/post/responses/405'
'429':
$ref: '#/paths/~1card~1lock/post/responses/429'
/account/getByTag/{customerId}/{tag}:
get:
tags:
- Account
summary: Get an account via tag
description: Retrieve a single account for the given `customerId` and `tag`.
externalDocs:
url: https://docs.helix.q2.com/reference/accountgetbytag
operationId: accountGetByTag
parameters:
- $ref: '#/components/parameters/CustomerIdPath'
- $ref: '#/components/parameters/TagPath'
responses:
'200':
description: An envelope whose data node is a account object
content:
application/json:
schema:
$ref: '#/components/schemas/AccountObject200Response'
'400':
$ref: '#/paths/~1card~1lock/post/responses/400'
'401':
$ref: '#/paths/~1card~1lock/post/responses/401'
'404':
$ref: '#/paths/~1card~1lock/post/responses/404'
'405':
$ref: '#/paths/~1card~1lock/post/responses/405'
'429':
$ref: '#/paths/~1card~1lock/post/responses/429'
/account/list/{customerId}:
get:
tags:
- Account
summary: List accounts
description: Retrieve all accounts for the given `customerId`. Accounts with `status=Closed` may disappear from this list after a period of time no shorter than 32 days.
externalDocs:
url: https://docs.helix.q2.com/reference/accountlist
operationId: accountList
parameters:
- $ref: '#/components/parameters/CustomerIdPath'
responses:
'200':
description: An array of account objects
content:
application/json:
schema:
$ref: '#/components/schemas/AccountArray200Response'
'400':
$ref: '#/paths/~1card~1lock/post/responses/400'
'401':
$ref: '#/paths/~1card~1lock/post/responses/401'
'404':
$ref: '#/paths/~1card~1lock/post/responses/404'
'405':
$ref: '#/paths/~1card~1lock/post/responses/405'
'429':
$ref: '#/paths/~1card~1lock/post/responses/429'
/account/lock:
post:
tags:
- Account
summary: Lock an account
description: Lock an account. Most locks can be reversed by calling /account/unlock. Please check the /account/unlock documentation to see which lock scenarios can be subsequently unlocked. Will apply a lockTypeCode of `CST` or `SYS` on success and the account will be locked, meaning no funds transfers can take place.
externalDocs:
url: https://docs.helix.q2.com/reference/accountlock
operationId: accountLock
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- customerId
- accountId
- lockTypeCode
- lockReasonTypeCode
properties:
customerId:
$ref: '#/components/schemas/HelixId'
accountId:
$ref: '#/components/schemas/HelixId'
lockTypeCode:
type: string
enum:
- CST
- SYS
description: '- `CST`: Customer Locked
- `SYS`: System Locked
'
lockReasonTypeCode:
type: string
enum:
- UNK
- FRD
- ADM
- TMP
- FRZ
- SUS
- CO
- RTN
- REC
- DED
- DOR
description: '- `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
'
accountLockClassificationCode:
type:
- string
- 'null'
maxLength: 10
description: An optional program-configured classification code for the lock. Must be a value from the configured list for the program.
responses:
'200':
description: An envelope whose data node is a account object
content:
application/json:
schema:
$ref: '#/components/schemas/AccountObject200Response'
'400':
$ref: '#/paths/~1card~1lock/post/responses/400'
'401':
$ref: '#/paths/~1card~1lock/post/responses/401'
'404':
$ref: '#/paths/~1card~1lock/post/responses/404'
'405':
$ref: '#/paths/~1card~1lock/post/responses/405'
'429':
$ref: '#/paths/~1card~1lock/post/responses/429'
/account/unlock:
post:
tags:
- Account
summary: Unlock an account
description: 'The following matrix details when this call will succeed or fail
| Current lockTypeCode | Current lockReasonTypeCode | Result |
| -------------------- | -------------------------- | ------ |
| `CST` | `UNK` - Unknown | Success |
| `CST` | `TMP` - Temporary | Success |
| `CST` | `FRZ` - Freeze | Success |
| `CST` | `ADM` - Administrative | Success |
| `CST` | `SUS` - Suspected fraud | Success |
| `CST` | `CO` - Credits only | Success |
| `CST` | `RTN` - Return risk | Success |
| `CST` | `REC` - Recovery | Success |
| `CST` | `DED` - Deceased | Success |
| `CST` | `DOR` - Dormant | Success |
| `CST` | `FRD` - Fraud investigation | Fail - Fraud investigation lock can not be unlocked by CST |
| `SYS` | `TMP`, `FRD`, `FRZ`, `ADM`, `SUS`, `CO` | Fail - SYS lock type cannot be unlocked by CST |
The account will have a `lockTypeCode` of `UNL` upon successful completion of this call. The account is unlocked and ready for transfers to take place.'
externalDocs:
url: https://docs.helix.q2.com/reference/accountunlock
operationId: accountUnlock
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- customerId
- accountId
properties:
customerId:
$ref: '#/components/schemas/HelixId'
accountId:
$ref: '#/components/schemas/HelixId'
responses:
'200':
description: An envelope whose data node is a account object
content:
application/json:
schema:
$ref: '#/components/schemas/AccountObject200Response'
'400':
$ref: '#/paths/~1card~1lock/post/responses/400'
'401':
$ref: '#/paths/~1card~1lock/post/responses/401'
'404':
$ref: '#/paths/~1card~1lock/post/responses/404'
'405':
$ref: '#/paths/~1card~1lock/post/responses/405'
'429':
$ref: '#/paths/~1card~1lock/post/responses/429'
/account/update:
post:
tags:
- Account
summary: Update an account
description: See account object definition for parameter details.
externalDocs:
url: https://docs.helix.q2.com/reference/accountupdate
operationId: accountUpdate
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- customerId
- accountId
- name
properties:
customerId:
$ref: '#/components/schemas/HelixId'
accountId:
$ref: '#/components/schemas/HelixId'
name:
type: string
maxLength: 50
productId:
allOf:
- description: '**Note:**`productId` updates are not real-time in the production environment. Changes may be delayed by up to 24 hours.'
- $ref: '#/components/schemas/HelixId'
targetAmount:
type: number
format: decimal
targetDate:
$ref: '#/components/schemas/DateTimeProperty'
category:
type: string
maxLength: 50
subcategory:
type: string
maxLength: 50
tag:
$ref: '#/components/schemas/TagProperty'
recurringContributionType:
$ref: '#/components/schemas/RecurringContributionType'
recurringContributionAmount:
type: number
format: decimal
recurringContributionFromExternalAccountId:
$ref: '#/components/schemas/HelixId'
recurringContributionStartDate:
$ref: '#/components/schemas/DateTimeProperty'
recurringContributionEndDate:
$ref: '#/components/schemas/DateTimeProperty'
customField1:
type: string
maxLength: 50
customField2:
type: string
maxLength: 50
customField3:
type: string
maxLength: 50
customField4:
type: string
maxLength: 50
customField5:
type: string
maxLength: 50
accountMinimumBalance:
type: number
format: decimal
responses:
'200':
description: An envelope whose data node is a account object
content:
application/json:
schema:
$ref: '#/components/schemas/AccountObject200Response'
'400':
$ref: '#/paths/~1card~1lock/post/responses/400'
'401':
$ref: '#/paths/~1card~1lock/post/responses/401'
'404':
$ref: '#/paths/~1card~1lock/post/responses/404'
'405':
$ref: '#/paths/~1card~1lock/post/responses/405'
'429':
$ref: '#/paths/~1card~1lock/post/responses/429'
components:
schemas:
LegalName:
type: string
maxLength: 100
CardObject200Response:
allOf:
- $ref: '#/components/schemas/CardArray200Response/allOf/0'
- type: object
properties:
data:
type: object
properties:
accounts:
type: array
items:
type: object
properties:
accountBalance:
type: number
format: decimal
accountId:
$ref: '#/components/schemas/HelixId'
accountNumberMasked:
type: string
availableBalance:
type: number
format: decimal
balanceLastModifiedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
cardPriority:
$ref: '#/components/schemas/CardPriority'
customerId:
$ref: '#/components/schemas/HelixId'
lastModifiedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
name:
type: string
pendingBalance:
type: number
format: decimal
status:
$ref: '#/components/schemas/AccountObject200Response/allOf/1/properties/data/properties/status'
tag:
$ref: '#/components/schemas/TagProperty'
type:
$ref: '#/components/schemas/AccountObject200Response/allOf/1/properties/data/properties/type'
archivedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
binId:
$ref: '#/components/schemas/HelixId'
cardCarrierMessage:
type: string
description: 'Identifier used uniquely by various card production facilities for mapping card configurations.
'
cardDesignIdentificationNumber:
type: string
description: 'Identifier used uniquely by various card production facilities for mapping card configurations.
'
cardHolderCustomerId:
$ref: '#/components/schemas/HelixId'
cardId:
$ref: '#/components/schemas/HelixId'
cardNumberMasked:
type: string
cardVendorUniqueData:
type: string
description: 'Identifier used uniquely by various card production facilities for mapping card configurations.
'
createdDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
customerId:
$ref: '#/components/schemas/HelixId'
deniedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
digitalWalletTokens:
type: array
items:
type: object
properties:
device:
type: object
properties:
deviceId:
type: string
deviceIpAddress:
type: string
deviceLanguageCode:
type: string
deviceLocation:
type: string
deviceName:
type: string
deviceNumber:
type: string
deviceType:
type: string
enum:
- Card
- MobilePhone
- Tablet
- Watch
- MobileDevice
- FashionAccessory
- HomeAppliance
- KeyFob
- MediaOrGamingDevice
- MobileDeviceAccessory
- PCOrLaptop
- Vehicle
- UnknownOther
isDeviceProvisioned:
type: boolean
panReferenceId:
type: string
token:
type: string
tokenReferenceId:
type: string
tokenRequestorId:
type: string
enum:
- '40010030273'
- '40010075001'
- '40010043095'
- '40010075338'
tokenRequestorName:
type: string
enum:
- ApplePay
- GooglePay
- SamsungPay
- VisaCheckout
tokenStatus:
type: string
enum:
- ActiveForPayment
- Initiated
- SuspendedTemporarily
- DeactivatedPermanently
tokenType:
type: string
enum:
- Card on file
- Secure element
- Cloud based payment/HCE
- E-Commerce Enabler
walletInformation:
type: object
properties:
panSource:
type: string
enum:
- KeyEntered
- OnFile
- MobileBankingApp
walletAccountId:
type: string
walletEmailAddressHashed:
type: string
walletProviderDeviceScore:
type: string
walletProviderReasonCodes:
type: string
walletProviderRiskAssessmentType:
type: string
enum:
- Approved
- ApprovedConditionally
- NotApproved
walletProviderRiskAssessmentVersion:
type: string
expireMonth:
$ref: '#/components/schemas/MonthProperty'
expireYear:
$ref: '#/components/schemas/YearProperty'
expiredDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
firstName:
type: string
isDigitalOnly:
type: boolean
isDualIssuanceSinglePAN:
type: boolean
isPINSet:
type: boolean
lastModifiedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
lastName:
type: string
lockReasonTypeCode:
type: string
enum:
- UNK
- STL
- LST
- FRD
- DMG
- ADM
- TMP
- PIN
lockTypeCode:
type: string
enum:
- UNL
- CST
- SYS
middleName:
type: string
nameOnCard:
type: string
nickName:
type: string
photoImageId:
type: string
description: 'Identifier used uniquely by various card production facilities for mapping card configurations.
'
preferredName:
type: string
primaryAccountId:
$ref: '#/components/schemas/HelixId'
qualifierCode:
$ref: '#/components/schemas/CardQualifierCode'
reissuedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
renewalOverride:
$ref: '#/components/schemas/RenewalOverride'
renewalOverrideReason:
type: string
requestedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
status:
type: string
enum:
- Initiated
- Pending
- PendingVerification
- Verified
- Denied
- Expired
- Archived
- Reissued
- Hotlisted
- ReissuedPendingVerification
- AutoReissuedPendingVerification
tag:
$ref: '#/components/schemas/TagProperty'
typeCode:
type: string
enum:
- DBT
vendorTypeCode:
$ref: '#/components/schemas/CardVendorTypeCode'
verifiedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
AccountObject200Response:
allOf:
- $ref: '#/components/schemas/CardArray200Response/allOf/0'
- type: object
properties:
data:
type: object
properties:
accessTypeCode:
type: string
enum:
- FULL
- AUTHSIGNER
- RDONLY
- NONE
accountBalance:
type: number
format: decimal
accountId:
$ref: '#/components/schemas/HelixId'
accountMinimumBalance:
type: number
format: decimal
accountNumber:
type: string
accountNumberMasked:
type: string
availableBalance:
type: number
format: decimal
balanceLastModifiedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
category:
type: string
maxLength: 50
closedAmount:
type: number
format: decimal
closedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
closedReason:
$ref: '#/components/schemas/CloseReason'
closedReasonNotes:
$ref: '#/components/schemas/CloseReasonNotes'
createdDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
customField1:
type: string
maxLength: 50
customField2:
type: string
maxLength: 50
customField3:
type: string
maxLength: 50
customField4:
type: string
maxLength: 50
customField5:
type: string
maxLength: 50
customerId:
$ref: '#/components/schemas/HelixId'
customerPriority:
$ref: '#/components/schemas/HelixId'
externalProgramTag:
type: string
firstDepositDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
globalAccountAccessEnabled:
type: boolean
interestTransferFkId:
$ref: '#/components/schemas/HelixId'
isCloseable:
type: boolean
isJointAccount:
type: boolean
isLocked:
type: boolean
isPrimary:
type: boolean
isPrimaryCustomer:
type: boolean
lastModifiedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
legalName1:
$ref: '#/components/schemas/LegalName'
legalName2:
$ref: '#/components/schemas/LegalName'
lockReasonTypeCode:
$ref: '#/components/schemas/AccountLockReasonTypeCode'
lockTypeCode:
$ref: '#/components/schemas/CardObject200Response/allOf/1/properties/data/properties/lockTypeCode'
accountLockClassificationCode:
type:
- string
- 'null'
maxLength: 10
description: Program-configured classification code associated with the account lock.
accountLockClassificationCodeDescription:
type:
- string
- 'null'
description: Human-readable description of the accountLockClassificationCode.
maturityTypeCode:
type: string
name:
type: string
pendingBalance:
type: number
format: decimal
primaryCustomerId:
$ref: '#/components/schemas/HelixId'
productId:
$ref: '#/components/schemas/HelixId'
recurringContributionAmount:
type: number
format: decimal
recurringContributionEndDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
recurringContributionFromExternalAccountId:
$ref: '#/components/schemas/HelixId'
recurringContributionNextDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
recurringContributionStartDate:
$ref: '#/components/schemas/DateTimeProperty'
recurringContributionType:
$ref: '#/components/schemas/RecurringContributionType'
regDWithdrawalCount:
type: integer
format: int32
minimum: 0
routingNumber:
type: string
routingNumberMasked:
type: string
sourceLinks:
type: array
items:
type: object
deprecated: true
properties:
creditSetting:
type: number
format: decimal
customerId:
$ref: '#/components/schemas/HelixId'
debitSetting:
type: number
format: decimal
isCreditAutoTransferEnabled:
type: boolean
isDebitAutoTransferEnabled:
type: boolean
linkOptionTypeCode:
type: string
enum:
- OVRPRTAMT
- OVRPRTMLT
- OVRSECPCT
- OVRSECFIX
description: '- `OVRPRTAMT`: Auto-transfer exact amount of withdrawal
- `OVRPRTMLT`: Auto-transfer to the nearest multiple of `debitSetting` to cover withdrawal amount
- `OVRSECPCT`: Allow lending up to `debitSetting` percentage of security account funds
- `OVRSECFIX`: Allow lending up to fixed amount of `debitSetting`
'
linkTypeCode:
type: string
enum:
- OVRPRT
- OVRSEC
description: '- `OVRPRT`: Overdraft protention
- `OVRSEC`: Overdraft security
'
sourceAccountId:
$ref: '#/components/schemas/HelixId'
targetAccountId:
$ref: '#/components/schemas/HelixId'
deprecated: true
status:
type: string
enum:
- Open
- Closed
- PendingOpen
- PendingClosed
subCategory:
type: string
tag:
$ref: '#/components/schemas/TagProperty'
targetAmount:
type: number
format: decimal
targetDate:
$ref: '#/components/schemas/DateTimeProperty'
targetLinks:
type: array
items:
$ref: '#/components/schemas/AccountObject200Response/allOf/1/properties/data/properties/sourceLinks/items'
deprecated: true
targetMetDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
targetMetPercent:
type: number
format: decimal
totalCustomers:
$ref: '#/components/schemas/HelixId'
type:
type: string
enum:
- Checking
- Savings
- ForBenefitOf
- Prepaid
- Time Deposit
- Business Checking
- Business Savings
CloseReason:
type: string
enum:
- Fraud
- Never funded
- BSA reasons
- Relationship ended
- Deceased
- Other
- Consolidating Bank Accounts
- re-CIP
- Risk-Related
- Member Requested
- Negative Balance (Reopen Eligible)
- Negative Balance (Reopen Ineligible)
- ID Theft
- Account Take Over
- Dormant
description: 'The following values are not enabled by default and must be enabled by Q2: `Consolidating Bank Accounts`, `re-CIP`, `Risk-Related`, `Member Requested`, `Negative Balance (Reopen Eligible)`, `Negative Balance (Reopen Ineligible)`, `ID Theft`, `Account Take Over`, `Dormant`
'
CardArray200Response:
allOf:
- type: object
properties:
errors:
type: array
items: {}
example: []
requestId:
type: string
example: 1249a3bf-aca1-40dd-9fba-2a3193550c39
status:
type: integer
enum:
- 200
throttle:
type: object
properties:
periodEndsAt:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
periodLengthInSeconds:
$ref: '#/components/schemas/HelixId'
periodRequestLimit:
$ref: '#/components/schemas/HelixId'
requestsRemainingInPeriod:
$ref: '#/components/schemas/HelixId'
warningThreshold:
type: number
format: decimal
example: 0.2
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/CardObject200Response/allOf/1/properties/data'
CustomerSetLastContact200Response:
allOf:
- $ref: '#/components/schemas/CardArray200Response/allOf/0'
- type: object
properties:
data:
type: array
items:
type: object
properties:
customerId:
$ref: '#/components/schemas/HelixId'
dormancyStatus:
type: string
enum:
- Active
- Inactive
- Dormant
lastContactDate:
type: string
format: date-time
example: '2021-01-07T19:00:59.761-06:00'
lastContactType:
$ref: '#/components/schemas/LastContactType'
AccountClose200Response:
allOf:
- $ref: '#/components/schemas/CardArray200Response/allOf/0'
- type: object
properties:
data:
type: object
properties:
customerId:
$ref: '#/components/schemas/HelixId'
accountId:
$ref: '#/components/schemas/HelixId'
closeToAccountId:
$ref: '#/components/schemas/HelixId'
transactionId:
type: integer
format: int64
minimum: 1
transactionTag:
$ref: '#/components/schemas/TagProperty'
closingBalanceAmount:
type: number
format: decimal
interestPaidAmount:
type: number
format: decimal
totalClosingAmount:
type: number
format: decimal
isClosedToExternalAccount:
type: boolean
AccountLockReasonTypeCode:
type: string
enum:
- UNK
- FRD
- ADM
- TMP
- FRZ
- SUS
- CO
- RTN
- REC
- DED
- DOR
description: '- `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
'
CloseReasonNotes:
type: string
maxLength: 255
description: Required if `closeReason` is `Other`
TagProperty:
type: string
maxLength: 50
HelixId:
type: integer
format: int32
minimum: 1
RecurringContributionType:
type: string
enum:
- None
- BiWeekly
- Monthly
DateTimeProperty:
type: string
format: date-time
example: '2000-07-04T00:00:00.000+00:00'
AccountArray200Response:
allOf:
- $ref: '#/components/schemas/CardArray200Response/allOf/0'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/AccountObject200Response/allOf/1/properties/data'
parameters:
TagPath:
name: tag
in: path
required: true
schema:
$ref: '#/components/schemas/TagProperty'
CustomerIdPath:
name: customerId
in: path
required: true
schema:
$ref: '#/components/schemas/HelixId'
securitySchemes:
basicAuth:
type: http
scheme: basic
x-samples-languages:
- curl
- node
- python
- csharp
- ruby
- go
- java
- kotlin
- php
x-provenance:
method: searched
source: https://docs.helix.q2.com/reference
harvested: '2026-10-14'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://docs.helix.q2.com/reference/accountaddentitlement.md
- https://docs.helix.q2.com/reference/accountbeneficiaryadd.md
- https://docs.helix.q2.com/reference/accountbeneficiaryedit.md
- https://docs.helix.q2.com/reference/accountbeneficiaryget.md
- https://docs.helix.q2.com/reference/accountbeneficiarylist.md
- https://docs.helix.q2.com/reference/accountbeneficiaryremove.md
- https://docs.helix.q2.com/reference/accountbeneficiaryreplace.md
- https://docs.helix.q2.com/reference/accountclose.md
- https://docs.helix.q2.com/reference/accountcreate.md
- https://docs.helix.q2.com/reference/accounteditentitlement.md
- https://docs.helix.q2.com/reference/accountget.md
- https://docs.helix.q2.com/reference/accountgetbytag.md
- https://docs.helix.q2.com/reference/accountlimitdelete.md
- https://docs.helix.q2.com/reference/accountlimitlist.md
- https://docs.helix.q2.com/reference/accountlimitset.md
- https://docs.helix.q2.com/reference/accountlist.md
- https://docs.helix.q2.com/reference/accountlistentitlements.md
- https://docs.helix.q2.com/reference/accountlock.md
- https://docs.helix.q2.com/reference/accountplacehold.md
- https://docs.helix.q2.com/reference/accountreleasehold.md
- https://docs.helix.q2.com/reference/accountremoveentitlement.md
- https://docs.helix.q2.com/reference/accountstoppaycreatecheckstoppay.md
- https://docs.helix.q2.com/reference/accountstoppayexpire.md
- https://docs.helix.q2.com/reference/accountstoppaylist.md
- https://docs.helix.q2.com/reference/accountunlock.md
- https://docs.helix.q2.com/reference/accountupdate.md
- https://docs.helix.q2.com/reference/bankdocumentdownload.md
- https://docs.helix.q2.com/reference/bankdocumentlist.md
- https://docs.helix.q2.com/reference/cardaddaccount.md
- https://docs.helix.q2.com/reference/cardarchive.md
- https://docs.helix.q2.com/reference/cardcontrolarchive.md
- https://docs.helix.q2.com/reference/cardcontrolarchivebytag.md
- https://docs.helix.q2.com/reference/cardcontrolcreate.md
- https://docs.helix.q2.com/reference/cardcontrolget.md
- https://docs.helix.q2.com/reference/cardcontrolgetbytag.md
- https://docs.helix.q2.com/reference/cardcreatedigital.md
- https://docs.helix.q2.com/reference/cardfraudtextalertget.md
- https://docs.helix.q2.com/reference/cardfraudtextalertoptout.md
- https://docs.helix.q2.com/reference/cardget.md
- https://docs.helix.q2.com/reference/cardgetbytag.md
- https://docs.helix.q2.com/reference/cardhotlist.md
- https://docs.helix.q2.com/reference/cardinitiate.md
- https://docs.helix.q2.com/reference/cardlimitget.md
- https://docs.helix.q2.com/reference/cardlimitoverride.md
- https://docs.helix.q2.com/reference/cardlimitreset.md
- https://docs.helix.q2.com/reference/cardlimittemporaryoverride.md
- https://docs.helix.q2.com/reference/cardlist.md
- https://docs.helix.q2.com/reference/cardlock.md
- https://docs.helix.q2.com/reference/cardmockadminfalconfraud.md
- https://docs.helix.q2.com/reference/cardmockdeclinepurchaseauthorize.md
- https://docs.helix.q2.com/reference/cardmockdepositpurchasereturn.md
- https://docs.helix.q2.com/reference/cardmockdepositpurchasereturnreversal.md
- https://docs.helix.q2.com/reference/cardmockwithdrawalcardcash.md
- https://docs.helix.q2.com/reference/cardmockwithdrawalpurchaseauthorize.md
- https://docs.helix.q2.com/reference/cardmockwithdrawalpurchasecomplete.md
- https://docs.helix.q2.com/reference/cardorderphysical.md
- https://docs.helix.q2.com/reference/cardprovisionapplepay.md
- https://docs.helix.q2.com/reference/cardprovisioncarddetail.md
- https://docs.helix.q2.com/reference/cardprovisiongooglepay.md
- https://docs.helix.q2.com/reference/cardreissue.md
- https://docs.helix.q2.com/reference/cardremoveaccount.md
- https://docs.helix.q2.com/reference/cardrenewaloverride.md
- https://docs.helix.q2.com/reference/cardreprioritizeaccount.md
- https://docs.helix.q2.com/reference/cardresetpin.md
- https://docs.helix.q2.com/reference/cardriskfactorget.md
- https://docs.helix.q2.com/reference/cardriskfactorset.md
- https://docs.helix.q2.com/reference/cardunlock.md
- https://docs.helix.q2.com/reference/cardupdate.md
- https://docs.helix.q2.com/reference/cardverify.md
- https://docs.helix.q2.com/reference/cardverifybycvv.md
- https://docs.helix.q2.com/reference/customeranswerlist.md
- https://docs.helix.q2.com/reference/customeranswerpost.md
- https://docs.helix.q2.com/reference/customerarchive.md
- https://docs.helix.q2.com/reference/customerbeneficiaryaccountassignmentlist.md
- https://docs.helix.q2.com/reference/customerbeneficiarycreate.md
- https://docs.helix.q2.com/reference/customerbeneficiarydeactivate.md
- https://docs.helix.q2.com/reference/customerbeneficiaryget.md
- https://docs.helix.q2.com/reference/customerbeneficiarylist.md
- https://docs.helix.q2.com/reference/customerbeneficiaryupdate.md
- https://docs.helix.q2.com/reference/customercreate.md
- https://docs.helix.q2.com/reference/customercreatebusiness.md
- https://docs.helix.q2.com/reference/customercreatebusinessapplication.md
- https://docs.helix.q2.com/reference/customerdocumentget.md
- https://docs.helix.q2.com/reference/customerdocumentlist.md
- https://docs.helix.q2.com/reference/customerdocumentupdatestatus.md
- https://docs.helix.q2.com/reference/customerdocumentupload.md
- https://docs.helix.q2.com/reference/customergeneratetoken.md
- https://docs.helix.q2.com/reference/customerget.md
- https://docs.helix.q2.com/reference/customergetbyemail.md
- https://docs.helix.q2.com/reference/customergetbytag.md
- https://docs.helix.q2.com/reference/customerlist.md
- https://docs.helix.q2.com/reference/customernote.md
- https://docs.helix.q2.com/reference/customernoteslist.md
- https://docs.helix.q2.com/reference/customerrelationshiparchive.md
- https://docs.helix.q2.com/reference/customerrelationshipcreate.md
- https://docs.helix.q2.com/reference/customerrelationshiplist.md
- https://docs.helix.q2.com/reference/customerrelationshipupdate.md
- https://docs.helix.q2.com/reference/customerrelationshipupdateprimarycontact.md
- https://docs.helix.q2.com/reference/customersearch.md
- https://docs.helix.q2.com/reference/customersecurityanswerslist.md
- https://docs.helix.q2.com/reference/customersetlastcontact.md
- https://docs.helix.q2.com/reference/customerupdate.md
- https://docs.helix.q2.com/reference/customerupdateaddress-2.md
- https://docs.helix.q2.com/reference/externalaccountarchive.md
- https://docs.helix.q2.com/reference/externalaccountcreate.md
- https://docs.helix.q2.com/reference/externalaccountdocumentupload.md
- https://docs.helix.q2.com/reference/externalaccountget.md
- https://docs.helix.q2.com/reference/externalaccountgetbytag.md
- https://docs.helix.q2.com/reference/externalaccountinitiate.md
- https://docs.helix.q2.com/reference/externalaccountlist.md
- https://docs.helix.q2.com/reference/externalaccountlock.md
- https://docs.helix.q2.com/reference/externalaccountresendverification.md
- https://docs.helix.q2.com/reference/externalaccountunlock.md
- https://docs.helix.q2.com/reference/externalaccountupdate.md
- https://docs.helix.q2.com/reference/externalaccountverify.md
- https://docs.helix.q2.com/reference/feeconfiglist.md
- https://docs.helix.q2.com/reference/feeget.md
- https://docs.helix.q2.com/reference/feegetbycustomertag.md
- https://docs.helix.q2.com/reference/programget.md
- https://docs.helix.q2.com/reference/programlistaccountholds.md
- https://docs.helix.q2.com/reference/programlistindustryclassificationcodes.md
- https://docs.helix.q2.com/reference/programquestionslist.md
- https://docs.helix.q2.com/reference/statementdownload.md
- https://docs.helix.q2.com/reference/statementget.md
- https://docs.helix.q2.com/reference/statementlist.md
- https://docs.helix.q2.com/reference/statementsearch.md
- https://docs.helix.q2.com/reference/transactioncreatefee.md
- https://docs.helix.q2.com/reference/transactionget.md
- https://docs.helix.q2.com/reference/transactiongetbytag.md
- https://docs.helix.q2.com/reference/transactionlist.md
- https://docs.helix.q2.com/reference/transactionsetavailabledate.md
- https://docs.helix.q2.com/reference/transactionsetstatus.md
- https://docs.helix.q2.com/reference/transactionwireget.md
- https://docs.helix.q2.com/reference/transferachoriginationcreate.md
- https://docs.helix.q2.com/reference/transfercreate.md
- https://docs.helix.q2.com/reference/transfervoid.md
- https://docs.helix.q2.com/reference/transferwirecreate-2.md
merge:
pages: 137
deduped: 1427
conflicts_kept_first: 0