VoPay Contact Endpoints API
The Contact Endpoints API from VoPay — 8 operation(s) for contact endpoints.
The Contact Endpoints API from VoPay — 8 operation(s) for contact 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-contact-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: Contact Endpoints API
description: The Contact API allows you to manage contacts associated with your VoPay account.
contact:
name: API Support
email: help@vopay.com
servers:
- url: https://earthnode-dev.vopay.com/api/v2
tags:
- name: Contact Endpoints
paths:
/contacts/add:
post:
description: This endpoint is used to add a new contact record for the given account. If Flinks, Plaid or Mx credentials are provided, we will fetch all personal and bank account details from those providers.
summary: contacts/add
tags:
- Contact Endpoints
operationId: ContactAddPOST
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
ContactID:
description: Custom ID of the contact you want to create
type: string
EmailAddress:
description: The email address to be associated with this contact
type: string
PhoneNumber:
description: The phone number to be associated with this contact
type: string
FirstName:
description: The first name to be associated with this contact
type: string
LastName:
description: The last name to be associated with this contact
type: string
BusinessName:
description: Client's business name
type: string
Address1:
description: Contact's address line 1
type: string
City:
description: Contact's city
type: string
Province:
description: Contact's province specified using two character abbreviations (eg. BC, AB)
type: string
Country:
description: Contact's country specified using full country name or ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3 code.
type: string
Nationality:
description: Contact's nationality specified using full country name or ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3 code.
type: string
PostalCode:
description: Contact's postal code.
type: string
Token:
description: An iQ11 Token that has been generated using Custom Iframe.
type: string
FlinksLoginID:
description: Flinks Login ID. Must be accompanied by a FlinksAccountID. VoPay will fetch the associated user and bank account details from Flinks.
type: string
PlaidProcessorToken:
description: Plaid Processor Token. VoPay will fetch the associated user bank account details from Plaid.
type: string
MxProcessorToken:
description: Mx Processor Token. VoPay will fetch the associated user bank account details from Mx.
type: string
required:
- AccountID
- Key
- Signature
- EmailAddress
- PhoneNumber
- FirstName
- LastName
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: ''
ContactID:
type: string
description: This ID of the newly created contact
example: test_contact_id
/contacts/edit:
post:
description: This endpoint is used to add a new contact record for the given account.
summary: contacts/edit
tags:
- Contact Endpoints
operationId: ContactEditPOST
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
ContactID:
description: The ID for the contact you wish to edit
type: string
EmailAddress:
description: The email address to be associated with this contact
type: string
PhoneNumber:
description: The phone number to be associated with this contact
type: string
FirstName:
description: The first name to be associated with this contact
type: string
LastName:
description: The last name to be associated with this contact
type: string
Address1:
description: Contact's address line 1
type: string
City:
description: Contact's city
type: string
Province:
description: Contact's province specified using two character abbreviations (eg. BC, AB)
type: string
Country:
description: Contact's country specified using full country name or ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3 code.
type: string
Nationality:
description: Contact's nationality specified using full country name or ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3 code.
type: string
PostalCode:
description: Contact's postal code.
type: string
required:
- AccountID
- Key
- Signature
- ContactID
- EmailAddress
- PhoneNumber
- FirstName
- LastName
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: ''
ContactID:
type: string
description: This ID of the newly created contact
example: test_contact_id
/contacts/deactivate:
post:
description: This endpoint is used to deactivate a contact
summary: contacts/deactivate
tags:
- Contact Endpoints
operationId: ContactDeactivatePOST
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
ContactID:
description: The ID for the contact you wish to deactivate
type: string
required:
- AccountID
- Key
- Signature
- ContactID
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: ''
ContactID:
type: string
description: This ID of the deactivated contact
example: test_contact_id
IsActive:
type: string
description: The status of the deactivated contact
example: '0'
DateDeactivated:
type: string
description: The date and time the contact was deactivated
example: '2024-04-04 04:04:04'
/contacts/activate:
post:
description: This endpoint is used to activate a contact
summary: contacts/activate
tags:
- Contact Endpoints
operationId: ContactActivatePOST
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
ContactID:
description: The ID for the contact you wish to activate
type: string
required:
- AccountID
- Key
- Signature
- ContactID
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: ''
ContactID:
type: string
description: This ID of the activated contact
example: test_contact_id
IsActive:
type: string
description: The status of the activated contact
example: '1'
/contacts:
get:
description: This endpoint is used to get a list of contacts associated with the account.
summary: contacts
tags:
- Contact Endpoints
operationId: ContactGET
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: ContactID
in: query
required: false
description: The ID of the contact to retrieve. If this is not provided, all contacts will be returned.
schema:
type: string
- 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
- name: SearchText
in: query
required: false
description: A text string to search for in the email addresses, names and business number.
schema:
type: string
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: ''
Contacts:
type: object
description: Collection of contacts associated with the VoPay account
properties:
'0':
type: object
description: Contact information
properties:
ContactID:
type: number
description: Unique ID of the contact
example: test_contact_id
ContactName:
type: string
description: Name associated with this contact
example: Test Contact
EmailAddress:
type: string
description: Email address associated with this contact
example: test@contact.com
PhoneNumber:
type: string
description: Phone number associated with this contact
example: '7781111111'
IsActive:
type: string
description: Active status of the contact
example: '1'
Nationality:
type: string
description: The contacts nationality
example: Canada
Currency:
type: string
description: 3 character currency code for the contact
example: CAD
Pagination:
type: object
description: Pagination metadata
properties:
TotalRecords:
type: string
description: Total number of contact 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'
/contacts/payment-methods:
get:
description: This endpoint is used to look up all the payment methods for the given contact.
summary: contacts/payment-methods
tags:
- Contact Endpoints
operationId: ContactPaymentMethodsGET
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: ContactID
in: query
required: true
description: The Contact ID that the payment methods belong to.
schema:
type: string
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: ''
PaymentMethods:
type: object
description: Collection of payment methods
properties:
'0':
type: object
properties:
PaymentMethod:
type: string
description: The type of peyment record (BankAccount, Email, PhoneNumber, CreditCard, DebitCard)
example: BankAccount
PaymentDetails:
type: string
description: The details of the payment method
example: 001-00040-123****
IsDefault:
type: boolean
description: Is this this the default payment record for the payemnt method
example: 'true'
Token:
type: string
description: The associated token.
example: 80be530727391c11470be104f8bb10b8812eddbd34479572e0b079df1d178c0a
AddedOn:
type: string
description: The date and time this payemnt method was added.
example: '2021-02-11 18:27:08'
ExtraFields:
type: object
description: Extra information associated with the payment method.
example: '{"VerificationStatus": "verified"}'
/contacts/transactions:
get:
description: This endpoint is used to get a list of transactions associated with a contact.
summary: contacts/transactions
tags:
- Contact Endpoints
operationId: ContactTransactionsGET
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: ContactID
in: query
required: false
description: Filter transactions by Contact 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: 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'
ContactID:
type: string
description: Contact ID used on the transaction
example: test_contact_id
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'
IsRefund:
type: boolean
description: True if the transaction is a refund transaction, false if it is not
example: 'true'
FullName:
type: string
description: 'Customer''s full name '
example: Jane Doe
/account/contact/generate-embed-url:
post:
description: Use this endpoint to generate a unique URL to onboard a new contact. To send an email containing the URL to the recipient, set SendEmail = true, and provide both the email address and full name of the recipient.
summary: account/contact/generate-embed-url
tags:
- Contact Endpoints
operationId: ClientAccountGenerateEmbedURLPOST
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
FirstName:
description: Client's first name. Required if BusinessName is not provided.
type: string
LastName:
description: Client's last name. Required if BusinessName is not provided.
type: string
BusinessName:
description: Client's business name. Required if FirstName and LastName are not provided.
type: string
SendEmail:
description: This option is used to send the onboarding link through email. If you wish to send an email, then provide true. The default value is false.
type: boolean
ReceiverEmailAddress:
description: Recipient's email address. Required if SendEmail = true.
type: string
format: email
SendSMS:
description: This option is used to send the onboarding link through SMS. If you wish to send an SMS, then provide true. The default value is false.
type: boolean
ReceiverPhoneNumber:
description: Recipient's phone number. Required if SendSMS = true.
type: string
RequiredPaymentMethods:
description: Comma-separated list of payment methods.
type: string
Label:
description: This option will add a Label to the contact. If the Label doesn't exist it will be created and applied.
type: string
required:
- AccountID
- Key
- Signature
required: true
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
Success:
type: boolea
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vopay/refs/heads/main/openapi/vopay-contact-endpoints-api-openapi.yml