swagger: "2.0"
info:
  description: Taxnexus Onboarding Service
  title: board
  termsOfService: "http://taxnexus.net/terms/"
  contact:
    email: noc@taxnexus.net
  license:
    name: "Proprietary - Copyright (c) 2018-2020 by Taxnexus, Inc."
  version: 1.2.7
schemes:
  - http
host: "board.fabric.tnxs.net:8080"
basePath: /v1
produces:
  - application/json
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
  /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
  /developers:
    options:
      description: CORS support
      operationId: developerOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      security:
        - ApiKeyAuth: []
      consumes:
        - application/json
      description: Register new developers with POST
      operationId: postDevelopers
      parameters:
        - $ref: "#/parameters/developerRequest"
      responses:
        "200":
          $ref: "#/responses/DeveloperResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Onboard new developer
      tags:
        - Developers
  /iqs:
    options:
      description: CORS support
      operationId: iqOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      security:
        - ApiKeyAuth: []
      consumes:
        - application/json
      description: Register new Taxnexus IQ Customer with POST
      operationId: postIQ
      parameters:
        - $ref: "#/parameters/iqRequest"
      responses:
        "200":
          $ref: "#/responses/IqResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      summary: Onboard new new Taxnexus IQ Customer
      tags:
        - Iq
  /leads:
    options:
      description: CORS support
      operationId: leadsOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      consumes:
        - application/json
      description: Add a new full Lead Record
      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 a new Lead record
      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
  /userauths:
    options:
      description: CORS support
      operationId: userAuthOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
  "/userauths/{usernamePath}":
    get:
      description:
        Return a single UserAuth object from datastore as a Singleton
      operationId: getUserAuth
      parameters:
        - $ref: "#/parameters/usernamePath"
      responses:
        "200":
          $ref: "#/responses/UserAuthResponse"
        "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 single UserAuth object
      tags:
        - UserAuth
  /users:
    get:
      description: Get a clean user record
      operationId: getUsers
      parameters:
        - $ref: "#/parameters/emailQueryRequired"
      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"
      security:
        - ApiKeyAuth: []
      tags:
        - Users
    options:
      description: CORS support
      operationId: userOptions
      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
      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
      Type:
        description: Account Type
        type: string
      Website:
        description: Taxpayer Website
        type: string
    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
  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
  Database:
    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
      DSN:
        description: Database connection string
        type: string
      DatabaseName:
        description: The name of the physical database in the cluster
        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
    type: object
  Developer:
    properties:
      Account:
        $ref: "#/definitions/Account"
      Contact:
        $ref: "#/definitions/Contact"
      Lead:
        $ref: "#/definitions/Lead"
      PaymentMethod:
        $ref: "#/definitions/PaymentMethod"
      Tenant:
        $ref: "#/definitions/Tenant"
      User:
        $ref: "#/definitions/User"
    type: object
  IQ:
    properties:
      Account:
        $ref: "#/definitions/Account"
      Contact:
        $ref: "#/definitions/Contact"
      Lead:
        $ref: "#/definitions/Lead"
      PaymentMethod:
        $ref: "#/definitions/PaymentMethod"
      Tenant:
        $ref: "#/definitions/Tenant"
      User:
        $ref: "#/definitions/User"
    type: object
  Error:
    properties:
      code:
        format: int64
        type: integer
      fields:
        type: string
      message:
        type: string
    type: object
  Lead:
    properties:
      Address:
        $ref: "#/definitions/Address"
      Company:
        description: Company
        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
      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
      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
  Message:
    properties:
      message:
        type: string
      ref:
        type: string
      status:
        format: int64
        type: number
    type: object
  Pagination:
    properties:
      Limit:
        format: int64
        type: number
      POffset:
        format: int64
        type: number
      PageSize:
        format: int64
        type: number
      SetSize:
        format: int64
        type: number
    type: object
  PaymentMethod:
    description:
      Describes the EFT or other payment information for an account and
      billing contact
    properties:
      AccountID:
        description: Account
        type: string
      AchAccountType:
        description: ACH Account Type
        type: string
      AchBankAccount:
        description: ACH Bank Account
        type: string
      AchRouting:
        description: ACH Routing
        type: string
      Active:
        description: Active?
        type: boolean
      Autopay:
        description: Autopay?
        type: boolean
      BankName:
        description: Bank Name
        type: string
      BillingContactID:
        description: Billing Contact
        type: string
      CCnumber:
        description: Credit Card Number
        type: string
      CCtype:
        description: CC Type
        type: string
      CompanyID:
        description: Company
        type: string
      ContractID:
        description: Contract
        type: string
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Default:
        description: Default Payment Method?
        type: boolean
      ExpirationDate:
        description: Expiration Date
        type: string
      ExpirationMonth:
        description: Expiration Month
        type: string
      ExpirationYear:
        description: Expiration Year
        type: string
      Gateway:
        description: Gateway
        type: string
      GatewayKey:
        description: Gateway Key
        type: string
      ID:
        description: Telnexus Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      Nickname:
        description: Nickname
        type: string
      RecordType:
        description: Record Type
        type: string
      Ref:
        description: External Reference
        type: string
    type: object
  Role:
    description: A functional role within a Tenant
    properties:
      Auth0RoleID:
        description: The corresponding Auth0 Role
        type: string
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Description:
        description: Role Description
        type: string
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modifed Date
        type: string
      RoleName:
        description: The name of this role
        type: string
      TenantID:
        description: The ID of the Tenant that owns this Role
        type: string
    type: object
  Tenant:
    description: Taxnexus Account Tenant
    properties:
      AccountID:
        description: The Account that owns this Tenant
        type: string
      Active:
        description: Is this Tenant currently active?
        type: boolean
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Databases:
        items:
          $ref: "#/definitions/Database"
        type: array
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modifed Date
        type: string
      Roles:
        items:
          $ref: "#/definitions/Role"
        type: array
      Status:
        description: The current status of this Tenant
        type: string
      TenantName:
        description: Name of the Tenant Resource
        type: string
      TenantUsers:
        items:
          $ref: "#/definitions/TenantUser"
        type: array
      Type:
        description: The type of Tenant
        type: string
      Version:
        description:
          The version number of the Tenant Onboarding system used to
          create this tenant
        type: string
    type: object
  TenantUser:
    description: Relationship object that connects users to a tenant
    properties:
      AccessLevel:
        description: The makeTenantUser access level for this User
        type: string
      AccountID:
        description: Account ID
        type: string
      Auth0UserID:
        description: Auth0 User ID
        type: string
      CompanyName:
        description: Account Name
        type: string
      ContactID:
        description: Contact ID
        type: string
      TaxnexusAccount:
        description: Taxnexus Account
        type: string
      TenantActive:
        description: Tenant active?
        type: boolean
      TenantID:
        description: The Tenant ID
        type: string
      TenantName:
        description: Tenant Name
        type: string
      TenantStatus:
        description: Tenant Status
        type: string
      TenantType:
        description: Tenant type
        type: string
      TenantVersion:
        description: Tenant Version
        type: string
      UserEmail:
        description: User Email Address
        type: string
      UserFullName:
        description: User Full Name
        type: string
      UserID:
        description: The User ID
        type: string
      Username:
        description: Username
        type: string
  User:
    properties:
      APIKey:
        description: API Key
        type: string
      AboutMe:
        description: About Me
        type: string
      AccountID:
        description: Account ID
        type: string
      Address:
        $ref: "#/definitions/Address"
      Alias:
        description: Alias
        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
      EndOfDay:
        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
      IsProphilePhotoActive:
        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
      ReceivesAdminEmails:
        description: Info Emails
        type: boolean
      ReceivesAdminInfoEmails:
        description: Admin 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
      StartOfDay:
        description: The time day starts
        type: string
      TaxnexusAccount:
        description: Taxnexus Account
        type: string
      TenantID:
        description: Tenant ID
        type: string
      TenantUsers:
        items:
          $ref: "#/definitions/TenantUser"
        type: array
      TimeZone:
        description: Time Zone
        type: string
      Title:
        description: Title
        type: string
      UserRoleID:
        description: Role
        type: string
      UserRoles:
        items:
          $ref: "#/definitions/UserRole"
        type: array
      UserType:
        description: User Type
        type: string
      Username:
        description: Username
        type: string
    type: object
  UserAuth:
    properties:
      APIKey:
        description: API Key
        type: string
      AccountID:
        description: Account ID
        type: string
      ContactID:
        description: Contact
        type: string
      Email:
        description: Email address
        type: string
      Roles:
        description: Valid Roles for all tenants
        items:
          type: string
        type: array
      Tenants:
        description: Valid Tenants
        items:
          type: string
        type: array
      UserID:
        description: Taxneuxs User ID
        type: string
  UserRole:
    description: Relationship object to connect a user to a role
    properties:
      AccountID:
        description: Account Id
        type: string
      Auth0RoleID:
        description: Linked role ID
        type: string
      Auth0UserID:
        description: Auth0 User ID
        type: string
      CompanyName:
        description: Company Name
        type: string
      ContactID:
        description: Contact ID
        type: string
      RoleDescription:
        description: Role description
        type: string
      RoleID:
        description: The Role ID
        type: string
      RoleName:
        description: Role Name
        type: string
      TaxnexusAccount:
        description: Taxnexus Account Number
        type: string
      UserEmail:
        description: User Email Address
        type: string
      UserFullName:
        description: User Full Name
        type: string
      UserID:
        description: The User ID
        type: string
      Username:
        description: Username
        type: string
    type: object
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/Account"
  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
  contactIdQuery:
    description: Taxnexus Contact record ID
    in: query
    name: contactId
    required: false
    type: string
  contactRequest:
    description: An array of new Contact records
    in: body
    name: contactsRequest
    required: true
    schema:
      $ref: "#/definitions/Contact"
  descriptionForm:
    description: Lead description in an encoded form
    in: formData
    name: Description
    type: string
  developerRequest:
    description: A single Developer struct for onboarding
    in: body
    name: developerRequest
    required: true
    schema:
      $ref: "#/definitions/Developer"
  iqRequest:
    description: A single Taxnexus IQ Customer struct for onboarding
    in: body
    name: iqRequest
    required: true
    schema:
      $ref: "#/definitions/IQ"
  emailForm:
    description: Lead email in an encoded form
    in: formData
    name: Email
    required: true
    type: string
  emailPath:
    description: Email address in the query path
    in: path
    name: emailPath
    required: true
    type: string
  usernamePath:
    description: Username in the query path
    in: path
    name: usernamePath
    required: true
    type: string
  emailQuery:
    description: Email address used for identity lookup
    in: query
    name: email
    required: false
    type: string
  emailQueryRequired:
    description: Email address
    in: query
    name: email
    required: true
    type: string
  firstNameForm:
    description: Lead first name in an encoded form
    in: formData
    name: FirstName
    required: true
    type: string
  lastNameForm:
    description: Lead last name in an encoded form
    in: formData
    name: LastName
    required: true
    type: string
  leadIdQuery:
    description: Taxnexus Record Id of a Lead
    in: query
    name: leadId
    required: true
    type: string
  leadRequest:
    description: A new Lead record as a single JSON object
    in: body
    name: leadRequest
    required: true
    schema:
      $ref: "#/definitions/Lead"
  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
  paymentMethodIdQuery:
    description: Taxnexus Record Id of a PaymentMethod
    in: query
    name: paymentMethodId
    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/Account"
  CORSResponse:
    description: CORS OPTIONS response
    headers:
      Access-Control-Allow-Credentials:
        type: string
      Access-Control-Allow-Headers:
        type: string
      Access-Control-Allow-Methods:
        type: string
      Access-Control-Allow-Origin:
        type: string
      Access-Control-Expose-Headers:
        type: string
      Access-Control-Max-Age:
        type: string
      Cache-Control:
        type: string
  Conflict:
    description: Conflict
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  ContactResponse:
    description: Taxnexus Response with a Contact object
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Contact"
  DeleteResponse:
    description:
      Taxnexus Response with Message Objects with Delete Status
    headers:
      Access-Control-Allow-Origin:
        type: string
  DeveloperResponse:
    description: Taxnexus Response with a Developer object
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Developer"
  IqResponse:
    description: Taxnexus Response with an IQ object
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/IQ"
  InvalidDataError:
    description: Invalid data was sent
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  LeadResponse:
    description: Taxnexus Response with an array of Lead objects
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Lead"
  NotFound:
    description: Resource was not found
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  PaymentMethodResponse:
    description:
      Taxnexus Response with an array of Payment Method objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      items:
        $ref: "#/definitions/PaymentMethod"
      type: array
  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"
  UserAuthResponse:
    description: Taxneuxs User Authentication Response
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/UserAuth"
  UserResponse:
    description: User Response
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/User"
securityDefinitions:
  ApiKeyAuth:
    type: apiKey
    name: X-API-Key
    in: header
