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: string 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 ParentTransactionID: description: The parent transaction where the withdrawal will be linked to, can become a split payment with multiple withdrawals. When funds of the parent transaction have been released the system will generate the distributions of these funds automatically. 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 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: The unique ID of the transaction that was just performed. 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 required: - Success - ErrorMessage - TransactionID /eft/withdraw/transaction: get: description: This endpoint is used to look up details on a single withdraw transaction. Withdraw transactions debit funds from your account and deposit them into the customer's account. summary: eft/withdraw/transaction tags: - EFT Endpoint operationId: EftWithdrawTransactionGet 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: Unique ID of the withdraw 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 withdraw transaction. This is the amount to be deposited into the recipient's bank account. example: '2000' Currency: type: string description: The currency for the transaction. example: CAD HoldAmount: type: number description: Will always be 0 for withdraw transactions, however parameter is included to keep return data format consistent with the format used for fund transactions. example: '2000' LastModified: type: string format: date-time description: This timestamp indicates when the transaction record was last modified. In normal circumstances withdraw transaction record will not be modified. example: '2019-11-03 01:00:00' CompanyName*: type: string description: Company's name example: VoPay FirstName*: type: string description: Recipient's first name example: John LastName: type: string description: Recipient's last name example: Doe Address1: type: string description: Recipient's address line 1 example: 112 Bentall Street Address2: type: string description: Recipient's address line 2 example: '' City: type: string description: Recipient's city example: Vancouver Province: type: string description: Recipient's province specified using two character abbreviation (eg. BC, AB) example: BC Country: type: string description: Recipient's country specified using full country name. example: Canada PostalCode: type: string description: Recipient's postal code. example: V2W 4V6 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: '11809' AccountNumber: type: string description: Recipient's bank account number that funds were deposited to. example: '227654387' ClientReferenceNumber: type: string description: An optional reference number which was associated with the transaction. example: '' TransactionTypeCode: type: string description: CPA transaction code. example: '999' 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 - Country - PostalCode - FinancialInstitutionNumber - BranchTransitNumber - AccountNumber - ClientReferenceNumber - TransactionTypeCode - PayLinkDetails - GLCode /eft/withdraw/status: get: description: This endpoint is used to look up the status of a withdraw transaction. summary: eft/withdraw/status tags: - EFT Endpoint operationId: EftWithdrawStatusGet 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 withdraw 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 Timestamp: type: string format: date-time description: The timestamp when the transaction status was last modified example: '2019-11-02 12:00:00' required: - Success - ErrorMessage - TransactionID - TransactionStatus - Timestamp /eft/fund/schedule: post: description: "This endpoint is used to create a scheduled transaction ahead of time that can be a single or recurring payment. \n\nEither 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.\n\nFor additional details of the scheduled transactions, please visit https://docs.vopay.com/docs/schedule-a-payment." summary: eft/fund/schedule tags: - EFT Endpoint operationId: EftSchedulePOST 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 Amount: description: The amount to schedule in the transactions type: number Frequency: description: 'The frequency of the scheduled transaction: single or recurring.' type: string NameOfFrequency: description: 'Name of frequency of the scheduled transaction (Only for recurring option), the posibles values are: weekly, biweekly, semi-monthly, monthly, bimonthly, 3 months, 6 months, yearly.' type: string ScheduleStartDate: description: Date from which the schedule will be started type: string ScheduleEndDate: description: Date when the transaction processing will end (Only for recurring option), Either provide ScheduleEndDate or EndingAfterPayments type: string EndingAfterPayments: description: Number of payments after which the transaction processing will end (Only for recurring option), Either provide ScheduleEndDate or EndingAfterPayments type: integer SemiMonthlyFrequencyType: description: 'Type of semi-monthly frequency. This field is only required when NameOfFrequency is set to semi-monthly. The possible values are: SemiMonthFirstAndFifteenth, SemiMonthFifteenthAndLast' type: integer Description: description: Description of the schedule transaction 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 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. 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 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 IdempotencyKey: description: A unique key which the server can use to recognize and reject subsequent retries of the same request. type: string required: - AccountID - Key - Signature - Amount - Frequency - NameOfFrequency - ScheduleStartDate - ScheduleEndDate - EndingAfterPayments - Description - FirstName - LastName - CompanyName - Address1 - City - Province - Country - PostalCode - AccountNumber - FinancialInstitutionNumber - BranchTransitNumber - 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: '' Amount: type: number description: The dollar amount of the schedule transaction example: '200.00' ScheduledTransactionID: type: integer description: ID of the schedule Transaction. example: '1122' Frequency: type: string description: The frequency of the transaction example: single Description: type: string description: Description of the schedule transaction example: '' ScheduleStartDate: type: string format: date description: 'Date from which the transaction will be started ' example: '2020-01-01' Status: type: string description: 'A message indicating the current transaction status. Statuses are: cancelled, completed or in progress' example: in progress required: - Success - ErrorMessage - Amount - ScheduledTransactionID - Frequency - Description - ScheduleStartDate - Status /eft/withdraw/schedule: post: description: "This endpoint is used to create a scheduled transaction ahead of time that can be a single or recurring payment. \n\nEither 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.\n\nFor additional details of the scheduled transactions, please visit https://docs.vopay.com/docs/schedule-a-payment." summary: eft/withdraw/schedule tags: - EFT Endpoint operationId: EftWithdrawSchedulePOST 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 Amount: description: The amount to schedule in the transactions type: number Frequency: description: 'The frequency of the scheduled: single or recurring.' type: string NameOfFrequency: description: 'Name of frequency of the scheduled transaction (Only for recurring option), the posibles values are: weekly, biweekly, semi-monthly, monthly, bimonthly, 3 months, 6 months, yearly.' type: string ScheduleStartDate: description: Date from which the schedule will be started type: string ScheduleEndDate: description: Date when the transaction processing will end (Only for recurring option), Either provide ScheduleEndDate or EndingAfterPayments type: string EndingAfterPayments: description: Number of payments after which the transaction processing will end (Only for recurring option), Either provide ScheduleEndDate or EndingAfterPayments type: integer SemiMonthlyFrequencyType: description: 'Type of semi-monthly frequency. This field is only required when NameOfFrequency is set to semi-monthly. The possible values are: SemiMonthFirstAndFifteenth, SemiMonthFifteenthAndLast' type: integer Description: description: Description of the schedule transaction type: string Notes: description: An optional note to associate with the transaction. 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 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. type: string 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 IdempotencyKey: description: A unique key which the server can use to recognize and reject subsequent retries of the same request. type: string required: - AccountID - Key - Signature - Amount - Frequency - NameOfFrequency - ScheduleStartDate - ScheduleEndDate - EndingAfterPayments - Description - FirstName - LastName - CompanyName - Address1 - City - Province - Country - PostalCode - AccountNumber - FinancialInstitutionNumber - BranchTransitNumber - 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: '' Amount: type: number description: The dollar amount of the schedule transaction example: '200.00' ScheduledTransactionID: type: integer description: ID of the schedule Transaction. example: '1122' Frequency: type: string description: The frequency of the transaction example: single Description: type: string description: Description of the schedule transaction example: '' ScheduleStartDate: type: string format: date description: 'Date from which the transaction will be started ' example: '2020-01-01' Status: type: string description: 'A message indicating the current transaction status. Statuses are: cancelled, pending approval, completed or in progress' example: in progress required: - Success - ErrorMessage - Amount - ScheduledTransactionID - Frequency - Description - ScheduleStartDate - Status /eft/fund/schedule/cancel: post: description: "This endpoint is used to cancel a scheduled transaction and all remaining payments belonging to that scheduled tranaction. Only scheduled transactions with the status in progress can be cancelled. \n\nFor additional details of the scheduled transactions, please visit https://docs.vopay.com/docs/schedule-a-payment" summary: eft/fund/schedule/cancel tags: - EFT Endpoint operationId: EftScheduleCancelPOST deprecated: false requestBody: $ref: '#/components/requestBodies/EftScheduleCancelPOST' 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: '' Status: type: string description: A message indicating the current transaction status. cancelled example: cancelled required: - Success - ErrorMessage - Status /eft/withdraw/schedule/cancel: post: description: "This endpoint is used to cancel a scheduled transaction and all remaining payments belonging to that scheduled tranaction. Only scheduled transactions with the status in progress can be cancelled. \n\nFor additional details of the scheduled transactions, please visit https://docs.vopay.com/docs/schedule-a-payment" summary: eft/withdraw/schedule/cancel tags: - EFT Endpoint operationId: EftWithdrawScheduleCancelPOST deprecated: false requestBody: $ref: '#/components/requestBodies/EftScheduleCancelPOST' 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: '' Status: type: string description: A message indicating the current transaction status. cancelled example: cancelled required: - Success - ErrorMessage - Status /eft/fund/schedule/edit: post: description: "This endpoint is used to edit or cancel an upcoming payment (only the amount can be edited). \n\nNotes. If the field amount is set as 0 or it is not provided, we consider the upcoming payment as cancelled. \n\nFor additional details of the scheduled transactions, please visit https://docs.vopay.com/docs/schedule-a-payment" summary: eft/fund/schedule/edit tags: - EFT Endpoint operationId: EftScheduleEditPOST 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 ScheduledTransactionID: description: ID of the schedule transaction to edit type: integer format: int32 Amount: description: The new amount of the upcoming payment to edit, If this value is 0 we consider that upcoming payment as cancelled type: number UpcomingPayment: description: The date of the upcoming payment. This payment has to belong to the list of upcoming payments of the scheduled transaction to edit. type: string format: date required: - AccountID - Key - Signature - ScheduledTransactionID - UpcomingPayment 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: '' required: - Success - ErrorMessage /eft/withdraw/schedule/edit: post: description: "This endpoint is used to edit or cancel an upcoming payment (only the amount can be edited). \n\nNotes. If the field amount is set as 0 or it is not provided, we consider the upcoming payment as cancelled. \n\nFor additional details of the scheduled transactions, please visit https://docs.vopay.com/docs/schedule-a-payment" summary: eft/withdraw/schedule/edit tags: - EFT Endpoint operationId: EftWithdrawScheduleEditPOST 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 ScheduledTransactionID: description: ID of the schedule transaction to edit type: integer format: int32 Amount: description: The new amount of the upcoming payment to edit, If this value is 0 we consider that upcoming payment as cancelled type: number UpcomingPayment: description: The date of the upcoming payment. This payment has to belong to the list of upcoming payments of the scheduled transaction to edit. type: string format: date NewDate: description: The new date of the upcoming payment. This will update the UpcomingPayment date for this particular payment. Note that the UpcomingPayment date for all other payments, that belongs to the same scheduled transaction, will not be affected. type: string format: date required: - AccountID - Key - Signature - ScheduledTransactionID - UpcomingPayment - NewDate 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: '' required: - Success - ErrorMessage /eft/scheduled-transactions: get: description: "This endpoint is used to look up the list of all scheduled transactions, or you can list the details of a single scheduled transaction. \n\n If the value ScheduledTransactionID is present, we only list the details of that scheduled transaction. \n\n * Either the response will be Company name or First name and Last name" summary: eft/scheduled-transactions tags: - EFT Endpoint operationId: EftScheduledTransactionGet 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: ClientAccountID in: query required: false description: Client Account ID schema: type: string - name: ScheduledTransactionID in: query required: true description: ID of the schedule Transaction (If this value is present, we list the details of the scheduled transactions) schema: type: integer format: int32 - name: 'Limit ' in: query required: false description: Limit the number of records that are returned. schema: type: integer - name: 'Offset ' in: query required: false description: Use this parameter to set the starting point in the dataset. schema: type: integer 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: number description: Total number of the scheduled transaction records returned example: '1' ScheduledTransactions: type: object description: 'Array serialized as a JSON object (JSON_FORCE_OBJECT): numeric string keys ''0'',''1'',... Collection of scheduled Transaction info data' properties: '0': type: object properties: ID: type: integer description: Unique ID for the scheduled transaction example: '15' Type: type: string description: The payment type of scheduled transaction; i.e., funding or withdraw example: funding Amount: type: number description: The amount of the scheduled transaction example: '25.00' Frequency: type: string description: 'The frequency of the schedule: single or recurring' example: recurring Description: type: string description: Description of the scheduled transaction example: Scheduled transaction 1234 Notes: type: string description: Note that will be attached to each scheduled transaction example: Loan repayment 1234 NameOfFrequency: type: string description: 'Name of the frequency of the transaction: weekly, biweekly, monthly, bimonthly, 3 months, 6 months, yearly. Only provided if Frequency provided is recurring.' example: weekly Status: type: string description: 'A message indicating the current transaction status. Statuses are: cancelled, completed, or in progress' example: in progress StartDate: type: string format: date description: Date from which the transaction will be started example: '2020-01-01' EndDate: type: string format: date description: Date from which the transaction will end example: '2021-01-01' EndingAfterPayments: type: integer description: Number of payments after which the transaction processing will end example: '12' ScheduledDetails: type: object description: 'Array serialized as a JSON object (JSON_FORCE_OBJECT): numeric string keys ''0'',''1'',... Extra details of the scheduled transaction' properties: '0': type: object properties: FlinksAccountID: type: string description: Used by clients with a Flinks account example: ACBDF-GAFSHD-AHBS-123456 FlinksLoginID: type: string description: Used by clients with a Flinks account example: ACBDF-GAFSHD-AHBS-123456 Token: type: string description: Your iQ11 Token that has been generated using Custom Iframe. See iQ11 API Endpoints example: ACBDF-GAFSHD-AHBS-123456 PlaidAccessToken: type: string description: Used by clients with a Plaid account example: ACBDF-GAFSHD-AHBS-123456 PlaidAccountID: type: string description: Used by clients with a Plaid account example: ACBDF-GAFSHD-AHBS-123456 PlaidPublicToken: type: string description: Used by clients with a Plaid account example: ACBDF-GAFSHD-AHBS-123456 PlaidProcessorToken: type: string description: Used by clients with a Plaid account. If you use this field PlaidPublicToken, PlaidAccessToken, and PlaidAccountID are not neccesary example: ACBDF-GAFSHD-AHBS-123456 AccountNumber: type: string description: Recipient's bank account number that funds were deposited to. example: '*****387' 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: '**809' 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: Recipient's address line 1 example: 112 Bentall Street City: type: string description: Recipient's city example: Vancouver PostalCode: type: string description: Recipient's postal code. example: V2W 4V6 Province: type: string description: Recipient's province specified using two character abbreviation (eg. BC, AB) example: BC Country: type: string description: Recipient's country specified using full country name. example: Canada ClientReferenceNumber: type: string description: An optional reference number which was associated with the transaction. example: '' ErrorMessage: type: object description: 'Array serialized as a JSON object (JSON_FORCE_OBJECT): numeric string keys ''0'',''1'',... Extra details of the scheduled transaction payments, this is the log of the failures' properties: '0': type: object properties: Success: type: boolean description: True if the request was successful, false if it failed example: false ErrorMessage: type: string description: Contains a description of the error if the request failed example: '' required: - Success - ErrorMessage x-list-of: inline x-empty-when: no items required: - FlinksAccountID - FlinksLoginID - Token - PlaidAccessToken - PlaidAccountID - PlaidPublicToken - PlaidProcessorToken - AccountNumber - FinancialInstitutionNumber - BranchTransitNumber - CompanyName* - FirstName* - LastName* - Address1 - City - PostalCode - Province - Country - ClientReferenceNumber - ErrorMessage x-list-of: inline x-empty-when: no items UpcomingTransactions: type: object description: 'Array serialized as a JSON object (JSON_FORCE_OBJECT): numeric string keys ''0'',''1'',... Upcoming transaction listing (This option only will be available if the user provides ScheduledTransactionID as a parameter)' properties: '0': type: object properties: TransactionID: type: integer description: ID of the eft transaction (Empty because it is a future payment) example: '' ScheduledDate: type: string format: date description: Date from which the payment will start example: '2020-01-01' ProcessingDate: type: string format: date description: Date where this payment was processed (Empty because it is a future payment) example: '' LastModified: type: string format: date description: Date of the last modification of this payment (Empty because it is a future payment) example: '' Status: type: string description: Status of the upcoming payment (Empty because it is a future payment) example: '' Amount: type: number description: The amount of the scheduled transaction example: '10.00' required: - TransactionID - ScheduledDate - ProcessingDate - LastModified - Status - Amount x-list-of: inline x-empty-when: no items CompletedTransactions: type: object description: 'Array serialized as a JSON object (JSON_FORCE_OBJECT): numeric string keys ''0'',''1'',... List of the completed transactions (This option only will be available if the user provides ScheduledTransactionID as a parameter)' properties: '0': type: object properties: TransactionID: type: integer description: ID of the EFT transaction example: '1' ScheduledDate: type: string format: date description: Date from which the transaction will start example: '2020-01-01' ProcessingDate: type: string format: date description: Date where this transaction was processed example: '2020-01-02' LastModified: type: string format: date description: Date of the last modification of this transaction example: '2020-01-02' Status: type: string description: Status of the transaction example: pending Amount: type: number description: The amount of the transaction example: '10.00' required: - TransactionID - ScheduledDate - ProcessingDate - LastModified - Status - Amount x-list-of: inline x-empty-when: no items required: - ID - Type - Amount - Frequency - Description - Notes - NameOfFrequency - Status - StartDate - EndDate - EndingAfterPayments - ScheduledDetails - UpcomingTransactions - CompletedTransactions x-empty-when: no scheduled transactions match x-list-of: inline Pagination: type: object description: Pagination metadata properties: TotalRecords: type: string description: Total number of transaction records in that search range. example: '1000' Offset: type: string description: Use this parameter to set the starting point in the dataset. example: '1000' Limit: type: string description: Limit the number of records that are returned. example: '1000' x-absent-when: no pagination metadata available required: - TotalRecords - Offset - Limit required: - Success - ErrorMessage - NumberOfRecords - ScheduledTransactions /eft/failures: get: description: This endpoint is used to retrieve a list of transactions which failed during a specific date range. This endpoint is queried based on the date that a failure occurred on, not on the date when the transaction originally occurred. summary: eft/failures tags: - EFT Endpoint operationId: EftFailuresGet 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: Start of date range to query for any failed transactions schema: type: string format: date-time - name: EndDateTime in: query required: true description: End of date range to query for any failed transactions schema: type: string format: date-time 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: number description: Total number of failed transaction records returned example: '1' FailedTransactions: 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: TransactionID: type: integer description: Unique ID for the Transaction example: '5918' 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'. example: EFT Funding DollarAmount: type: number description: The dollar amount of the failed transaction. example: '25.00' ErrorCode: type: string description: Detail error code of the failure. example: '901' FailureReason: type: string description: Detailed description of why the transaction failed. Transactions which have failed cannot be modified, a new fund or withdraw transaction must be created if you wish to re-attempt the transaction. example: insufficient funds ClientReferenceNumber: type: string description: The optional reference number which was set when the transaction was created. example: 'null' required: - TransactionID - TransactionDateTime - TransactionType - DollarAmount - ErrorCode - FailureReason - ClientReferenceNumber x-empty-when: no failed transactions match x-list-of: inline required: - Success - ErrorMessage - NumberOfRecords - FailedTransactions components: requestBodies: EftScheduleCancelPOST: 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 ScheduledTransactionID: description: ID of the schedule transaction to cancel type: integer format: int32 required: - AccountID - Key - Signature - ScheduledTransactionID required: true