Versapay Onboarding API
Onboarding supports the automated process of applying for merchant services. Contact support@versapay.com for support & setup of supplier onboarding partner credentials.
Onboarding supports the automated process of applying for merchant services. Contact support@versapay.com for support & setup of supplier onboarding partner credentials.
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/versapay-onboarding-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 1.3.35
title: Versapay API Reference Onboarding API
contact:
name: Versapay Support
url: https://www.versapay.com/support
email: support@versapay.com
x-logo:
url: https://developers.versapay.com/images/logo.png
termsOfService: https://www.versapay.com/terms-of-use
license:
name: Copyright 2022 Versapay. All Rights Reserved.
description: 'Onboarding supports the automated process of applying for merchant services. Contact support@versapay.com for support & setup of supplier onboarding partner credentials.
'
servers:
- url: https://secure.versapay.com
description: Production
- url: https://uat.versapay.com
description: UAT
tags:
- name: Onboarding
description: 'Onboarding supports the automated process of applying for merchant services. Contact support@versapay.com for support & setup of supplier onboarding partner credentials.
'
paths:
/api/onboarding/v1/terms:
get:
tags:
- Onboarding
summary: Retrieves rates and terms for merchant services
operationId: getTerms
description: 'The system will return the rates, terms, and conditions for merchant services
'
parameters:
- in: query
name: locale
description: pass an optional country and language
required: false
schema:
$ref: '#/components/schemas/Locale'
responses:
'200':
description: terms parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationParameters'
'400':
description: bad input parameter
/api/onboarding/v1/applications:
post:
tags:
- Onboarding
summary: Create a new application
operationId: addApplication
description: Adds an application to the system
responses:
'201':
description: application created
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationCreatedResponse'
'400':
description: invalid input, object invalid
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationErrorResponse'
'409':
description: an existing item already exists
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
description: Inventory item to add
/api/onboarding/v1/applications/{id}:
get:
tags:
- Onboarding
summary: Get application status
operationId: getApplicationStatus
description: Get the status of an existing application
parameters:
- name: id
in: path
description: Application Token
required: true
schema:
$ref: '#/components/schemas/ApplicationToken'
responses:
'200':
description: application status
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationStatusResponse'
'404':
description: application not found
/api/onboarding/v1/applications/search/{id}:
get:
tags:
- Onboarding
summary: Find the application token of an existing application
operationId: getApplicationToken
description: Find the application token of an existing applications using the reference token supplied during the create application process
parameters:
- name: id
in: path
description: Reference Token
required: true
schema:
$ref: '#/components/schemas/ReferenceToken'
responses:
'200':
description: application token
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationCreatedResponse'
'404':
description: application not found
/api/onboarding/v1/application_steps:
post:
tags:
- Onboarding
summary: Record a Completed Step of a Merchant Application
operationId: addApplicationSteps
description: Record a completed step of the merchant application process as an integer value. A value of 99 indicates the submission of the full application.
responses:
'201':
description: Created (record was inserted successfully)
'400':
description: Bad Request
'401':
description: Unauthorized
requestBody:
content:
application/json:
schema:
type: object
required:
- reference_token
- step_number
- message
properties:
reference_token:
type: string
format: guid
example: 7654321:2023-10-04T14:52:37
description: Specify a unique GUID as a client reference to the application. This same reference_token is used for all steps of the same application.
maxLength: 36
step_number:
type: integer
description: Use values 1,2,3… to indicate steps of the process; 99 indicates the final step of the application
example: '1'
message:
type: string
description: Description of the step
example: Step 1 Completed
maxLength: 255
components:
schemas:
BirthDate:
type: string
format: date
example: '1972-01-15'
AccountFees:
type: object
required:
- per_month_amount
properties:
per_month_amount:
type: number
format: float
example: 5.05
minimum: 0
DemandDepositAccountNumber:
type: string
example: '9876543299'
pattern: ^\d+$
RoutingNumber:
type: string
example: '021100361'
pattern: ^\d{9}$
description: Must be a valid US Bank ABA Number
ApplicationTaxIDError:
type: object
required:
- field
- error_message
properties:
field:
type: string
enum:
- Owner 1
- Owner 2
- Owner 3
- Owner 4
- Business
example: Owner 1
error_message:
$ref: '#/components/schemas/ErrorMessage'
Range:
type: object
properties:
from:
type: number
example: 1000000
to:
type: number
example: 1999999
description: values are retrieved from GET Terms
PaymentMethodFees:
type: object
required:
- description
- per_transaction_amount
- per_transaction_percent
- per_month_amount
properties:
description:
type: string
example: Credit Card
per_transaction_amount:
type: number
format: float
example: 5.05
minimum: 0
per_transaction_percent:
type: number
format: float
example: 5.05
minimum: 0
per_month_amount:
type: number
format: float
example: 5.05
minimum: 0
ServiceEstablishment:
type: object
required:
- over_se_minimum
properties:
over_se_minimum:
$ref: '#/components/schemas/OverSEMinimum'
se_number:
$ref: '#/components/schemas/SENumber'
ReferenceToken:
type: string
format: guid
example: 1c47dece-489b-4521-89db-0a940ac58235
description: Specify a unique GUID as a client reference to the application
maxLength: 36
APICredentials:
type: object
required:
- api_token
- api_key
properties:
api_token:
$ref: '#/components/schemas/APIToken'
api_key:
$ref: '#/components/schemas/APIKey'
OverrideValidation:
type: boolean
example: true
LinkToExisting:
type: string
description: Must match the value of an existing application entry that has previously been submitted
example: 1cb9ca4b-6596-4bac-a24b-8864222cf95d
ApplicationToken:
type: string
format: guid
example: 1c47dece-489b-4521-89db-0a940ac58235
SENumber:
type: string
example: '123456789'
pattern: ^\d+
maxLength: 10
description: must be <= 10 characters
APIToken:
type: string
example: 6ySjc8LfeRwqciWK8owT
OverSEMinimum:
type: boolean
example: false
AmountRanges:
type: object
properties:
currency_code:
$ref: '#/components/schemas/Currency'
annual_volumes:
type: array
items:
$ref: '#/components/schemas/Range'
average_ticket_amounts:
type: array
items:
$ref: '#/components/schemas/Range'
high_ticket_amounts:
type: array
items:
$ref: '#/components/schemas/Range'
BusinessTaxIdentifier:
type: object
required:
- tin
properties:
tin:
$ref: '#/components/schemas/TIN'
override_validation:
$ref: '#/components/schemas/OverrideValidation'
ApplicationAddressError:
type: object
required:
- field
- error_message
properties:
field:
type: string
enum:
- Owner 1
- Owner 2
- Owner 3
- Owner 4
- Business Physical Address
- Business Billing Address
example: Owner 1
error_message:
$ref: '#/components/schemas/ErrorMessage'
address_candidates:
type: array
items:
$ref: '#/components/schemas/Address'
ProhibitedProduct:
type: string
example: Firearms
NAICSCode:
type: string
pattern: ^[0-9]{6}$
example: '221111'
Address:
type: object
required:
- address1
- city
- post_code
- country
properties:
address1:
type: string
example: 1314 NW GLISAN ST
minLength: 1
maxLength: 25
address2:
type: string
example: Apartment 1
maxLength: 25
city:
type: string
example: Portland
minLength: 1
maxLength: 20
state_province:
type: string
example: OR
pattern: ^[a-z]{2}$
maxLength: 2
minLength: 2
post_code:
type: string
example: '97209'
maxLength: 5
country:
type: string
pattern: ^[a-z]{2}$
example: us
maxLength: 2
minLength: 2
override_validation:
$ref: '#/components/schemas/OverrideValidation'
TermsAndConditions:
type: object
properties:
url:
$ref: '#/components/schemas/URL'
terms_and_conditions_text:
$ref: '#/components/schemas/TermsAndConditionsText'
IndividualTaxIdentifier:
type: object
required:
- itin
properties:
itin:
$ref: '#/components/schemas/ITIN'
override_validation:
$ref: '#/components/schemas/OverrideValidation'
BusinessName:
type: string
example: Acme Corporation
Email:
type: string
format: email
example: me@example.com
OwnershipType:
type: string
enum:
- Financial Institution
- Government
- LLC
- Non-Profit
- Partnership/Gen. Ltd.
- Private Corporation
- Public Corporation
- SEC Regulated Corporation
- Sole Proprietorship
- Trust
example: Limited Liability Company
APIKey:
type: string
example: Bl5cgjTnysXxyNyysXiw
URL:
type: string
format: url
example: https://www.example.com
ExternalLink:
type: string
description: An external reference provided by the the ERP/partner originating the merchant application associated with this supplier
example: xyz123abc789
BusinessOwner:
type: object
required:
- name
- ownership_percentage
- individual_tax_id_number
- birth_date
- home_address
- home_phone
- email
properties:
name:
$ref: '#/components/schemas/Person'
ownership_percentage:
type: number
format: float
example: 25
minimum: 25
maximum: 100
individual_tax_id_number:
$ref: '#/components/schemas/IndividualTaxIdentifier'
birth_date:
$ref: '#/components/schemas/BirthDate'
home_address:
$ref: '#/components/schemas/Address'
home_phone:
$ref: '#/components/schemas/Phone'
email:
$ref: '#/components/schemas/Email'
Rate:
type: object
required:
- description
- currency_code
- url
- monthly_account_fees
- payment_methods
properties:
description:
type: string
example: Versapay Payment Services
currency_code:
$ref: '#/components/schemas/Currency'
url:
type: string
format: url
example: https://www.versapay.com/merchant-services
monthly_account_fees:
$ref: '#/components/schemas/AccountFees'
payment_methods:
type: array
items:
$ref: '#/components/schemas/PaymentMethodFees'
ApplicationStatusResponse:
type: object
required:
- application_status
properties:
application_status:
$ref: '#/components/schemas/ApplicationStatus'
api_credentials:
$ref: '#/components/schemas/APICredentials'
Document:
type: object
required:
- filename
- base64
properties:
filename:
type: string
example: example.pdf
base64:
type: string
format: base64
example: ZXhhbXBsZQ==
type:
type: string
enum:
- Bank Statement
- Merchant Statement
- Financial Statement
- Tax ID Number Verification
example: Bank Statement
ProhibitedProducts:
type: object
properties:
url:
$ref: '#/components/schemas/URL'
prohibited_product_list:
type: array
items:
$ref: '#/components/schemas/ProhibitedProduct'
ApplicationErrorResponse:
type: object
properties:
address_errors:
type: array
items:
$ref: '#/components/schemas/ApplicationAddressError'
tax_id_errors:
type: array
items:
$ref: '#/components/schemas/ApplicationTaxIDError'
field_errors:
type: array
items:
$ref: '#/components/schemas/ApplicationError'
ITIN:
type: string
example: 325-98-1975
pattern: ^\d{3}\-?\d{2}\-?\d{4}$
TermsAndConditionsText:
type: string
example: This Merchant Services Agreement (this "Agreement") is entered into between...
Currency:
type: string
pattern: ^[a-z]{3}$
example: usd
maxLength: 3
minLength: 3
DDA:
type: object
required:
- routing_number
- account_number
properties:
routing_number:
$ref: '#/components/schemas/RoutingNumber'
account_number:
$ref: '#/components/schemas/DemandDepositAccountNumber'
Application:
type: object
required:
- business_legal_name
- business_dba_name
- business_tax_id_number
- business_physical_address
- business_billing_address
- ownership_type
- business_type
- naics_code
- business_phone
- business_email
- business_website
- business_established_date
- annual_card_volume
- annual_direct_debit_volume
- average_ticket_amount
- high_ticket_amount
- american_express_service_establishment
- primary_contact
- control_prong
- deposit_account
- reference_token
- sells_prohibited_products
- agrees_terms_and_conditions
- terms_and_conditions
properties:
business_legal_name:
$ref: '#/components/schemas/BusinessName'
business_dba_name:
$ref: '#/components/schemas/BusinessName'
business_tax_id_number:
$ref: '#/components/schemas/BusinessTaxIdentifier'
business_physical_address:
$ref: '#/components/schemas/Address'
business_billing_address:
$ref: '#/components/schemas/Address'
ownership_type:
$ref: '#/components/schemas/OwnershipType'
stock_ticker_symbol:
$ref: '#/components/schemas/StockTickerSymbol'
business_type:
$ref: '#/components/schemas/BusinessType'
naics_code:
$ref: '#/components/schemas/NAICSCode'
business_phone:
$ref: '#/components/schemas/Phone'
business_email:
$ref: '#/components/schemas/Email'
business_website:
$ref: '#/components/schemas/URL'
business_established_date:
$ref: '#/components/schemas/Date'
annual_card_volume:
$ref: '#/components/schemas/Range'
annual_direct_debit_volume:
$ref: '#/components/schemas/RangeAnualDirectDebitVolume'
average_ticket_amount:
$ref: '#/components/schemas/RangeAverageTicketAmount'
high_ticket_amount:
$ref: '#/components/schemas/RangeHightTicketAmount'
american_express_service_establishment:
$ref: '#/components/schemas/ServiceEstablishment'
business_owners:
type: array
items:
$ref: '#/components/schemas/BusinessOwner'
maxItems: 4
non_business_owner_control_prong:
$ref: '#/components/schemas/NonBusinessOwnerControlProng'
primary_contact:
$ref: '#/components/schemas/ApplicationContact'
control_prong:
$ref: '#/components/schemas/ControlProng'
deposit_account:
$ref: '#/components/schemas/DDA'
reference_token:
$ref: '#/components/schemas/ReferenceToken'
sells_prohibited_products:
$ref: '#/components/schemas/Boolean'
agrees_terms_and_conditions:
$ref: '#/components/schemas/Boolean'
terms_and_conditions:
$ref: '#/components/schemas/TermsAndConditions'
supporting_documents:
type: array
items:
$ref: '#/components/schemas/Document'
locale:
$ref: '#/components/schemas/Locale'
external_link:
$ref: '#/components/schemas/ExternalLink'
link_to_existing:
$ref: '#/components/schemas/LinkToExisting'
TIN:
type: string
example: 77-7654567
pattern: ^\d{2}\-?\d{7}$
ApplicationError:
type: object
required:
- field
- error_message
properties:
field:
type: string
error_message:
$ref: '#/components/schemas/ErrorMessage'
NonBusinessOwnerControlProng:
description: 'This is a required object when the control_prong is set to Non-Owner
'
type: object
required:
- name
- individual_tax_id_number
- birth_date
- home_address
- home_phone
- email
properties:
name:
$ref: '#/components/schemas/Person'
individual_tax_id_number:
$ref: '#/components/schemas/IndividualTaxIdentifier'
birth_date:
$ref: '#/components/schemas/Date'
home_address:
$ref: '#/components/schemas/Address'
home_phone:
$ref: '#/components/schemas/Phone'
email:
$ref: '#/components/schemas/Email'
RangeHightTicketAmount:
type: object
properties:
from:
type: number
example: 1000
to:
type: number
example: 4999
Locale:
type: string
pattern: ^[a-z]{2}-[a-z]{2}$
example: en-us
RangeAnualDirectDebitVolume:
type: object
properties:
from:
type: number
example: 500000
to:
type: number
example: 999999
StockTickerSymbol:
type: string
example: EXMPL
description: required only if ownership_type = "Public Corporation", must be <= 10 characters
ApplicationCreatedResponse:
type: object
required:
- application_token
properties:
application_token:
$ref: '#/components/schemas/ApplicationToken'
ErrorMessage:
type: string
example: Please specify a valid value
RangeAverageTicketAmount:
type: object
properties:
from:
type: number
example: 100
to:
type: number
example: 249
ApplicationContact:
type: object
required:
- name
- phone
- email
properties:
name:
$ref: '#/components/schemas/Person'
phone:
$ref: '#/components/schemas/Phone'
email:
$ref: '#/components/schemas/Email'
Boolean:
type: boolean
example: false
Date:
type: string
format: date
example: '2022-01-15'
ApplicationParameters:
type: object
required:
- rates
- prohibited_products
- terms_and_conditions
properties:
rates:
type: array
items:
$ref: '#/components/schemas/Rate'
prohibited_products:
$ref: '#/components/schemas/ProhibitedProducts'
terms_and_conditions:
$ref: '#/components/schemas/TermsAndConditions'
ranges:
$ref: '#/components/schemas/AmountRanges'
ApplicationStatus:
type: string
enum:
- Received
- Processing
- Provisionally Approved
- Approved
- On Hold
- Closed
example: Received
Phone:
type: string
example: 503-685-4116
description: cannot begin with 1 or 0
Person:
type: object
required:
- first_name
- last_name
- title
properties:
first_name:
type: string
example: Alice
maxLength: 25
middle_initial:
type: string
example: B
minLength: 1
maxLength: 1
last_name:
type: string
example: Smith
maxLength: 25
title:
type: string
example: CFO
maxLength: 20
BusinessType:
type: string
enum:
- AutoRental
- MOTO
- ECommerce
- Restaurant
- Lodging
- Retail
example: Restaurant
ControlProng:
type: string
enum:
- Owner 1
- Owner 2
- Owner 3
- Owner 4
- Non-Owner
example: Non-Owner
x-tagGroups:
- name: Versapay API
description: Introduction to the Versapay API.
tags:
- Overview
- Versioning & Compatibility
- Environments
- Rate Limits
- Authentication
- Webhooks
- Watermark & Limit
- name: Collaborative AR
description: Operations available for Collaborative AR integration.
tags:
- Reference Data
- Onboarding
- Ecommerce Integration
- Orders
- Order Transactions
- Testing Order Transactions
- Gift Cards
- Card Present EMV
- Settlement Reporting
- Wallets
- Customers
- Invoices
- Autopay
- Invoicing Payments
- Divisions
- Notifications
- Collaboration
- File Imports