openapi: 3.2.0
info:
title: Helix Transfer 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: Transfer
description: Endpoints for the transfer object
paths:
/transfer/achOrigination/create:
post:
tags:
- Transfer
summary: Create an ACH-originated debit or credit transaction
description: Create an ACH-originated transaction. See transfer object definition for parameter details.
externalDocs:
url: https://docs.helix.q2.com/reference/transferachoriginationcreate
operationId: transferAchOriginationCreate
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- accountId
- amount
- companyEntryDescription
- customerId
- dFIAccountNumber
- direction
- isPrenote
- isReversal
- receiverAccountType
- receiverName
- recieverFIRoutingNumber
- standardEntryClassCode
properties:
accountId:
allOf:
- description: The accountId to which funds are being deposited or from which funds are being withdrawn. **Note:** This is not accountNumber.
- $ref: '#/components/schemas/HelixId'
amount:
type: number
format: decimal
minimum: 0.01
companyEntryDescription:
type: string
maxLength: 10
customerId:
$ref: '#/components/schemas/HelixId'
dFIAccountNumber:
type: string
maxLength: 17
direction:
enum:
- Credit
- Debit
effectiveEntryDate:
type: string
format: date
description: If `effectiveEntryDate` is not provided, the transaction will be processed in the next available ACH transfer window.
isPrenote:
type: boolean
isReversal:
type: boolean
paymentRelatedInformation:
type: string
maxLength: 80
receiverAccountType:
enum:
- Checking
- Savings
- Loan
- General Ledger
receiverName:
type: string
maxLength: 22
receiverFIRoutingNumber:
type: string
maxLength: 9
standardEntryClassCode:
type: string
maxLength: 3
tag:
type: string
maxLength: 50
responses:
'200':
description: An envelope whose data node is a transaction object
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionObject200Response'
'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'
/transfer/create:
post:
tags:
- Transfer
summary: Create a transfer
description: Transfer funds from one account to another. Results in a new transaction retrievable via the /transaction/* endpoints. See transfer object definition for parameter details.
externalDocs:
url: https://docs.helix.q2.com/reference/transfercreate
operationId: transferCreate
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- customerId
- fromId
- toId
- amount
properties:
amount:
type: number
format: decimal
minimum: 0.01
customerId:
$ref: '#/components/schemas/HelixId'
description:
type: string
fromId:
$ref: '#/components/schemas/HelixId'
isSameDaySettle:
type: boolean
tag:
$ref: '#/components/schemas/TagProperty'
toId:
$ref: '#/components/schemas/HelixId'
toCustomerId:
$ref: '#/components/schemas/HelixId'
toCustomerTag:
$ref: '#/components/schemas/TagProperty'
toTransactionTag:
$ref: '#/components/schemas/TagProperty'
purposeCode:
type: string
maxLength: 10
pattern: ^[0-9][A-Z][a-z]$
responses:
'200':
description: An array of transferResponse objects.
content:
application/json:
schema:
$ref: '#/components/schemas/TransferCreate200Response'
'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'
/transfer/void:
post:
tags:
- Transfer
summary: Void a transfer
description: Void a transfer previously created via /transfer/create. Only transactions with `status=Initiated` may be voided.
externalDocs:
url: https://docs.helix.q2.com/reference/transfervoid
operationId: transferVoid
requestBody:
required: true
content:
application/json:
schema:
required:
- customerId
properties:
customerId:
$ref: '#/components/schemas/HelixId'
tag:
allOf:
- description: Required if `transactionId` not present
- $ref: '#/components/schemas/TagProperty'
transactionId:
allOf:
- description: Required if `tag` not present
- $ref: '#/components/schemas/AccountClose200Response/allOf/1/properties/data/properties/transactionId'
responses:
'200':
description: An envelope whose data node is a transferResponse object
content:
application/json:
schema:
$ref: '#/components/schemas/TransferVoid200Response'
'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:
TransferVoid200Response:
allOf:
- $ref: '#/components/schemas/CardArray200Response/allOf/0'
- type: object
properties:
data:
type: object
properties:
customerId:
$ref: '#/components/schemas/HelixId'
masterId:
$ref: '#/components/schemas/AccountClose200Response/allOf/1/properties/data/properties/transactionId'
tag:
$ref: '#/components/schemas/TagProperty'
transactionId:
$ref: '#/components/schemas/AccountClose200Response/allOf/1/properties/data/properties/transactionId'
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'
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
PurposeCode:
type: string
maxLength: 10
pattern: ^[0-9][A-Z][a-z]$
TransactionObject200Response:
allOf:
- $ref: '#/components/schemas/CardArray200Response/allOf/0'
- type: object
properties:
data:
type: object
properties:
accountId:
$ref: '#/components/schemas/HelixId'
amount:
type: number
format: decimal
availableDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
cardId:
$ref: '#/components/schemas/HelixId'
cardMerchantInfo:
type: object
properties:
merchantCity:
type: string
maxLength: 13
merchantCountryCode:
type: string
maxLength: 2
merchantGroupcode:
type: string
maxLength: 6
merchantId:
type: string
maxLength: 15
merchantLocation:
type: string
maxLength: 23
merchantStateCode:
type: string
maxLength: 2
merchantZipCode:
type: string
maxLength: 9
check:
type: object
properties:
checkAmount:
type: number
format: decimal
checkImages:
type: array
items:
type: object
properties:
downloadUrl:
type: string
imageType:
type: string
enum:
- CheckFront
- CheckBack
- ReturnCheckFront
- ReturnCheckBack
checkNumber:
$ref: '#/components/schemas/AccountClose200Response/allOf/1/properties/data/properties/transactionId'
holdCode:
type: string
holdCodeDescription:
type: string
payerAccountNumberMasked:
type: string
payerInstitutionDescription:
type: string
payerRoutingNumber:
type: string
returnReason:
type: string
returnReasonCode:
type: string
createdDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
customerId:
$ref: '#/components/schemas/HelixId'
customField1:
type: string
depositAvailability:
type: object
properties:
availabilityAmounts:
type: array
items:
type: object
properties:
availableDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
effectiveAvailableDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
isReleased:
type: boolean
overrideAvailableDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
releaseAmount:
type: number
format: decimal
releasedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
remainingAmount:
type: number
format: decimal
availabilityCode:
type: string
totalReleasedAmount:
type: number
format: decimal
totalRemainingAmount:
type: number
format: decimal
description:
type: string
feeCode:
type: string
enum:
- ACH
- DAF
- IAF
- ICF
- NSF
- RGD
- RTN
feeDescription:
type: string
friendlyDescription:
type: string
institutionName:
type: string
isCredit:
type: boolean
isEarlyDirectDeposit:
type: boolean
isSameDaySettle:
type: boolean
masterId:
$ref: '#/components/schemas/AccountClose200Response/allOf/1/properties/data/properties/transactionId'
nachaDescription:
type: string
deprecated: true
nachaInfo:
type: object
properties:
companyDiscretionaryData:
type: string
companyEntryDescription:
type: string
companyIdentification:
type: string
companyName:
type: string
isEarlyDeposit:
type: boolean
nachaSettledDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
standardEntryClassCode:
type: string
purposeCode:
$ref: '#/components/schemas/PurposeCode'
requestingCustomerId:
$ref: '#/components/schemas/HelixId'
returnCode:
type: string
runningAccountBalance:
type: number
format: decimal
settledDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
statementDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
status:
type: string
enum:
- Initiated
- Pending
- Settled
- Voided
subType:
type: string
subTypeCode:
type: string
tag:
$ref: '#/components/schemas/TagProperty'
transactionCount:
$ref: '#/components/schemas/HelixId'
transactionId:
$ref: '#/components/schemas/AccountClose200Response/allOf/1/properties/data/properties/transactionId'
type:
type: string
typeCode:
type: string
voidedDate:
$ref: '#/components/schemas/CustomerSetLastContact200Response/allOf/1/properties/data/items/properties/lastContactDate'
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'
TransferCreate200Response:
allOf:
- $ref: '#/components/schemas/CardArray200Response/allOf/0'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/TransferVoid200Response/allOf/1/properties/data'
TagProperty:
type: string
maxLength: 50
HelixId:
type: integer
format: int32
minimum: 1
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