openapi: 3.2.0
info:
version: 1.3.35
title: Versapay API Reference Wallets 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: 'The Wallet entity holds vaulted & secured payment methods owned by a customer (buyer/payor) that can be used to make payments via Collaborative AR (online Portals, AutoPay, Pay Now), Order Transactions (Ecomm & ERP based suppliers), and Invoicing Payments (via Partner buyer networks including Virtual Card Connect). Contact support@versapay.com for support & setup for Wallet access and payment transaction enablement in relation to licensed product components.
'
servers:
- url: https://secure.versapay.com
description: Production
- url: https://uat.versapay.com
description: UAT
tags:
- name: Wallets
description: 'The Wallet entity holds vaulted & secured payment methods owned by a customer (buyer/payor) that can be used to make payments via Collaborative AR (online Portals, AutoPay, Pay Now), Order Transactions (Ecomm & ERP based suppliers), and Invoicing Payments (via Partner buyer networks including Virtual Card Connect). Contact support@versapay.com for support & setup for Wallet access and payment transaction enablement in relation to licensed product components.
'
paths:
/api/gateway/v1/wallets/search:
get:
tags:
- Wallets
summary: Search Accessible Wallets
description: Accessible wallets can be searched by contact email, customer identifier, fund token, or vault token.
parameters:
- name: type
in: query
required: true
description: The type of search `email|customer|fund|vault`
schema:
type: string
example: email
- name: locator
in: query
required: true
description: The value used for search according to the type.
schema:
type: string
example: salesdemo@versapay.com
responses:
'200':
description: Successful Operation
content:
application/json:
schema:
type: object
properties:
wallets:
type: array
items:
$ref: '#/components/schemas/Wallet'
examples:
list_of_wallets:
$ref: '#/components/examples/list_of_wallets'
'401':
$ref: '#/components/responses/UnauthorizedError'
/api/gateway/v1/wallets:
post:
tags:
- Wallets
summary: Create Wallet Empty/Payment Method
description: Create a new wallet (empty) and/or a new wallet with a payment method.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WalletRequest'
examples:
wallet_empty_ghost:
summary: Create empty wallet (ghost customer)
value: {}
wallet_empty_contact:
summary: Create empty wallet (ghost customer and contact)
value:
contact:
first_name: Carey
last_name: Price
email: price@habs.com
wallet_empty_customer1:
summary: Create empty wallet w/ new invoicing customer
value:
customer:
name: Montreal Canadiens
wallet_empty_customer2:
summary: Create empty wallet w/ existing invoicing customer reference
value:
customer:
identifier: C1234
wallet_empty_customer3:
summary: Create empty wallet w/ existing invoicing customer reference (short form)
value:
customer: C1234
wallet_empty_customer_contact:
summary: Create empty wallet w/ existing invoicing customer and contact
value:
customer:
identifier: C1234
contact:
first_name: Carey
last_name: Price
email: price@habs.com
wallet_new_ghost_card:
summary: New wallet (ghost) with credit card
value:
credit_card:
name: FRANK SMITH
expiry_month: 8
expiry_year: 2020
card_number: '5420923878724339'
cvv: '123'
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
wallet_new_ghost_bank:
summary: New wallet (ghost) with bank account
value:
bank_account:
currency: USD
account_type: checking
account_holder: Tim Coffee Ltd
account_number: '144155167'
routing_number: '121000248'
external_name: BANK
external_number: '777'
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
wallet_new_contact_card:
summary: New wallet (ghost customer and contact) with credit card
value:
contact:
email: frank@smith.com
first_name: Frank
last_name: Smith
credit_card:
name: FRANK SMITH
expiry_month: 8
expiry_year: 2020
card_number: '5420923878724339'
cvv: '123'
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
wallet_new_contact_bank:
summary: New wallet (ghost customer and contact) with bank account
value:
contact:
email: frank@smith.com
first_name: Frank
last_name: Smith
bank_account:
currency: USD
account_type: checking
account_holder: Tim Coffee Ltd
account_number: '144155167'
routing_number: '121000248'
external_name: BANK
external_number: '777'
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
wallet_new_customer_contact_card:
summary: New wallet existing invoicing customer and contact with credit card
value:
customer:
identifier: C1234
name: Starblux
contact:
email: frank@smith.com
first_name: Frank
last_name: Smith
credit_card:
name: FRANK SMITH
expiry_month: 8
expiry_year: 2020
card_number: '5420923878724339'
cvv: '123'
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
wallet_new_customer_contact_bank:
summary: New wallet existing invoicing customer and contact with bank account
value:
customer:
identifier: C1234
name: Starblux
contact:
email: frank@smith.com
first_name: Frank
last_name: Smith
bank_account:
currency: USD
account_type: checking
account_holder: Tim Coffee Ltd
account_number: '144155167'
routing_number: '121000248'
external_name: BANK
external_number: '777'
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
wallet_known_customer_contact_card1:
summary: Add credit card to a known wallet via reference (short form)
value:
wallet: 77A81025AC3A
customer:
identifier: C1234
name: Starblux
contact:
email: frank@smith.com
first_name: Frank
last_name: Smith
credit_card:
name: FRANK SMITH
expiry_month: 8
expiry_year: 2020
card_number: '5420923878724339'
cvv: '123'
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
wallet_known_customer_contact_card2:
summary: Add credit card to a known wallet via reference (long form)
value:
wallet:
token: 77A81025AC3A
customer:
identifier: C1234
name: Starblux
contact:
email: frank@smith.com
first_name: Frank
last_name: Smith
credit_card:
name: FRANK SMITH
expiry_month: 8
expiry_year: 2020
card_number: '5420923878724339'
cvv: '123'
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
responses:
'200':
description: 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/WalletResponse'
examples:
new_wallet_empty:
$ref: '#/components/examples/new_wallet_empty'
new_wallet_fund:
$ref: '#/components/examples/new_wallet_fund'
'412':
$ref: '#/components/responses/WalletErrors'
/api/gateway/v1/wallets/{wallet_token}:
get:
tags:
- Wallets
summary: View Wallet
description: View specific wallet given its wallet identifier/token.
parameters:
- name: wallet_token
in: path
required: true
description: The wallet identifier/token
schema:
type: string
example: 77A81025AC3A
responses:
'200':
description: 200 response
content:
application/json:
schema:
type: object
properties:
wallets:
type: array
description: List of wallets.
items:
$ref: '#/components/schemas/Wallet'
'412':
$ref: '#/components/responses/WalletErrors'
/api/gateway/v1/wallets/{wallet_token}/methods:
post:
tags:
- Wallets
summary: Add Payment Methods to Known Wallet
description: Add payment methods to a known wallet given its identifier/token.
parameters:
- name: wallet_token
in: path
required: true
description: The wallet identifier/token
schema:
type: string
example: 77A81025AC3A
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WalletPaymentMethodRequest'
examples:
wallet_known_new_card:
summary: Add credit card
value:
credit_card:
name: FRANK SMITH
expiry_month: 8
expiry_year: 2020
card_number: '5420923878724339'
cvv: '123'
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
wallet_known_import_card:
summary: Add credit card (importing from prior Vault tokenized card number)
value:
credit_card:
name: FRANK SMITH
expiry_month: 8
expiry_year: 2020
brand: mastercard
last_4_digits: '4339'
gateway_token: 4f7b9f2c-20f8-4265-a26c-ff0e4dadeec7
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
wallet_known_new_bank:
summary: Add bank account
value:
bank_account:
currency: USD
account_type: checking
account_holder: Tim Coffee Ltd
account_number: '144155167'
routing_number: '121000248'
external_name: BANK
external_number: '777'
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
wallet_known_import_bank:
summary: Add bank account (importing from prior Vault tokenized account number)
value:
bank_account:
currency: USD
account_type: checking
account_holder: Tim Coffee Ltd
gateway_token: 8f8b8f2c-20f8-4265-a26c-ff0e8dadeec8
routing_number: '121000248'
external_name: BANK
external_number: '777'
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
responses:
'200':
description: 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/WalletResponse'
'412':
$ref: '#/components/responses/WalletErrors'
/api/gateway/v1/wallets/{wallet_token}/methods/{fund_token}:
patch:
tags:
- Wallets
summary: Update Payment Method in Wallet
description: Updates a payment method given its wallet and fund identifier/token.
parameters:
- name: wallet_token
in: path
required: true
description: The wallet identifier/token
schema:
type: string
example: 77A81025AC3A
- name: fund_token
in: path
required: true
description: The fund identifier/token
schema:
type: string
example: CC98U7LI8H91
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WalletPaymentMethodPatch'
examples:
patch_card0:
summary: Update credit card nickname
value:
credit_card:
nickname: Dividend Platinum
patch_card1:
summary: Lock credit card from future use
value:
credit_card:
locked: true
patch_card2:
summary: Update credit card expiry
value:
credit_card:
expiry_month: 8
expiry_year: 2020
patch_card3:
summary: Update credit card expiry and address
value:
credit_card:
expiry_month: 8
expiry_year: 2020
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
patch_bank0:
summary: Update bank account nickname and external information
value:
bank_account:
external_name: BANK
external_number: '777'
nickname: Bank of America - Spending
patch_bank1:
summary: Lock bank account from future use
value:
bank_account:
locked: true
patch_bank2:
summary: Update bank account address
value:
bank_account:
address:
address_1: 123 Abc St
city: Beverly Hills
province: CA
postal_code: '90210'
country: US
responses:
'200':
description: 200 response
content:
application/json:
schema:
type: object
properties:
fund_token:
type: string
example: CC98U7LI8H91
'412':
$ref: '#/components/responses/WalletMethodErrors'
delete:
tags:
- Wallets
summary: Remove Payment Method From Wallet
description: Removes a payment method from wallet given given its wallet and fund identifier/token.
parameters:
- name: wallet_token
in: path
required: true
description: The wallet identifier/token
schema:
type: string
example: 77A81025AC3A
- name: fund_token
in: path
required: true
description: The fund identifier/token
schema:
type: string
example: CC98U7LI8H91
responses:
'200':
description: 200 response
content:
application/json:
schema:
type: object
properties:
fund_token:
type: string
example: CC98U7LI8H91
'412':
$ref: '#/components/responses/WalletMethodErrors'
/api/exports/wallets:
get:
tags:
- Wallets
summary: Export Wallets
description: 'Payments made to your supplier account from your customers since watermark, limited to 100 payments at a time.
A consumer should store the last `id` value of each response and include it as the watermark parameter for a subsequent calls.
'
parameters:
- name: watermark
in: query
description: The value to base a subsequent extract of the next 100 items.
schema:
$ref: '#/components/schemas/Watermark'
- name: list
in: query
description: See Watermark & Limit for more information on response structure.
schema:
type: boolean
example: true
responses:
'200':
description: Successful Operation
content:
application/json:
schema:
type: object
properties:
wallets:
type: object
additionalProperties:
$ref: '#/components/schemas/Wallet'
examples:
export_wallets:
$ref: '#/components/examples/export_wallets'
'401':
$ref: '#/components/responses/UnauthorizedError'
/api/exports/wallets/recent:
get:
tags:
- Wallets
summary: Export Wallets Recently Updated
description: 'Payment records that have been updated in the past 7 days, since watermark, limited to 100 records at a time.
A consumer should store the last `id` value of each response and include it as the watermark parameter for subsequent calls.
'
parameters:
- name: watermark
in: query
description: The value to base a subsequent extract of the next 100 items.
schema:
$ref: '#/components/schemas/Watermark'
- name: list
in: query
description: See Watermark & Limit for more information on response structure.
schema:
type: boolean
example: true
responses:
'200':
description: Successful Operation
content:
application/json:
schema:
type: object
properties:
wallets:
type: object
additionalProperties:
$ref: '#/components/schemas/Wallet'
examples:
export_wallets:
$ref: '#/components/examples/export_wallets'
components:
examples:
fund_protected:
summary: fund_protected
value:
wallet_token: null
fund_token: null
wallets:
error: fund_protected
name_unspecified:
summary: name_unspecified
value:
wallet_token: null
fund_token: null
wallets:
error: name_unspecified
fund_address_unspecified:
summary: fund_address_unspecified
value:
wallet_token: null
fund_token: null
wallets:
error: fund_address_unspecified
new_wallet_empty:
summary: New empty wallet
value:
wallet_token: 5EJQM2RL4K2G
fund_token: null
wallets:
- token: 5EJQM2RL4K2G
credit_cards: []
bank_accounts: []
customers:
- identifier: API-PTwDRl1PoialcnEHGv54V7Nj
contacts: []
new_wallet_fund:
summary: New wallet with payment method added
value:
wallet_token: 5EJQM2RL4K2G
fund_token: CC54QRN1CLDX
wallets:
- token: 5EJQM2RL4K2G
credit_cards:
- token: CC54QRN1CLDX
gateway_token: k8oz6mz8w0ma
cardholder: John Adam
card_number: Visa **1111
display_name: Visa **1111
nickname: null
expiry_month: 12
expiry_year: 2025
is_debit: false
is_default: false
brand: visa
created: '2020-09-02T10:50:54.000-04:00'
locked: false
inactive: false
last_transaction_date: null
last_transaction: null
last_payment: null
address:
address_1: null
address_2: null
city: null
state: null
province: null
country: null
country_name: null
zip: ''
postal_code: ''
line_1: ''
line_2: ''
created_at: '2020-09-02T10:50:54.000-04:00'
updated_at: '2020-09-02T10:50:54.000-04:00'
bank_accounts: []
customers:
- identifier: API-PTwDRl1PoialcnEHGv54V7Nj
contacts: []
buyer_account_not_found:
summary: buyer_account_not_found
value:
wallet_token: null
fund_token: null
wallets:
error: buyer_account_not_found
fund_not_authorized:
summary: fund_not_authorized
value:
wallet_token: null
fund_token: null
wallets:
error: fund_not_authorized
export_wallets:
summary: Export wallets
value:
wallets:
'33196':
token: E38B7566FE90
credit_cards:
- token: CC7ELZ3ZIRHC
gateway_token: k8oz6mz8w0ma
cardholder: Eric Tatum
card_number: Visa **1111
display_name: Visa **1111
nickname: null
expiry_month: 12
expiry_year: 2025
is_debit: false
is_default: false
brand: visa
created: '2020-11-16T14:15:12.000-05:00'
locked: false
inactive: false
last_transaction_date: '2020-11-16T14:15:28.000-05:00'
last_transaction: 8QK4BYC5468S
last_payment: 4SZR1ZB2GGFU
address:
address_1: null
address_2: null
city: null
state: null
province: null
country: null
country_name: null
zip: ''
postal_code: ''
line_1: ''
line_2: ''
created_at: '2020-11-16T14:15:12.000-05:00'
updated_at: '2020-11-16T14:15:12.000-05:00'
bank_accounts: []
customers:
- identifier: '3106'
contacts:
- email: eric@solupay.com
- email: pm@versapay.com
watermark: 33196
'41383':
token: 3K8ZJ4G663LL
credit_cards:
- token: CC2I5LZZ71TG
gateway_token: ejia1yr1zbht
cardholder: Candy Cane
card_number: Visa **1111
display_name: Visa **1111
nickname: null
expiry_month: 1
expiry_year: 2024
is_debit: false
is_default: false
brand: visa
created: '2021-02-25T11:45:46.000-05:00'
locked: false
inactive: false
last_transaction_date: '2021-02-25T11:46:08.000-05:00'
last_transaction: 1TTNG7U92AAD
last_payment: 3553VC71RQIE
address:
address_1: null
address_2: null
city: null
state: null
province: null
country: null
country_name: null
zip: '12345'
postal_code: '12345'
line_1: ''
line_2: '12345'
created_at: '2021-02-25T11:45:46.000-05:00'
updated_at: '2021-02-25T11:45:46.000-05:00'
bank_accounts: []
customers:
- identifier: '3569'
contacts:
- email: abcxyz@abc.com
- email: abcxyz123@abc.com
watermark: 41383
'42327':
token: 6D99F9JX9NJB
credit_cards:
- token: CC1F3BSBLQC1
gateway_token: ns4gzxbvq1ch
cardholder: Demo3 NS1
card_number: Visa **1111
display_name: Visa **1111
nickname: null
expiry_month: 10
expiry_year: 2025
is_debit: false
is_default: false
brand: visa
created: '2021-03-03T22:11:21.000-05:00'
locked: false
inactive: false
last_transaction_date: '2021-03-03T22:26:01.000-05:00'
last_transaction: 2ZIMJMFVRG8L
last_payment: 14ZIYYXYEZ38
address:
address_1: null
address_2: null
city: null
state: null
province: null
country: null
country_name: null
zip: ''
postal_code: ''
line_1: ''
line_2: ''
created_at: '2021-03-03T22:11:21.000-05:00'
updated_at: '2021-03-03T22:11:21.000-05:00'
bank_accounts: []
customers:
- identifier: '3580'
contacts:
- email: demo3ns1@abc.com
watermark: 42327
'42328':
token: 2GX14AMUHU2B
credit_cards:
- token: CC5CGT99ZIU5
gateway_token: 92g1xpkeocne
cardholder: Jose Parent
card_number: Visa **1111
display_name: Visa **1111
nickname: null
expiry_month: 1
expiry_year: 2025
is_debit: false
is_default: false
brand: visa
created: '2021-03-04T00:31:44.000-05:00'
locked: false
inactive: false
last_transaction_date: '2021-03-04T00:34:57.000-05:00'
last_transaction: 4VV82VHNI6JC
last_payment: 1JBVEQR17U35
address:
address_1: null
address_2: null
city: null
state: null
province: null
country: null
country_name: null
zip: '44087'
postal_code: '44087'
line_1: ''
line_2: '44087'
created_at: '2021-03-04T00:31:44.000-05:00'
updated_at: '2021-03-04T00:31:44.000-05:00'
bank_accounts: []
customers:
- identifier: '3589'
contacts:
- email: joseparent@solupay.com
watermark: 42328
'42329':
token: 1XMJTMUGISGI
credit_cards: []
bank_accounts: []
customers:
- identifier: '3590'
contacts:
- email: josechild@solupay.com
watermark: 42329
customer_not_found:
summary: customer_not_found
value:
wallet_token: null
fund_token: null
wallets:
error: customer_not_found
buyer_account_protected:
summary: buyer_account_protected
value:
wallet_token: null
fund_token: null
wallets:
error: buyer_account_protected
payment_method_not_found:
summary: payment_method_not_found
value:
wallet_token: null
fund_token: null
wallets:
error: payment_method_not_found
payment_method_inactive:
summary: payment_method_inactive
value:
wallet_token: null
fund_token: null
wallets:
error: payment_method_inactive
payment_method_conflict:
summary: payment_method_conflict
value:
wallet_token: null
fund_token: null
wallets:
error: payment_method_conflict
gift_card_not_found:
summary: gift_card_not_found
value:
wallet_token: null
fund_token: null
wallets:
error: gift_card_not_found
credit_card_not_found:
summary: credit_card_not_found
value:
wallet_token: null
fund_token: null
wallets:
error: credit_card_not_found
buyer_customer_not_found:
summary: buyer_customer_not_found
value:
wallet_token: null
fund_token: null
wallets:
error: buyer_customer_not_found
list_of_wallets:
summary: List of wallets
value:
wallets:
- token: 77A81025AC3A
credit_cards:
- token: CC54QRN1CLDX
gateway_token: k8oz6mz8w0ma
cardholder: John Adam
card_number: Visa **1111
display_name: Visa **1111
nickname: null
expiry_month: 12
expiry_year: 2025
is_debit: false
is_default: false
brand: visa
created: '2020-09-02T10:50:54.000-04:00'
locked: false
inactive: false
last_transaction_date: '2021-03-31T16:48:33.000-04:00'
last_transaction: 2SWW4NXAQGEX
last_payment: 3EHSHYGJKK3C
address:
address_1: null
address_2: null
city: null
state: null
province: null
country: null
country_name: null
zip: ''
postal_code: ''
line_1: ''
line_2: ''
created_at: '2020-09-02T10:50:54.000-04:00'
updated_at: '2020-09-02T10:50:54.000-04:00'
bank_accounts:
- account_holder: Solupay
branch_number: ''
institution_number: ''
routing_number: '122000247'
sort_code: null
iban: null
account_number: ' (1156)'
nickname: null
state: verified
verification_attempts: 0
token: BA25BVH5HCRI
gateway_token: null
account_type: checking
external_name: null
external_number: null
display_name: ' (1156)'
usage: ap
currency: usd
domicile: US
created: '2020-09-02T10:50:02.000-04:00'
is_default: false
locked: false
check_type: null
inactive: false
last_transaction_date: '2021-03-28T18:13:01.000-04:00'
last_transaction: 9BY2J2JK5JK3
last_payment: 246X11DST8WL
address:
address_1: ''
address_2: ''
city: ''
state: null
province: null
country: US
country_name: USA
zip: ''
postal_code: ''
line_1: ''
line_2: US
created_at: '2020-09-02T10:50:02.000-04:00'
updated_at: '2020-09-02T10:50:02.000-04:00'
customers:
- identifier: '1715'
contacts:
- email: jdoe@versapay.com
- identifier: '1764'
contacts:
- email: smith@versapay.com
- email: jdoe@versapay.com
- token: 7EVZCIY25G9L
credit_cards:
- token: CC3PTIFL9AEI
gateway_token: 92g1xpkeocne
cardholder: John A. Appseed
card_number: Visa **1111
display_name: Visa **1111
nickname: null
expiry_month: 1
expiry_year: 2025
is_debit: false
is_default: false
brand: visa
created: '2021-05-10T09:27:38.000-04:00'
locked: false
inactive: false
last_transaction_date: '2021-09-20T11:59:51.000-04:00'
last_transaction: 2FUSRN7VMZU9
last_payment: 1QC8WS1GRHMC
address:
address_1: null
address_2: null
city: null
state: null
province: null
country: null
country_name: null
zip: ''
postal_code: ''
line_1: ''
line_2: ''
created_at: '2021-05-10T09:27:38.000-04:00'
updated_at: '2021-05-10T09:27:38.000-04:00'
bank_accounts: []
customers:
- identifier: ARC Customer
contacts:
- email: salesdemo@versapay.com
- email: jdoe@versapay.com
- token: 96CYTUXCHRWV
credit_cards:
- token: CC7E7XD59YQC
gateway_token: ns4gzxbvq1ch
cardholder: test customer
card_number: Visa **1111
display_name: Visa **1111
nickname: null
expiry_month: 10
expiry_year: 2025
is_debit: false
is_default: false
brand: visa
created: '2021-04-23T16:51:43.000-04:00'
locked: false
inactive: false
last_transaction_date: '2021-04-28T09:16:59.000-04:00'
last_transaction: 7BUQR4UZC85V
last_payment: 3TVZ9UF5L7J5
address:
address_1: null
address_2: null
city: null
state: null
province: null
country: null
country_name: null
zip: L6X 0V4
postal_code: L6X 0V4
line_1: ''
line_2: L6X 0V4
created_at: '2021-04-23T16:51:43.000-04:00'
updated_at: '2021-04-23T16:51:43.000-04:00'
bank_accounts: []
customers:
- identifier: ARC Test
contacts:
- email: email@gmail.com
- email: salesdemo@versapay.com
- email: jdoe@versapay.com
- token: 3SGYEEUSTLTA
credit_cards:
- token: CC66UIZD7MH7
gateway_token: jhrciteuh7hx
cardholder: Pam Beesly
card_number: Visa **1111
display_name: Visa **1111
nickname: null
expiry_month: 4
expiry_year: 2023
is_debit: false
is_default: false
brand: visa
created: '2021-04-13T09:24:22.000-04:00'
locked: false
inactive: true
last_transaction_date: '2021-04-13T09:25:08.000-04:00'
last_transaction: 46Y315K2URPR
last_payment: 3D5DESMMYF1P
address:
address_1: null
address_2: null
city: null
state: null
province: null
country: null
country_name: null
zip: ''
postal_code: ''
line_1: ''
line_2: ''
created_at: '2021-04-13T09:24:22.000-04:00'
updated_at: '2021-04-13T09:24:22.000-04:00'
- token: CC1AS2CXH1AX
gateway_token: 531u115q27ms
cardholder: CBOE Holdings Inc
card_number: Visa **1111
display_name: Visa **1111
nickname: null
expiry_month: 3
expiry_year: 2023
is_debit: false
is_default: false
brand: visa
created: '2021-04-13T09:27:42.000-04:00'
locked: false
inactive: false
last_transaction_date: '2021-06-03T13:29:05.000-04:00'
last_transaction: 8M3SFE1PN7VT
last_payment: 3UVNF2VPVADL
address:
address_1: null
address_2: null
city: null
state: null
province: null
country: null
country_name: null
zip: ''
postal_code: ''
line_1: ''
line_2: ''
created_at: '2021-04-13T09:27:42.000-04:00'
updated_at: '2021-04-13T09:27:42.000-04:00'
bank_accounts: []
customers:
- identifier: Bubba Hoss
contacts:
- email: versapayinvoices@gmail.com
- email: jdoe@versapay.com
schemas:
BankAccount:
type: object
properties:
currency:
type: string
enum:
- usd
- gbp
- eur
- cad
- aud
business_name:
description: Name of account holder.
type: string
example: John Doe
country:
description: CA (default), US, AU
type: string
example: CA
account_number:
description: Bank account number.
type: string
example: '10101234'
account_type:
description: checking or savings, defaults checking (required country = US)
type: string
example: checking
institution_number:
description: Financial institution number (required country = CA).
type: string
example: '001'
branch_number:
description: Financial institution branch/transit (required country = CA).
type: string
example: '03662'
routing_number:
description: Financial institution branch/location (required country = US, AU).
type: string
example: ''
token:
type: string
description: the bank account token
nickname:
type: string
description: optional value that describes the bank account
masked_account_number:
type: string
description: a masked version of the account number
routing_account_hash_function:
type: string
description: the hash function used to mask the routing number and account number
routing_account_hash:
type: string
description: the hash value used to mask the routing number and account number.
address:
type: object
properties:
address_1:
type: string
city:
type: string
province:
type: string
description: US state or CA province code
postal_code:
type: string
description: US zip code or CA postal code
country:
type: string
enum:
- US
- CA
OverrideValidation:
type: boolean
example: true
WalletPaymentMethodPatch:
type: object
properties:
credit_card:
$ref: '#/components/schemas/WalletCreditCardPatch'
bank_account:
$ref: '#/components/schemas/WalletBankAccountPatch'
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'
WalletCreditCard:
type: object
description: Alternative to fund_token, a credit card object or token reference to an existing credit card
required:
- name
- expiry_month
- expiry_year
- card_number
- cvv
- address
properties:
name:
type: string
description: Cardholder name
expiry_month:
type: string
description: 2 digit month
expiry_year:
type: string
description: 4 digit year
card_number:
type: string
description: Credit card number
cvv:
type: string
locked:
type: boolean
nickname:
type: string
is_default:
type: boolean
description: Indicates if this payment method is a wallet default (used by ERP only supplier integrations)
is_single_use:
type: boolean
description: Indicates if this payment method is eligible for single use (used by ERP only supplier integrations)
address:
type: object
properties:
address_1:
type: string
city:
type: string
province:
type: string
description: US state or CA province code
postal_code:
type: string
description: US zip code or CA postal code
country:
type: string
enum:
- US
- CA
ContactReference:
type: object
properties:
email:
type: string
WalletBankAccountPatch:
type: object
description: Alternative to fund_token, a bank account object or token reference to an existing credit card
properties:
account_type:
type: string
enum:
- checking
- savings
account_holder:
type: string
description: Account holder name
check_type:
type: string
enum:
- personal
- business
external_name:
type: string
external_number:
type: string
locked:
type: boolean
nickname:
type: string
is_default:
type: boolean
description: Indicates if this payment method is a wallet default (used by ERP only supplier integrations)
is_single_use:
type: boolean
description: Indicates if this payment method is eligible for single use (used by ERP only supplier integrations)
address:
type: object
properties:
address_1:
type: string
city:
type: string
province:
type: string
description: US state or CA province code
postal_code:
type: string
description: US zip code or CA postal code
country:
type: string
enum:
- US
- CA
WalletPaymentMethodRequest:
type: object
properties:
credit_card:
$ref: '#/components/schemas/WalletCreditCard'
bank_account:
$ref: '#/components/schemas/WalletBankAccount'
WalletCustomer:
type: object
description: Invoicing customer reference
required:
- identifier
properties:
identifier:
type: string
description: Customer number, must be unique within supplier. Alphanumeric.
example: C1234
name:
type: string
description: Customer name.
example: Acme Inc.
Wallet:
type: object
properties:
token:
type: string
description: Token identifying the wallet
example: 77A81025AC3A
credit_cards:
description: Credit card payment methods in wallet
type: array
items:
$ref: '#/components/schemas/CreditCard'
bank_accounts:
description: Bank account payment methods in wallet
type: array
items:
$ref: '#/components/schemas/BankAccount'
customers:
description: Invoicing customers associated linked/using this wallet
type: array
items:
$ref: '#/components/schemas/CustomerReference'
WalletResponse:
type: object
properties:
wallet_token:
type: string
description: The token representing the wallet.
fund_token:
type:
- string
- 'null'
description: The token representing the fund, if a payment method was added.
wallets:
type: array
description: List of wallets.
items:
$ref: '#/components/schemas/Wallet'
CreditCard:
type: object
properties:
token:
type: string
description: Fund token identifying the credit card
example: CC54QRN1CLDX
gateway_token:
type: string
description: Vault token representing the underlying secured/tokenized primary account number (PAN)
cardholder:
type: string
card_number:
type: string
description: Display name of payment method
display_name:
type: string
description: Display name of payment method
nickname:
type: string
expiry_month:
type: integer
expiry_year:
type: integer
is_debit:
type: boolean
is_default:
type: boolean
description: Indicates if this payment method is a wallet default (used by ERP only supplier integrations)
is_single_use:
type: boolean
description: Indicates if this payment method is eligible for single use (used by ERP only supplier integrations)
brand:
type: string
created:
type: string
format: date-time
locked:
type: boolean
description: Indicates if the payment method is visible but locked from being used
inactive:
type: boolean
description: Indicates if the payment method is deleted
last_transaction_date:
type: string
format: date-time
last_transaction:
type: string
description: Transaction token of the last payment transaction made with this payment method
last_payment:
type: string
description: Payment identifier of the last payment transaction made with this payment method
address:
$ref: '#/components/schemas/Address'
WalletBankAccount:
type: object
description: Alternative to fund_token, a bank account object or token reference to an existing credit card
required:
- currency
- account_type
- account_holder
- account_number
- routing_number
- institution_number
- branch_number
- check_type
- address
properties:
currency:
type: string
enum:
- USD
- CAD
- AUD
- EUR
- GBP
account_type:
type: string
enum:
- checking
- savings
account_holder:
type: string
description: Account holder name
account_number:
type: string
description: Bank account number
routing_number:
type: string
description: For non-CA financial institutions, ABA/bank routing number
institution_number:
type: string
description: For CA financial institutions, 3 digit institution code
branch_number:
type: string
description: For CA financial institutions, transit/branch number
check_type:
type: string
enum:
- personal
- business
external_name:
type: string
external_number:
type: string
locked:
type: boolean
nickname:
type: string
is_default:
type: boolean
description: Indicates if this payment method is a wallet default (used by ERP only supplier integrations)
is_single_use:
type: boolean
description: Indicates if this payment method is eligible for single use (used by ERP only supplier integrations)
address:
type: object
properties:
address_1:
type: string
city:
type: string
province:
type: string
description: US state or CA province code
postal_code:
type: string
description: US zip code or CA postal code
country:
type: string
enum:
- US
- CA
Watermark:
type: integer
format: int64
example: 0
WalletContact:
type: object
description: Billing contact
required:
- email
properties:
email:
type: string
description: Email address
first_name:
type: string
last_name:
type: string
WalletCreditCardPatch:
type: object
description: Alternative to fund_token, a credit card object or token reference to an existing credit card
properties:
name:
type: string
description: Cardholder name
expiry_month:
type: string
description: 2 digit month
expiry_year:
type: string
description: 4 digit year
cvv:
type: string
locked:
type: boolean
nickname:
type: string
is_default:
type: boolean
description: Indicates if this payment method is a wallet default (used by ERP only supplier integrations)
is_single_use:
type: boolean
description: Indicates if this payment method is eligible for single use (used by ERP only supplier integrations)
address:
type: object
properties:
address_1:
type: string
city:
type: string
province:
type: string
description: US state or CA province code
postal_code:
type: string
description: US zip code or CA postal code
country:
type: string
enum:
- US
- CA
CustomerReference:
type: object
properties:
identifier:
type: string
description: Customer number, must be unique within supplier. Alphanumeric.
example: C1234
contacts:
type: array
items:
$ref: '#/components/schemas/ContactReference'
WalletRequest:
type: object
properties:
customer:
$ref: '#/components/schemas/WalletCustomer'
contact:
$ref: '#/components/schemas/WalletContact'
credit_card:
$ref: '#/components/schemas/WalletCreditCard'
bank_account:
$ref: '#/components/schemas/WalletBankAccount'
responses:
WalletMethodErrors:
description: Precondition Failed - Wallet payment method related errors
content:
application/json:
schema:
type: object
properties:
error:
type: string
examples:
buyer_account_not_found:
summary: buyer_account_not_found
value:
error: buyer_account_not_found
buyer_account_protected:
summary: buyer_account_protected
value:
error: buyer_account_protected
buyer_customer_not_found:
summary: buyer_customer_not_found
value:
error: buyer_customer_not_found
customer_not_found:
summary: customer_not_found
value:
error: customer_not_found
name_unspecified:
summary: name_unspecified
value:
error: name_unspecified
fund_address_unspecified:
summary: fund_address_unspecified
value:
error: fund_address_unspecified
payment_method_not_found:
summary: payment_method_not_found
value:
error: payment_method_not_found
fund_protected:
summary: fund_protected
value:
error: fund_protected
fund_not_authorized:
summary: fund_not_authorized
value:
error: fund_not_authorized
payment_method_inactive:
summary: payment_method_inactive
value:
error: payment_method_inactive
credit_card_not_found:
summary: credit_card_not_found
value:
error: credit_card_not_found
gift_card_not_found:
summary: gift_card_not_found
value:
error: gift_card_not_found
payment_method_conflict:
summary: payment_method_conflict
value:
error: payment_method_conflict
UnauthorizedError:
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message
example: You need to sign in or create an account before continuing.
WalletErrors:
description: Precondition Failed - Wallet related errors
content:
application/json:
schema:
type: object
properties:
wallet_token:
type: string
fund_token:
type: string
wallets:
type: object
properties:
error:
type: string
examples:
buyer_account_not_found:
$ref: '#/components/examples/buyer_account_not_found'
buyer_account_protected:
$ref: '#/components/examples/buyer_account_protected'
buyer_customer_not_found:
$ref: '#/components/examples/buyer_customer_not_found'
customer_not_found:
$ref: '#/components/examples/customer_not_found'
name_unspecified:
$ref: '#/components/examples/name_unspecified'
fund_address_unspecified:
$ref: '#/components/examples/fund_address_unspecified'
payment_method_not_found:
$ref: '#/components/examples/payment_method_not_found'
fund_protected:
$ref: '#/components/examples/fund_protected'
fund_not_authorized:
$ref: '#/components/examples/fund_not_authorized'
payment_method_inactive:
$ref: '#/components/examples/payment_method_inactive'
credit_card_not_found:
$ref: '#/components/examples/credit_card_not_found'
gift_card_not_found:
$ref: '#/components/examples/gift_card_not_found'
payment_method_conflict:
$ref: '#/components/examples/payment_method_conflict'
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