openapi: 3.2.0
info:
version: 1.3.35
title: Versapay API Reference Customers 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: 'As a supplier your customers are the entities that are invoiced.
## Webhooks
When using Webhooks, your application will be notified when key events are triggered for a customer.
'
servers:
- url: https://secure.versapay.com
description: Production
- url: https://uat.versapay.com
description: UAT
tags:
- name: Customers
description: 'As a supplier your customers are the entities that are invoiced.
## Webhooks
When using Webhooks, your application will be notified when key events are triggered for a customer.
'
paths:
/api/imports/customer:
post:
summary: Create and Update Customer
description: 'Create a customer using the following attributes (at minimum by providing values for required attributes). If providing an identifier for an existing customer, its information is updated.
*Note: Any additional non-standard attribute will be stored with customer record and available for presentment rendering.*
'
tags:
- Customers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
identifier:
type: string
example: C1234
message:
type: string
example: 1 customer with 3 contacts
'401':
$ref: '#/components/responses/UnauthorizedError'
'412':
$ref: '#/components/responses/PreconditionFailed'
/api/exports/customer/{identifier}:
get:
summary: Export/View a Customer
description: 'View a customer based on the `identifier` provided.
'
tags:
- Customers
parameters:
- name: identifier
in: path
required: true
description: '`identifier` of the customer record.
'
schema:
type: string
responses:
'200':
description: Successful Operation
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/api/exports/customers:
get:
summary: Export Customers
description: 'Customer records that have been created 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.
'
tags:
- Customers
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:
customers:
type: object
additionalProperties:
$ref: '#/components/schemas/CustomersResponse'
examples:
customers:
value:
customers:
'20':
identifier: megavoice-customer-1
display_number: megavoice-customer-1
name: MegavoiceCust
email: mukmuk@example.com
business_number: null
first_name: null
last_name: null
address_1: null
address_2: null
postal_code: null
city: null
province: null
country: ''
telephone: null
fax: null
status: ''
auto_debit: ''
invite_sent: null
signed_up: null
notification_suppressed: false
notification_override: false
paper_invoices: false
paper_statements: false
parent_identifier: null
balance_cents: 0
aging_cents: 0
aging_30_cents: 0
aging_60_cents: 0
aging_90_cents: 0
aging_120_cents: 0
aging_180_cents: 0
aging_older_cents: 0
current_cents: 0
credit_cents: 0
unapplied_payment_cents: 0
prepayment_cents: 0
owing_cents: 0
notes: null
adp: null
adp_arc: null
adp_external: null
last_contact_date: null
next_contact_date: null
credit_limit_cents: null
account_status: open
tags: null
user_tags: null
external_id: '1'
watermark: 20
'401':
$ref: '#/components/responses/UnauthorizedError'
/api/exports/customers/recent:
get:
summary: Export Customers Recently Updated
description: 'Customer 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.
'
tags:
- Customers
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:
customers:
type: object
additionalProperties:
$ref: '#/components/schemas/CustomersResponse'
examples:
customers:
value:
customers:
'20':
identifier: megavoice-customer-1
display_number: megavoice-customer-1
name: MegavoiceCust
email: mukmuk@example.com
business_number: null
first_name: null
last_name: null
address_1: null
address_2: null
postal_code: null
city: null
province: null
country: ''
telephone: null
fax: null
status: ''
auto_debit: ''
invite_sent: null
signed_up: null
notification_suppressed: false
notification_override: false
paper_invoices: false
paper_statements: false
parent_identifier: null
balance_cents: 0
aging_cents: 0
aging_30_cents: 0
aging_60_cents: 0
aging_90_cents: 0
aging_120_cents: 0
aging_180_cents: 0
aging_older_cents: 0
current_cents: 0
credit_cents: 0
unapplied_payment_cents: 0
prepayment_cents: 0
owing_cents: 0
notes: null
adp: null
adp_arc: null
adp_external: null
last_contact_date: null
next_contact_date: null
credit_limit_cents: null
account_status: open
tags: null
user_tags: null
external_id: '1'
watermark: 20
'401':
$ref: '#/components/responses/UnauthorizedError'
/api/exports/customer/{identifier}/open_invoices:
get:
summary: Export Open Invoices for a Customer
description: 'Invoice records with an open balance for the customer based on the `identifier` provided,
limited to 100 records at a time.
A consumer should store the last `watermark` value of each
response and include it as the watermark parameter for subsequent calls.
'
tags:
- Customers
parameters:
- name: identifier
in: path
required: true
description: '`identifier` of the customer record.
'
schema:
type: string
- 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: array
items:
type: object
properties:
number:
type: string
description: Invoice number, unique within a supplier.
display_number:
type: string
description: Invoice number as displayed to customers.
currency:
type: string
description: Currency code, based on ISO-4217, in lowercase. E.g. `cad`, `usd`, `aud`
amount_cents:
type: integer
description: The invoice amount in cents.
owing_cents:
type: integer
description: Balance remaining on this invoice or credit memo.
customer_identifier:
type: string
description: Unique identifier for customer.
watermark:
$ref: '#/components/schemas/Watermark'
example:
open_invoices:
- number: sh763-h3454-dh3432
display_number: INV1234
currency: usd
amount_cents: 40000
owing_cents: 30000
customer_identifier: CUS001
watermark: 8123612
- number: pq7d2-h3124-jl3937
display_number: INV5678
currency: usd
amount_cents: -10000
owing_cents: -10000
customer_identifier: CUS001
watermark: 8123615
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
'412':
$ref: '#/components/responses/PreconditionFailed'
/api/invitations:
post:
summary: Issue an invitation
description: 'Issue a new contact invitation for the specified customer. The recipient of the invitation will begin to receive other Collaborative AR notifications, subject to the configuration of the supplier.
*Note:* If the provided email is not an existing contact of the specified customer, a new contact will be created.
'
tags:
- Customers
requestBody:
content:
application/json:
schema:
type: object
required:
- identifier
- email
properties:
identifier:
type: string
description: the `identifier` of the customer to invite the contact to
example: CUS001
email:
type: string
description: Contact email address.
example: bob.smith@example.com
responses:
'200':
description: Successfully Invited
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFoundError'
delete:
summary: Cancel an invitation
description: 'Cancel an existing contact invitation for the specified customer.
*Note:* `403` will be returned if the specified customer is closed, or if the specified email was invited by a customer user
'
tags:
- Customers
requestBody:
content:
application/json:
schema:
type: object
required:
- identifier
- email
properties:
identifier:
type: string
description: the `identifier` of the customer to cancel the invitation for
example: CUS001
email:
type: string
description: Contact email address.
example: bob.smith@example.com
responses:
'200':
description: Invitation Successfully Cancelled
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFoundError'
/api/imports/customers/{identifier}/update_identifier:
post:
summary: Update Customer Identifier
description: 'Update a customer''s identifier and any associations where identifier is being stored.
*Note:* `412` will be returned if the specified customer cannot be found or the identifier has already been taken.
'
tags:
- Customers
parameters:
- name: identifier
in: path
required: true
description: '`identifier` of the customer to be updated.
'
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- new_identifier
properties:
new_identifier:
type: string
description: Customer's new identifier to be used. Must be unique within supplier.
example: CUS-1001
responses:
'200':
description: Customer Successfully Updated.
content:
application/json:
schema:
properties:
message:
type: string
description: Message indicating update successful.
example: customer identifier updated
identifier:
type: string
description: Customer's new identifier.
example: CUS-1001
'412':
description: Precondition failed.
content:
application/json:
schema:
properties:
importer:
type: string
description: stringified json message containing error.
example: '{:customer=>["not found."]}'
components:
schemas:
Contact:
type: object
required:
- email
properties:
email:
type: string
description: Email address of the contact.
format: email
first_name:
type: string
description: First name of the contact.
last_name:
type: string
description: Last name of the contact.
title:
type: string
description: Title of the contact.
department:
type: string
description: Department of the contact.
telephone:
type: string
description: Phone number of the contact.
bulk_activate:
type: boolean
description: If this is `true`, the contact is activated or invited (depending on the account configuration) on import.
default: false
Customer:
type: object
required:
- identifier
- name
properties:
identifier:
type: string
description: Customer number, must be unique within supplier. Alphanumeric.
example: C1234
display_number:
type: string
description: Customer display number, Alphanumeric.
example: DispNum1234
name:
type: string
description: Customer name.
example: Acme Inc.
email:
type: string
format: email
description: Email address of the default contact.
example: bob.smith@example.com
first_name:
type: string
description: First name of the default contact.
example: Bob
last_name:
type: string
description: Last name of the default contact.
example: Smith
notes:
type: string
description: Optional text field up to 64K.
example: Payment terms will be revised next year.
address_1:
type: string
description: Billing address line 1.
example: 200 Main Street
address_2:
type: string
description: Billing address line 2.
example: Suite 250
city:
type: string
description: Billing address - city.
example: Toronto
province:
type: string
description: Billing address - state or province.
example: 'ON'
postal_code:
type: string
description: Billing address - zip or postal code.
example: M5M 5M5
country:
type: string
description: Billing address - country.
example: CA
telephone:
type: string
description: Customer phone number.
example: (416) 123-4567
fax:
type: string
description: Customer fax number.
example: (416) 100-1020
url:
type: string
format: uri
description: Customer web site.
example: www.acmeinc.com
business_number:
type: string
description: Customer EIN or Business Number. 20-character alphanumeric.
example: GS324587987
locale:
type: string
description: Customer language, based on ISO 639-1 standard.
enum:
- en
- fr
- es
parent_identifier:
type: string
description: Required if the customer is part of a hierarchy, and this customer has a level (parent) above it. This is the identifier of the customer immediately above this customer in the tree.
example: P3212
pdf_attachment_opt_in:
type: boolean
description: If `true`, the customer will receive PDFs of invoices and attachments with all invoice notifications.
default: false
account_status:
type: string
description: The status of the customer's account with the supplier.
enum:
- open
- closed
default: open
last_contact_date:
type: string
format: date
description: The last time the customer was contacted. It is ignored if the customer already has a last contact date and it is more recent than this one.
example: '2017-12-04'
next_contact_date:
type: string
format: date
description: The date of the next planned contact with the customer. This always overwrites what is on the customer.
example: '2018-02-15'
credit_limit_cents:
type: integer
description: The customer's credit limit. This is the maximum value of outstanding invoices before the supplier is alerted, if supplier is configured to monitor this. If the customer is a multi-currency customer, this is the total credit limit converted to a single currency (see next field.)
example: '2000000'
credit_limit_currency:
type: string
description: Currency of the credit limit. If blank, defaults to the currency of the majority of the customer's invoices. If there are no invoices, defaults to the supplier’s default currency.
example: CAD
credit_rating:
type: string
description: Credit rating for the customer.
example: AA
terms_type:
type: string
description: This field and `terms_value` specify how to set a customer's due date.
enum:
- date
- day
terms_value:
type: integer
description: 'This field and `terms_type` specify how to set a customer''s invoice due date.
If terms_type is ''day'':
* It means the due date should be days after invoice date.
* E.g. if terms_value is 30, the due date must be 30 days after the invoice date.
* It must be a whole number between 0 and 100.
If terms_type is ''date'':
* It means the due date is on a fixed day (terms_value) of the month.
* E.g. if terms_value is 15, it means the due date should be on the 15th of the month after invoice date.
* It must be an integer between 1 and 27 inclusive, or -1 to specify the last day of the month, or -2 to specify the second-last day of the month.
'
example: 15
company_bio:
type: string
description: Short description of products and services that the customer offers.
example: Acme Inc. sells cutting-edge widgets.
ignores_cc_payment_rules:
type: boolean
description: If this is `true`, it means that the customer is not subject to any credit card payment rules, and is free to use credit cards any time.
default: false
example: 'false'
notification_suppressed:
type: boolean
description: If this is `true`, all notifications to the customer are suppressed.
default: false
example: 'false'
tags:
type: string
description: One or more tags separated by semi-colons.
example: Blue;Green;Yellow
external_id:
type: string
description: External (ERP-based) identifier for the customer record.
external_group_identifier:
type: string
description: 'External (ERP-based) identifier used to control customer grouping.
If the supplier is configured for restricted grouping, the system will not permit a user to group customers together that have different values for `external_group_identifier`.
If the supplier is not configured for restricted grouping, this value is saved but ignored.
'
replace_contacts:
type: boolean
description: When `true` for a customer that is re-imported any contacts in the payload that are also in the DB will be updated if they are not signed-up users, and any contacts in the DB that were created by the supplier and are not in the payload will be deleted if not signed up, otherwise they will be disabled.
default: false
line_item_attributes:
type: array
items:
$ref: '#/components/schemas/Contact'
example:
- email: jane.smith@example.com
first_name: Jane
last_name: Smith
telephone: 809-888-1234
title: Buyer
- email: bob.smith@example.com
first_name: Bob
last_name: Smith
title: Manager
department: Accounts Payable
telephone: 809-345-9833
- email: steve.jobs@example.com
first_name: Steve
last_name: Jobs
title: CEO
CustomerResponse:
type: object
properties:
identifier:
type: string
description: Customer number, unique within supplier.
example: CUST-001
name:
type: string
description: Customer name.
example: ABC Inc.
email:
type: string
format: email
description: Email address of the default contact.
example: bob.smith@example.com
first_name:
type: string
description: First name of the default contact.
example: Bob
last_name:
type: string
description: Last name of the default contact.
example: Smith
notes:
type: string
description: Optional text field up to 64K.
example: Payment terms will be revised next year.
address_1:
type: string
description: Billing address line 1.
example: 1 Bay St.
address_2:
type: string
description: Billing address line 2.
example: Suite 200
city:
type: string
description: Billing address - city.
example: Toronto
province:
type: string
description: Billing address - state or province.
example: 'ON'
postal_code:
type: string
description: Billing address - zip or postal code.
example: M5M 5M5
country:
type: string
description: Billing address - country.
example: CA
telephone:
type: string
description: Customer phone number.
example: (416) 123-4567
fax:
type: string
description: Customer fax number.
example: (416) 111-2222
business_number:
type: string
description: Customer EIN or Business Number. 20-character alphanumeric.
example: '18889990'
status:
type: string
description: Customer adoption status.
enum:
- Not Activated
- Activated
- Invited
- Express
- Signed Up
- Paying
auto_debit:
type: string
description: '`Y`, if customer has set up an AutoPay agreement. `N` otherwise.
'
enum:
- Y
- N
example: N
invite_sent:
type: string
format: date
description: The date when invite was sent, in YYYY-MM-DD format.
example: '2018-02-23'
signed_up:
type: string
format: date
description: The date when customer user signed up, in YYYY-MM-DD format.
example: '2018-02-24'
notification_suppressed:
type: string
description: '`Y`, if notifications are suppressed for the customer. `N` otherwise.
'
enum:
- Y
- N
notification_override:
type: string
description: '`Y`, if overdue balance notifications are made optional for the customer. `N` otherwise.
'
enum:
- Y
- N
paper_invoices:
type: string
description: '`Y`, if customer receives paper invoices. `N` otherwise.
'
enum:
- Y
- N
balance:
type: string
description: 'Total outstanding balance on the customer account.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_balance`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
credit:
type: string
description: 'Total outstanding credit balance on the customer account.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_credit`). This applies to suppliers accepting multicurrency payments.
'
example: -$123.45
current:
type: string
description: 'Current outstanding balance on the customer account.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_current`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
aging:
type: string
description: 'Total overdue balance on the customer account.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_aging`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
aging_30:
type: string
description: 'Balance overdue (1-30 days) on the customer account.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_aging_30`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
aging_60:
type: string
description: 'Balance overdue (31-60 days) on the customer account.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_aging_60`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
aging_90:
type: string
description: 'Balance overdue (61-90 days) on the customer account.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_aging_90`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
aging_older:
type: string
description: 'Balance overdue (91+ days) on the customer account.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_aging_older`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
unapplied_payment:
type: string
description: 'Total unapplied payment on the customer account.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_unapplied_payment`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
monthly_balance_current:
type: string
description: 'Total outstanding balance of invoices opened this month on the customer account.
Note: This applies to suppliers configured for monthly balance aging.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_monthly_balance_current`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
monthly_balance_prior_1:
type: string
description: 'Total outstanding balance of invoices opened 1 month ago on the customer account.
Note: This applies to suppliers configured for monthly balance aging.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_monthly_balance_prior_1`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
monthly_balance_prior_2:
type: string
description: 'Total outstanding balance of invoices opened 2 months ago on the customer account.
Note: This applies to suppliers configured for monthly balance aging.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_monthly_balance_prior_2`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
monthly_balance_prior_3:
type: string
description: 'Total outstanding balance of invoices opened 3 months ago on the customer account.
Note: This applies to suppliers configured for monthly balance aging.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_monthly_balance_prior_3`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
monthly_balance_prior_4:
type: string
description: 'Total outstanding balance of invoices opened 4 months ago on the customer account.
Note: This applies to suppliers configured for monthly balance aging.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_monthly_balance_prior_4`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
monthly_balance_prior_5:
type: string
description: 'Total outstanding balance of invoices opened 5 months ago on the customer account.
Note: This applies to suppliers configured for monthly balance aging.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_monthly_balance_prior_5`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
monthly_balance_older:
type: string
description: 'Total outstanding balance of invoices opened 6 or more months ago on the customer account.
Note: This applies to suppliers configured for monthly balance aging.
Note: This field is prefixed with the currency code, for each currency the customer is transacting in (say, `usd_monthly_balance_older`). This applies to suppliers accepting multicurrency payments.
'
example: $123.45
adp:
type: string
description: Average days to pay.
example: '100'
adp_arc:
type: string
description: Average days to pay.
example: '100'
adp_external:
type: string
description: Average days to pay, outside Versapay.
example: '100'
last_contact_date:
type: string
format: date
description: The last time the customer was contacted.
example: '2017-12-04'
next_contact_date:
type: string
format: date
description: The date of the next planned contact with the customer.
example: '2018-02-15'
credit_limit:
type: string
description: The customer's credit limit. If the customer is a multi-currency customer, this is the total credit limit converted to a single currency.
example: $2000.00
oldest_open_invoice:
type: string
description: Oldest outstanding invoice number.
example: INV-00101
oldest_open_invoice_age:
type: string
description: Age (in days) of the oldest outstanding invoice.
example: '31'
oldest_open_invoice_balance:
type: string
description: Balance of the oldest outstanding invoice.
example: $123.45
last_payment_date:
type: string
format: date
description: Date when the last payment was made, in YYYY-MM-DD format.
example: '2018-01-31'
last_payment_amount:
type: string
description: Amount of the last payment.
example: $123.45
last_payment_source:
type: string
description: Source of the last payment.
example: arc
enum:
- arc
- external
- erp
- manual
account_status:
type: string
description: The status of the customer's account with the supplier.
enum:
- open
- closed
tags:
type: string
description: Semi-colon delimited list of tags imported from ERP on the customer account.
example: Blue;Green;Yellow
user_tags:
type: string
description: Semi-colon delimited list of tags assigned via Portal on the customer account.
example: Gold;Silver;Bronze
divisions_names:
type: string
description: Names of divisions the customer belongs to, separated by semi-colons.
example: North;South;East
divisions_codes:
type: string
description: Codes of divisions the customer belongs to, separated by semi-colons.
example: 010;020;050
url:
type: string
description: The URL to the customer details page in Collaborative AR.
example: https://secure.versapay.com/receivables/customers/10917589
group_id:
type: string
description: When a value is present, this customer is part of a group. Customers sharing this value are grouped together.
external_group_identifier:
type: string
description: External (ERP-based) identifier used to control customer grouping.
display_number:
type: string
description: Customer display number.
example: CUST-DN-001
root_identifier:
type: string
description: The root identifier within the hierarchy if the customer is part of a hierarchy. Otherwise it is the customer identifier itself.
example: P0900
contacts:
type: array
description: Contacts (and/or corresponding signed up user profile information)
items:
type: object
properties:
email:
type: string
description: Email address of the contact.
format: email
first_name:
type: string
description: First name of the contact.
last_name:
type: string
description: Last name of the contact.
telephone:
type: string
description: Phone number of the contact.
title:
type: string
description: Title of the contact.
department:
type: string
description: Department of the contact.
activated_at:
type: string
format: date
description: Date contact was activated
invited_at:
type: string
format: date
description: Date contact was invited for user access
login_at:
type: string
format: date
description: Date user last signed in as user
user_first_name:
type: string
description: First name set on associated user profile
user_last_name:
type: string
description: Last name set on associated user profile
user_role:
type: string
description: Access role for user
user_telephone:
type: string
description: Telephone set on associated user profile
user_title:
type: string
description: Title set on associated user profile
user_department:
type: string
description: Department set on associated user profile
example:
identifier: '163627'
name: 21st Century Media
business_number: ''
first_name: ''
last_name: ''
email: customer+21st@versapay.com
address_1: ''
address_2: ''
postal_code: ''
city: ''
province: ''
country: ''
telephone: ''
fax: ''
status: Signed Up
auto_debit: N
invite_sent: '2016-03-29'
signed_up: '2016-03-29'
notification_suppressed: N
notification_override: N
paper_invoices: N
paper_statements: N
balance: $26,185.00
credit: $0.00
current: $0.00
unapplied_payment: $0.00
aging: $26,185.00
aging_30: $0.00
aging_60: $0.00
aging_90: $0.00
aging_older: $26,185.00
notes: ''
parent_identifier: '161803'
parent_name: Digital First Media
parent_email: customer+dfm@versapay.com
adp: ''
adp_arc: ''
adp_external: ''
last_contact_date: ''
next_contact_date: ''
credit_limit: $0.00
oldest_open_invoice: '5557488'
oldest_open_invoice_age: '1726'
oldest_open_invoice_balance: $1,325.00
last_payment_date: ''
last_payment_amount: $0.00
last_payment_source: ''
account_status: open
tags: ''
user_tags: A+ Customer;Tester A;91+ $2500+ Test Tag
divisions_names: ''
divisions_codes: ''
url: https://secure.versapay.com/receivables/customers/10917589
group_id: ''
external_group_identifier: ''
credit_card_fee_exempt: N
auto_update_cc_expiry: N
cash_on_delivery: N
watermark: 10917589
root_identifier: P0900
contacts:
- email: customer+21st@versapay.com
first_name: null
last_name: null
telephone: null
title: null
department: null
activated_at: '2016-03-29T18:41:19.000Z'
invited_at: '2016-03-29T18:41:19.000Z'
login_at: '2016-05-19T19:03:07.000Z'
user_first_name: null
user_last_name: null
user_role: admin
user_telephone: null
user_title: null
user_department: null
- email: dteets@21st-centurymedia.com
first_name: null
last_name: null
telephone: null
title: null
department: null
activated_at: null
invited_at: null
login_at: null
user_first_name: null
user_last_name: null
user_role: null
user_telephone: null
user_title: null
user_department: null
Watermark:
type: integer
format: int64
example: 0
CustomersResponse:
type: object
properties:
identifier:
type: string
description: Customer number, unique within supplier.
display_number:
type: string
description: Customer display number.
name:
type: string
description: Customer name.
email:
type: string
format: email
description: Email address of the default contact.
business_number:
type: string
description: Customer EIN or Business Number.
first_name:
type: string
description: First name of the default contact.
last_name:
type: string
description: Last name of the default contact.
address_1:
type: string
description: Billing address line 1.
address_2:
type: string
description: Billing address line 2.
postal_code:
type: string
description: Billing address - zip or postal code.
city:
type: string
description: Billing address - city.
province:
type: string
description: Billing address - state or province.
country:
type: string
description: Billing address - country.
telephone:
type: string
description: Customer phone number.
fax:
type: string
description: Customer fax number.
status:
type: string
description: Customer adoption status.
auto_debit:
type: string
description: AutoPay agreement status.
invite_sent:
type: string
format: date
description: The date when invite was sent, in YYYY-MM-DD format.
signed_up:
type: string
format: date
description: The date when customer user signed up, in YYYY-MM-DD format.
notification_suppressed:
type: boolean
description: If true, notifications to the customer are suppressed.
notification_override:
type: boolean
description: If true, overdue balance notifications are made optional.
paper_invoices:
type: boolean
description: If true, customer receives paper invoices.
paper_statements:
type: boolean
description: If true, customer receives paper statements.
parent_identifier:
type: string
description: Identifier of the parent customer in a hierarchy.
balance_cents:
type: integer
description: 'Total outstanding balance on the customer account in cents.
'
aging_cents:
type: integer
description: 'Total overdue balance on the customer account in cents.
'
aging_30_cents:
type: integer
description: 'Balance overdue (1-30 days) on the customer account in cents.
'
aging_60_cents:
type: integer
description: 'Balance overdue (31-60 days) on the customer account in cents.
'
aging_90_cents:
type: integer
description: 'Balance overdue (61-90 days) on the customer account in cents.
'
aging_120_cents:
type: integer
description: 'Balance overdue (91-120 days) on the customer account in cents.
'
aging_180_cents:
type: integer
description: 'Balance overdue (121-180 days) on the customer account in cents.
'
aging_older_cents:
type: integer
description: 'Balance overdue (181+ days) on the customer account in cents.
'
current_cents:
type: integer
description: 'Current outstanding balance in cents.
'
credit_cents:
type: integer
description: 'Total outstanding credit balance on the customer account in cents.
'
unapplied_payment_cents:
type: integer
description: 'Total unapplied payment on the customer account in cents.
'
prepayment_cents:
type: integer
description: 'Total prepayment on the customer account in cents.
'
owing_cents:
type: integer
description: Total owing balance in cents.
notes:
type: string
description: Optional notes.
adp:
type: string
description: Average days to pay.
adp_arc:
type: string
description: Average days to pay (checkout).
adp_external:
type: string
description: Average days to pay (external).
last_contact_date:
type: string
format: date
description: Last contact date.
next_contact_date:
type: string
format: date
description: Next planned contact date.
credit_limit_cents:
type: integer
description: Credit limit in cents.
account_status:
type: string
description: Account status (open/closed).
tags:
type: string
description: Semi-colon delimited list of imported tags.
user_tags:
type: string
description: Semi-colon delimited list of user-assigned tags.
attributes_marshal:
type: object
description: Additional attributes.
external_id:
type: string
description: External (ERP-based) identifier for the customer record.
responses:
Forbidden:
description: Forbidden
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message
example: This request is not allowed for this resource.
BadRequest:
description: Bad Request
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message
example: You have not provided all necessary parameters to make this call.
NotFoundError:
description: Not Found
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message
example: ActiveRecord::RecordNotFound
PreconditionFailed:
description: Precondition Failed
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message
example: API token does not have permission for this request. Please contact your account administrator.
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.
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