swagger: "2.0"
info:
  version: 1.3.0
  title: "crm"
  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:
  - "https"
basePath: "/v1"
host: "gw.tnxs.net/crm"
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: An array of new Account records
    in: body
    name: accountRequest
    required: true
    schema:
      $ref: "#/definitions/AccountRequest"
  activeQuery:
    description: Only retrieve active records?
    in: query
    name: active
    required: false
    type: boolean
  companyIdQuery:
    description: Taxnexus Company record ID
    in: query
    name: companyId
    required: false
    type: string
  leadIdQuery:
    description: Taxnexus Lead record ID
    in: query
    name: leadId
    required: false
    type: string
  contactIdQuery:
    description: Taxnexus Contact record ID
    in: query
    name: contactId
    required: false
    type: string
  emailQuery:
    description: Email address used for identity lookup
    in: query
    name: email
    required: false
    type: string
  contactRequest:
    description: An array of new Contact records
    in: body
    name: contactsRequest
    required: true
    schema:
      $ref: "#/definitions/ContactRequest"
  leadRequest:
    description: An array of new Lead records
    in: body
    name: leadRequest
    required: true
    schema:
      $ref: "#/definitions/LeadRequest"
  companyRequest:
    description: An array of new Contact records
    in: body
    name: companiesRequest
    required: true
    schema:
      $ref: "#/definitions/CompanyRequest"
  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
  typeQuery:
    description: The Type of this Object
    in: query
    name: type
    required: false
    type: string
responses:
  AccessForbidden:
    description: "Access forbidden, account lacks access"
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  AccountBasicResponse:
    description: Taxnexus Response with Account objects with Contacts
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/AccountBasicResponse"
  AccountResponse:
    description: Taxnexus Response with Account objects with Contacts
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/AccountResponse"
  AccountObservableResponse:
    description: Taxnexus Response with an array of Account objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      items:
        $ref: "#/definitions/Account"
      type: array
  CompanyResponse:
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    description: Taxnexus Response with Company objects
    schema:
      $ref: "#/definitions/CompanyResponse"
  CompanyObservableResponse:
    description: Taxnexus Response with an array of Company objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      items:
        $ref: "#/definitions/Company"
      type: array
  Conflict:
    description: Conflict
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  ContactResponse:
    description: Taxnexus Response with an array of Contact objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/ContactResponse"
  ContactObservableResponse:
    description: Taxnexus Response with an array of Contact objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      items:
        $ref: "#/definitions/Contact"
      type: array
  LeadResponse:
    description: Taxnexus Response with an array of Lead objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/LeadResponse"
  LeadObservableResponse:
    description: Taxnexus Response with an array of Lead objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      items:
        $ref: "#/definitions/Lead"
      type: array
  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"
  ServerError:
    description: Server Internal Error
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  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"
  CORSResponse:
    description: CORS OPTIONS response
    headers:
      Access-Control-Allow-Origin:
        type: string
      Access-Control-Allow-Headers:
        type: string
      Access-Control-Allow-Methods:
        type: string
      Access-Control-Expose-Headers:
        type: string
      Access-Control-Max-Age:
        type: string
      Access-Control-Allow-Credentials:
        type: string
      Cache-Control:
        type: string
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
    options:
      description: CORS support
      operationId: accountOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    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
  /accounts/observable:
    get:
      description: A list of accounts in a simple JSON array
      operationId: getAccountsObservable
      parameters:
        - $ref: "#/parameters/nameQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/emailQuery"
      responses:
        "200":
          $ref: "#/responses/AccountObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Taxnexus Accounts in an observable array
      tags:
        - Accounts
    options:
      description: CORS support
      operationId: accountOptionsObservable
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  /companies:
    get:
      description: Retrieve Company records from the datastore
      operationId: getCompanies
      parameters:
        - $ref: "#/parameters/companyIdQuery"
      responses:
        "200":
          $ref: "#/responses/CompanyResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Company records
      tags:
        - Companies
    options:
      description: CORS support
      operationId: companyOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Add new companies
      operationId: postCompanies
      parameters:
        - $ref: "#/parameters/companyRequest"
      responses:
        "200":
          $ref: "#/responses/CompanyResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add new companies
      tags:
        - Companies
  /companies/observable:
    get:
      description: A list of companies in a simple JSON array
      operationId: getCompaniesObservable
      parameters:
        - $ref: "#/parameters/companyIdQuery"
      responses:
        "200":
          $ref: "#/responses/CompanyObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Taxnexus Companies in an observable array
      tags:
        - Companies
    options:
      description: CORS support
      operationId: companyObservableOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  /contacts:
    delete:
      description: Delete Taxnexus Contact record
      operationId: deleteContact
      parameters:
        - $ref: "#/parameters/contactIdQuery"
      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 a Contact
      tags:
        - Contacts
    get:
      description: Return a list of all available Contacts
      operationId: getContacts
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/contactIdQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/emailQuery"
        - $ref: "#/parameters/nameQuery"
      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 list of contacts
      tags:
        - Contacts
    options:
      description: CORS support
      operationId: contactOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Contact 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"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add new contacts
      tags:
        - Contacts
    put:
      description: Update Contact records
      operationId: putContacts
      parameters:
        - $ref: "#/parameters/contactRequest"
      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: Update Contact
      tags:
        - Contacts
  /contacts/observable:
    get:
      description: A list of contacts in a simple JSON array
      operationId: getContactsObservable
      parameters:
        - $ref: "#/parameters/contactIdQuery"
        - $ref: "#/parameters/activeQuery"
        - $ref: "#/parameters/emailQuery"
        - $ref: "#/parameters/nameQuery"
      responses:
        "200":
          $ref: "#/responses/ContactObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Taxnexus Contacts in an observable array
      tags:
        - Contacts
    options:
      description: CORS support
      operationId: contactOptionsObservable
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  /leads:
    delete:
      description: Delete Taxnexus Lead record
      operationId: deleteLead
      parameters:
        - $ref: "#/parameters/leadIdQuery"
      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 a Contact
      tags:
        - Leads
    get:
      description: Return a list of all available Leads
      operationId: getLeads
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/leadIdQuery"
        - $ref: "#/parameters/emailQuery"
        - $ref: "#/parameters/nameQuery"
      responses:
        "200":
          $ref: "#/responses/LeadResponse"
        "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 contacts
      tags:
        - Leads
    options:
      description: CORS support
      operationId: leadOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Lead records to be added
      operationId: postLeads
      parameters:
        - $ref: "#/parameters/leadRequest"
      responses:
        "200":
          $ref: "#/responses/LeadResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add new Leads
      tags:
        - Leads
    put:
      description: Update Lead records
      operationId: putLeads
      parameters:
        - $ref: "#/parameters/leadRequest"
      responses:
        "200":
          $ref: "#/responses/LeadResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Leads
      tags:
        - Leads
  /leads/observable:
    get:
      description: A list of leads in a simple JSON array
      operationId: getLeadsObservable
      parameters:
        - $ref: "#/parameters/leadIdQuery"
        - $ref: "#/parameters/emailQuery"
        - $ref: "#/parameters/nameQuery"
      responses:
        "200":
          $ref: "#/responses/LeadObservableResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Get Taxnexus Leads in an observable array
      tags:
        - Leads
    options:
      description: CORS support
      operationId: leadOptionsObservable
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
definitions:
  Account:
    properties:
      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
        format: double
        type: number
      AmountInvoiced:
        description: Amount Invoiced
        format: double
        type: number
      AmountPaid:
        description: Amount Paid
        format: double
        type: number
      AnnualRevenue:
        description: Annual Revenue Estimate
        format: double
        type: number
      Balance:
        description: Account Balance
        format: double
        type: number
      BillingAddress:
        $ref: "#/definitions/Address"
      BillingContactID:
        description: Contact ID
        type: string
      BillingPreference:
        description: Billing Preference
        type: string
      BusinessAddress:
        $ref: "#/definitions/Address"
      CannabisCustomer:
        description: Is this a cannabis customer?
        type: boolean
      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
      DBA:
        description: This Account's 'Doing Business As' name
        type: string
      DUNSNumber:
        description: D-U-N-S Number
        type: string
      DandBCompanyID:
        description: D-n-B Company
        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
      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
      ISPCustomer:
        description: ISP Customer?
        type: boolean
      Industry:
        description: Industry
        type: string
      IsCustomerPortal:
        description: Customer Portal Account
        type: boolean
      IsPartner:
        description: Partner Account
        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
        format: int64
        type: number
      NumberOfLocations:
        description: Number of Locations Estimate
        format: int64
        type: number
      OpenCharges:
        description: Open Charges
        format: double
        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
        format: double
        type: number
      RevenueNet:
        description: Rollup Revenue Net
        format: double
        type: number
      RevenueNotTaxable:
        description: Rollup Revenue Not Taxable
        format: double
        type: number
      SIC:
        description: SIC Code
        type: string
      SICDesc:
        description: SIC Description
        type: string
      ShippingAddress:
        $ref: "#/definitions/Address"
      ShippingCensusTract:
        description: Shipping Census Tract
        type: string
      ShippingConactID:
        description: Shipping Contact ID
        type: string
      ShippingCounty:
        description: Shipping County
        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
        format: double
        type: number
      TelecomCustomer:
        description: Telecom Customer?
        type: boolean
      TenantID:
        description: Tenant Identifier
        type: string
      TickerSymbol:
        description: Ticker Symbol
        type: string
      TradeStyle:
        description: Tradestyle
        type: string
      Type:
        description: Type
        type: string
      UnappliedPayments:
        description: Unapplied Payments
        format: double
        type: number
      UnitBase:
        description: Rollup Unit Base
        type: number
      UpsellOpportunity:
        description: Upsell Opportunity
        type: string
      WHMCSClientID:
        description: WHMCS Client ID
        format: int64
        type: number
      Website:
        description: Website
        type: string
      XeroContactID:
        description: Xero Contact ID
        type: string
      YearStarted:
        description: Year Started
        type: string
    type: object
  AccountBasic:
    properties:
      AccountNumber:
        description: "Taxnexus Account Number of the OEM/Reseller "
        type: string
      BillingAddress:
        $ref: "#/definitions/Address"
      BillingContactID:
        description: Contact ID
        type: string
      CompanyID:
        description: Taxnexus OEM/Reseller Record Id
        type: string
      CoordinateID:
        description:
          The id of the Coordinate of the business establishment
        type: string
      CustomerID:
        description: Taxpayer Customer Id designated by OEM/Reseller
        type: string
      DefaultAddress:
        $ref: "#/definitions/Address"
        type: string
      DefaultBackendID:
        description: Default Backend ID
        type: string
      DefaultDeliveryContactID:
        description: Default Delivery Address Contact ID
        type: string
      DefaultEndUserID:
        description: Contact ID
        type: string
      Email:
        description: Taxpayer Public Email Address
        type: string
      Fax:
        description: Taxpayer Fax Number
        type: string
      ID:
        description: Taxpayer Account Record Id
        type: string
      Name:
        description: Taxpayer Account Name (ignored for Tax Processing)
        type: string
      ParentFK:
        description:
          UUID Reference the master record that owns this item
        type: string
      Phone:
        description: Taxpayer Public Phone Number
        type: string
      PreparerID:
        description: Contact ID
        type: string
      Ref:
        description: "Source System identifier for this record, if any"
        type: string
      ShippingAddress:
        $ref: "#/definitions/Address"
        description: Shipping Address
      ShippingConactID:
        description: Contact ID
        type: string
      Site:
        description: Taxpayer Location Designation
        type: string
      TenantID:
        description: Tenant Identifier
        type: string
      Type:
        description: Account Type
        type: string
      Website:
        description: Taxpayer Website
        type: string
    type: object
  AccountBasicResponse:
    properties:
      Data:
        items:
          $ref: "#/definitions/AccountBasic"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  AccountRequest:
    description: An array of Account objects with Contacts
    properties:
      Data:
        items:
          $ref: "#/definitions/Account"
        type: array
    type: object
  AccountResponse:
    description: An array of Account objects with Contacts
    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
    type: object
  Company:
    properties:
      AccountID:
        description: Taxnexus ID of the Account that owns this Company
        type: string
      AccountNumberPrefix:
        description: Account Number Prefix
        type: string
      BillingAddress:
        $ref: "#/definitions/Address"
      BillingAdvice:
        description: Billing Advice
        type: string
      BillingContactID:
        description: Contact ID
        type: string
      BillingEmail:
        description: Billing Email
        type: string
      BillingPhone:
        description: Billing Phone
        type: string
      BillingWebsite:
        description: Billing Website
        type: string
      COATemplateID:
        description: Chart of Accounts Template Account ID
        type: string
      ColorAccent1:
        description: Color Accent1
        type: string
      ColorAccent2:
        description: Color Accent2
        type: string
      ColorPrimary:
        description: Color Primary
        type: string
      CreatedByID:
        description: Created By User ID
        type: string
      CreatedDate:
        description: Created Date
        type: string
      CustomerSuccessID:
        description: User ID of default Customer Success user
        type: string
      DateClosed:
        description: Date Closed
        type: string
      DefaultAddress:
        $ref: "#/definitions/Address"
      DefaultCompany:
        description: Default Company?
        type: boolean
      FontBody:
        description: Font Name for Body Text
        type: string
      FontHeading:
        description: Font Name for Heading
        type: string
      FontHeadingNarrow:
        description: Font Name for Heading Narrow
        type: string
      FontLink:
        description: Font Names for CSS Link
        type: string
      FontMono:
        description: Font Name for Monospace
        type: string
      ID:
        description: Taxnexus Record Id
        type: string
      International:
        description: International Customers?
        type: boolean
      LastAccountNumber:
        description: Last Account Number
        format: int64
        type: number
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      LastTaxTypeNumber:
        description: Last TaxType Number
        format: int64
        type: number
      Logo:
        description: Logo URL
        type: string
      Name:
        description: Company Name
        type: string
      OwnerID:
        description: The ID of the contact who owns this Company
        type: string
      PreparerID:
        description: User ID of the default tax preparer
        type: string
      PricebookID:
        description: The ID of the default Pricebook for this company
        type: string
      TenantID:
        description: Tenant Identifier
        type: string
      UserTechLeadID:
        description:
          The ID of the contact who is the User Tech Lead for Company
        type: string
    type: object
  CompanyRequest:
    description: An array of Company objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Company"
        type: array
    type: object
  CompanyResponse:
    description: An array of Company objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Company"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Contact:
    properties:
      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
      EmailBounceDate:
        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
      TenantID:
        description: Tenant Identifier
        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
    type: object
  ContactResponse:
    properties:
      Data:
        items:
          $ref: "#/definitions/Contact"
        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
  Lead:
    properties:
      Address:
        $ref: "#/definitions/Address"
      Company:
        description: Company
        type: string
      CreatedByID:
        description: Created By User ID
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Description:
        description: Description
        type: string
      Email:
        description: Email
        type: string
      FirstName:
        description: First Name
        type: string
      ID:
        description: Taxnexus Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      LastName:
        description: Last Name
        type: string
      MobilePhone:
        description: Mobile
        type: string
      Name:
        description: Name
        type: string
      OwnerId:
        description: LeadBasic Owner
        type: string
      PartnerAccountId:
        description: Partner Account
        type: string
      Phone:
        description: Phone
        type: string
      ProductID:
        description: Product
        type: string
      RefererURL:
        description: referer_url
        type: string
      Status:
        description: LeadBasic Status
        type: string
      TenantID:
        description: Tenant Identifier
        type: string
      Title:
        description: Title
        type: string
      Type:
        description: Type
        type: string
      UTMCampaign:
        description: utm_campaign
        type: string
      UTMContent:
        description: utm_content
        type: string
      UTMMedium:
        description: utm_medium
        type: string
      UTMSource:
        description: utm_source
        type: string
      UTMTerm:
        description: utm_term
        type: string
      Website:
        description: Website
        type: string
    type: object
  LeadRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Lead"
        type: array
    type: object
  LeadResponse:
    properties:
      Data:
        items:
          $ref: "#/definitions/Lead"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    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
