Vendasta account API

The Account APIs allow you to perform actions against a single account that your application has been added to.

OpenAPI Specification

vendasta-account-api-openapi.yml Raw ↑
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