swagger: "2.0"
info:
  version: 1.3.0
  title: "regs"
  description: "Regulatory Microservice"
  termsOfService: "http://taxnexus.net/terms/"
  contact:
    email: "noc@taxnexus.net"
  license:
    name: "Proprietary - Copyright (c) 2018-2021 by Taxnexus, Inc."
schemes:
  - "http"
basePath: "/v1"
host: "regs.fabric.tnxs.net:8080"
securityDefinitions:
  ApiKeyAuth:
    type: apiKey
    in: header
    name: X-API-Key
consumes:
  - "application/json"
produces:
  - "application/json"
parameters:
  accountIdQuery:
    description: Taxnexus Record Id of an Account
    in: query
    name: accountId
    required: false
    type: string
  accountIdQueryRequired:
    description: Taxnexus Record Id of an Account
    in: query
    name: accountId
    required: true
    type: string
  accountNumberQuery:
    description:
      The Taxnexus Account Number of the Account to be used a record
      retrieval
    in: query
    name: accountNumber
    required: false
    type: string
  activeQuery:
    description: Retrieve only active records?
    in: query
    name: active
    required: false
    type: boolean
  authorityIdQuery:
    description: Taxnexus Id of the Authority to be retrieved
    in: query
    name: authorityId
    required: false
    type: string
  authorityRequest:
    description: A request with an array of Authority Objects
    in: body
    name: Authority Request
    required: true
    schema:
      $ref: "#/definitions/AuthorityRequest"
  backendIdQuery:
    description: Taxnexus Id of the Backend to be retrieved
    in: query
    name: backendId
    required: false
    type: string
  backendRequest:
    description: An array of new Backend records
    in: body
    name: Backend Request
    required: true
    schema:
      $ref: "#/definitions/BackendRequest"
  companyIdQuery:
    description: Taxnexus Record Id of a Company
    in: query
    name: companyId
    required: false
    type: string
  dateFromQuery:
    description: The Starting Date for an object retrieval
    in: query
    name: dateFrom
    required: false
    type: string
  filingIdQuery:
    description: Taxnexus Record Id of a Filing
    in: query
    name: filingId
    required: false
    type: string
  filingRequest:
    description: A request with an array of Filing Objects
    in: body
    name: FilingRequest
    required: true
    schema:
      $ref: "#/definitions/FilingRequest"
  filingTypeIdQuery:
    description: Taxnexus Record Id of a Filing
    in: query
    name: filingTypeId
    required: false
    type: string
  filingTypeRequest:
    description: A request with an array of FilingType Objects
    in: body
    name: FilingTypeRequest
    required: true
    schema:
      $ref: "#/definitions/FilingTypeRequest"
  idQuery:
    description: Taxnexus Id of the record to be retrieved
    in: query
    name: id
    required: false
    type: string
  idQueryRequired:
    description: Taxnexus Id of the Record to be retrieved
    in: query
    name: id
    required: false
    type: string
  licenseIdQuery:
    description: Taxnexus Record Id of a License
    in: query
    name: licenseId
    required: false
    type: string
  licenseTypeIdQuery:
    description: Taxnexus Record Id of a License Type
    in: query
    name: licensetypeId
    required: false
    type: string
  limitQuery:
    description: "How many objects to return at one time"
    format: int64
    in: query
    name: limit
    required: false
    type: integer
  masterQuery:
    description: Retrieve only master records?
    in: query
    name: master
    required: false
    type: boolean
  nameQuery:
    description: The Name of this Object
    in: query
    name: name
    required: false
    type: string
  offsetQuery:
    description: How many objects to skip? (default 0)
    format: int64
    in: query
    name: offset
    required: false
    type: integer
  ratingEngineRequest:
    description: An array of new Submission records
    in: body
    name: Rating Engine Request
    required: true
    schema:
      $ref: "#/definitions/RatingEngineRequest"
  ratingingestIdQuery:
    description: Taxnexus Record Id of a Rating Ingest
    in: query
    name: ratingingestId
    required: false
    type: string
  submissionIdQuery:
    description: Taxnexus Record Id of a Submisssion
    in: query
    name: submissionId
    required: false
    type: string
  submissionRequest:
    description: An array of new Submission records
    in: body
    name: SubmissionRequest
    required: true
    schema:
      $ref: "#/definitions/SubmissionRequest"
  subscriptionIdQuery:
    description: Taxnexus Id of the Subscription to be retrieved
    in: query
    name: subscriptionId
    required: false
    type: string
  taxTypeAccountIdQuery:
    description: Taxnexus Record Id of the Tax Type Account
    in: query
    name: taxTypeAccountId
    required: false
    type: string
  taxTypeIdQuery:
    description: Taxnexus Record Id of the Tax Type
    in: query
    name: taxTypeId
    required: false
    type: string
  taxtypeIdQuery:
    description: Taxnexus Record Id of a Tax Type
    in: query
    name: taxTypeId
    required: false
    type: string
  taxtypeaccountRequestBody:
    description: A request with an array of Tax Type Account Objects
    in: body
    name: taxTypeAccountRequest
    required: true
    schema:
      $ref: "#/definitions/TaxTypeAccountRequest"
  templateIdQuery:
    description: Taxnexus Record Id of a Template
    in: query
    name: templateId
    required: false
    type: string
  notebookIdQuery:
    description: Template ID
    in: query
    name: notebookId
    type: string
  transactionIdQuery:
    description: Template ID
    in: query
    name: transactionId
    type: string
  notebookRequest:
    description: An array of Notebook records
    in: body
    name: NotebookRequest
    required: true
    schema:
      $ref: "#/definitions/NotebookRequest"
  transactionRequest:
    description: An array of Transaction records
    in: body
    name: TransactionRequest
    required: true
    schema:
      $ref: "#/definitions/TransactionRequest"
responses:
  AccessForbidden:
    description: "Access forbidden, account lacks access"
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  AuthorityResponse:
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    description: Taxnexus Response with an array of Authority objects
    schema:
      $ref: "#/definitions/AuthorityResponse"
  BackendResponse:
    description: Taxnexus Response with an array of Backend Objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/BackendResponse"
  Conflict:
    description: Conflict
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  DeleteResponse:
    description:
      Taxnexus Response with Message Objects with Delete Status
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/DeleteResponse"
  FilingResponse:
    description: Taxnexus Response with an array of Filing objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/FilingResponse"
  FilingTypeResponse:
    description: Taxnexus Response with an array of FilingType objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/FilingTypeResponse"
  InvalidDataError:
    description: Invalid data was sent
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/InvalidError"
  LicenseResponse:
    description: Taxnexus Response with License objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/LicenseResponse"
  LicenseTypeResponse:
    description: Taxnexus Response with License objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/LicenseTypeResponse"
  NotFound:
    description: Resource was not found
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  RatingEngineResponse:
    description: Taxnexus Response with Rating Engine objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/RatingEngineResponse"
  ServerError:
    description: Server Internal Error
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  SubmissionResponse:
    description: Taxnexus Response with Submission objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/SubmissionResponse"
  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"
  TaxTypeAccountResponse:
    description: Taxnexus Response with Tax Type Account objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/TaxTypeAccountResponse"
  NotebookResponse:
    description: Taxnexus Response with Notebook objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/NotebookResponse"
  TransactionResponse:
    description: Taxnexus Response with Transaction objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/TransactionResponse"
  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:
  /authorities:
    get:
      description: Return a list of available Authorities
      operationId: getAuthorities
      parameters:
        - $ref: "#/parameters/authorityIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/AuthorityResponse"
        "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 Authorities
      tags:
        - Authority
    options:
      description: CORS support
      operationId: authorityOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create new Authorities
      operationId: postAuthorities
      parameters:
        - $ref: "#/parameters/authorityRequest"
      responses:
        "200":
          $ref: "#/responses/AuthorityResponse"
        "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 Authorities
      tags:
        - Authority
    put:
      description:
        Update fields in an Authority record identified by Taxnexus Id
      operationId: putAuthorities
      parameters:
        - $ref: "#/parameters/authorityRequest"
      responses:
        "200":
          $ref: "#/responses/AuthorityResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Authorities
      tags:
        - Authority
  /backends:
    delete:
      description: Delete Taxnexus Backend record
      operationId: deleteBackend
      parameters:
        - $ref: "#/parameters/backendIdQuery"
      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 Backend
      tags:
        - Backend
    get:
      description: Return a list of Backends
      operationId: getBackends
      parameters:
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/accountNumberQuery"
        - $ref: "#/parameters/backendIdQuery"
        - $ref: "#/parameters/companyIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/nameQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/BackendResponse"
        "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 Backends
      tags:
        - Backend
    options:
      description: CORS support
      operationId: backendOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Contact record to be added
      operationId: postBackends
      parameters:
        - $ref: "#/parameters/backendRequest"
      responses:
        "200":
          $ref: "#/responses/BackendResponse"
        "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 Backends
      tags:
        - Backend
    put:
      description: Update Backend records
      operationId: putBackends
      parameters:
        - $ref: "#/parameters/backendRequest"
      responses:
        "200":
          $ref: "#/responses/BackendResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Backends
      tags:
        - Backend
  /filings:
    get:
      description: Return a list of available Regulatory Filings
      operationId: getFilings
      parameters:
        - $ref: "#/parameters/filingIdQuery"
        - $ref: "#/parameters/companyIdQuery"
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/FilingResponse"
        "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 Filings
      tags:
        - Filing
    options:
      description: CORS support
      operationId: filingOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create new Filings
      operationId: postFilings
      parameters:
        - $ref: "#/parameters/filingRequest"
      responses:
        "200":
          $ref: "#/responses/FilingResponse"
        "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 Filings
      tags:
        - Filing
    put:
      description:
        Update all the fields in a Filing record identified by Taxnexus
        ID
      operationId: putFilings
      parameters:
        - $ref: "#/parameters/filingRequest"
      responses:
        "200":
          $ref: "#/responses/FilingResponse"
        "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 Filing
      tags:
        - Filing
  /filingtypes:
    get:
      description: Return a list of available Regulatory FilingTypes
      operationId: getFilingTypes
      parameters:
        - $ref: "#/parameters/filingTypeIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/FilingTypeResponse"
        "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 FilingTypes
      tags:
        - FilingType
    options:
      description: CORS support
      operationId: filingTypeOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create new FilingTypes
      operationId: postFilingTypes
      parameters:
        - $ref: "#/parameters/filingTypeRequest"
      responses:
        "200":
          $ref: "#/responses/FilingTypeResponse"
        "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 FilingTypes
      tags:
        - FilingType
    put:
      description:
        Update all the fields in a FilingType record identified by
        Taxnexus ID
      operationId: putFilingTypes
      parameters:
        - $ref: "#/parameters/filingTypeRequest"
      responses:
        "200":
          $ref: "#/responses/FilingTypeResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update a FilingType
      tags:
        - FilingType
  /licenses:
    get:
      description: "Retrieve all licenses, filter with parameters"
      operationId: getLicenses
      parameters:
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/companyIdQuery"
        - $ref: "#/parameters/licenseIdQuery"
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/LicenseResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Retrieve licenses
      tags:
        - License
    options:
      description: CORS support
      operationId: licenseOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create new Licenses
      operationId: postLicenses
      parameters:
        - description: The new licenses
          in: body
          name: LicenseRequest
          schema:
            $ref: "#/definitions/LicenseRequest"
      responses:
        "200":
          $ref: "#/responses/LicenseResponse"
        "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 Licenses
      tags:
        - License
    put:
      description: Add or update licenses
      operationId: putLicenses
      parameters:
        - description: The updated licenses
          in: body
          name: LicenseRequest
          schema:
            $ref: "#/definitions/LicenseRequest"
      responses:
        "200":
          $ref: "#/responses/LicenseResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Upsert a License
      tags:
        - License
  /licensetypes:
    get:
      description: Retrieve LicenseType records
      operationId: getLicenseTypes
      parameters:
        - $ref: "#/parameters/companyIdQuery"
        - $ref: "#/parameters/licenseTypeIdQuery"
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/LicenseTypeResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Retrieve LicenseType records
      tags:
        - LicenseType
    options:
      description: CORS support
      operationId: licenseTypeOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create new LicenseType
      operationId: postLicenseTypes
      parameters:
        - description: The new license types
          in: body
          name: LicenseTypeRequest
          schema:
            $ref: "#/definitions/LicenseTypeRequest"
      responses:
        "200":
          $ref: "#/responses/LicenseTypeResponse"
        "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 Licensetypes
      tags:
        - LicenseType
  /notebooks:
    get:
      description: Return a list of Notebook records from the datastore
      operationId: getNotebooks
      parameters:
        - $ref: "#/parameters/notebookIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/NotebookResponse"
        "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 Notebooks
      tags:
        - Notebook
    options:
      description: CORS support
      operationId: notebookOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create Notebooks in Taxnexus
      operationId: postNotebooks
      parameters:
        - $ref: "#/parameters/notebookRequest"
      responses:
        "200":
          $ref: "#/responses/NotebookResponse"
        "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 Notebooka
      tags:
        - Notebook
    put:
      description: Update Notebooks in Taxnexus
      operationId: putNotebooks
      parameters:
        - $ref: "#/parameters/notebookRequest"
      responses:
        "200":
          $ref: "#/responses/NotebookResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Notebooks
      tags:
        - Notebook
  /ratingengines:
    delete:
      description: Delete Taxnexus Backend record
      operationId: deleteRatingEngine
      parameters:
        - $ref: "#/parameters/idQueryRequired"
      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 Rating Engine
      tags:
        - RatingEngine
    get:
      description: Return a list of Rating Engines
      operationId: getRatingEngines
      parameters:
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/accountNumberQuery"
        - $ref: "#/parameters/backendIdQuery"
        - $ref: "#/parameters/companyIdQuery"
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/nameQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/RatingEngineResponse"
        "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 Rating Engines
      tags:
        - RatingEngine
    options:
      description: CORS support
      operationId: ratingEngineOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Rating Engine records to be added
      operationId: postRatingEngines
      parameters:
        - $ref: "#/parameters/ratingEngineRequest"
      responses:
        "200":
          $ref: "#/responses/LicenseTypeResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Add Rating Engine
      tags:
        - RatingEngine
    put:
      description: Update Rating Engine records
      operationId: putRatingEngines
      parameters:
        - $ref: "#/parameters/ratingEngineRequest"
      responses:
        "200":
          $ref: "#/responses/LicenseTypeResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Rating Engine
      tags:
        - RatingEngine
  /submissions:
    get:
      description: Return a list of available Submissions
      operationId: getSubmissions
      parameters:
        - $ref: "#/parameters/submissionIdQuery"
        - $ref: "#/parameters/companyIdQuery"
        - $ref: "#/parameters/idQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/SubmissionResponse"
        "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 Submissions
      tags:
        - Submission
    options:
      description: CORS support
      operationId: submissionOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create new Sumissions
      operationId: postSubmissions
      parameters:
        - $ref: "#/parameters/submissionRequest"
      responses:
        "200":
          $ref: "#/responses/SubmissionResponse"
        "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 Submissions
      tags:
        - Submission
    put:
      description:
        Update all the fields in a Submission record identified by
        Taxnexus Id
      operationId: putSubmissions
      parameters:
        - $ref: "#/parameters/submissionRequest"
      responses:
        "200":
          $ref: "#/responses/SubmissionResponse"
        "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 Submission
      tags:
        - Submission
  /taxtypeaccounts:
    delete:
      description: Delete Taxnexus Tax Type Accounts
      operationId: deleteTypeAccounts
      parameters:
        - $ref: "#/parameters/idQueryRequired"
      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 Tax Type Accounts
      tags:
        - TaxTypeAccount
    get:
      description: Return a list of Tax Type Accounts
      operationId: getTaxTypeAccounts
      parameters:
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
        - $ref: "#/parameters/accountIdQuery"
        - $ref: "#/parameters/taxTypeIdQuery"
        - $ref: "#/parameters/taxTypeAccountIdQuery"
      responses:
        "200":
          $ref: "#/responses/TaxTypeAccountResponse"
        "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 Tax Type Accounts
      tags:
        - TaxTypeAccount
    options:
      description: CORS support
      operationId: taxTypeAccountOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Tax Type Accounts to be added
      operationId: postTaxTypeAccounts
      parameters:
        - $ref: "#/parameters/taxtypeaccountRequestBody"
      responses:
        "200":
          $ref: "#/responses/TaxTypeAccountResponse"
        "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 Tax Type Accounts
      tags:
        - TaxTypeAccount
    put:
      description: Update Tax Type Accounts records
      operationId: putTaxTypeAccounts
      parameters:
        - $ref: "#/parameters/taxtypeaccountRequestBody"
      responses:
        "200":
          $ref: "#/responses/TaxTypeAccountResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Tax Type Accounts
      tags:
        - TaxTypeAccount
  /transactions:
    get:
      description:
        Return a list of Transaction records from the datastore
      operationId: getTransactions
      parameters:
        - $ref: "#/parameters/transactionIdQuery"
        - $ref: "#/parameters/limitQuery"
        - $ref: "#/parameters/offsetQuery"
      responses:
        "200":
          $ref: "#/responses/TransactionResponse"
        "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 Transactions
      tags:
        - Transaction
    options:
      description: CORS support
      operationId: transactionOptions
      responses:
        "200":
          $ref: "#/responses/CORSResponse"
      tags:
        - cors
    post:
      description: Create Transactions in Taxnexus
      operationId: postTransactions
      parameters:
        - $ref: "#/parameters/transactionRequest"
      responses:
        "200":
          $ref: "#/responses/TransactionResponse"
        "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 Transactiona
      tags:
        - Transaction
    put:
      description: Update Transactions in Taxnexus
      operationId: putTransactions
      parameters:
        - $ref: "#/parameters/transactionRequest"
      responses:
        "200":
          $ref: "#/responses/TransactionResponse"
        "401":
          $ref: "#/responses/Unauthorized"
        "403":
          $ref: "#/responses/AccessForbidden"
        "404":
          $ref: "#/responses/NotFound"
        "422":
          $ref: "#/responses/UnprocessableEntity"
        "500":
          $ref: "#/responses/ServerError"
      security:
        - ApiKeyAuth: []
      summary: Update Transactions
      tags:
        - Transaction
definitions:
  Authority:
    properties:
      AccountID:
        description: Account
        type: string
      AddressLine1:
        description: Address Line 1
        type: string
      AddressLine2:
        description: Address Line 2
        type: string
      BTN:
        description: Billing Telephone Number
        type: string
      City:
        description: City
        type: string
      ContactID:
        description: Contact Name
        type: string
      Country:
        description: Country
        type: string
      CreatedByID:
        description: Created By User ID
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Date:
        description: Authority Date
        type: string
      DateApproved:
        description: Date Approved
        type: string
      ID:
        description: Taxnexus Record Identifier
        type: string
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      LosingCarrier:
        description: Losing Carrier
        type: string
      Name:
        description: Authority Number
        type: string
      NameLine1:
        description: Name Line 1
        type: string
      NameLine2:
        description: Name Line 2
        type: string
      OpportunityID:
        description: Opportunity Name
        type: string
      OrderID:
        description: Order Number
        type: string
      ParentFK:
        description:
          UUID Reference the master record that owns this item
        type: string
      PostalCode:
        description: Zip Code
        type: string
      QuoteID:
        description: Quote Name
        type: string
      Ref:
        description: "Source System identifier for this record, if any"
        type: string
      State:
        description: State
        type: string
      Status:
        description: Status
        type: string
      TemplateID:
        description: ID of the Template for this object instance
        type: string
      TenantID:
        description: Tenant that owns this object instance
        type: string
      TransferDate:
        description: Transfer Date
        type: string
      Type:
        description: Authority Type
        type: string
    type: object
  AuthorityRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Authority"
        type: array
    type: object
  AuthorityResponse:
    description: An array of Authority objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Authority"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Backend:
    properties:
      APIKey:
        description: apikey
        type: string
      AccountID:
        description: The Account that owns this Backend
        type: string
      Active:
        description: Active
        type: boolean
      ApplicationName:
        description: Used to identify the State were required
        type: string
      AuthType:
        description: Authentication Type
        type: string
      BackendName:
        description: Backend Name
        type: string
      BaseURL:
        description: base_url
        type: string
      CallbackURL:
        description: callback_url
        type: string
      ClientID:
        description: client_id
        type: string
      ClientSecret:
        description: client_secret
        type: string
      CompanyID:
        description: Company
        type: string
      CreatedByID:
        description: Database object creation user
        type: string
      CreatedDate:
        description: Database object creation date
        type: string
      Description:
        description: Description
        type: string
      ID:
        description: Taxnexus Record Id Only; not used in POST
        type: string
      LastModifiedByID:
        description: Database object modification user
        type: string
      LastModifiedDate:
        description: Database object modification date
        type: string
      LoginURL:
        description: login_url
        type: string
      ManagementPassword:
        description: Management Password
        type: string
      ManagementURL:
        description: Management URL
        type: string
      ManagementUsername:
        description: Management Username
        type: string
      MetrcLicense:
        description: MetrcLicense
        type: string
      MetrcState:
        description: MetrcState
        type: string
      OwnerID:
        description: Ownerid
        type: string
      Password:
        description: password
        type: string
      ProjectID:
        description: project_id
        type: string
      ProviderCredentials:
        description: Provider Credentials
        type: string
      Realm:
        description: realm
        type: string
      Ref:
        description: "Source System identifier for this record, if any"
        type: string
      ResellerBackendID:
        description: Resellerbackendid
        type: string
      SecurityToken:
        description: security_token
        type: string
      TenantID:
        description: Tenant that owns this object instance
        type: string
      Timeout:
        description: Timeout
        format: int64
        type: number
      TokenURI:
        description: token_uri
        type: string
      Type:
        description: Type
        type: string
      Username:
        description: username
        type: string
      Vendor:
        description: Backend Vendor Name
        type: string
    type: object
  BackendRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Backend"
        type: array
    type: object
  BackendResponse:
    description: An array of Backend Objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Backend"
        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
  Filing:
    properties:
      AccountName:
        description: Account Name on Filing
        type: string
      Amount:
        description: The amount of tax to be paid with this filing
        format: double
        type: number
      ContactID:
        description: Billing Contact
        type: string
      CreatedByID:
        description: Created By User ID
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Date:
        description: Filing Date
        type: string
      DueDate:
        description: Due Date
        format: string
      FilingNumber:
        description: Due Date
        format: string
      FilingTypeID:
        description: The ID of the Filing Type for this Filing
        format: string
      Frequency:
        description: Due Date
        format: string
      ID:
        description: Record Id
        type: string
      Interest:
        description: Interest
        format: double
        type: number
      InterestRate:
        description: Interest
        format: double
        type: number
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      MonthNumber:
        description: The number of the Month of the filing
        format: int64
        type: number
      OwnerID:
        description: Taxneuxs ID of the User who owns this record
        type: string
      Penalty:
        description: Penalty
        format: double
        type: number
      PenaltyDays:
        description: Penalty Days
        format: double
        type: number
      PenaltyRate:
        description: Penalty Days
        format: double
        type: number
      PeriodID:
        description: Period
        type: string
      PreparerID:
        description: Taxnexus ID of the Contact who prepared this filing
        type: string
      QuarterNumber:
        description: The number of the Month of the filing
        format: int64
        type: number
      Ref:
        description: "Source System identifier for this record, if any"
        type: string
      ReportedAdjustments:
        description: Reported Adjustments
        format: double
        type: number
      ReportedDeductions:
        description: Reported Deductions
        format: double
        type: number
      ReportedNetRevenue:
        description: Reported Net Revenue
        format: double
        type: number
      ReportedRate:
        description: Reported Rate
        format: double
        type: number
      ReportedRevenue:
        description: Reported Revenue
        format: double
        type: number
      RevenueBase:
        description: Revenue Base
        format: double
        type: number
      RevenueNet:
        description: Revenue Net
        format: double
        type: number
      RevenueNotTaxable:
        description: Revenue Not Taxable
        format: double
        type: number
      SemiannualNumber:
        description: The number of the Month of the filing
        format: int64
        type: number
      Status:
        description: Status
        type: string
      SubmissionID:
        description: Taxnexus ID of the Submission that owns this Filing
        type: string
      Subtotal:
        description: Reported Tax
        format: double
        type: number
      TaxOnTax:
        description: Tax On Tax
        format: double
        type: number
      TaxTypeAccountID:
        description:
          The TaxType Account for which this Filing is paying remittance
        type: string
      TenantID:
        description: Tenant that owns this object instance
        type: string
      TotalAmount:
        description: Total Amount
        format: double
        type: number
      UnitBase:
        description: Unit Base
        format: double
        type: number
      YearNumber:
        description: The number of the Month of the filing
        format: int64
        type: number
    type: object
  FilingRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Filing"
        type: array
    type: object
  FilingResponse:
    description: An array of Filing Objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Filing"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  FilingScheduleItem:
    description: Dates when this FilingType is due for filing
    properties:
      Description:
        type: string
      DueDate:
        type: string
    type: object
  FilingType:
    description: An array of FilingType Objects
    properties:
      AccountID:
        description: Tax Authority
        type: string
      ContactID:
        description: Contact
        type: string
      CreatedById:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      DueDates:
        items:
          $ref: "#/definitions/FilingScheduleItem"
        type: array
      FilingCity:
        description: Filing City
        type: string
      FilingCountry:
        description: Filing Country
        type: string
      FilingPostalCode:
        description: Filing Postal Code
        type: string
      FilingState:
        description: Filing State
        type: string
      FilingStreet:
        description: Filing Street
        type: string
      FormName:
        description: Form Name
        type: string
      FormVersion:
        description: Form Version
        type: string
      Frequency:
        description: Frequency
        type: string
      FullName:
        description: Filing Full Name
        type: string
      ID:
        description: Record Id
        type: string
      Instances:
        items:
          $ref: "#/definitions/FilingTypeInstance"
        type: array
      LastModifiedById:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modifed Date
        type: string
      Level:
        description: Jurisdictional Level
        type: string
      Name:
        description: Name
        type: string
      OwnerID:
        description: Owner
        type: string
      SagaType:
        description: Saga Type
        type: string
      SubmissionMethod:
        description: Submission Method
        type: string
      TemplateInstructionsID:
        description: Instructions Template
        type: string
      TemplateReturnID:
        description: Return Template
        type: string
    type: object
  FilingTypeInstance:
    description: A list of jurisdictions that use this Filing Type
    properties:
      CountryID:
        description: Country Id
        type: string
      CountyID:
        description: County ID
        type: string
      FilingTypeID:
        description: The ID of the Filing Type for this Filing
        format: string
      ObjectType:
        description:
          The type of object that owns this FilingType instance
        type: string
      PlaceID:
        description: Place ID
        type: string
      StateID:
        description: StateID
        type: string
    type: object
  FilingTypeRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/FilingType"
        type: array
    type: object
  FilingTypeResponse:
    description: An array of Filing Objects
    properties:
      Data:
        items:
          $ref: "#/definitions/FilingType"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  GeoLicenseTypeInstance:
    description: Links a license type to a geography
    properties:
      CountryID:
        type: string
      CountyID:
        type: string
      ObjectType:
        type: string
      PlaceID:
        type: string
      StateID:
        type: string
    type: object
  InvalidError:
    allOf:
      - $ref: "#/definitions/Error"
      - properties:
          details:
            items:
              type: string
            type: array
        type: object
  License:
    properties:
      AccountID:
        description: Account ID
        type: string
      BackendID:
        description: Backend ID for external access
        type: string
      ContactID:
        description: Contact ID
        type: string
      CreatedByID:
        description: Created By User ID
        type: string
      CreatedDate:
        description: Created Date
        type: string
      DateIssued:
        description: Date
        type: string
      Designation:
        description: The designation
        type: string
      ExpirationDate:
        description: Expiration Date
        type: string
      ID:
        description: Taxnexus Record Id Only; not used in POST
        type: string
      IsCanceled:
        description: Is Canceled?
        type: boolean
      IsRevoked:
        description: Is Revoked?
        type: boolean
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      LicenseTypeID:
        description: License Type ID
        type: string
      Name:
        description: License Number
        type: string
      OwnerID:
        description: Owner of the object instance
        type: string
      ParentFK:
        description:
          UUID Reference the master record that owns this item
        type: string
      Ref:
        description: "Source System identifier for this record, if any"
        type: string
      Status:
        description: Status
        type: string
      TenantID:
        description: Tenant that owns this object instance
        type: string
    type: object
  LicenseRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/License"
        type: array
    type: object
  LicenseResponse:
    description: An array of License Objects
    properties:
      Data:
        items:
          $ref: "#/definitions/License"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  LicenseType:
    properties:
      AccountID:
        description: Account ID
        type: string
      AgentID:
        description: Agent ID
        type: string
      ContactID:
        description: Contact ID
        type: string
      Cost:
        description: Cost
        format: double
        type: number
      CreatedByID:
        description: Created By User ID
        type: string
      CreatedDate:
        description: Created Date
        type: string
      DomainID:
        description: Domain
        type: string
      Domains:
        items:
          type: string
        type: array
      Frequency:
        description: Frequency
        type: string
      ID:
        description: Taxnexus Record Id Only; not used in POST
        type: string
      Jurisdictions:
        items:
          $ref: "#/definitions/GeoLicenseTypeInstance"
        type: array
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      Level:
        description: Level
        type: string
      MetrcName:
        description: License Type Metrc Name
        type: string
      Name:
        description: License Type Name
        type: string
      PicklistValue:
        description: License Type Picklist Value
        type: string
      Ref:
        description: "Source System identifier for this record, if any"
        type: string
      Restriction:
        description: Restriction
        type: string
      Tier:
        description: Tier
        type: string
    type: object
  LicenseTypeRequest:
    description: An array of License Type Objects
    properties:
      Data:
        items:
          $ref: "#/definitions/LicenseType"
        type: array
    type: object
  LicenseTypeResponse:
    description: An array of License Type Objects
    properties:
      Data:
        items:
          $ref: "#/definitions/LicenseType"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Message:
    properties:
      Message:
        type: string
      Ref:
        type: string
      Status:
        format: int64
        type: integer
    type: object
  Notebook:
    description: Defines a Taxnexus Notebook
    properties:
      AccountID:
        description: Account
        type: string
      ContactID:
        description: Contact
        type: string
      CreatedById:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Date:
        description: Analysis Date
        type: string
      DateEnd:
        description: End Date
        type: string
      DateStart:
        description: Start Date
        type: string
      Description:
        description: Description
        type: string
      ID:
        description: Record Id
        type: string
      Items:
        items:
          $ref: "#/definitions/NotebookItem"
        type: array
      LastModifiedById:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modifed Date
        type: string
      PeriodEndID:
        description: Ending Period
        type: string
      PeriodStartID:
        description: Starting Period
        type: string
      PreparerID:
        description: Preparer
        type: string
      TenantID:
        description: Tenant that owns this object instance
        type: string
      Title:
        description: Title
        type: string
    type: object
  NotebookItem:
    description: An analysis item associated with a Notebook
    properties:
      ID:
        description: Record Id
        type: string
      ItemName:
        description: Developer name of component
        type: string
      NotebookID:
        description: The notebook that owns this Item
        type: string
      TenantID:
        description: Tenant that owns this object instance
        type: string
      Title:
        description: Display title
        type: string
    type: object
  NotebookRequest:
    description: An array of Notebook objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Notebook"
        type: array
    type: object
  NotebookResponse:
    description: An array of Notebook objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Notebook"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Pagination:
    properties:
      Limit:
        format: int64
        type: integer
      POffset:
        format: int64
        type: integer
      PageSize:
        format: int64
        type: integer
      SetSize:
        format: int64
        type: integer
    type: object
  RatingEngine:
    properties:
      CreatedByID:
        description: Created By User ID
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Description:
        description: Description
        type: string
      ID:
        description: Taxnexus Rating Engine Record Id
        type: string
      IngestMethod:
        description: Ingest Method
        type: string
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      Name:
        description: Rating Engine Name
        type: string
      Rules:
        items:
          $ref: "#/definitions/RatingEngineItem"
        type: array
    type: object
  RatingEngineItem:
    properties:
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      ID:
        description: Taxnexus Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      Name:
        description: Taxnexus Rating Engine Name
        type: string
      ProductCode:
        description: Product Code
        type: string
      RatingEngineID:
        description: Rating Engine
        type: string
      Ref:
        description: External Reference
        type: string
      TaxnexusCodeID:
        description: Taxnexus Code
        type: string
    type: object
  RatingEngineRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/RatingEngine"
        type: array
    type: object
  RatingEngineResponse:
    description: An array of License Objects
    properties:
      Data:
        items:
          $ref: "#/definitions/RatingEngine"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    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
  Submission:
    properties:
      CompanyID:
        description: The Company that did the submission (Taxnexus)
        type: string
      ContactID:
        description: Submission Contact
        type: string
      CreatedByID:
        description: Created By User ID
        type: string
      CreatedDate:
        description: Created Date
        type: string
      ID:
        description: Taxnexus Record Id Only; not used in POST
        type: string
      LastModifiedByID:
        description: Last Modified By User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      Notes:
        description: Cover Letter
        type: string
      ParentFK:
        description:
          UUID Reference the master record that owns this item
        type: string
      Penalty:
        description: Penalty paid
        format: double
        type: number
      Ref:
        description: "Source System identifier for this record, if any"
        type: string
      ReportedAdjustments:
        description: Reported Adjustments
        format: double
        type: number
      ReportedDeductions:
        description: Reported Deductions
        format: double
        type: number
      ReportedNetRevenue:
        description: Reported Net Revenue
        format: double
        type: number
      ReportedRate:
        description: Reported Rate
        format: double
        type: number
      ReportedRevenue:
        description: Reported Revenue
        format: double
        type: number
      RevenueBase:
        description: Revenue Base
        format: double
        type: number
      RevenueNet:
        description: Revenue Net
        format: double
        type: number
      RevenueNotTaxable:
        description: Revenue Not Taxable
        format: double
        type: number
      Status:
        description: Status
        type: string
      SubmissionDate:
        description: Submission Date
        type: string
      SubmissionNumber:
        description: Submission Number
        type: string
      Subtotal:
        description: Amount of remittance before penalty
        format: double
        type: number
      TaxTypeID:
        description:
          Taxnexus ID of the TaxType for which this submssion is being
          made
        type: string
      TenantID:
        description: Tenant that owns this object instance
        type: string
      TotalAmount:
        description: Total Amount of remittance
        format: double
        type: number
    type: object
  SubmissionRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Submission"
        type: array
    type: object
  SubmissionResponse:
    description: An array of Submission objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Submission"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  TaxTypeAccount:
    properties:
      AccountID:
        description: Account
        type: string
      AccountNumber:
        description: Account Number
        type: string
      Active:
        description: Active
        type: boolean
      Amount:
        description: Rollup Amount
        type: number
      ContactID:
        description: Contact ID
        type: string
      CreatedByID:
        description: Created By User ID
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Description:
        description: Description
        type: string
      EndDate:
        description: End Date
        type: string
      ID:
        description: Taxnexus Record Id
        type: string
      Interest:
        description: Interest
        format: double
        type: number
      LastModfiedByID:
        description: Last Modified By User ID
        type: string
      LastModfiedDate:
        description: Last Modified Date
        type: string
      Notes:
        description: Notes
        type: string
      ParentFK:
        description:
          UUID Reference the master record that owns this item
        type: string
      Penalty:
        description: Penalty
        format: double
        type: number
      Ref:
        description: "Source System identifier for this record, if any"
        type: string
      ReportedAdjustments:
        description: Reported Adjustments
        format: double
        type: number
      ReportedDeductions:
        description: Reported Deductions
        format: double
        type: number
      ReportedNetRevenue:
        description: Reported Net Revenue
        format: double
        type: number
      ReportedRate:
        description: Reported Rate
        format: double
        type: number
      ReportedRevenue:
        description: Reported Revenue
        format: double
        type: number
      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
      StartDate:
        description: Start Date
        type: string
      Subtotal:
        description: Reported Tax
        format: double
        type: number
      Tax:
        description: Rollup Tax
        format: double
        type: number
      TaxOnTax:
        description: Rollup Tax On Tax
        format: double
        type: number
      TaxTypeID:
        description: Tax Type
        type: string
      TenantID:
        description: Tenant that owns this object instance
        type: string
      TotalAmount:
        description: Total Amount
        format: double
        type: number
      UnitBase:
        description: Rollup Unit Base
        format: double
        type: number
    type: object
  TaxTypeAccountRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/TaxTypeAccount"
        type: array
    type: object
  TaxTypeAccountResponse:
    description: An array of Tax Type Account objects
    properties:
      Data:
        items:
          $ref: "#/definitions/TaxTypeAccount"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
  Transaction:
    description: A regulatory tax transaction
    properties:
      AccountID:
        description: Account ID
        type: string
      CreatedById:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      ID:
        description: Record Id
        type: string
      LastModifiedById:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modifed Date
        type: string
      TaxTransactionID:
        description: Tax Transaction ID
        type: string
      TaxTypeID:
        description: Tax Type ID
        type: string
      TenantID:
        description: Tenant that owns this object instance
        type: string
      Valid:
        description: Is this Transaction valid?
        type: boolean
    type: object
  TransactionRequest:
    properties:
      Data:
        items:
          $ref: "#/definitions/Transaction"
        type: array
    type: object
  TransactionResponse:
    description: An array of Transaction objects
    properties:
      Data:
        items:
          $ref: "#/definitions/Transaction"
        type: array
      Meta:
        $ref: "#/definitions/ResponseMeta"
    type: object
