Vendasta account API
The Account APIs allow you to perform actions against a single account that your application has been added to.
The Account APIs allow you to perform actions against a single account that your application has been added to.
openapi: 3.0.0
info:
version: '1.0'
title: Vendasta Marketplace API V1 Endpoints account API
description: The Account APIs allow you to perform actions against a single account that your application has been added to.
servers:
- url: https://developers.vendasta.com/api/v1
description: Production Server
- url: https://developers-demo.vendasta.com/api/v1
description: Demo Server
security:
- BearerAuth: []
tags:
- name: account
description: The Account APIs allow you to perform actions against a single account that your application has been added to.
paths:
/account/:
get:
tags:
- account
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
type: array
items:
$ref: '#/components/schemas/account'
next_url:
type: string
description: The URL to call to fetch the next page of results, if there are any.
total_results:
type: integer
description: The total number of results (across all pages).
'401':
description: Invalid Authentication
parameters:
- description: Must be a positive integer.
name: page_size
in: query
schema:
type: integer
- name: cursor
in: query
schema:
type: string
summary: List Accounts
/account/{account_id}:
get:
tags:
- account
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
$ref: '#/components/schemas/account'
'401':
description: Invalid Authentication
'403':
description: Not authorized to access account.
'404':
description: Account not found
parameters:
- required: true
description: A unique account ID that can be used to identify and reference an account.
in: path
name: account_id
schema:
type: string
summary: Get Account
/account/{account_id}/richdata:
parameters:
- schema:
type: string
name: account_id
in: path
required: true
get:
tags:
- account
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
$ref: '#/components/schemas/account_richdata'
'201':
description: Created
'401':
description: Invalid Authentication
'403':
description: Not authorized to access account.
'404':
description: Account not found
parameters:
- required: true
description: A unique account ID that can be used to identify and reference an account.
in: path
name: account_id
schema:
type: string
summary: Get Account - Rich Data
requestBody:
content:
application/json:
schema:
type: object
properties: {}
application/xml:
schema:
type: object
properties: {}
multipart/form-data:
schema:
type: object
properties: {}
description: Retreive extended account data such as hours of operation and images.
/account/{account_id}/settings:
get:
tags:
- account
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
$ref: '#/components/schemas/account_settings'
'401':
description: Invalid Authentication
'403':
description: Not authorized to access account.
'404':
description: Account settings not found
parameters:
- required: true
description: A unique account ID that can be used to identify and reference an account.
in: path
name: account_id
schema:
type: string
summary: Get Account Settings
description: "Partners can have sub-accounts for branding purposes called Markets. Every Account must be assigned to a Market, even if it is the `default` Market. The majority of Partners have only the single default Market. The `platform_settings` object returns the partner branding data for the specific partner_id/market_id combo. \n\nEnsure that you set your branding data at either the Account, or the Market level. If it is configured per partner_id, it will end in a breach of white-label for users in any Market other than that of the latest activated Account!\n\n<!-- theme: warning -->\n> There is no webhook at this time for providing updates to partner branding. Therefore a Vendor should periodically poll this API for each of their Accounts to ensure they have the most up to date branding information."
/account/{account_id}/session-transfer:
get:
tags:
- account
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
$ref: '#/components/schemas/session_transfer_url'
'401':
description: Invalid Authentication
'403':
description: Not authorized to retrieve a session transfer url.
'404':
description: Url not found
parameters:
- required: true
description: A unique account ID that can be used to identify and reference an account.
in: path
name: account_id
schema:
type: string
summary: Get Session Transfer URL
/account/{account_id}/users:
get:
tags:
- account
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
type: array
items:
$ref: '#/components/schemas/associated_user'
'400':
description: Invalid Request
parameters:
- required: true
description: A unique account ID that can be used to identify and reference an account.
in: path
name: account_id
schema:
type: string
summary: List Users
/account/{account_id}/addons:
get:
tags:
- account
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
type: array
items:
$ref: '#/components/schemas/active_addon'
'400':
description: Invalid Request
parameters:
- required: true
description: A unique account ID that can be used to identify and reference an account.
in: path
name: account_id
schema:
type: string
summary: List Activated Addons
/account/{account_id}/file-group/:
post:
tags:
- account
parameters:
- required: true
description: A unique account ID that can be used to identify and reference an account.
in: path
name: account_id
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
$ref: '#/components/schemas/file_group'
'401':
description: Invalid Authentication
'403':
description: Not authorized to access account.
'404':
description: Account not found
summary: Create a File Group
requestBody:
$ref: '#/components/requestBodies/Body'
description: "Creates a collection of files, which are available to the Partner in Partner Center, and the End Business in Business App. \n\nThe Activity will automatically be posted to the Activity Stream in Business App alerting users that they have a new file ready to download, and will include the supplied `description`.\n\nNote* This feature differs between the UI, and API. You must host the files and supply the urls when using the API. But if you use the file group system via the Vendor Center UI, you upload the files, and Vendasta will host them."
get:
tags:
- account
parameters:
- required: true
description: A unique account ID that can be used to identify and reference an account.
in: path
name: account_id
schema:
type: string
- description: Must be a positive integer.
name: page_size
in: query
schema:
type: integer
- name: cursor
in: query
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
type: array
items:
$ref: '#/components/schemas/file_group'
next_url:
type: string
description: The URL to call to fetch the next page of results, if there are any.
total_results:
type: integer
description: The total number of results (across all pages).
'401':
description: Invalid Authentication
'403':
description: Not authorized to access account.
'404':
description: Account not found
summary: List File Groups
/account/{account_id}/file-group/{file_group_id}/:
put:
tags:
- account
parameters:
- required: true
description: A unique account ID that can be used to identify and reference an account.
in: path
name: account_id
schema:
type: string
- required: true
description: The ID of the file group to update.
in: path
name: file_group_id
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
$ref: '#/components/schemas/file_group'
'401':
description: Invalid Authentication
'403':
description: Not authorized to access account.
'404':
description: Account or file group not found
summary: Replace a File Group
requestBody:
$ref: '#/components/requestBodies/Body'
description: 'This replaces the entire contents of a file group, so if you are looking to update a file group, ensure your including what is already in place along with your addition. Note* This feature differs between the UI, and API. You must host the files and supply the urls when using the API. But if you use the file group system via the Vendor Center UI, you upload the files, and Vendasta will host them.
Unlike the File Group create, the replace action will not trigger an Activity to be sent to the Activity Stream.'
delete:
tags:
- account
parameters:
- required: true
description: A unique account ID that can be used to identify and reference an account.
in: path
name: account_id
schema:
type: string
- required: true
description: The ID of the file group to delete.
in: path
name: file_group_id
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
$ref: '#/components/schemas/file_group'
'401':
description: Invalid Authentication
'403':
description: Not authorized to access account.
'404':
description: Account or file group not found
summary: Delete a File Group
get:
tags:
- account
parameters:
- required: true
description: A unique account ID that can be used to identify and reference an account.
in: path
name: account_id
schema:
type: string
- required: true
description: The ID of the file group to delete.
in: path
name: file_group_id
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
$ref: '#/components/schemas/file_group'
'401':
description: Invalid Authentication
'403':
description: Not authorized to access account.
'404':
description: Account or file group not found
summary: Get a File Group
/activation/resolve/:
post:
tags:
- account
responses:
'202':
description: Accepted
'401':
description: Invalid Authentication
summary: Resolve a Pending Activation
requestBody:
content:
application/json:
schema:
type: object
properties:
activation_id:
type: string
description: A unique ID that can be used to identify a specific activation record.
business_id:
type: string
description: A unique ID that can be used to identify a business location. This is equivalent to the `account_id`. In legacy apis, it may be referred to as `accountId`, or `accountGroupId`.
addon_id:
type: string
description: A unique ID used to identify a marketplace addon.
approved:
type: boolean
description: A boolean value representing whether the activation has been approved or rejected.
rejection_reason:
type: string
description: If approved is false, you must give a reason for rejecting the activation.
required:
- activation_id
- business_id
- approved
required: true
/activation/list-pending/:
get:
tags:
- account
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
took:
type: integer
description: The total response time, in milliseconds.
data:
type: array
items:
$ref: '#/components/schemas/pending_activation'
next_url:
type: string
description: The URL to call to fetch the next page of results, if there are any.
'400':
description: Invalid Input
'401':
description: Invalid Authentication
parameters:
- required: false
description: A unique ID used to identify a marketplace addon.
in: query
name: addon_id
schema:
type: string
- required: false
description: The maximum number of entries you want returned.
in: query
name: page_size
schema:
type: integer
- required: false
description: Used for pagination.
in: query
name: cursor
schema:
type: string
summary: List Pending Activations
components:
schemas:
file_group:
type: object
properties:
account_id:
type: string
file_group_id:
type: string
title:
type: string
description:
type: string
created:
type: string
modified:
type: string
files:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
session_transfer_url:
required:
- session_transfer_url
properties:
session_transfer_url:
type: string
type: object
account:
required:
- company_name
- id
- partner_id
properties:
call_tracking_number:
items:
type: string
type: array
deleted_flag:
type: boolean
contact_first_name:
type: string
common_name:
items:
type: string
type: array
timezone:
type: string
work_number:
items:
type: string
type: array
partner_id:
type: string
id:
type: string
city:
type: string
zip:
type: string
market_id:
type: string
deleted:
type: string
format: date-time
state:
type: string
company_name:
type: string
latitude:
type: number
foursquare_url:
type: string
tax_ids:
items:
type: string
type: array
website:
type: string
rss_url:
type: string
updated:
type: string
format: date-time
twitter_url:
type: string
facebook_url:
type: string
fax_number:
type: string
contact_email:
type: string
address:
type: string
youtube_url:
type: string
instagram_url:
type: string
key_person:
items:
type: string
type: array
pinterest_url:
type: string
contact_last_name:
type: string
cell_number:
type: string
country:
type: string
created:
type: string
format: date-time
linkedin_url:
type: string
longitude:
type: number
sales_person_id:
type: string
googleplus_url:
type: string
service_area_business_flag:
type: boolean
tags:
type: array
items:
type: string
seo_category:
type: array
items:
type: string
email:
type: string
type: object
account_settings:
required:
- account_id
properties:
account_id:
type: string
partner_id:
type: string
market_id:
type: string
platform_settings:
type: object
properties:
partner_name:
type: string
partner_logo_url:
type: string
partner_primary_branding_hex_color:
type: string
white_label_active:
type: boolean
type: object
account_richdata:
description: ''
type: object
properties:
brands_carried:
type: array
items:
required: []
properties: {}
call_tracking_number:
type: array
items:
required: []
properties: {}
common_name:
type: array
items:
required: []
properties: {}
deleted_flag:
type: boolean
contact_first_name: {}
images:
type: object
properties:
logo:
type: string
minLength: 1
primary:
type: string
minLength: 1
required:
- logo
- primary
timezone:
type: string
minLength: 1
work_number:
type: array
items:
required: []
properties: {}
partner_id:
type: string
minLength: 1
id:
type: string
minLength: 1
city:
type: string
minLength: 1
zip:
type: string
minLength: 1
market_id:
type: string
minLength: 1
twitter_url:
type: string
minLength: 1
state:
type: string
minLength: 1
company_name:
type: string
minLength: 1
latitude:
type: number
foursquare_url:
type: string
minLength: 1
service_area_business_flag:
type: boolean
address2:
type: string
minLength: 1
tax_ids:
type: array
items:
required: []
properties: {}
website:
type: string
minLength: 1
rss_url:
type: string
minLength: 1
updated:
type: string
minLength: 1
description:
type: string
minLength: 1
deleted: {}
facebook_url:
type: string
minLength: 1
fax_number:
type: string
minLength: 1
short_description:
type: string
minLength: 1
contact_email: {}
address:
type: string
minLength: 1
youtube_url:
type: string
minLength: 1
instagram_url:
type: string
minLength: 1
key_person:
type: array
items:
required: []
properties: {}
pinterest_url:
type: string
minLength: 1
contact_last_name: {}
cell_number:
type: string
minLength: 1
customer_identifier:
type: string
minLength: 1
created:
type: string
minLength: 1
linkedin_url:
type: string
minLength: 1
longitude:
type: number
sales_person_id:
type: string
minLength: 1
toll_free_number:
type: string
minLength: 1
googleplus_url: {}
services_offered:
type: array
items:
required: []
properties: {}
hours_of_operation:
type: array
uniqueItems: true
minItems: 1
items:
required:
- closes
- opens
properties:
closes:
type: string
minLength: 1
opens:
type: string
minLength: 1
day_of_week:
type: array
items:
required: []
properties: {}
description: {}
landmark:
type: string
minLength: 1
country:
type: string
minLength: 1
tags:
type: array
items:
type: string
seo_category:
type: array
items:
type: string
email:
type: string
service_availability:
type: object
properties:
delivery:
type: string
enum:
- Y
- N
no_contact_delivery:
type: string
enum:
- Y
- N
in_store_pickup:
type: string
enum:
- Y
- N
curbside_pickup:
type: string
enum:
- Y
- N
appointments_only:
type: string
enum:
- Y
- N
closed_status:
type: string
enum:
- Unspecified
- Open
- Limited
- Temporary
- Permanent
closed_status_date:
type: string
format: date
payment_methods:
type: array
items:
type: string
enum:
- American Express
- Android Pay
- Apple Pay
- Cash
- Check
- Debit
- Diners Club
- Discover
- MasterCard
- PayPal
- Samsung Pay
- Store Card
- Travelers Checks
- Visa
- CCS
- Sodexo
- GoPay
- V PAY
- Financing
- Invoice
- PaySec
- Bitcoin
required:
- brands_carried
- call_tracking_number
- common_name
- deleted_flag
- images
- timezone
- work_number
- partner_id
- id
- city
- zip
- market_id
- twitter_url
- state
- company_name
- latitude
- foursquare_url
- service_area_business_flag
- address2
- tax_ids
- website
- rss_url
- updated
- description
- facebook_url
- fax_number
- short_description
- address
- youtube_url
- instagram_url
- key_person
- pinterest_url
- cell_number
- customer_identifier
- created
- linkedin_url
- longitude
- sales_person_id
- toll_free_number
- services_offered
- hours_of_operation
- landmark
- country
- tags
- seo_category
- email
- payment_methods
- service_availability
x-examples:
example-1:
brands_carried:
- Catan Studio
- Starling games
call_tracking_number:
- '18005555555'
common_name:
- KingMe
deleted_flag: false
contact_first_name: null
images:
logo: https://media-prod.apigateway.co/image/get/4d684615-b530-420f-b4b1-b82ebcee894e
primary: https://media-prod.apigateway.co/image/get/7533de51-4ef9-4f9d-b0b5-672145c7b5bb
timezone: America/Regina
work_number:
- +1 306-652-5464
partner_id: VNDR
id: AG-M3PB8CJP2J
city: Saskatoon
zip: S7M 0X6
market_id: default
twitter_url: https://www.twitter.com/kingme
state: SK
company_name: King Me Boardgamery and Cafe
latitude: 52.1259659
foursquare_url: https://www.foursquare.com/kingme
service_area_business_flag: false
address2: '42'
tax_ids:
- food
- restaurants:cafes
website: https://www.kingmeboardgamery.com/
rss_url: http://iamawesome.com
updated: Fri, 10 Sep 2021 19:49:53 -0000
description: Come and play boardgames with your friends while eating and drinking, and free popcorn
deleted: null
facebook_url: https://www.facebook.com/kingmeboardgamery/
fax_number: '1800343433258298'
short_description: Board game cafe
contact_email: null
address: 527 20th Street West
youtube_url: https://www.youtube.com/kingmeboardgamery
instagram_url: https://www.instagram.com/kingme
key_person: []
pinterest_url: https://www.pinterest.com/kingme
contact_last_name: null
cell_number: '3065555555'
customer_identifier: kingme-test
created: Fri, 17 Jan 2020 17:59:47 -0000
linkedin_url: https://www.linkedin.com/kingme
longitude: -106.6776856
sales_person_id: UID-d1985535-f7f2-4529-ab47-2932110c46fe
toll_free_number: '18004444444'
googleplus_url: null
services_offered:
- board games
- popcorn
hours_of_operation:
- closes: '22:00:00'
opens: '12:00:00'
day_of_week:
- Sunday
description: null
- closes: '23:00:00'
opens: '17:00:00'
day_of_week:
- Monday
description: null
- closes: '23:00:00'
opens: '17:00:00'
day_of_week:
- Tuesday
description: null
- closes: '23:00:00'
opens: '17:00:00'
day_of_week:
- Wednesday
description: null
- closes: 01:00:00
opens: '15:00:00'
day_of_week:
- Thursday
description: null
- closes: 01:00:00
opens: '15:00:00'
day_of_week:
- Friday
description: null
- closes: 01:00:00
opens: '10:00:00'
day_of_week:
- Saturday
description: null
- closes: null
opens: null
day_of_week:
- PublicHolidays
description: Open 24 hours
landmark: 20th Street
country: CA
pending_activation:
type: object
properties:
addon_id:
type: string
app_id:
type: string
business_id:
type: string
description: A unique ID that can be used to identify a business location. This is equivalent to the `account_id`. In legacy apis, it may be referred to as `accountId`, or `accountGroupId`.
activation_id:
type: string
created_date:
type: string
active_addon:
type: object
properties:
addon_id:
type: string
activation_id:
type: string
associated_user:
type: object
properties:
user_id:
type: string
requestBodies:
Body:
content:
application/json:
schema:
type: object
required:
- title
- files
properties:
title:
type:
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vendasta/refs/heads/main/openapi/vendasta-account-api-openapi.yml