VoPay EFT Endpoint API
The EFT Endpoint API from VoPay — 14 operation(s) for eft endpoint.
The EFT Endpoint API from VoPay — 14 operation(s) for eft endpoint.
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-eft-endpoint-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: Payment Rails EFT Endpoint API
description: The Payment Rails API allows you to manage transactions in your account. You can cancel transactions, refund transactions, and confirm flagged transactions.
contact:
name: API Support
email: help@vopay.com
servers:
- url: https://earthnode-dev.vopay.com/api/v2
tags:
- name: EFT Endpoint
paths:
/eft/fund:
post:
description: "This endpoint is used to fund your VoPay account by debiting funds from the specified customer's bank account. In the endpoint below, either CompanyName OR FirstName and LastName must be provided. \n\n If either Token, Flinks (FlinksAccountID, FlinksLoginID), Inverite (InveriteRequestGUID), or Plaid (PlaidPublicToken/PlaidAccessToken, PlaidAccountID) is provided, the FinancialInstitutionNumber, BranchTransitNumber, and AccountNumber will not be required. \n\n If the bank information is provided (FinancialInstitutionNumber, BranchTransitNumber, and AccountNumber), then the Address1, City, Country, and PostalCode and Province are required.\n\n If a ClientAccountID is provided, the client account's first/last name, address, and default bank account will be used for the transaction."
summary: eft/fund
tags:
- EFT Endpoint
operationId: EftFundPost
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
ClientAccountID:
description: Client Account ID
type: string
ContactID:
description: The ID of the contact to use for this transactions. The contacts payment method associated with this transaction type will be used.
type: string
FirstName:
description: Customer's first name
type: string
LastName:
description: Customer's last name
type: string
CompanyName:
description: Company's name
type: string
Address1:
description: Customer's address line 1
type: string
City:
description: Customer's city
type: string
Province:
description: Customer's province specified using two character abbreviations (eg. BC, AB)
type: string
Country:
description: Customer's country specified using full country name or ISO 3166-1 alpha-2 code.
type: string
PostalCode:
description: Customer's postal code.
type: string
AccountNumber:
description: Customer's bank account number for funds to be debited from.
type: string
FinancialInstitutionNumber:
description: Three digit institution number for a Canadian bank.
type: string
BranchTransitNumber:
description: Transit number for the customer's account.
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 to fetch transactions for. If this is not specified the transaction will use the account''s local currency. NOTE: Currently the eft/fund API endpoint only supports CAD and USD transactions.'
type: string
Iq11VerificationLevelID:
description: 'Iq11 verification level ID. Accepted values are: 1 (no NSF check), 2 (NSF check done at time of transaction), 3 (NSF check done prior to processing the transaction), and 4 (NSF check done at the time of transaction and prior to processing the transaction). Value is defaulted to the default value set on the account.'
type: integer
ClientReferenceNumber:
description: An optional reference number to associate with the transaction.
type: string
FlinksAccountID:
description: Used by clients with a Flinks account
type: string
FlinksLoginID:
description: Used by clients with a Flinks account
type: string
Token:
description: Your iQ11 Token that has been generated using Custom Iframe. See iQ11 API Endpoints.
type: string
PlaidPublicToken:
description: Used by clients with a Plaid account
type: string
PlaidAccessToken:
description: Used by clients with a Plaid account
type: string
PlaidAccountID:
description: Used by clients with a Plaid account
type: string
PlaidProcessorToken:
description: Used by clients with a Plaid account. If you use this field PlaidPublicToken, PlaidAccessToken, and PlaidAccountID are not neccesary
type: string
MxAuthorizationCode:
description: Used by clients with an MX account.
type: string
InveriteRequestGUID:
description: Used by clients with an Inverite account
type: string
TransactionTypeCode:
description: CPA transaction code. Use the /api/v2/account/transactions/codes endpoint to retrieve a list of valid transaction codes. If not specified, the transaction will be created using code 450 (miscellaneous).
type: string
TransactionLabel:
description: TransactionLabel overrides originator short name
type: string
Notes:
description: An optional note to associate with the transaction.
type: string
IdempotencyKey:
description: A unique key which the server can use to recognize and reject subsequent retries of the same request.
type: string
GLCode:
description: An optional unique identification general ledger code.
type: string
WalletID:
description: The ID of the wallet to associate with the transaction. Requires ClientAccountID to be provided.
type: string
required:
- AccountID
- Key
- Signature
- FirstName
- LastName
- CompanyName
- Address1
- City
- Province
- Country
- PostalCode
- AccountNumber
- FinancialInstitutionNumber
- BranchTransitNumber
- Amount
- Currency
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: This ID should be saved as it is required in order to look up status information on the transaction.
example: '1122'
Flagged:
type: string
description: Details on why the transaction was flagged, if applicable. Flagged transactions will need to be confirmed by using the /account/transaction/confirm endpoint.
example: The transaction has been flagged as a potential duplicate.
x-absent-when: transaction not flagged
Iq11:
type: boolean
description: True if the transaction was an iq11 transaction, false if it is not.
example: true
required:
- Success
- ErrorMessage
- TransactionID
- Iq11
/eft/fund/status:
get:
description: This endpoint is used to look up the status of a fund transaction.
summary: eft/fund/status
tags:
- EFT Endpoint
operationId: EftFundStatusGet
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: TransactionID
in: query
required: true
description: The unique ID of the transaction
schema:
type: integer
format: int32
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
example: '1122'
TransactionStatus:
type: string
description: 'A message indicating the current transaction status. Statuses are: pending, in progress, successful, failed, cancelled'
example: pending
SubTransactions:
type: object
description: 'Array serialized as a JSON object (JSON_FORCE_OBJECT): numeric string keys ''0'',''1'',... Collection of sub-transactions related to the main transaction'
properties:
'0':
type: object
properties:
TransactionID:
type: integer
description: Unique ID for the Transaction
example: '5918'
TransactionStatus:
type: string
description: 'A message indicating the current transaction status. Statuses are: pending, in progress, successful, failed, cancelled, waiting on required transaction'
example: waiting on required transaction
Timestamp:
type: string
format: date-time
description: The timestamp when the transaction status was last modified
example: '2019-11-01 12:00:00'
required:
- TransactionID
- TransactionStatus
- Timestamp
x-absent-when: transaction has no child transactions
x-list-of: inline
x-empty-when: no items
Timestamp:
type: string
format: date-time
description: The timestamp when the transaction status was last modified
example: '2019-11-01 12:00:00'
required:
- Success
- ErrorMessage
- TransactionID
- TransactionStatus
- Timestamp
/eft/fund/transaction:
get:
description: This endpoint is used to look up and return the full details on a single fund transaction. Fund transactions take money out of the customer's bank account and deposit them into your account.
summary: eft/fund/transaction
tags:
- EFT Endpoint
operationId: EftFundTransactionGet
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: TransactionID
in: query
required: true
description: The unique ID of the fund transaction
schema:
type: integer
format: int32
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
example: '1122'
TransactionStatus:
type: string
description: 'A message indicating the current transaction status. Statuses are: pending, in progress, successful, failed, cancelled'
example: pending
TransactionDateTime:
type: string
format: date-time
description: The timestamp when the transaction was created
example: '2019-11-01 12:00:00'
Amount:
type: number
description: The dollar amount of the fund transaction. This is the amount that was withdrawn from the customer's bank account.
example: '1200'
Currency:
type: string
description: The currency for the transaction.
example: CAD
HoldAmount:
type: number
description: Indicates if any of the funds that were credited to your account are still being held.
example: '1200'
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 status of the transaction changes or the HoldAmount is changed.
example: '2019-11-02 01:00:21'
CompanyName*:
type: string
description: Company's name
example: VoPay
FirstName*:
type: string
description: Customer's first name
example: John
LastName*:
type: string
description: Customer's last name
example: Doe
Address1:
type: string
description: Customer's address line 1
example: 112 Bentall Street
Address2:
type: string
description: Customer's address line 2
example: ''
City:
type: string
description: Customer's city
example: Vancouver
Province/State:
type: string
description: Customer's province specified using two character abbreviation (eg. BC, AB)
example: BC
Country:
type: string
description: Customer's Country specified using full country name or ISO 3166-1 alpha-2 code
example: Canada
PostalCode/Zipcode:
type: string
description: Customer's postal code.
example: V4W 5Z7
FinancialInstitutionNumber:
type: string
description: Three digit institution number for a Canadian bank.
example: '112'
BranchTransitNumber:
type: string
description: Transit number for the customer's account.
example: '11456'
AccountNumber:
type: string
description: Customer's bank account number that funds were debited from.
example: '1100456342'
ClientReferenceNumber:
type: string
description: An optional reference number which was associated with the transaction.
example: '876432'
ScheduledTransactionID:
type: integer
description: Id of the scheduled transaction. This field only will be displayed if the scheduled transaction exists.
example: '1'
TransactionTypeCode:
type: string
description: CPA transaction code.
example: '999'
SubTransactions:
type: object
description: 'Array serialized as a JSON object (JSON_FORCE_OBJECT): numeric string keys ''0'',''1'',... Collection of sub-transactions related to the main transaction'
properties:
'0':
type: object
properties:
TransactionID:
type: integer
description: The unique ID of the transaction
example: '9826'
TransactionStatus:
type: string
description: 'A message indicating the current transaction status. Statuses are: pending, in progress, successful, failed, cancelled, waiting on required transaction'
example: waiting on required transaction
TransactionDateTime:
type: string
format: date-time
description: The timestamp when the transaction was created
example: '2019-11-01 12:00:00'
Amount:
type: number
description: The dollar amount of the fund transaction. This is the amount that was withdrawn from the customer's bank account.
example: '100'
Currency:
type: string
description: The currency for the transaction.
example: CAD
HoldAmount:
type: number
description: Indicates if any of the funds that were credited to your account are still being held.
example: '100'
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 status of the transaction changes or the HoldAmount is changed.
example: '2019-11-02 01:00:21'
CompanyName*:
type: string
description: Company's name
example: VoPay
FirstName*:
type: string
description: Customer's first name
example: John
LastName*:
type: string
description: Customer's last name
example: Doe
Address1:
type: string
description: Customer's address line 1
example: 112 Bentall Street
Address2:
type: string
description: Customer's address line 2
example: ''
City:
type: string
description: Customer's city
example: Vancouver
Province:
type: string
description: Customer's province specified using two character abbreviation (eg. BC, AB)
example: BC
Country:
type: string
description: Customer's Country specified using full country name or ISO 3166-1 alpha-2 code
example: Canada
PostalCode:
type: string
description: Customer's postal code.
example: V4W 5Z7
FinancialInstitutionNumber:
type: string
description: Three digit institution number for a Canadian bank.
example: '112'
BranchTransitNumber:
type: string
description: Transit number for the customer's account.
example: '11456'
AccountNumber:
type: string
description: Customer's bank account number that funds were debited from.
example: '1100456342'
ClientReferenceNumber:
type: string
description: An optional reference number which was associated with the transaction.
example: '876432'
required:
- TransactionID
- TransactionStatus
- TransactionDateTime
- Amount
- Currency
- HoldAmount
- LastModified
- CompanyName*
- FirstName*
- LastName*
- Address1
- Address2
- City
- Province
- Country
- PostalCode
- FinancialInstitutionNumber
- BranchTransitNumber
- AccountNumber
- ClientReferenceNumber
x-absent-when: transaction has no child transactions
x-list-of: inline
x-empty-when: no items
HoldReleaseDateTime:
type: string
format: date-time
description: This timestamp indicates when the 'HoldAmount' funds will be released in EST.
example: '2019-11-02 23:59:59'
PayLinkDetails:
type: object
description: 'Array serialized as a JSON object (JSON_FORCE_OBJECT): numeric string keys ''0'',''1'',... Collection of TransactionInfo data'
properties:
'0':
type: object
properties:
FirstName:
type: string
description: Customer's first name
example: John
LastName:
type: string
description: Customer's last name
example: Doe
EmailAddress:
type: string
description: Recipient's email address.
example: john.doe@vopay.com
InvoiceNumber:
type: string
description: Invoice number
example: ABC1234
Note:
type: string
description: If applicable, notes giving context to the transaction.
example: Paylink requested to the client 123
SenderName:
type: string
description: Sender's full name.
example: John Doe
PayLinkStatus:
type: string
description: Status of the Paylink request
example: pending
FailureReason:
type: string
description: Detailed description of why the paylink request failed.
example: ''
PayLinkCreated:
type: string
format: date
description: ''
example: '2019-11-03 01:00:00'
required:
- FirstName
- LastName
- EmailAddress
- InvoiceNumber
- Note
- SenderName
- PayLinkStatus
- FailureReason
- PayLinkCreated
x-empty-when: no pay-link details
x-list-of: inline
GLCode:
type: string
description: General ledger code.
example: '4300'
required:
- Success
- ErrorMessage
- TransactionID
- TransactionStatus
- TransactionDateTime
- Amount
- Currency
- HoldAmount
- LastModified
- CompanyName*
- FirstName*
- LastName*
- Address1
- Address2
- City
- Province/State
- Country
- PostalCode/Zipcode
- FinancialInstitutionNumber
- BranchTransitNumber
- AccountNumber
- ClientReferenceNumber
- ScheduledTransactionID
- TransactionTypeCode
- HoldReleaseDateTime
- PayLinkDetails
- GLCode
/eft/withdraw:
post:
description: "This endpoint is used to take funds out of your VoPay account, and deposit them to the specified recipient's bank account. In the below endpoint, either CompanyName OR FirstName and LastName must be provided. \n\n If either Token, Flinks (FlinksAccountID, FlinksLoginID), Inverite (InveriteRequestGUID), or Plaid (PlaidPublicToken/PlaidAccessToken, PlaidAccountID) is provided, then the FinancialInstitutionNumber, BranchTransitNumber, and AccountNumber will not be required. \n\n If the bank information is provided (FinancialInstitutionNumber, BranchTransitNumber, and AccountNumber), then the Address1, City, Province, Country, and PostalCode are required.\n\n If a ClientAccountID is provided, the client account's first/last name, address, and default bank account will be used for the transaction."
summary: eft/withdraw
tags:
- EFT Endpoint
operationId: EftWithdrawPost
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
ClientAccountID:
description: Client Account ID
type: string
ContactID:
description: The ID of the contact to use for this transactions. The contacts payment method associated with this transaction type will be used.
type: string
FirstName:
description: Recipient's first name
type: string
LastName:
description: Recipient's last name
type: string
CompanyName:
description: Company's name
type: string
Address1:
description: Recipient's address line 1
type: string
City:
description: Recipient's city
type: string
Province:
description: Recipient's province specified using two character abbreviation (eg. BC, AB)
type: string
Country:
description: Recipient's country specified using full country name or ISO 3166-1 alpha-2 code.
type: string
PostalCode:
description: Recipient's postal code.
type: string
AccountNumber:
description: Recipient's bank account number. This is the account that funds will be deposited into.
type: string
FinancialInstitutionNumber:
description: Canadian banks. Three digit institution number.
type: string
BranchTransitNumber:
description: Canadian banks. Transit number for the Recipient's account.
type: string
Amount:
description: The amount in the specified currency to deposit into the recipient's bank account.
type: number
Currency:
description: '3 character currency code for the currency to fetch transactions for. If this is not specified the transaction will use the account''s local currency. NOTE: Currently the eft/withdraw API endpoint only supports CAD and USD transactions'
type: strin
# --- truncated at 32 KB (99 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vopay/refs/heads/main/openapi/vopay-eft-endpoint-api-openapi.yml