VoPay Client Account Transfer Endpoints API
The Client Account Transfer Endpoints API from VoPay — 10 operation(s) for client account transfer endpoints.
The Client Account Transfer Endpoints API from VoPay — 10 operation(s) for client account transfer endpoints.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/vopay-client-account-transfer-endpoints-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
version: '2.0'
title: Client Accounts Client Account Transfer Endpoints API
description: The Client Accounts API allows you to create, manage and retrieve information about client accounts.
contact:
name: API Support
email: help@vopay.com
servers:
- url: https://earthnode-dev.vopay.com/api/v2
tags:
- name: Client Account Transfer Endpoints
paths:
/account/client-accounts/transfer:
post:
description: This endpoint will transfer money directly from the debitor client account to the recipient client account. Both client accounts must be active.
summary: account/client-accounts/transfer
tags:
- Client Account Transfer Endpoints
operationId: ClientAccountTransferPOST
deprecated: false
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
AccountID:
description: Your account ID
type: string
Key:
description: API key for the account
type: string
Signature:
description: Hashed signature for the request
type: string
DebitorClientAccountID:
description: ID of the client account transferring the funds
type: string
RecipientClientAccountID:
description: ID of the client account receiving the funds
type: string
Amount:
description: The amount to transfer from the debitor client account to the recipient client account.
type: number
Currency:
description: 3 character currency code for the currency. If this is not specified the transaction will use the account's local currency.
type: string
ClientReferenceNumber:
description: An optional reference number to associate with the transaction
type: string
Notes:
description: An optional note to associate with the transaction.
type: string
IdempotencyKey:
description: A unique key to prevent duplicate transactions. If a previous request with the same idempotency key was successful, the current request will return the same response as the previous successful request.
type: string
ParentTransactionID:
description: If this transaction is related to a previous transaction, specify the parent transaction ID here.
type: integer
required:
- AccountID
- Key
- Signature
- DebitorClientAccountID
- RecipientClientAccountID
- Amount
required: true
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
type: object
properties:
Success:
type: boolean
description: True if the request was successful, false if it failed
example: 'true'
ErrorMessage:
type: string
description: Contains a description of the error if the request failed
example: ''
TransactionID:
type: integer
description: The unique ID of the transaction that was just created. This ID should be saved as it is required in order to look up the status information on the transaction.
example: '1122'
/account/client-accounts/fund-transfer:
post:
description: "This endpoint will fund the Debitor client account using their default bank account, and then trigger an account transfer to the recipient client account once the funds have been cleared. \n\nTo set a default bank account, please use the /bank-account/set-my-bank-account endpoint."
summary: account/client-accounts/fund-transfer
tags:
- Client Account Transfer Endpoints
operationId: ClientAccountFundTransferPOST
deprecated: false
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
AccountID:
description: Your account ID
type: string
Key:
description: API key for the account
type: string
Signature:
description: Hashed signature for the request
type: string
DebitorClientAccountID:
description: ID of the client account transferring the funds
type: string
RecipientClientAccountID:
description: ID of the client account receiving the funds
type: string
RecipientClientAccountIDSplit:
description: 'A JSON formatted string specifying the details for a split payment. This must fit to the following format where the amount identifier is either Amount or Percentage, [{"ClientAccountID":"client_account_id_1","Amount": "5"},{"ClientAccountID":"client_account_id_2","Amount": "10"}]'
type: string
Amount:
description: The amount to debit from the customer's bank account.
type: number
FundingRail:
description: Specifies the rail to use for the funding transaction. If this is not specified eft will be used for Canadian accounts and ach for US accounts.
type: string
IdempotencyKey:
description: A unique key to prevent duplicate transactions. If a previous request with the same idempotency key was successful, the current request will return the same response as the previous successful request.
type: string
Currency:
description: 3 character currency code for the currency. If this is not specified the transaction will use the account's local currency.
type: string
ReverseOnFailure:
description: Setting this to true will reverse both the fund and transfer should either fail. This is set to false, by default.
type: boolean
ClientReferenceNumber:
description: An optional reference number to associate with the transactions
type: string
Notes:
description: An optional note to associate with the transactions.
type: string
TransactionLabel:
description: The TransactionLabel overrides the originator short name on statements
type: string
GLCode:
description: An optional unique identification general ledger code.
type: string
WalletID:
description: The ID of the wallet to associate with the funding transaction. Requires DebitorClientAccountID to be provided.
type: string
required:
- AccountID
- Key
- Signature
- DebitorClientAccountID
- RecipientClientAccountID
- RecipientClientAccountIDSplit
- Amount
required: true
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
type: object
properties:
Success:
type: boolean
description: True if the request was successful, false if it failed
example: 'true'
ErrorMessage:
type: string
description: Contains a description of the error if the request failed
example: ''
FundingTransactionID:
type: integer
description: The unique ID of the funding transaction that was just created. This ID should be saved as it is required order to look up the status information on the transaction.
example: '1122'
AccountTransferID:
type: integer
description: The unique ID of the account transfer that was just created. This ID should be saved as it is required order to look up the status information on the transaction.
example: '2244'
/account/client-accounts/transfer-withdraw:
post:
description: "This endpoint will transfer money from the debitor client account to the recipient client account, and then immediately withdraw the money from the recipient client account into their default bank account. \n\nTo set a default bank account, please use the /bank-account/set-my-bank-account endpoint."
summary: account/client-accounts/transfer-withdraw
tags:
- Client Account Transfer Endpoints
operationId: ClientAccountTransferWithdrawPOST
deprecated: false
requestBody:
$ref: '#/components/requestBodies/ClientAccountTransferWithdrawPOST'
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
type: object
properties:
Success:
type: boolean
description: True if the request was successful, false if it failed
example: 'true'
ErrorMessage:
type: string
description: Contains a description of the error if the request failed
example: ''
WithdrawTransactionID:
type: integer
description: The unique ID of the withdrawal transaction that was just created. This ID should be saved as it is required order to look up the status information on the transaction.
example: '1122'
AccountTransferID:
type: integer
description: The unique ID of the account transfer that was just created. This ID should be saved as it is required order to look up the status information on the transaction.
example: '2244'
/account/client-accounts/fund-transfer-withdraw:
post:
description: "This endpoint will fund the debitor client account using their default bank account, and then transfer the money to the recipient client account once the funds have been cleared. Once the funds are transferred, a withdraw transaction will be triggered to send the funds to the recipient client account's default bank account. \n\nTo set a default bank account, please use the /bank-account/set-my-bank-account endpoint."
summary: account/client-accounts/fund-transfer-withdraw
tags:
- Client Account Transfer Endpoints
operationId: ClientAccountFundTransferWithdrawPOST
deprecated: false
requestBody:
$ref: '#/components/requestBodies/ClientAccountTransferWithdrawPOST'
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
type: object
properties:
Success:
type: boolean
description: True if the request was successful, false if it failed
example: 'true'
ErrorMessage:
type: string
description: Contains a description of the error if the request failed
example: ''
FundingTransactionID:
type: integer
description: The unique ID of the funding transaction that was just created. This ID should be saved as it is required order to look up the status information on the transaction.
example: '1122'
WithdrawTransactionID:
type: integer
description: The unique ID of the withdrawal transaction that was just created. This ID should be saved as it is required order to look up the status information on the transaction.
example: '2244'
AccountTransferID:
type: integer
description: The unique ID of the account transfer that was just created. This ID should be saved as it is required order to look up the status information on the transaction.
example: '3366'
/account/client-accounts/transactions:
get:
description: This endpoint returns a list all of the transactions which affect the account balance. This endpoint only returns basic information on the transactions. More detailed information on individual transactions is available from other API endpoints.
summary: account/client-accounts/transactions
tags:
- Client Account Transfer Endpoints
operationId: AccountClientAccountTransactionsGet
deprecated: false
parameters:
- name: AccountID
in: query
required: true
description: Your account ID
schema:
type: string
- name: Key
in: query
required: true
description: API key for the account
schema:
type: string
- name: Signature
in: query
required: true
description: Hashed signature for the request
schema:
type: string
- name: StartDateTime
in: query
required: true
description: Return transactions that occurred on or after this date/time. Can be specified in either YYYY-MM-DD HH:MM:SS or YYYY-MM-DD format.
schema:
type: string
format: date-time
- name: EndDateTime
in: query
required: true
description: Return transactions that occurred on or before this date/time. Can be specified in either YYYY-MM-DD HH:MM:SS or YYYY-MM-DD format.
schema:
type: string
format: date-time
- name: ClientAccountID
in: query
required: true
description: Filter transactions by Client account ID
schema:
type: string
- name: Currency
in: query
required: false
description: 3 character currency code for the currency to fetch transactions for. If this is not specified it will be defaulted to the account's local currency (generally CAD).
schema:
type: string
- name: TransactionType
in: query
required: false
description: 'Specifies the type of transaction to return. Accepted values are: ''EFT Funding'', ''EFT Withdrawal'', ''Interac Money Request'', ''Interac Bulk Payout'', ''Credit Card'', ''Fee'', ''Reversal''.'
schema:
type: string
- name: TransactionID
in: query
required: false
description: Searches for a transaction with the specified transaction ID, including any related child transactions which may exist.
schema:
type: integer
format: int32
- name: ClientReferenceNumber
in: query
required: false
description: Searches for transactions with the specified client reference number.
schema:
type: string
- name: ScheduledTransactionID
in: query
required: false
description: Id of the schedule transaction to search
schema:
type: string
- name: WalletID
in: query
required: false
description: Id of the wallet that the transactions should belong to
schema:
type: string
- name: IsFlagged
in: query
required: false
description: Filter the list of transactions to only include transactions that have a flag status and have not been confirmed by the client.
schema:
type: boolean
- name: IsRefunded
in: query
required: false
description: Filter the list of transactions to only include transactions that have been refunded.
schema:
type: boolean
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
type: object
properties:
Success:
type: boolean
description: True if the request was successful, false if it failed
example: 'true'
ErrorMessage:
type: string
description: Contains a description of the error if the request failed
example: ''
NumberOfRecords:
type: integer
description: Total number of transaction records returned
example: '0'
Transactions:
type: object
description: Collection of TransactionInfo data
properties:
'0':
type: object
properties:
TransactionID:
type: integer
description: Unique ID for the Transaction
example: '5918'
AccountName:
type: string
description: Account Name
example: ''
TransactionDateTime:
type: string
format: date-time
description: The timestamp on which the transaction occurred.
example: '2019-12-04 18:13:39'
TransactionType:
type: string
description: Specifies the type of transaction, for example 'EFT Funding', 'EFT Withdrawal', 'Fee'.
example: Reversal
TransactionStatus:
type: string
description: Current Status of the transaction
example: in progress
Notes:
type: string
description: If applicable, notes giving context to the transaction.
example: Transaction cancelled
DebitAmount:
type: number
description: The dollar amount by which this transaction debited funds from your account balance. If DebitAmountis set, CreditAmount will be null.
example: '100.00'
CreditAmount:
type: number
description: The dollar amount by which this transaction credited funds to your account balance. If CreditAmount is set, DebitAmount will be null.
example: '0.00'
Currency:
type: string
description: 3 character currency code.
example: CAD
HoldAmount:
type: number
description: The dollar amount of the funds from this transaction which are temporarily on hold. This is only applicable for transactions where CreditAmount is set.
example: '0.00'
LastModified:
type: string
format: date-time
description: This timestamp indicates when the transaction record was last modified. In normal circumstances the transaction record will only be modified when the HoldAmount is changed.
example: '2019-12-04 18:13:39'
ParentTransactionID:
type: string
description: If a transaction directly relates to another transaction, this value will be set to link the new transaction to its parent. For example if an EFT comes back with insufficient funds a new transaction will be created referencing the original transaction as its parent.
example: '5909'
ChildTransactionIDs:
type: integer
description: If this transaction directly relates to any other transactions this will contain a collection of child transaction IDs. For example if an EFT is reversed due to insufficient funds the original transaction record will reference the new transaction as a child.
example: '{}'
ClientReferenceNumber:
type: string
description: The optional reference number which was set when the transaction was created.
example: 'null'
ScheduledTransactionID:
type: integer
description: ID of the scheduled transaction
example: '1'
WalletID:
type: string
description: ID of the wallet this transaction belongs to
example: primary_000001
ClientAccountID:
type: string
description: Client account ID used on the transaction, if applicable
example: client_account_1
TransactionErrorCode:
type: string
description: Error code of the transaction, if applicable
example: '901'
TransactionFailureReason:
type: string
description: Failure reason of the transaction, if applicable
example: NSF
TransactionFlag:
type: string
description: Flag status of the transaction, if applicable
example: duplicate - 45563,45561
ELinxRequestID:
type: integer
description: The unique ID of the eLinx request attached to the transaction, if applicable
example: '1234'
IsRefunded:
type: boolean
description: True if the transaction was refunded, false if it is not
example: 'true'
FullName:
type: string
description: 'Customer''s full name '
example: Jane Doe
/account/client-accounts/fund-transfer/schedule:
post:
description: This endpoint is used to schedule a fund-transfer between two client accounts.
summary: account/client-accounts/fund-transfer/schedule
tags:
- Client Account Transfer Endpoints
operationId: ClientAccountFundTransferSchedulePOST
deprecated: false
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
AccountID:
description: Your account ID
type: string
Key:
description: API key for the account
type: string
Signature:
description: Hashed signature for the request
type: string
DebitorClientAccountID:
description: ID of the client account transferring the funds
type: string
RecipientClientAccountID:
description: ID of the client account receiving the funds
type: string
RecipientClientAccountIDSplit:
description: 'A JSON formatted string specifying the details for a split payment. This must fit to the following format where the amount identifier is either Amount or Percentage, [{"ClientAccountID":"client_account_id_1","Amount": "5"},{"ClientAccountID":"client_account_id_2","Amount": "10"}]'
type: string
Amount:
description: The amount to debit from the customer's bank account.
type: number
Currency:
description: 3 character currency code for the currency. If this is not specified the transaction will use the account's local currency.
type: string
FundingRail:
description: Specifies the rail to use for the funding transaction. If this is not specified eft will be used for Canadian accounts and ach for US accounts.
type: string
ReverseOnFailure:
description: Setting this to true will reverse both the fund and transfer should either fail. This is set to false, by default.
type: boolean
ClientReferenceNumber:
description: An optional reference number to associate with the transfers
type: string
Notes:
description: An optional note to associate with the transfers.
type: string
TransactionLabel:
description: The TransactionLabel overrides the originator short name on statements
type: string
Frequency:
description: 'The frequency of the scheduled transfer. Valid options are: single, weekly, monthly, semi-monthly, and yearly.'
type: string
ScheduleStartDate:
description: Date from which the schedule will be started
type: string
ScheduleEndDate:
description: Date when the transfer processing will end (Only for recurring frequencies), Either provide ScheduleEndDate or EndingAfterPayments
type: string
EndingAfterPayments:
description: Number of payments after which the transfer processing will end (Only for recurring frequencies), Either provide ScheduleEndDate or EndingAfterPayments
type: integer
SemiMonthlyFrequencyType:
description: 'Type of semi-monthly frequency. This field is only required when Frequency is set to semi-monthly. The possible values are: SemiMonthFirstAndFifteenth, SemiMonthFifteenthAndLast'
type: integer
Description:
description: Description of the schedule transfer
type: string
GLCode:
description: An optional unique identification general ledger code.
type: string
required:
- AccountID
- Key
- Signature
- DebitorClientAccountID
- RecipientClientAccountID
- RecipientClientAccountIDSplit
- Amount
- Frequency
- ScheduleStartDate
- ScheduleEndDate
- EndingAfterPayments
required: true
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
type: object
properties:
Success:
type: boolean
description: True if the request was successful, false if it failed
example: 'true'
ErrorMessage:
type: string
description: Contains a description of the error if the request failed
example: ''
ScheduledTransferID:
type: integer
description: The unique ID of the scheduled transfer that was just created. This ID should be saved as it is required order to look up the status information on the scheduled transfer.
example: '1122'
/account/client-accounts/transfer-withdraw/schedule:
post:
description: This endpoint is used to schedule a transfer-withdraw between two client accounts.
summary: account/client-accounts/transfer-withdraw/schedule
tags:
- Client Account Transfer Endpoints
operationId: ClientAccountTransferWithdrawSchedulePOST
deprecated: false
requestBody:
$ref: '#/components/requestBodies/ClientAccountTransferWithdrawSchedulePOST'
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
type: object
properties:
Success:
type: boolean
description: True if the request was successful, false if it failed
example: 'true'
ErrorMessage:
type: string
description: Contains a description of the error if the request failed
example: ''
ScheduledTransferID:
type: integer
description: The unique ID of the scheduled transfer that was just created. This ID should be saved as it is required order to look up the status information on the scheduled transfer.
example: '1122'
/account/client-accounts/fund-transfer-withdraw/schedule:
post:
description: This endpoint is used to schedule a fund-transfer-withdraw between two client accounts.
summary: account/client-accounts/fund-transfer-withdraw/schedule
tags:
- Client Account Transfer Endpoints
operationId: ClientAccountFundTransferWithdrawSchedulePOST
deprecated: false
requestBody:
$ref: '#/components/requestBodies/ClientAccountTransferWithdrawSchedulePOST'
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
type: object
properties:
Success:
type: boolean
description: True if the request was successful, false if it failed
example: 'true'
ErrorMessage:
type: string
description: Contains a description of the error if the request failed
example: ''
ScheduledTransferID:
type: integer
description: The unique ID of the scheduled transfer that was just created. This ID should be saved as it is required order to look up the status information on the scheduled transfer.
example: '1122'
/account/client-accounts/transfer/schedule/cancel:
post:
description: This endpoint is used to cancel a scheduled client account transfer and all remaining payments belonging to that scheduled transfer. Only scheduled transfers with the status in progress can be cancelled.
summary: account/client-accounts/transfer/schedule/cancel
tags:
- Client Account Transfer Endpoints
operationId: ClientAccountTransferScheduleCancelPOST
deprecated: false
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
AccountID:
description: Your account ID
type: string
Key:
description: API key for the account
# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vopay/refs/heads/main/openapi/vopay-client-account-transfer-endpoints-api-openapi.yml