swagger: "2.0"
info:
  version: 0.0.1
  title: "sf-gate"
  description: "Customer Information Microservice"
  termsOfService: "http://taxnexus.net/terms/"
  contact:
    email: "noc@taxnexus.net"
  license:
    name: "Proprietary - Copyright (c) 2018-2021 by Taxnexus, Inc."
securityDefinitions:
  ApiKeyAuth:
    type: "apiKey"
    in: "header"
    name: "X-API-Key"
schemes:
  - "http"
basePath: "/v1"
host: "sf-gate.vernonkeenan.com:8080"
consumes:
  - "application/json"
produces:
  - "application/json"
parameters:
  accountIdQuery:
    description: Taxnexus Record Id of an Account
    in: query
    name: accountId
    required: false
    type: string
  accountRequest:
    description: A request with an array of Account Objects
    in: body
    name: accountRequest
    required: true
    schema:
      $ref: "#/definitions/AccountRequest"
  activeQuery:
    description: Only retrieve active records?
    in: query
    name: active
    required: false
    type: boolean
  apiKeyQuery:
    description: Taxnexus Id of the User to be retrieved
    in: query
    name: apikey
    required: false
    type: string
  clusterIdQuery:
    description: Taxnexus Record Id of a Cluster
    in: query
    name: clusterId
    required: false
    type: string
  clusterRequest:
    description: An array of Cluster records
    in: body
    name: ClusterRequest
    required: true
    schema:
      $ref: "#/definitions/ClusterRequest"
  contactIdQuery:
    description: Taxnexus Record Id of a Contact
    in: query
    name: contactId
    required: false
    type: string
  contactRequest:
    description: An array of new Contact records
    in: body
    name: contactRequest
    required: true
    schema:
      $ref: "#/definitions/ContactRequest"
  contractIdQuery:
    description: Taxnexus Contact record ID
    in: query
    name: contractId
    required: false
    type: string
  contractRequest:
    description: An array of new Contract records
    in: body
    name: contractsRequest
    required: true
    schema:
      $ref: "#/definitions/ContractRequest"
  databaseRequest:
    description: An array of Database records
    in: body
    name: DatabaseRequest
    required: true
    schema:
      $ref: "#/definitions/DatabaseRequest"
  databaseIdQuery:
    description: Taxnexus Record Id of a Database
    in: query
    name: databaseId
    required: false
    type: string
  emailQuery:
    description: Email address used for identity lookup
    in: query
    name: email
    required: false
    type: string
  limitQuery:
    description: "How many objects to return at one time"
    format: int64
    in: query
    name: limit
    required: false
    type: integer
  nameQuery:
    description: The Name of this Object
    in: query
    name: name
    required: false
    type: string
  offsetQuery:
    description: How many objects to skip?
    format: int64
    in: query
    name: offset
    required: false
    type: integer
  roleIdQuery:
    description: Taxnexus Id of the Role to be retrieved
    in: query
    name: roleId
    required: false
    type: string
  templateIdQuery:
    description: Taxnexus Record Id of a Template
    in: query
    name: templateId
    required: false
    type: string
  tenantIdQuery:
    description: Taxnexus Record Id of a Tenant
    in: query
    name: tenantId
    required: false
    type: string
  tenantRequest:
    description: An array of Tenant records
    in: body
    name: CTenantRequest
    required: true
    schema:
      $ref: "#/definitions/TenantRequest"
  userIdQuery:
    description: Taxnexus Id of the User to be retrieved
    in: query
    name: userId
    required: false
    type: string
responses:
  AccessForbidden:
    description: "Access forbidden, account lacks access"
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  AccountResponse:
    description: Taxnexus Response with Account objects with Contacts
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/AccountResponse"
  ClusterResponse:
    description: Taxnexus Response with Cluster objects
    schema:
      $ref: "#/definitions/ClusterResponse"
  ContactResponse:
    description: Taxnexus Response with Contact objects
    schema:
      $ref: "#/definitions/ContactResponse"
  ContractResponse:
    description: Taxnexus Response with an array of Contract objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/ContractResponse"
  DatabaseResponse:
    description: Taxnexus Response with Database objects
    schema:
      $ref: "#/definitions/DatabaseResponse"
  DeleteResponse:
    description:
      Taxnexus Response with Message Objects with Delete Status
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/DeleteResponse"
  InvalidDataError:
    headers:
      Access-Control-Allow-Origin:
        type: string
    description: Invalid data was sent
    schema:
      $ref: "#/definitions/InvalidError"
  NotFound:
    description: Resource was not found
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  RoleResponse:
    description: Taxnexus Response with Role objects
    schema:
      $ref: "#/definitions/RoleResponse"
  ServerError:
    description: Server Internal Error
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  TemplateResponse:
    description: Taxnexus Response with Template objects
    schema:
      $ref: "#/definitions/TemplateResponse"
  TenantResponse:
    description: Taxnexus Response with Tenant objects
    schema:
      $ref: "#/definitions/TenantResponse"
  Unauthorized:
    description: "Access unauthorized, invalid API-KEY was used"
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  UnprocessableEntity:
    description: "Unprocessable Entity, likely a bad parameter"
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  UserResponse:
    description: Taxnexus Response with User objects
    schema:
      $ref: "#/definitions/UserResponse"
paths:
  /accounts:
    delete:
      description: Delete Taxnexus Account record
      operationId: deleteAccount
      parameters:
        - $ref: "#/parameters/accountIdQuery"
      responses:
        "200":
          $ref: "#/responses/DeleteResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Delete An Account
      tags:
        - Accounts
    get:
      description: Return a list of all available Accounts
      operationId: getAccounts
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/nameQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/emailQuery"
      responses:
        "200":
          $ref: "#/responses/AccountResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a list of accounts
      tags:
        - Accounts
    post:
      description: Account record to be added
      operationId: postAccounts
      parameters:
        - $ref: "#/parameters/accountRequest"
      responses:
        "200":
          $ref: "#/responses/AccountResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new account to Taxnexus
      tags:
        - Accounts
    put:
      description: Update a single account specified by accountId
      operationId: putAccount
      parameters:
        - $ref: "#/parameters/accountRequest"
      responses:
        "200":
          $ref: "#/responses/AccountResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update a single account
      tags:
        - Accounts
  /clusters:
    get:
      description: Return a list of Cluster records from the datastore
      operationId: getClusters
      parameters:
        - $ref: "#/parameters/clusterIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/ClusterResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a list Clusters
      tags:
        - Clusters
    post:
      description: Create Clusters in Taxnexus
      operationId: postClusters
      parameters:
        - $ref: "#/parameters/clusterRequest"
      responses:
        "200":
          $ref: "#/responses/ClusterResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Create new Clusters
      tags:
        - Clusters
    put:
      description: Update Cluster in Taxnexus
      operationId: putClusters
      parameters:
        - $ref: "#/parameters/clusterRequest"
      responses:
        "200":
          $ref: "#/responses/ClusterResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Clusters
      tags:
        - Clusters
  /contacts:
    get:
      description: Retrieve Contact records from the datastore
      operationId: getContacts
      parameters:
        - $ref: "#/parameters/contactIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/nameQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/emailQuery"
      responses:
        "200":
          $ref: "#/responses/ContactResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a Contact record
      tags:
        - Contacts
    post:
      description: Contacts record to be added
      operationId: postContacts
      parameters:
        - $ref: "#/parameters/contactRequest"
      responses:
        "200":
          $ref: "#/responses/ContactResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new Contacts to Taxnexus
      tags:
        - Contacts
  /contracts:
    get:
      description: Return a list of all available Contracts
      operationId: getContracts
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/contractIdQuery"
      responses:
        "200":
          $ref: "#/responses/ContractResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get a list of contracts
      tags:
        - Contracts
    post:
      description: Contract record to be added
      operationId: postContracts
      parameters:
        - $ref: "#/parameters/contractRequest"
      responses:
        "200":
          $ref: "#/responses/ContractResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add a new contract to Taxnexus
      tags:
        - Contracts
  /roles:
    get:
      description: Return a list of Roles
      operationId: getRoles
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/roleIdQuery"
      responses:
        "200":
          $ref: "#/responses/RoleResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Get a list of Roles
      security:
        - ApiKeyAuth: []
      tags:
        - Roles
  /templates:
    get:
      description:
        "Returns the PDF rendering template, or a link to where to get
        the template"
      operationId: getTemplates
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/templateIdQuery"
      responses:
        "200":
          $ref: "#/responses/TemplateResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Get PDF Rendering Templates
      security:
        - ApiKeyAuth: []
      tags:
        - Templates
  /tenants:
    get:
      description: Return a list of Tenant records from the datastore
      operationId: getTenants
      parameters:
        - $ref: "#/parameters/tenantIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/TenantResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Get a list Tenants
      security:
        - ApiKeyAuth: []
      tags:
        - Tenants
    post:
      description: Create Tenants in Taxnexus
      operationId: Tenants
      parameters:
        - $ref: "#/parameters/tenantRequest"
      responses:
        "200":
          $ref: "#/responses/TenantResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Create new Tenants
      tags:
        - Tenants
    put:
      description: Update Tenant in Taxnexus
      operationId: putTenants
      parameters:
        - $ref: "#/parameters/tenantRequest"
      responses:
        "200":
          $ref: "#/responses/TenantResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Update Tenants
      security:
        - ApiKeyAuth: []
      tags:
        - Tenants
  /databases:
    get:
      description: Return a list of Database records from the datastore
      operationId: getDatabases
      parameters:
        - $ref: "#/parameters/databaseIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/DatabaseResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Get a list Databases
      security:
        - ApiKeyAuth: []
      tags:
        - Databases
    post:
      description: Create Databases in Taxnexus
      operationId: postDatabases
      parameters:
        - $ref: "#/parameters/databaseRequest"
      responses:
        "200":
          $ref: "#/responses/DatabaseResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Create new Databases
      security:
        - ApiKeyAuth: []
      tags:
        - Databases
    put:
      description: Update Database in Taxnexus
      operationId: putDatabases
      parameters:
        - $ref: "#/parameters/databaseRequest"
      responses:
        "200":
          $ref: "#/responses/DatabaseResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Update Databases
      security:
        - ApiKeyAuth: []
      tags:
        - Databases
  /users:
    get:
      description: Return a list of User records from the datastore
      operationId: getUsers
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/userIdQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/apiKeyQuery"
      responses:
        "200":
          $ref: "#/responses/UserResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Get a list Users
      security:
        - ApiKeyAuth: []
      tags:
        - Users
definitions:
  Account:
    properties:
      tenantid:
        description: tenant identifier
        type: string
      accountnumber:
        description: Account Number
        type: string
      accountsource:
        description: The marketing orgin of this account
        type: string
      active:
        description: Active
        type: boolean
      administrativelevel:
        description:
          "For tax authorities, this account's administrative level,
          e.g. Local, County, State or Federal"
        type: string
      amount:
        description: Rollup Tax Amount
        type: number
      amountinvoiced:
        description: Amount Invoiced
        type: number
      amountpaid:
        description: Amount Paid
        type: number
      annualrevenue:
        description: Annual Revenue Estimate
        format: double
        type: number
      balance:
        description: Account Balance
        type: number
      billingaddress:
        $ref: "#/definitions/Address"
      billingcontactid:
        description: Contact ID
        type: string
      billingpreference:
        description: Billing Preference
        type: string
      businessaddress:
        $ref: "#/definitions/Address"
      cannabiscustomer:
        type: boolean
        description: Is this a cannabis customer?
      channelprogramlevelname:
        description: Channel Program Level Name
        type: string
      channelprogramname:
        description: Channel Program Name
        type: string
      clientenddate:
        description: Client End Date
        type: string
      clientstartdate:
        description: Client Start Date
        type: string
      companyid:
        description: The Company ID of this Account
        type: string
      coordinateid:
        description: The Id of the geo coordinates of this account
        type: string
      createdbyid:
        description: Created By User ID
        type: string
      createddate:
        description: Created Date
        type: string
      customerid:
        description: Customer ID from source system
        type: string
      customerpriority:
        description: Customer Priority
        type: string
      dandbcompanyid:
        description: D-n-B Company
        type: string
      dba:
        description: This Account's 'Doing Business As' name
        type: string
      defaultaddress:
        $ref: "#/definitions/Address"
      defaultbackendid:
        description: Default Backend ID
        type: string
      defaultdeliverycontactid:
        description: Default Delivery Address Contact ID
        type: string
      defaultenduserid:
        description: Default End User Contact ID
        type: string
      description:
        description: Description
        type: string
      dunsnumber:
        description: D-U-N-S Number
        type: string
      ein:
        description: EIN
        type: string
      email:
        description: Main Account Email
        type: string
      enrollmentstatus:
        description: Enrollment Status
        type: string
      fax:
        description: Fax
        type: string
      id:
        description: Taxnexus Account Id
        type: string
      industry:
        description: Industry
        type: string
      iscustomerportal:
        description: Customer Portal Account
        type: boolean
      ispartner:
        description: Partner Account
        type: boolean
      ispcustomer:
        description: ISP Customer?
        type: boolean
      jigsaw:
        description: Data.com Key
        type: string
      lastmodifiedbyid:
        description: Last Modified By User ID
        type: string
      lastmodifieddate:
        description: Last Modified Date
        type: string
      mspcustomer:
        description: MSP Customer?
        type: boolean
      naicscode:
        description: NAICS Code
        type: string
      naicsdesc:
        description: NAICS Description
        type: string
      name:
        description: Account Name
        type: string
      numberofemployees:
        description: Employee Count Estimate
        type: number
        format: int64
      numberoflocations:
        description: Number of Locations Estimate
        type: number
        format: int64
      opencharges:
        description: Open Charges
        type: number
      ordercontactid:
        description: Vendor Order Contact ID
        type: string
      orderemail:
        description: Order Email
        type: string
      ownerid:
        description: Account Owner User ID
        type: string
      ownership:
        description: Ownership
        type: string
      parentfk:
        description: Parent Foreign Key
        type: string
      parentid:
        description: Parent Account
        type: string
      phone:
        description: Phone
        type: string
      placeid:
        description:
          The ID of the Place situs record that applies to this Account
        type: string
      preparerid:
        description: Tax Preparer Contact ID
        type: string
      rating:
        description: Rating
        type: string
      ratingengineid:
        description: Rating Engine identifier
        type: string
      ref:
        description: External Reference ID
        type: string
      revenuebase:
        description: Rollup Revenue Base
        type: number
      revenuenet:
        description: Rollup Revenue Net
        type: number
      revenuenottaxable:
        description: Rollup Revenue Not Taxable
        type: number
      shippingaddress:
        $ref: "#/definitions/Address"
      shippingcensustract:
        description: Shipping Census Tract
        type: string
      shippingcounty:
        description: Shipping County
        type: string
      shippingcontactid:
        description: Shipping Contact ID
        type: string
      sic:
        description: SIC Code
        type: string
      sicdesc:
        description: SIC Description
        type: string
      site:
        description: Account Site
        type: string
      status:
        description: Account Status
        type: string
      taxexemption:
        description: Tax Exemption
        type: string
      taxontax:
        description: Rollup Tax On Tax
        type: number
      telecomcustomer:
        description: Telecom Customer?
        type: boolean
      tickersymbol:
        description: Ticker Symbol
        type: string
      tradestyle:
        description: Tradestyle
        type: string
      type:
        description: Type
        type: string
      unappliedpayments:
        description: Unapplied Payments
        type: number
      unitbase:
        description: Rollup Unit Base
        type: number
      upsellopportunity:
        description: Upsell Opportunity
        type: string
      website:
        description: Website
        type: string
      whmcsclientid:
        description: WHMCS Client ID
        type: number
        format: int64
      xerocontactid:
        description: Xero Contact ID
        type: string
      yearstarted:
        description: Year Started
        type: string
    type: object
  AccountRequest:
    properties:
      data:
        items:
          $ref: "#/definitions/Account"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    type: object
  AccountResponse:
    description: An array of Account objects
    properties:
      data:
        items:
          $ref: "#/definitions/Account"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Address:
    properties:
      city:
        description: City
        type: string
      country:
        description: Country full name
        type: string
      countrycode:
        description: Country Code
        type: string
      postalcode:
        description: Postal Code
        type: string
      state:
        description: State full name
        type: string
      statecode:
        description: State Code
        type: string
      street:
        description: Street number and name
        type: string
    required:
      - city
      - statecode
    type: object
  Cluster:
    type: object
    properties:
      id:
        type: string
        description: Taxnexus Record Id
      name:
        type: string
        description: Cluster Name
      createdbyid:
        type: string
        description: Created By
      createddate:
        type: string
        description: Created Date
      description:
        type: string
        description: Description
      environment:
        type: string
        description: Environment
      ref:
        type: string
        description: External Reference
      gateway:
        type: string
        description: Gateway
      ip_address:
        type: string
        description: IP Address
      lastmodifiedbyid:
        type: string
        description: Last Modified By
      lastmodifieddate:
        type: string
        description: Last Modified Date
      ownerid:
        type: string
        description: Owner
      status:
        type: string
        description: Status
      subnet:
        type: string
        description: Subnet
      tenantid:
        type: string
        description: tenantid
      type:
        type: string
        description: Type
      zone:
        type: string
        description: Zone
  ClusterRequest:
    properties:
      data:
        items:
          $ref: "#/definitions/Cluster"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    required:
      - meta
      - data
    type: object
  ClusterResponse:
    description: An array of cluster objects
    properties:
      data:
        items:
          $ref: "#/definitions/Cluster"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Contact:
    properties:
      tenantid:
        description: tenant identifier
        type: string
      accountid:
        description: The primary account ID of this contact
        type: string
      assistantname:
        description: Assistant Name
        type: string
      assistantphone:
        description: Asst. Phone
        type: string
      birthdate:
        description: Birthdate
        type: string
      createdbyid:
        description: Created By User ID
        type: string
      createddate:
        description: Created Date
        type: string
      department:
        description: Department
        type: string
      description:
        description: Description
        type: string
      donotcall:
        description: Do Not Call?
        type: boolean
      email:
        description: Email address
        type: string
      emailbounceddate:
        description: Email Bounce Date
        type: string
      emailbouncedreason:
        description: Email Bounce Reason
        type: string
      enrollmentstatus:
        description: Taxnexus Enrollment Status
        type: string
      fax:
        description: Fax Number
        type: string
      firstname:
        description: First Name
        type: string
      hasoptedoutofemail:
        description: Email Opt Out
        type: boolean
      hasoptedoutoffax:
        description: Fax Opt Out
        type: boolean
      homephone:
        description: Home Phone
        type: string
      id:
        description: Taxnexus Record Id
        type: string
      isemailbounced:
        description: Does this contact have bounced emails?
        type: boolean
      isprovisioned:
        description: Is Provisioned?
        type: boolean
      lastmodifiedbyid:
        description: Last Modified By User ID
        type: string
      lastmodifieddate:
        description: Last Modified Date
        type: string
      lastname:
        description: Last Name
        type: string
      leadsource:
        description: Lead Source
        type: string
      level:
        description: Level
        type: string
      linkedin:
        description: LinkedIn Page
        type: string
      mailingaddress:
        $ref: "#/definitions/Address"
      mailinglists:
        description: Mailing Lists
        type: string
      mobilephone:
        description: Mobile Phone
        type: string
      name:
        description: Full Name
        type: string
      otheraddress:
        $ref: "#/definitions/Address"
      otherphone:
        description: Other Phone
        type: string
      ownerid:
        description: The User ID of the user who owns this Contact
        type: string
      personalemail:
        description: Personal Email Address for this Contact
        type: string
      phone:
        description: Phone Number
        type: string
      photourl:
        description: URL of a photograph of this User
        type: string
      recruitingstatus:
        description: Recruiting Status
        type: string
      ref:
        description: "External reference to this contact, if any"
        type: string
      reportstoid:
        description: Reports To Contact ID
        type: string
      salutation:
        description: Contact Salutation
        type: string
      status:
        description: The Contact Status
        type: string
      title:
        description: Contact Title
        type: string
      type:
        description: Contact Type
        type: string
    type: object
  ContactRequest:
    properties:
      data:
        items:
          $ref: "#/definitions/Contact"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    required:
      - meta
      - data
    type: object
  ContactResponse:
    properties:
      data:
        items:
          $ref: "#/definitions/Contact"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Contract:
    type: object
    properties:
      AccountID:
        description: Account
        type: string
      ActivatedByID:
        description: Activated By
        type: string
      ActivatedDate:
        description: Activated Date
        type: string
      BillingAddress:
        $ref: "#/definitions/Address"
        description: Billing Address
      BillingContactID:
        description: Billing Contact
        type: string
      CompanySignedDate:
        description: Company Signed Date
        type: string
      CompanySignedID:
        description: Company Signed By
        type: string
      ContractNumber:
        description: Contract Number
        type: string
      ContractTerm:
        description: Contract Term (months)
        type: number
      CreatedByID:
        description: Created By User ID
        type: string
      CreatedDate:
        description: Created Date
        type: string
      CustomerSignedDate:
        description: Customer Signed Date
        type: string
      CustomerSignedID:
        description: Customer Signed By
        type: string
      CustomerSignedTitle:
        description: Customer Signed Title
        type: string
      DefaultEndUserID:
        description: End User
        type: string
      Description:
        description: Description
        type: string
      EndDate:
        description: Contract End Date
        type: string
      HourlyRate:
        description: Hourly Rate
        type: number
      ID:
        description: Telnexus Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      Name:
        description: Contract Name
        type: string
      PaymentMethodID:
        description: Payment Method
        type: string
      PaymentTerms:
        description: Payment Terms
        type: string
      Perpetual:
        description: Perpetual Agreement?
        type: boolean
      ShippingAddress:
        $ref: "#/definitions/Address"
        description: Shipping Address
      ShippingContactID:
        description: Shipping Contact
        type: string
      StartDate:
        description: Contract Start Date
        type: string
      Status:
        description: Status
        type: string
      TenantID:
        description: Tenant Identifier
        type: string
  ContractRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Contract"
        type: array
    type: object
  ContractResponse:
    properties:
      Data:
        items:
          $ref: "#/definitions/Contract"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Database:
    type: object
    description: A Database provisioned and owned by a Tenant
    properties:
      active:
        description: Is this database active?
        type: boolean
      clusterid:
        description:
          The ID of the Cluster in which this database is deployed
        type: string
      createdbyid:
        description: Created By
        type: string
      createddate:
        description: Created Date
        type: string
      databasename:
        description: The name of the physical database in the cluster
        type: string
      dsn:
        description: Database connection string
        type: string
      id:
        description: Record Id
        type: string
      lastmodifiedbyid:
        description: Last Modified By
        type: string
      lastmodifieddate:
        description: Last Modifed Date
        type: string
      microservices:
        description:
          List of Taxnexus microservices implemented by this Database
        type: string
      status:
        description: The current status of this Tenant
        type: string
      tenantid:
        description: The ID of the tenant who owns this Database
        type: string
      type:
        description: "The type of Database (mysql, etc)"
        type: string
  DatabaseRequest:
    description: An array of Database objects
    properties:
      data:
        items:
          $ref: "#/definitions/Database"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    type: object
  DatabaseResponse:
    description: An array of Database objects
    properties:
      data:
        items:
          $ref: "#/definitions/Database"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  DeleteResponse:
    properties:
      Data:
        items:
          $ref: "#/definitions/Message"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Error:
    properties:
      Code:
        format: int64
        type: integer
      Fields:
        type: string
      Message:
        type: string
    type: object
  InvalidError:
    allOf:
      - $ref: "#/definitions/Error"
      - properties:
          details:
            items:
              type: string
            type: array
        type: object
  Message:
    properties:
      message:
        type: string
      ref:
        type: string
      status:
        format: int64
        type: number
    type: object
  Pagination:
    properties:
      limit:
        format: int64
        type: number
      pagesize:
        format: int64
        type: number
      poffset:
        format: int64
        type: integer
      setsize:
        format: int64
        type: number
    type: object
  RequestMeta:
    properties:
      TaxnexusAccount:
        description: Taxnexus Account Number of the Reseller or OEM
        type: string
    required:
      - TaxnexusAccount
    type: object
  ResponseMeta:
    properties:
      Contact:
        description: Microservice Contact Info
        type: string
      Copyright:
        description: Copyright Info
        type: string
      License:
        description: License Information and Restrictions
        type: string
      OperationID:
        description: Operation ID
        type: string
      Pagination:
        $ref: "#/definitions/Pagination"
      RequestIP:
        description: Request IP Address
        type: string
      RequestType:
        description: Request Type
        type: string
      RequestURL:
        description: Request URL
        type: string
      ServerInfo:
        description: Data Server Info
        type: string
      ServerResponseTime:
        description: Data Server Response Time (ms)
        type: string
      ServerTimestamp:
        description: Backend Server Timestamp
        type: string
      TaxnexusAccount:
        description:
          Taxnexus Account Number used for recording transactions
        type: string
    type: object
  TenantRequest:
    description: An array of Tenant objects
    properties:
      data:
        items:
          $ref: "#/definitions/Tenant"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    type: object
  TenantResponse:
    description: An array of Tenant objects
    properties:
      data:
        items:
          $ref: "#/definitions/Tenant"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  TenantUser:
    description: Relationship object that connects users to a tenant
    type: object
    properties:
      accesslevel:
        type: string
        description: The Tenant access level for this User
      tenantid:
        type: string
        description: The Tenant ID
      userid:
        type: string
        description: The User ID
  Role:
    type: object
    description: A functional role within a Tenant
    properties:
      id:
        type: string
        description: record id
      auth0roleid:
        description: the corresponding auth0 role
        type: string
      createdbyid:
        type: string
        description: created by
      createddate:
        type: string
        description: created date
      description:
        type: string
        description: role description
      lastmodifiedbyid:
        type: string
        description: last modified by
      lastmodifieddate:
        type: string
        description: last modifed date
      rolename:
        type: string
        description: the name of this role
      tenantid:
        type: string
        description: the id of the tenant that owns this role
  RoleRequest:
    description: An array of Role objects
    properties:
      data:
        items:
          $ref: "#/definitions/Role"
        type: array
      meta:
        $ref: "#/definitions/RequestMeta"
    type: object
  RoleResponse:
    description: An array of Role objects
    properties:
      data:
        items:
          $ref: "#/definitions/Role"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Template:
    properties:
      tenantid:
        description: tenant identifier
        type: string
      CompanyID:
        description: Company
        type: string
      CreatedByID:
        type: string
      CreatedDate:
        type: string
      Description:
        description: Description
        type: string
      HTML:
        description: HTML Body
        type: string
        format: byte
      ID:
        description: Taxnexus Record Id
        type: string
      IsActive:
        description: Active?
        type: boolean
      IsMaster:
        description: Master Template?
        type: boolean
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
      Name:
        description: Template Name
        type: string
      ObjectType:
        description: Object
        type: string
      RecordTypeName:
        description: Record Type Name
        type: string
      Type:
        description: Type
        type: string
      URL:
        description: URL
        type: string
    type: object
  TemplateResponse:
    properties:
      data:
        items:
          $ref: "#/definitions/Template"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Tenant:
    type: object
    description: Taxnexus Account Tenant
    properties:
      id:
        type: string
        description: Record Id
      accountid:
        type: string
        description: The Account that owns this Tenant
      active:
        type: boolean
        description: Is this Tenant currently active?
      createdbyid:
        type: string
        description: Created By
      createddate:
        type: string
        description: Created Date
      lastmodifiedbyid:
        type: string
        description: Last Modified By
      lastmodifieddate:
        type: string
        description: Last Modifed Date
      status:
        type: string
        description: The current status of this Tenant
      tenantname:
        type: string
        description: Name of the Tenant Resource
      type:
        type: string
        description: Type of tenant
      version:
        type: string
        description:
          The version number of the Tenant Onboarding system used to
          create this tenant
      databases:
        items:
          $ref: "#/definitions/Database"
        type: array
      roles:
        items:
          $ref: "#/definitions/Role"
        type: array
      tenantusers:
        items:
          $ref: "#/definitions/TenantUser"
        type: array
  User:
    properties:
      tenantid:
        type: string
      aboutme:
        description: About Me
        type: string
      accountid:
        description: Account ID
        type: string
      address:
        $ref: "#/definitions/Address"
      alias:
        description: Alias
        type: string
      apikey:
        description: API Key
        type: string
      auth0userid:
        description: Auth0 User ID
        type: string
      communitynickname:
        description: Nickname
        type: string
      companyname:
        description: Company Name
        type: string
      contactid:
        description: Contact
        type: string
      createdbyid:
        description: Created User ID
        type: string
      createddate:
        description: Date Created
        type: string
      delegatedapproverid:
        description: Delegated Approver
        type: string
      department:
        description: Department
        type: string
      division:
        description: Division
        type: string
      email:
        description: Email address
        type: string
      employeenumber:
        description: Employee Number
        type: string
      endday:
        description: Time day ends
        type: string
      environment:
        description: Environment
        type: string
      extension:
        description: Extension
        type: string
      fabricapikey:
        description: Fabric API Key
        type: string
      fax:
        description: Fax
        type: string
      firstname:
        description: The first name
        type: string
      forecastenabled:
        description: Allow Forecasting
        type: boolean
      fullphotourl:
        description: Full Photo URL
        type: string
      id:
        description: Taxnexus ID
        type: string
      isactive:
        description: Active
        type: boolean
      isportalenabled:
        description: Is the user enabled for Communities?
        type: boolean
      isprofilephotoactive:
        description: Has Profile Photo
        type: boolean
      issystemcontrolled:
        type: boolean
      lastip:
        description: ip address of last login
        type: string
      lastlogin:
        description: last login time
        type: string
      lastmodifiedbyid:
        description: Last Modified User ID
        type: string
      lastmodifieddate:
        description: Last Modified Date
        type: string
      lastname:
        description: The Last Name
        type: string
      logincount:
        description: number of times user has logged in
        format: int64
        type: number
      managerid:
        description: Manager
        type: string
      mobilephone:
        description: Mobile
        type: string
      name:
        description: Name
        type: string
      outofofficemessage:
        description: Out of office message
        type: string
      phone:
        description: Phone
        type: string
      portalrole:
        description: Portal Role Level
        type: string
      profileid:
        description: Profile
        type: string
      receivesadmininfoemails:
        description: Admin Info Emails
        type: boolean
      receivesinfoemails:
        description: Info Emails
        type: boolean
      senderemail:
        description: Email Sender Address
        type: string
      sendername:
        description: Email Sender Name
        type: string
      signature:
        description: Email Signature
        type: string
      smallphotourl:
        description: Small Photo URL
        type: string
      startday:
        description: The time day starts
        type: string
      taxnexusaccount:
        description: Taxnexus Account
        type: string
      timezonesidkey:
        description: Time Zone
        type: string
      title:
        description: Title
        type: string
      username:
        description: Username
        type: string
      userroleid:
        description: Role
        type: string
      usertype:
        description: User Type
        type: string
      userroles:
        items:
          $ref: "#/definitions/UserRole"
        type: array
      tenantusers:
        items:
          $ref: "#/definitions/TenantUser"
        type: array
    type: object
  UserResponse:
    description: An array of Print-Ready ingest Objects
    properties:
      data:
        items:
          $ref: "#/definitions/User"
        type: array
      meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  UserRole:
    description: Relationship object that connects user to a role
    type: object
    properties:
      description:
        type: string
        description: Role description
      roleid:
        type: string
        description: The Role ID
      userid:
        type: string
        description: The User ID
      name:
        type: string
        description: Role Name
      auth0roleid:
        type: string
        description: Linked role ID
