openapi: 3.0.0
info:
  title: 'Invoice Ninja API Reference - Where self host invoicing lives.'
  description: |
        ---
        
        
          The Invoice Ninja API is organized around REST and returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
        
  
        
  termsOfService: 'https://invoiceninja.github.io/docs/legal/terms_of_service/#page-content'
  contact:
    email: contact@invoiceninja.com
  license:
    name: 'Elastic License'
    url: 'https://www.elastic.co/licensing/elastic-license'
  version: 5.5.70
servers:
  -
    url: 'https://demo.invoiceninja.com'
    description: |
          ## Demo API Server InvoiceNinja. 
          You can use the demo API key `TOKEN` to test the endpoints from within this API spec
paths:
  /api/v1/activities:
    get:
      tags:
        - actvities
      summary: 'Returns a list of actvities'
      description: 'Lists all activities related to this company'
      operationId: getActivities
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/activity_include'
        -
          $ref: '#/components/parameters/index'
        -
          $ref: '#/components/parameters/per_page_meta'
        -
          $ref: '#/components/parameters/page_meta'
      responses:
        200:
          description: 'A list of actvities'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/actvities/download_entity/{activity_id}':
    get:
      tags:
        - actvities
      summary: 'Returns a PDF for the given activity'
      description: 'Returns a PDF for the given activity'
      operationId: getActivityHistoricalEntityPdf
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/activity_include'
        -
          name: activity_id
          in: path
          description: 'The Activity Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'PDF File'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        404:
          description: 'No file exists for the given record'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/login:
    post:
      tags:
        - login
      summary: 'Attempts authentication'
      description: 'Returns a CompanyUser object on success'
      operationId: postLogin
      security:
        - []
      parameters:
        -
          $ref: '#/components/parameters/X-API-SECRET'
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/login_include'
        -
          $ref: '#/components/parameters/include_static'
        -
          $ref: '#/components/parameters/clear_cache'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              properties:
                email:
                  description: 'The users email address.'
                  type: string
                  example: 'demo@invoiceninja.com'
                password:
                  description: 'The user password. Must meet minimum criteria ~ > 6 characters'
                  type: string
                  example: 'Password0'
              type: object
      responses:
        200:
          description: 'The Company User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyUser'
        401:
          description: 'Authentication failure'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/refresh:
    post:
      tags:
        - refresh
      summary: 'Refresh data by timestamp'
      description: |
            Refreshes the dataset.  
            This endpoint can be used if you only need to access the most recent data from a certain point in time.
            operationId: refresh
      parameters:
        -
          name: updated_at
          in: query
          description: 'The unix timestamp from which the refreshed data should be sent from, if no value is passed the system will assume you require all data.'
          required: true
          schema:
            type: number
            format: integer
          example: 1676173763
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/include_static'
        -
          $ref: '#/components/parameters/clear_cache'
      responses:
        200:
          description: 'The Company User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyUser'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/yodlee/refresh:
    post:
      tags:
        - yodlee
      summary: 'Yodlee Webhook'
      description: 'Webhook endpoint for Yodlee. Used to notify the system that a data point can be updated.'
      operationId: yodleeRefreshWebhook
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: ''
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_integrations:
    get:
      tags:
        - bank_integrations
      summary: 'Returns a list of Bank Integrations'
      description: 'Lists all bank integrations'
      operationId: getBankIntegrations
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/bank_integration_include'
        -
          $ref: '#/components/parameters/index'
        -
          name: rows
          in: query
          description: 'The number of bank integrations to return'
          required: false
          schema:
            type: number
            format: integer
          example: '50'
      responses:
        200:
          description: 'A list of bank integrations'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankIntegration'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - bank_integrations
      summary: 'Adds a bank_integration'
      description: 'Adds an bank_integration to a company'
      operationId: storeBankIntegration
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved bank_integration object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankIntegration'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/bank_integrations/{id}':
    get:
      tags:
        - bank_integrations
      summary: 'Shows a bank_integration'
      description: 'Displays a bank_integration by id'
      operationId: showBankIntegration
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The BankIntegration Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the bank_integration object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankIntegration'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - bank_integrations
      summary: 'Updates a bank_integration'
      description: 'Handles the updating of a bank_integration by id'
      operationId: updateBankIntegration
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The BankIntegration Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the bank_integration object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankIntegration'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - bank_integrations
      summary: 'Deletes a bank_integration'
      description: 'Handles the deletion of a bank_integration by id'
      operationId: deleteBankIntegration
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The BankIntegration Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/bank_integrations/{id}/edit':
    get:
      tags:
        - bank_integrations
      summary: 'Shows a bank_integration for editing'
      description: 'Displays a bank_integration by id'
      operationId: editBankIntegration
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The BankIntegration Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the bank_integration object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankIntegration'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_integrations/create:
    get:
      tags:
        - bank_integrations
      summary: 'Gets a new blank bank_integration object'
      description: 'Returns a blank object with default values'
      operationId: getBankIntegrationsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank bank_integration object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankIntegration'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_integrations/bulk:
    post:
      tags:
        - bank_integrations
      summary: 'Performs bulk actions on an array of bank_integrations'
      description: ''
      operationId: bulkBankIntegrations
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Action paramters'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Bulk Action response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_integrations/refresh_accounts:
    post:
      tags:
        - bank_integrations
      summary: 'Gets the list of accounts from the remote server'
      description: 'Adds an bank_integration to a company'
      operationId: getRefreshAccounts
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved bank_integration object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankIntegration'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_integrations/remove_account/account_id:
    post:
      tags:
        - bank_integrations
      summary: 'Removes an account from the integration'
      description: 'Removes an account from the integration'
      operationId: getRemoveAccount
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the bank_integration object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankIntegration'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_integrations/get_transactions/account_id:
    post:
      tags:
        - bank_integrations
      summary: 'Retrieve transactions for a account'
      description: 'Retrieve transactions for a account'
      operationId: getAccountTransactions
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Retrieve transactions for a account'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankIntegration'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_transactions:
    get:
      tags:
        - bank_transactions
      summary: 'Gets a list of bank_transactions'
      description: 'Lists all bank integrations'
      operationId: getBankTransactions
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
        -
          name: rows
          in: query
          description: 'The number of bank integrations to return'
          required: false
          schema:
            type: number
            format: integer
          example: '50'
      responses:
        200:
          description: 'A list of bank integrations'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransaction'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - bank_transactions
      summary: 'Adds a bank_transaction'
      description: 'Adds an bank_transaction to a company'
      operationId: storeBankTransaction
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved bank_transaction object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransaction'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/bank_transactions/{id}':
    get:
      tags:
        - bank_transactions
      summary: 'Shows a bank_transaction'
      description: 'Displays a bank_transaction by id'
      operationId: showBankTransaction
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The BankTransaction Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the bank_transaction object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransaction'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - bank_transactions
      summary: 'Updates a bank_transaction'
      description: 'Handles the updating of a bank_transaction by id'
      operationId: updateBankTransaction
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The BankTransaction Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the bank_transaction object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransaction'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - bank_transactions
      summary: 'Deletes a bank_transaction'
      description: 'Handles the deletion of a bank_transaction by id'
      operationId: deleteBankTransaction
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The BankTransaction Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/bank_transactions/{id}/edit':
    get:
      tags:
        - bank_transactions
      summary: 'Shows a bank_transaction for editing'
      description: 'Displays a bank_transaction by id'
      operationId: editBankTransaction
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The BankTransaction Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the bank_transaction object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransaction'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_transactions/create:
    get:
      tags:
        - bank_transactions
      summary: 'Gets a new blank bank_transaction object'
      description: 'Returns a blank object with default values'
      operationId: getBankTransactionsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank bank_transaction object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransaction'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_transations/bulk:
    post:
      tags:
        - bank_transactions
      summary: 'Performs bulk actions on an array of bank_transations'
      description: ''
      operationId: bulkBankTransactions
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Action paramters'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Bulk Action response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_transations/match:
    post:
      tags:
        - bank_transactions
      summary: 'Performs match actions on an array of bank_transactions'
      description: ''
      operationId: matchBankTransactions
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Action paramters'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Bulk Action response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_transaction_rules:
    get:
      tags:
        - bank_transaction_rules
      summary: 'Gets a list of bank_transaction_rules'
      description: 'Lists all bank transaction rules'
      operationId: getBankTransactionRules
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
        -
          name: rows
          in: query
          description: 'The number of bank integrations to return'
          required: false
          schema:
            type: number
            format: integer
          example: '50'
      responses:
        200:
          description: 'A list of bank integrations'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransactionRule'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - bank_transaction_rules
      summary: 'Adds a bank_transaction rule'
      description: 'Adds an bank_transaction to a company'
      operationId: storeBankTransactionRule
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved bank_transaction rule object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransactionRule'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/bank_transaction_rules/{id}':
    get:
      tags:
        - bank_transaction_rules
      summary: 'Shows a bank_transaction'
      description: 'Displays a bank_transaction by id'
      operationId: showBankTransactionRule
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Bank Transaction RuleHashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the bank_transaction rule object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransactionRule'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - bank_transaction_rules
      summary: 'Updates a bank_transaction Rule'
      description: 'Handles the updating of a bank_transaction rule by id'
      operationId: updateBankTransactionRule
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Bank Transaction Rule Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the bank_transaction rule object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransactionRule'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - bank_transaction_rules
      summary: 'Deletes a bank_transaction rule'
      description: 'Handles the deletion of a bank_transaction rule by id'
      operationId: deleteBankTransactionRule
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Bank Transaction Rule Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/bank_transaction_rules/{id}/edit':
    get:
      tags:
        - bank_transaction_rules
      summary: 'Shows a bank_transaction for editing'
      description: 'Displays a bank_transaction by id'
      operationId: editBankTransactionRule
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Bank Transaction Rule Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the bank_transaction rule object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransactionRule'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_transaction_rules/create:
    get:
      tags:
        - bank_transaction_rules
      summary: 'Gets a new blank bank_transaction rule object'
      description: 'Returns a blank object with default values'
      operationId: getBankTransactionRulesCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank bank_transaction rule object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransactionRule'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/bank_transation_rules/bulk:
    post:
      tags:
        - bank_transaction_rules
      summary: 'Performs bulk actions on an array of bank_transation rules'
      description: ''
      operationId: bulkBankTransactionRules
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Action paramters'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Bulk Action response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/charts/totals:
    post:
      tags:
        - charts
      summary: 'Get chart data'
      description: 'Get chart data'
      operationId: getChartTotals
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
        -
          name: rows
          in: query
          description: 'The chart'
          required: false
          schema:
            type: number
            format: integer
          example: '50'
      responses:
        200:
          description: 'json dataset of chart data'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/client_gateway_tokens:
    get:
      tags:
        - client_gateway_tokens
      summary: 'List of client tokens'
      description: "Lists client_gateway_tokens, search and filters allow fine grained lists to be generated.\n\n    Query parameters can be added to performed more fine grained filtering of the client_gateway_tokens, these are handled by the ClientGatewayTokenFilters class which defines the methods available"
      operationId: getClientGatewayTokens
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of client_gateway_tokens'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientGatewayToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - client_gateway_tokens
      summary: 'Adds a client'
      description: 'Adds an client to a company'
      operationId: storeClientGatewayToken
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientGatewayToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/client_gateway_tokens/{id}':
    get:
      tags:
        - client_gateway_tokens
      summary: 'Shows a client'
      description: 'Displays a client by id'
      operationId: showClientGatewayToken
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The ClientGatewayToken Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the cl.ient object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientGatewayToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - client_gateway_tokens
      summary: 'Updates a client'
      description: 'Handles the updating of a client by id'
      operationId: updateClientGatewayToken
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The ClientGatewayToken Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientGatewayToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - client_gateway_tokens
      summary: 'Deletes a client'
      description: 'Handles the deletion of a client by id'
      operationId: deleteClientGatewayToken
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The ClientGatewayToken Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/client_gateway_tokens/{id}/edit':
    get:
      tags:
        - client_gateway_tokens
      summary: 'Shows a client for editting'
      description: 'Displays a client by id'
      operationId: editClientGatewayToken
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The ClientGatewayToken Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientGatewayToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/client_gateway_tokens/create:
    get:
      tags:
        - client_gateway_tokens
      summary: 'Gets a new blank client object'
      description: 'Returns a blank object with default values'
      operationId: getClientGatewayTokensCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientGatewayToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  
  /api/v1/companies:
    get:
      tags:
        - companies
      summary: 'Gets a list of companies'
      description: "Lists companies, search and filters allow fine grained lists to be generated.\n\n        Query parameters can be added to performed more fine grained filtering of the companies, these are handled by the CompanyFilters class which defines the methods available"
      operationId: getCompanies
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of companies'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - companies
      summary: 'Adds a company'
      description: 'Adds an company to the system'
      operationId: storeCompany
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved company object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/companies/create:
    get:
      tags:
        - companies
      summary: 'Gets a new blank company object'
      description: 'Returns a blank object with default values'
      operationId: getCompaniesCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank company object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/companies/{id}':
    get:
      tags:
        - companies
      summary: 'Shows an company'
      description: 'Displays an company by id'
      operationId: showCompany
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Company Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the company object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - companies
      summary: 'Updates an company'
      description: 'Handles the updating of an company by id'
      operationId: updateCompany
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Company Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the company object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - companies
      summary: 'Deletes a company'
      description: 'Handles the deletion of an company by id'
      operationId: deleteCompany
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Company Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/companies/{id}/edit':
    get:
      tags:
        - companies
      summary: 'Shows an company for editting'
      description: 'Displays an company by id'
      operationId: editCompany
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Company Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the company object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/companies/{id}/upload':
    put:
      tags:
        - companies
      summary: 'Uploads a document to a company'
      description: 'Handles the uploading of a document to a company'
      operationId: uploadCompanies
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Company Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/companies/{company}/default':
    post:
      tags:
        - companies
      summary: 'Sets the company as the default company.'
      description: 'Sets the company as the default company.'
      operationId: setDefaultCompany
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: company
          in: path
          description: 'The Company Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the company object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/company_gateways:
    get:
      tags:
        - company_gateways
      summary: 'Gets a list of company_gateways'
      description: "Lists company_gateways, search and filters allow fine grained lists to be generated.\n\n        Query parameters can be added to performed more fine grained filtering of the company_gateways, these are handled by the CompanyGatewayFilters class which defines the methods available"
      operationId: getCompanyGateways
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of company_gateways'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyGateway'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - company_gateways
      summary: 'Adds a CompanyGateway'
      description: 'Adds an CompanyGateway to the system'
      operationId: storeCompanyGateway
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved CompanyGateway object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyGateway'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/company_gateways/create:
    get:
      tags:
        - company_gateways
      summary: 'Gets a new blank CompanyGateway object'
      description: 'Returns a blank object with default values'
      operationId: getCompanyGatewaysCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank CompanyGateway object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyGateway'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/company_gateways/{id}':
    get:
      tags:
        - company_gateways
      summary: 'Shows an CompanyGateway'
      description: 'Displays an CompanyGateway by id'
      operationId: showCompanyGateway
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The CompanyGateway Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the CompanyGateway object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyGateway'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - company_gateways
      summary: 'Updates an CompanyGateway'
      description: 'Handles the updating of an CompanyGateway by id'
      operationId: updateCompanyGateway
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The CompanyGateway Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the CompanyGateway object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyGateway'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - company_gateways
      summary: 'Deletes a CompanyGateway'
      description: 'Handles the deletion of an CompanyGateway by id'
      operationId: deleteCompanyGateway
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The CompanyGateway Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/company_gateways/{id}/edit':
    get:
      tags:
        - company_gateways
      summary: 'Shows an CompanyGateway for editting'
      description: 'Displays an CompanyGateway by id'
      operationId: editCompanyGateway
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The CompanyGateway Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the CompanyGateway object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyGateway'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/company_gateways/bulk:
    post:
      tags:
        - company_gateways
      summary: 'Performs bulk actions on an array of company_gateways'
      description: ''
      operationId: bulkCompanyGateways
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Array of company gateway IDs'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Company Gateways response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyGateway'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/company_ledger:
    get:
      tags:
        - company_ledger
      summary: 'Gets a list of company_ledger'
      description: 'Lists the company_ledger.'
      operationId: getCompanyLedger
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of company_ledger'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyLedger'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/company_users:
    post:
      tags:
        - company_user
      summary: 'Update a company user record'
      description: 'Attempts to update a company user record. A company user can modify only their settings fields. Full access for Admin users'
      operationId: updateCompanyUser
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: 'The Company User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyUser'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/connected_account:
    post:
      tags:
        - connected_account
      summary: 'Connect an oauth user to an existing user'
      description: 'Refreshes the dataset'
      operationId: connected_account
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/include_static'
        -
          $ref: '#/components/parameters/clear_cache'
      responses:
        200:
          description: 'The Company User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/credits:
    get:
      tags:
        - credits
      summary: 'Gets a list of credits'
      description: "Lists credits, search and filters allow fine grained lists to be generated.\n     *\n     *      Query parameters can be added to performed more fine grained filtering of the credits, these are handled by the CreditFilters class which defines the methods available"
      operationId: getCredits
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of credits'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - credits
      summary: 'Adds a credit'
      description: 'Adds an credit to the system'
      operationId: storeCredit
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved credit object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/credits/create:
    get:
      tags:
        - credits
      summary: 'Gets a new blank credit object'
      description: 'Returns a blank object with default values'
      operationId: getCreditsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank credit object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/credits/{id}':
    get:
      tags:
        - credits
      summary: 'Shows an credit'
      description: 'Displays an credit by id'
      operationId: showCredit
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Credit Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the credit object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - Credits
      summary: 'Updates an Credit'
      description: 'Handles the updating of an Credit by id'
      operationId: updateCredit
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Credit Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Credit object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - credits
      summary: 'Deletes a credit'
      description: 'Handles the deletion of an credit by id'
      operationId: deleteCredit
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Credit Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/credits/{id}/edit':
    get:
      tags:
        - credits
      summary: 'Shows an credit for editting'
      description: 'Displays an credit by id'
      operationId: editCredit
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Invoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the credit object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/credits/bulk:
    post:
      tags:
        - credits
      summary: 'Performs bulk actions on an array of credits'
      description: ''
      operationId: bulkCredits
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Bulk Action response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/credit/{invitation_key}/download':
    get:
      tags:
        - quotes
      summary: 'Download a specific credit by invitation key'
      description: 'Downloads a specific quote'
      operationId: downloadCredit
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: invitation_key
          in: path
          description: 'The Credit Invitation Key'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the credit pdf'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/credits/{id}/upload':
    put:
      tags:
        - credits
      summary: 'Uploads a document to a credit'
      description: 'Handles the uploading of a document to a credit'
      operationId: uploadCredits
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Credit Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Credit object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/designs:
    get:
      tags:
        - designs
      summary: 'Gets a list of designs'
      description: 'Lists designs'
      operationId: getDesigns
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of designs'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Design'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - designs
      summary: 'Adds a design'
      description: 'Adds an design to a company'
      operationId: storeDesign
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved design object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Design'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/designs/{id}':
    get:
      tags:
        - designs
      summary: 'Shows a design'
      description: 'Displays a design by id'
      operationId: showDesign
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Design Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the expense object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Design'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - designs
      summary: 'Updates a design'
      description: 'Handles the updating of a design by id'
      operationId: updateDesign
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Design Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the design object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Design'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - designs
      summary: 'Deletes a design'
      description: 'Handles the deletion of a design by id'
      operationId: deleteDesign
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Design Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/designs/{id}/edit':
    get:
      tags:
        - designs
      summary: 'Shows a design for editting'
      description: 'Displays a design by id'
      operationId: editDesign
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Design Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the design object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Design'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/designs/create:
    get:
      tags:
        - designs
      summary: 'Gets a new blank design object'
      description: 'Returns a blank object with default values'
      operationId: getDesignsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank design object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Design'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/designs/bulk:
    post:
      tags:
        - designs
      summary: 'Performs bulk actions on an array of designs'
      description: ''
      operationId: bulkDesigns
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Design User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Design'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/documents:
    get:
      tags:
        - documents
      summary: 'Gets a list of documents'
      description: "Lists documents, search and filters allow fine grained lists to be generated.\n\n    Query parameters can be added to performed more fine grained filtering of the documents, these are handled by the DocumentsFilters class which defines the methods available"
      operationId: getDocuments
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of documents'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/emails:
    post:
      tags:
        - emails
      summary: 'Sends an email for an entity'
      description: 'Sends an email for an entity'
      operationId: sendEmailTemplate
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        description: 'The template subject and body'
        required: true
        content:
          application/json:
            schema:
              properties:
                subject:
                  description: 'The email subject'
                  type: string
                body:
                  description: 'The email body'
                  type: string
                entity:
                  description: 'The entity name'
                  type: string
                entity_id:
                  description: 'The entity_id'
                  type: string
                template:
                  description: 'The template required'
                  type: string
              type: object
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/expense_categories:
    get:
      tags:
        - expense_categories
      summary: 'Gets a list of expense_categories'
      description: 'Lists tax rates'
      operationId: getExpenseCategorys
      parameters:
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of expense_categories'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseCategory'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - expense_categories
      summary: 'Adds a expense category'
      description: 'Adds an expense category to the system'
      operationId: storeExpenseCategory
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved invoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseCategory'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/expense_categories/create:
    get:
      tags:
        - expense_categories
      summary: 'Gets a new blank Expens Category object'
      description: 'Returns a blank object with default values'
      operationId: getExpenseCategoryCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: 'A blank Expens Category object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseCategory'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/expense_categories/{id}':
    get:
      tags:
        - expense_categories
      summary: 'Shows a Expens Category'
      description: 'Displays an ExpenseCategory by id'
      operationId: showExpenseCategory
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: id
          in: path
          description: 'The ExpenseCategory Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Expens Category object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseCategory'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - expense_categories
      summary: 'Updates a tax rate'
      description: 'Handles the updating of a tax rate by id'
      operationId: updateExpenseCategory
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: id
          in: path
          description: 'The ExpenseCategory Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the ExpenseCategory object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseCategory'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - expense_categories
      summary: 'Deletes a ExpenseCategory'
      description: 'Handles the deletion of an ExpenseCategory by id'
      operationId: deleteExpenseCategory
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: id
          in: path
          description: 'The ExpenseCategory Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/expense_categories/{id}/edit':
    get:
      tags:
        - expense_categories
      summary: 'Shows a Expens Category for editting'
      description: 'Displays a Expens Category by id'
      operationId: editExpenseCategory
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: id
          in: path
          description: 'The ExpenseCategory Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Expens Category object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseCategory'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/expense_categories/bulk:
    post:
      tags:
        - expense_categories
      summary: 'Performs bulk actions on an array of ExpenseCategorys'
      description: ''
      operationId: bulkExpenseCategorys
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Expens Categorys'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The ExpenseCategory List response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/expenses:
    get:
      tags:
        - expenses
      summary: 'Gets a list of expenses'
      description: "Lists expenses, search and filters allow fine grained lists to be generated.\n\n    Query parameters can be added to performed more fine grained filtering of the expenses, these are handled by the ExpenseFilters class which defines the methods available"
      operationId: getExpenses
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of expenses'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Expense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - expenses
      summary: 'Adds a client'
      description: 'Adds an client to a company'
      operationId: storeExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Expense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/expenses/{id}':
    get:
      tags:
        - expenses
      summary: 'Shows a client'
      description: 'Displays a client by id'
      operationId: showExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Expense Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the expense object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Expense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - expenses
      summary: 'Updates a client'
      description: 'Handles the updating of a client by id'
      operationId: updateExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Expense Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Expense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - expenses
      summary: 'Deletes a client'
      description: 'Handles the deletion of a client by id'
      operationId: deleteExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Expense Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/expenses/{id}/edit':
    get:
      tags:
        - expenses
      summary: 'Shows a client for editting'
      description: 'Displays a client by id'
      operationId: editExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Expense Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Expense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/expenses/create:
    get:
      tags:
        - expenses
      summary: 'Gets a new blank client object'
      description: 'Returns a blank object with default values'
      operationId: getExpensesCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Expense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/expenses/bulk:
    post:
      tags:
        - expenses
      summary: 'Performs bulk actions on an array of expenses'
      description: ''
      operationId: bulkExpenses
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Expense User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Expense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/expenses/{id}/upload':
    put:
      tags:
        - expense
      summary: 'Uploads a document to a expense'
      description: 'Handles the uploading of a document to a expense'
      operationId: uploadExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Expense Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Expense object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Expense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/export:
    post:
      tags:
        - export
      summary: 'Export data from the system'
      description: 'Export data from the system'
      operationId: getExport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/group_settings:
    get:
      tags:
        - group_settings
      summary: 'Gets a list of group_settings'
      description: "Lists group_settings, search and filters allow fine grained lists to be generated.\n\n        Query parameters can be added to performed more fine grained filtering of the group_settings, these are handled by the GroupSettingFilters class which defines the methods available"
      operationId: getGroupSettings
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of group_settings'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupSetting'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - group_settings
      summary: 'Adds a GroupSetting'
      description: 'Adds an GroupSetting to the system'
      operationId: storeGroupSetting
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved GroupSetting object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupSetting'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/group_settings/create:
    get:
      tags:
        - group_settings
      summary: 'Gets a new blank GroupSetting object'
      description: 'Returns a blank object with default values'
      operationId: getGroupSettingsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank GroupSetting object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupSetting'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/group_settings/{id}':
    get:
      tags:
        - group_settings
      summary: 'Shows an GroupSetting'
      description: 'Displays an GroupSetting by id'
      operationId: showGroupSetting
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The GroupSetting Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the GroupSetting object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupSetting'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - group_settings
      summary: 'Updates an GroupSetting'
      description: 'Handles the updating of an GroupSetting by id'
      operationId: updateGroupSetting
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The GroupSetting Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the GroupSetting object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupSetting'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - group_settings
      summary: 'Deletes a GroupSetting'
      description: 'Handles the deletion of an GroupSetting by id'
      operationId: deleteGroupSetting
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The GroupSetting Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/group_settings/{id}/edit':
    get:
      tags:
        - group_settings
      summary: 'Shows an GroupSetting for editting'
      description: 'Displays an GroupSetting by id'
      operationId: editGroupSetting
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The GroupSetting Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the GroupSetting object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupSetting'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/group_settings/bulk:
    post:
      tags:
        - group_settings
      summary: 'Performs bulk actions on an array of group_settings'
      description: ''
      operationId: bulkGroupSettings
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'An array of group_settings ids'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Bulk Action response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/group_settings/{id}/upload':
    put:
      tags:
        - group_settings
      summary: 'Uploads a document to a group setting'
      description: 'Handles the uploading of a document to a group setting'
      operationId: uploadGroupSetting
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Group Setting Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Group Setting object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/preimport:
    post:
      tags:
        - imports
      summary: 'Pre Import checks - returns a reference to the job and the headers of the CSV'
      description: 'Pre Import checks - returns a reference to the job and the headers of the CSV'
      operationId: preimport
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      requestBody:
        description: 'The CSV file'
        required: true
        content:
          multipart/form-data:
            schema:
              type: string
              format: binary
      responses:
        200:
          description: 'Returns a reference to the file'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/import_json:
    post:
      tags:
        - import
      summary: 'Import data from the system'
      description: 'Import data from the system'
      operationId: getImportJson
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/apple/confirm_purchase:
    post:
      tags:
        - postmark
      summary: 'Processing webhooks from Apple for in app purchases'
      description: 'Adds an credit to the system'
      operationId: confirmApplePurchase
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved credit object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/apple/process_webhook:
    post:
      tags:
        - postmark
      summary: 'Processing event webhooks from Apple for in purchase / subscription status update'
      description: 'Adds an credit to the system'
      operationId: processAppleWebhook
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved credit object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/invoices:
    get:
      tags:
        - invoices
      summary: 'Gets a list of invoices'
      description: "Lists invoices, search and filters allow fine grained lists to be generated.\n     *\n     *\t\tQuery parameters can be added to performed more fine grained filtering of the invoices, these are handled by the InvoiceFilters class which defines the methods available"
      operationId: getInvoices
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of invoices'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - invoices
      summary: 'Adds a invoice'
      description: 'Adds an invoice to the system'
      operationId: storeInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FillableInvoice'
      responses:
        200:
          description: 'Returns the saved invoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/invoices/create:
    get:
      tags:
        - invoices
      summary: 'Gets a new blank invoice object'
      description: 'Returns a blank object with default values'
      operationId: getInvoicesCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank invoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/invoices/{id}':
    get:
      tags:
        - invoices
      summary: 'Shows an invoice'
      description: 'Displays an invoice by id'
      operationId: showInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Invoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the invoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - invoices
      summary: 'Updates an invoice'
      description: 'Handles the updating of an invoice by id'
      operationId: updateInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Invoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the invoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - invoices
      summary: 'Deletes a invoice'
      description: 'Handles the deletion of an invoice by id'
      operationId: deleteInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Invoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/invoices/{id}/edit':
    get:
      tags:
        - invoices
      summary: 'Shows an invoice for editting'
      description: 'Displays an invoice by id'
      operationId: editInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Invoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the invoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/invoices/bulk:
    post:
      tags:
        - invoices
      summary: 'Performs bulk actions on an array of invoices'
      description: ''
      operationId: bulkInvoices
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Bulk Action response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/invoices/{id}/{action}':
    get:
      tags:
        - invoices
      summary: 'Performs a custom action on an invoice'
      description: "Performs a custom action on an invoice.\n     *\n     *        The current range of actions are as follows\n     *        - clone_to_invoice\n     *        - clone_to_quote\n     *        - history\n     *        - delivery_note\n     *        - mark_paid\n     *        - download\n     *        - archive\n     *        - delete\n     *        - email"
      operationId: actionInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Invoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
        -
          name: action
          in: path
          description: 'The action string to be performed'
          required: true
          schema:
            type: string
            format: string
          example: clone_to_quote
      responses:
        200:
          description: 'Returns the invoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/invoice/{invitation_key}/download':
    get:
      tags:
        - invoices
      summary: 'Download a specific invoice by invitation key'
      description: 'Downloads a specific invoice'
      operationId: downloadInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: invitation_key
          in: path
          description: 'The Invoice Invitation Key'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the invoice pdf'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/invoices/{id}/delivery_note':
    get:
      tags:
        - invoices
      summary: 'Download a specific invoice delivery notes'
      description: 'Downloads a specific invoice delivery notes'
      operationId: deliveryNote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Invoice Hahsed Id'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the invoice delivery note pdf'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/invoices/{id}/upload':
    put:
      tags:
        - invoices
      summary: 'Uploads a document to a invoice'
      description: 'Handles the uploading of a document to a invoice'
      operationId: uploadInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Invoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Invoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/claim_license:
    get:
      tags:
        - claim_license
      summary: 'Attempts to claim a white label license'
      description: 'Attempts to claim a white label license'
      operationId: getClaimLicense
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: license_key
          in: query
          description: 'The license hash'
          required: true
          schema:
            type: string
            format: string
          example: d87sh-s755s-s7d76-sdsd8
        -
          name: product_id
          in: query
          description: 'The ID of the product purchased.'
          required: true
          schema:
            type: string
            format: string
          example: '1'
      responses:
        200:
          description: Success!
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/logout:
    post:
      tags:
        - logout
      summary: 'Gets a list of logout'
      description: 'Lists all logout'
      operationId: getLogout
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'Success message'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/migration/purge/{company}':
    post:
      tags:
        - migration
      summary: 'Attempts to purge a company record and all its child records'
      description: 'Attempts to purge a company record and all its child records'
      operationId: postPurgeCompany
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: company
          in: path
          description: 'The Company Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: Success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/migration/purge_save_settings/{company}':
    post:
      tags:
        - migration
      summary: 'Attempts to purge a companies child records but save the company record and its settings'
      description: 'Attempts to purge a companies child records but save the company record and its settings'
      operationId: postPurgeCompanySaveSettings
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: company
          in: path
          description: 'The Company Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: Success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/migration/start:
    post:
      tags:
        - migration
      summary: 'Starts the migration from previous version of Invoice Ninja'
      description: 'Starts the migration from previous version of Invoice Ninja'
      operationId: postStartMigration
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/X-API-PASSWORD'
        -
          name: migration
          in: query
          description: 'The migraton file'
          required: true
          schema:
            type: object
            format: file
          example: migration.zip
      responses:
        200:
          description: Success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/one_time_token:
    post:
      tags:
        - one_time_token
      summary: 'Attempts to create a one time token'
      description: 'Attempts to create a one time token'
      operationId: oneTimeToken
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: 'The Company User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/payments:
    get:
      tags:
        - payments
      summary: 'Gets a list of payments'
      description: "Lists payments, search and filters allow fine grained lists to be generated.\n\n        Query parameters can be added to performed more fine grained filtering of the payments, these are handled by the PaymentFilters class which defines the methods available"
      operationId: getPayments
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of payments'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - payments
      summary: 'Adds a Payment'
      description: 'Adds an Payment to the system'
      operationId: storePayment
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      requestBody:
        description: 'The payment request'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Payment'
      responses:
        200:
          description: 'Returns the saved Payment object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/payments/create:
    get:
      tags:
        - payments
      summary: 'Gets a new blank Payment object'
      description: 'Returns a blank object with default values'
      operationId: getPaymentsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank Payment object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/payments/{id}':
    get:
      tags:
        - payments
      summary: 'Shows an Payment'
      description: 'Displays an Payment by id'
      operationId: showPayment
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Payment Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Payment object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - payments
      summary: 'Updates an Payment'
      description: 'Handles the updating of an Payment by id'
      operationId: updatePayment
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Payment Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Payment object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - payments
      summary: 'Deletes a Payment'
      description: 'Handles the deletion of an Payment by id'
      operationId: deletePayment
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Payment Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/payments/{id}/edit':
    get:
      tags:
        - payments
      summary: 'Shows an Payment for editting'
      description: 'Displays an Payment by id'
      operationId: editPayment
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Payment Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Payment object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/payments/bulk:
    post:
      tags:
        - payments
      summary: 'Performs bulk actions on an array of payments'
      description: ''
      operationId: bulkPayments
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Payment response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/payments/{id}/{action}':
    get:
      tags:
        - payments
      summary: 'Performs a custom action on an Payment'
      description: "Performs a custom action on an Payment.\n\n    The current range of actions are as follows\n    - clone_to_Payment\n    - clone_to_quote\n    - history\n    - delivery_note\n    - mark_paid\n    - download\n    - archive\n    - delete\n    - email"
      operationId: actionPayment
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Payment Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
        -
          name: action
          in: path
          description: 'The action string to be performed'
          required: true
          schema:
            type: string
            format: string
          example: clone_to_quote
      responses:
        200:
          description: 'Returns the Payment object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/payments/refund:
    post:
      tags:
        - payments
      summary: 'Adds a Refund'
      description: 'Adds an Refund to the system'
      operationId: storeRefund
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      requestBody:
        description: 'The refund request'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Payment'
      responses:
        200:
          description: 'Returns the saved Payment object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/payments/{id}/upload':
    put:
      tags:
        - payments
      summary: 'Uploads a document to a payment'
      description: 'Handles the uploading of a document to a payment'
      operationId: uploadPayment
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Payment Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Payment object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/payment_terms:
    get:
      tags:
        - payment_terms
      summary: 'Gets a list of payment terms'
      description: 'Lists payment terms'
      operationId: getPaymentTerms
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of payment terms'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentTerm'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - payment_terms
      summary: 'Adds a Payment'
      description: 'Adds a Payment Term to the system'
      operationId: storePaymentTerm
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      requestBody:
        description: 'The payment_terms request'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentTerm'
      responses:
        200:
          description: 'Returns the saved Payment object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentTerm'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/payment_terms/create:
    get:
      tags:
        - payment_terms
      summary: 'Gets a new blank PaymentTerm object'
      description: 'Returns a blank object with default values'
      operationId: getPaymentTermsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank PaymentTerm object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/payment_terms/{id}':
    get:
      tags:
        - payment_terms
      summary: 'Shows a Payment Term'
      description: 'Displays an Payment Term by id'
      operationId: showPaymentTerm
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Payment Term Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Payment Term object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentTerm'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - payment_terms
      summary: 'Updates a Payment Term'
      description: 'Handles the updating of an Payment Termby id'
      operationId: updatePaymentTerm
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Payment Term Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Payment Term object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentTerm'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - payment_termss
      summary: 'Deletes a Payment Term'
      description: 'Handles the deletion of an PaymentTerm by id'
      operationId: deletePaymentTerm
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Payment Term Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/payment_terms/{id}/edit':
    get:
      tags:
        - payment_terms
      summary: 'Shows an Payment Term for editting'
      description: 'Displays an Payment Term by id'
      operationId: editPaymentTerms
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Payment Term Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Payment object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentTerm'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/payment_terms/bulk:
    post:
      tags:
        - payment_terms
      summary: 'Performs bulk actions on an array of payment terms'
      description: ''
      operationId: bulkPaymentTerms
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Payment Ter,s'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Payment Terms response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentTerm'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/ping:
    get:
      tags:
        - ping
      summary: 'Attempts to ping the API'
      description: 'Attempts to ping the API'
      operationId: getPing
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: 'The company and user name'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
  /api/v1/health_check:
    get:
      tags:
        - health_check
      summary: 'Attempts to get a health check from the API'
      description: 'Attempts to get a health check from the API'
      operationId: getHealthCheck
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: 'A key/value map of the system health'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
  /api/v1/postmark_webhook:
    post:
      tags:
        - postmark
      summary: 'Processing webhooks from PostMark'
      description: 'Adds an credit to the system'
      operationId: postmarkWebhook
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved credit object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/preview:
    post:
      tags:
        - preview
      summary: 'Returns a pdf preview'
      description: 'Returns a pdf preview.'
      operationId: getPreview
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: 'The pdf response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/preview/purchase_order:
    post:
      tags:
        - preview
      summary: 'Returns a pdf preview for purchase order'
      description: 'Returns a pdf preview for purchase order.'
      operationId: getPreviewPurchaseOrder
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: 'The pdf response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/products:
    get:
      tags:
        - products
      summary: 'Gets a list of products'
      description: "Lists products, search and filters allow fine grained lists to be generated.\n\n    Query parameters can be added to performed more fine grained filtering of the products, these are handled by the ProductFilters class which defines the methods available"
      operationId: getProducts
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of products'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - products
      summary: 'Adds a Product'
      description: 'Adds an Product to the system'
      operationId: storeProduct
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved Product object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/products/create:
    get:
      tags:
        - products
      summary: 'Gets a new blank Product object'
      description: 'Returns a blank object with default values'
      operationId: getProductsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank Product object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/products/{id}':
    get:
      tags:
        - products
      summary: 'Shows an Product'
      description: 'Displays an Product by id'
      operationId: showProduct
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Product Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Product object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - products
      summary: 'Updates an Product'
      description: 'Handles the updating of an Product by id'
      operationId: updateProduct
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Product Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Product object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - products
      summary: 'Deletes a Product'
      description: 'Handles the deletion of an Product by id'
      operationId: deleteProduct
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Product Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/products/{id}/edit':
    get:
      tags:
        - products
      summary: 'Shows an Product for editting'
      description: 'Displays an Product by id'
      operationId: editProduct
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Product Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Product object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/products/bulk:
    post:
      tags:
        - products
      summary: 'Performs bulk actions on an array of products'
      description: ''
      operationId: bulkProducts
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Hashed IDs'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Product response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/products/{id}/upload':
    put:
      tags:
        - products
      summary: 'Uploads a document to a product'
      description: 'Handles the uploading of a document to a product'
      operationId: uploadProduct
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Product Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Product object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/projects:
    get:
      tags:
        - projects
      summary: 'Gets a list of projects'
      description: 'Lists projects'
      operationId: getProjects
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of projects'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - projects
      summary: 'Adds a project'
      description: 'Adds an project to a company'
      operationId: storeProject
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved project object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/projects/{id}':
    get:
      tags:
        - projects
      summary: 'Shows a project'
      description: 'Displays a project by id'
      operationId: showProject
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Project Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the expense object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - projects
      summary: 'Updates a project'
      description: 'Handles the updating of a project by id'
      operationId: updateProject
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Project Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the project object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - projects
      summary: 'Deletes a project'
      description: 'Handles the deletion of a project by id'
      operationId: deleteProject
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Project Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/projects/{id}/edit':
    get:
      tags:
        - projects
      summary: 'Shows a project for editting'
      description: 'Displays a project by id'
      operationId: editProject
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Project Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the project object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/projects/create:
    get:
      tags:
        - projects
      summary: 'Gets a new blank project object'
      description: 'Returns a blank object with default values'
      operationId: getProjectsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank project object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/projects/bulk:
    post:
      tags:
        - projects
      summary: 'Performs bulk actions on an array of projects'
      description: ''
      operationId: bulkProjects
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Project User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/projects/{id}/upload':
    put:
      tags:
        - projects
      summary: 'Uploads a document to a project'
      description: 'Handles the uploading of a document to a project'
      operationId: uploadProject
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Project Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Project object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/purchase_orders:
    get:
      tags:
        - purchase_orders
      summary: 'Gets a list of purchase orders'
      description: "Lists purchase orders, search and filters allow fine grained lists to be generated.\n     *\n     *      Query parameters can be added to performed more fine grained filtering of the purchase orders, these are handled by the PurchaseOrderFilters class which defines the methods available"
      operationId: getPurchaseOrders
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of purchase orders'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - purhcase_orders
      summary: 'Adds a purchase order'
      description: 'Adds an purchase order to the system'
      operationId: storePurchaseOrder
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved purchase order object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/purchase_orders/create:
    get:
      tags:
        - purchase_orders
      summary: 'Gets a new blank purchase order object'
      description: 'Returns a blank object with default values'
      operationId: getPurchaseOrderCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank purchase order object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/purchase_orders/{id}':
    get:
      tags:
        - purchase_orders
      summary: 'Shows an purcase orders'
      description: 'Displays an purchase order by id'
      operationId: showPurchaseOrder
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Purchase order Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the purchase order object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - purchase_orders
      summary: 'Deletes a purchase order'
      description: 'Handles the deletion of an purchase orders by id'
      operationId: deletePurchaseOrder
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The purhcase order Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/purchase_orders/{id}/edit':
    get:
      tags:
        - purchase_orders
      summary: 'Shows an purchase order for editting'
      description: 'Displays an purchase order by id'
      operationId: editPurchaseOrder
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The purchase order Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the purchase order object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/purchase_order/{id}':
    put:
      tags:
        - purchase_orders
      summary: 'Updates an purchase order'
      description: 'Handles the updating of an purchase order by id'
      operationId: updatePurchaseOrder
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The purchase order Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the purchase order object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/purchase_orders/bulk:
    post:
      tags:
        - purchase_orders
      summary: 'Performs bulk actions on an array of purchase_orders'
      description: ''
      operationId: bulkPurchaseOrderss
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Purchase Order IDS'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Bulk Action response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/purchase_orders/{id}/{action}':
    get:
      tags:
        - purchase_orders
      summary: 'Performs a custom action on an purchase order'
      description: "Performs a custom action on an purchase order.\n     *\n     *        The current range of actions are as follows\n     *        - mark_paid\n     *        - download\n     *        - archive\n     *        - delete\n     *        - email"
      operationId: actionPurchaseOrder
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Purchase Order Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
        -
          name: action
          in: path
          description: 'The action string to be performed'
          required: true
          schema:
            type: string
            format: string
          example: clone_to_quote
      responses:
        200:
          description: 'Returns the invoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/purchase_orders/{id}/upload':
    put:
      tags:
        - purchase_orders
      summary: 'Uploads a document to a purchase_orders'
      description: 'Handles the uploading of a document to a purchase_order'
      operationId: uploadPurchaseOrder
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Purchase Order Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Purchase Order object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/purchase_order/{invitation_key}/download':
    get:
      tags:
        - purchase_orders
      summary: 'Download a specific purchase order by invitation key'
      description: 'Downloads a specific purchase order'
      operationId: downloadPurchaseOrder
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: invitation_key
          in: path
          description: 'The Purchase Order Invitation Key'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Purchase Order pdf'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/quotes:
    get:
      tags:
        - quotes
      summary: 'Gets a list of quotes'
      description: "Lists quotes, search and filters allow fine grained lists to be generated.\n     *\n     *      Query parameters can be added to performed more fine grained filtering of the quotes, these are handled by the QuoteFilters class which defines the methods available"
      operationId: getQuotes
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of quotes'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - quotes
      summary: 'Adds a Quote'
      description: 'Adds an Quote to the system'
      operationId: storeQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved Quote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/quotes/create:
    get:
      tags:
        - quotes
      summary: 'Gets a new blank Quote object'
      description: 'Returns a blank object with default values'
      operationId: getQuotesCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank Quote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/quotes/{id}':
    get:
      tags:
        - quotes
      summary: 'Shows an Quote'
      description: 'Displays an Quote by id'
      operationId: showQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Quote Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Quote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - quotes
      summary: 'Updates an Quote'
      description: 'Handles the updating of an Quote by id'
      operationId: updateQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Quote Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Quote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - quotes
      summary: 'Deletes a Quote'
      description: 'Handles the deletion of an Quote by id'
      operationId: deleteQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Quote Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/quotes/{id}/edit':
    get:
      tags:
        - quotes
      summary: 'Shows an Quote for editting'
      description: 'Displays an Quote by id'
      operationId: editQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Quote Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Quote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/quotes/bulk:
    post:
      tags:
        - quotes
      summary: 'Performs bulk actions on an array of quotes'
      description: ''
      operationId: bulkQuotes
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Hashed ids'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Quote response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/quotes/{id}/{action}':
    get:
      tags:
        - quotes
      summary: 'Performs a custom action on an Quote'
      description: "Performs a custom action on an Quote.\n\n    The current range of actions are as follows\n    - clone_to_quote\n    - history\n    - delivery_note\n    - mark_paid\n    - download\n    - archive\n    - delete\n    - convert\n    - convert_to_invoice\n    - email"
      operationId: actionQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Quote Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
        -
          name: action
          in: path
          description: 'The action string to be performed'
          required: true
          schema:
            type: string
            format: string
          example: clone_to_quote
      responses:
        200:
          description: 'Returns the Quote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/quote/{invitation_key}/download':
    get:
      tags:
        - quotes
      summary: 'Download a specific quote by invitation key'
      description: 'Downloads a specific quote'
      operationId: downloadQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: invitation_key
          in: path
          description: 'The Quote Invitation Key'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the quote pdf'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/quotes/{id}/upload':
    put:
      tags:
        - quotes
      summary: 'Uploads a document to a quote'
      description: 'Handles the uploading of a document to a quote'
      operationId: uploadQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Quote Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Quote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/recurring_expenses:
    get:
      tags:
        - recurring_expenses
      summary: 'Gets a list of recurring_expenses'
      description: "Lists recurring_expenses, search and filters allow fine grained lists to be generated.\n\n    Query parameters can be added to performed more fine grained filtering of the recurring_expenses, these are handled by the RecurringExpenseFilters class which defines the methods available"
      operationId: getRecurringExpenses
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of recurring_expenses'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringExpense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - recurring_expenses
      summary: 'Adds a client'
      description: 'Adds an client to a company'
      operationId: storeRecurringExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringExpense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/recurring_expenses/{id}':
    get:
      tags:
        - recurring_expenses
      summary: 'Shows a client'
      description: 'Displays a client by id'
      operationId: showRecurringExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringExpense Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the recurring_expense object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringExpense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - recurring_expenses
      summary: 'Updates a client'
      description: 'Handles the updating of a client by id'
      operationId: updateRecurringExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringExpense Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringExpense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - recurring_expenses
      summary: 'Deletes a client'
      description: 'Handles the deletion of a client by id'
      operationId: deleteRecurringExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringExpense Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/recurring_expenses/{id}/edit':
    get:
      tags:
        - recurring_expenses
      summary: 'Shows a client for editting'
      description: 'Displays a client by id'
      operationId: editRecurringExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringExpense Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringExpense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/recurring_expenses/create:
    get:
      tags:
        - recurring_expenses
      summary: 'Gets a new blank client object'
      description: 'Returns a blank object with default values'
      operationId: getRecurringExpensesCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringExpense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/recurring_expenses/bulk:
    post:
      tags:
        - recurring_expenses
      summary: 'Performs bulk actions on an array of recurring_expenses'
      description: ''
      operationId: bulkRecurringExpenses
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The RecurringExpense User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringExpense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/recurring_expenses/{id}/upload':
    put:
      tags:
        - recurring_expense
      summary: 'Uploads a document to a recurring_expense'
      description: 'Handles the uploading of a document to a recurring_expense'
      operationId: uploadRecurringExpense
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringExpense Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the RecurringExpense object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringExpense'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/recurring_invoices:
    get:
      tags:
        - recurring_invoices
      summary: 'Gets a list of recurring_invoices'
      description: "Lists recurring_invoices, search and filters allow fine grained lists to be generated.\n\n        Query parameters can be added to performed more fine grained filtering of the recurring_invoices, these are handled by the RecurringInvoiceFilters class which defines the methods available"
      operationId: getRecurringInvoices
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of recurring_invoices'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringInvoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - recurring_invoices
      summary: 'Adds a RecurringInvoice'
      description: 'Adds an RecurringInvoice to the system'
      operationId: storeRecurringInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved RecurringInvoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringInvoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/recurring_invoices/create:
    get:
      tags:
        - recurring_invoices
      summary: 'Gets a new blank RecurringInvoice object'
      description: 'Returns a blank object with default values'
      operationId: getRecurringInvoicesCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank RecurringInvoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringInvoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/recurring_invoices/{id}':
    get:
      tags:
        - recurring_invoices
      summary: 'Shows an RecurringInvoice'
      description: 'Displays an RecurringInvoice by id'
      operationId: showRecurringInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringInvoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the RecurringInvoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringInvoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - recurring_invoices
      summary: 'Updates an RecurringInvoice'
      description: 'Handles the updating of an RecurringInvoice by id'
      operationId: updateRecurringInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringInvoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the RecurringInvoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringInvoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - recurring_invoices
      summary: 'Deletes a RecurringInvoice'
      description: 'Handles the deletion of an RecurringInvoice by id'
      operationId: deleteRecurringInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringInvoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/recurring_invoices/{id}/edit':
    get:
      tags:
        - recurring_invoices
      summary: 'Shows an RecurringInvoice for editting'
      description: 'Displays an RecurringInvoice by id'
      operationId: editRecurringInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringInvoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the RecurringInvoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringInvoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/recurring_invoice/{invitation_key}/download':
    get:
      tags:
        - invoices
      summary: 'Download a specific invoice by invitation key'
      description: 'Downloads a specific invoice'
      operationId: downloadRecurringInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: invitation_key
          in: path
          description: 'The Recurring Invoice Invitation Key'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the recurring invoice pdf'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/recurring_invoices/bulk:
    post:
      tags:
        - recurring_invoices
      summary: 'Performs bulk actions on an array of recurring_invoices'
      description: ''
      operationId: bulkRecurringInvoices
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Hashed IDs'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The RecurringInvoice response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringInvoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/recurring_invoices/{id}/{action}':
    get:
      tags:
        - recurring_invoices
      summary: 'Performs a custom action on an RecurringInvoice'
      description: "Performs a custom action on an RecurringInvoice.\n\n    The current range of actions are as follows\n    - clone_to_RecurringInvoice\n    - clone_to_quote\n    - history\n    - delivery_note\n    - mark_paid\n    - download\n    - archive\n    - delete\n    - email"
      operationId: actionRecurringInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringInvoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
        -
          name: action
          in: path
          description: 'The action string to be performed'
          required: true
          schema:
            type: string
            format: string
          example: clone_to_quote
      responses:
        200:
          description: 'Returns the RecurringInvoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringInvoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/recurring_invoices/{id}/upload':
    put:
      tags:
        - recurring_invoices
      summary: 'Uploads a document to a recurring_invoice'
      description: 'Handles the uploading of a document to a recurring_invoice'
      operationId: uploadRecurringInvoice
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringInvoice Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the RecurringInvoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringInvoice'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/recurring_quotes:
    get:
      tags:
        - recurring_quotes
      summary: 'Gets a list of recurring_quotes'
      description: "Lists recurring_quotes, search and filters allow fine grained lists to be generated.\n\n        Query parameters can be added to performed more fine grained filtering of the recurring_quotes, these are handled by the RecurringQuoteFilters class which defines the methods available"
      operationId: getRecurringQuotes
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of recurring_quotes'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringQuote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - recurring_quotes
      summary: 'Adds a RecurringQuote'
      description: 'Adds an RecurringQuote to the system'
      operationId: storeRecurringQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved RecurringQuote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringQuote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/recurring_quotes/create:
    get:
      tags:
        - recurring_quotes
      summary: 'Gets a new blank RecurringQuote object'
      description: 'Returns a blank object with default values'
      operationId: getRecurringQuotesCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank RecurringQuote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringQuote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/recurring_quotes/{id}':
    get:
      tags:
        - recurring_quotes
      summary: 'Shows an RecurringQuote'
      description: 'Displays an RecurringQuote by id'
      operationId: showRecurringQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringQuote Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the RecurringQuote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringQuote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - recurring_quotes
      summary: 'Updates an RecurringQuote'
      description: 'Handles the updating of an RecurringQuote by id'
      operationId: updateRecurringQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringQuote Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the RecurringQuote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringQuote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - recurring_quotes
      summary: 'Deletes a RecurringQuote'
      description: 'Handles the deletion of an RecurringQuote by id'
      operationId: deleteRecurringQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringQuote Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/recurring_quotes/{id}/edit':
    get:
      tags:
        - recurring_quotes
      summary: 'Shows an RecurringQuote for editting'
      description: 'Displays an RecurringQuote by id'
      operationId: editRecurringQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringQuote Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the RecurringQuote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringQuote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/recurring_quotes/bulk:
    post:
      tags:
        - recurring_quotes
      summary: 'Performs bulk actions on an array of recurring_quotes'
      description: ''
      operationId: bulkRecurringQuotes
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Hashed ids'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The RecurringQuote response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringQuote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/recurring_quotes/{id}/{action}':
    get:
      tags:
        - recurring_quotes
      summary: 'Performs a custom action on an RecurringQuote'
      description: "Performs a custom action on an RecurringQuote.\n\n    The current range of actions are as follows\n    - clone_to_RecurringQuote\n    - clone_to_quote\n    - history\n    - delivery_note\n    - mark_paid\n    - download\n    - archive\n    - delete\n    - email"
      operationId: actionRecurringQuote
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The RecurringQuote Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
        -
          name: action
          in: path
          description: 'The action string to be performed'
          required: true
          schema:
            type: string
            format: string
          example: clone_to_quote
      responses:
        200:
          description: 'Returns the RecurringQuote object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringQuote'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/contacts:
    post:
      tags:
        - reports
      summary: 'Contact reports'
      description: 'Export contact reports'
      operationId: getContactReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/clients:
    post:
      tags:
        - reports
      summary: 'Client reports'
      description: 'Export client reports'
      operationId: getClientReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/credit:
    post:
      tags:
        - reports
      summary: 'Credit reports'
      description: 'Export credit reports'
      operationId: getCreditReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/documents:
    post:
      tags:
        - reports
      summary: 'Document reports'
      description: 'Export document reports'
      operationId: getDocumentReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/expense:
    post:
      tags:
        - reports
      summary: 'Expense reports'
      description: 'Export expense reports'
      operationId: getExpenseReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/invoice_items:
    post:
      tags:
        - reports
      summary: 'Invoice item reports'
      description: 'Export invoice item reports'
      operationId: getInvoiceItemReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/invoices:
    post:
      tags:
        - reports
      summary: 'Invoice reports'
      description: 'Export invoice reports'
      operationId: getInvoiceReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/payments:
    post:
      tags:
        - reports
      summary: 'Payment reports'
      description: 'Export payment reports'
      operationId: getPaymentReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/products:
    post:
      tags:
        - reports
      summary: 'Product reports'
      description: 'Export product reports'
      operationId: getProductReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/product_sales:
    post:
      tags:
        - reports
      summary: 'Product Salesreports'
      description: 'Export product sales reports'
      operationId: getProductSalesReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/profitloss:
    post:
      tags:
        - reports
      summary: 'Profit loss reports'
      description: 'Profit loss report'
      operationId: getProfitLossReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/quote_items:
    post:
      tags:
        - reports
      summary: 'Quote item reports'
      description: 'Export Quote item reports'
      operationId: getQuoteItemReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/quotes:
    post:
      tags:
        - reports
      summary: 'Quote reports'
      description: 'Export quote reports'
      operationId: getQuoteReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/recurring_invoices:
    post:
      tags:
        - reports
      summary: 'Recurring Invoice reports'
      description: 'Export recurring invoice reports'
      operationId: getRecurringInvoiceReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/tasks:
    post:
      tags:
        - reports
      summary: 'Task reports'
      description: 'Export task reports'
      operationId: getTaskReport
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericReportSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/self-update:
    post:
      tags:
        - update
      summary: 'Performs a system update'
      description: 'Performs a system update'
      operationId: selfUpdate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-API-PASSWORD'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Success/failure response'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/statics:
    get:
      tags:
        - statics
      summary: 'Gets a list of statics'
      description: 'Lists all statics'
      operationId: getStatics
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of static data'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/subscriptions:
    get:
      tags:
        - subscriptions
      summary: 'Gets a list of subscriptions'
      description: 'Lists subscriptions.'
      operationId: getSubscriptions
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of subscriptions'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - subscriptions
      summary: 'Adds a subscriptions'
      description: 'Adds an subscriptions to the system'
      operationId: storeSubscription
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved subscriptions object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/subscriptions/create:
    get:
      tags:
        - subscriptions
      summary: 'Gets a new blank subscriptions object'
      description: 'Returns a blank object with default values'
      operationId: getSubscriptionsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank subscriptions object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/subscriptions/{id}':
    get:
      tags:
        - subscriptions
      summary: 'Shows an subscriptions'
      description: 'Displays an subscriptions by id'
      operationId: showSubscription
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Subscription Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Subscription object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - subscriptions
      summary: 'Updates an subscriptions'
      description: 'Handles the updating of an subscriptions by id'
      operationId: updateSubscription
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Subscription Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the subscriptions object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - subscriptions
      summary: 'Deletes a subscriptions'
      description: 'Handles the deletion of an subscriptions by id'
      operationId: deleteSubscription
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Subscription Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/subscriptions/{id}/edit':
    get:
      tags:
        - subscriptions
      summary: 'Shows an subscriptions for editting'
      description: 'Displays an subscriptions by id'
      operationId: editSubscription
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Subscription Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the invoice object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/subscriptions/bulk:
    post:
      tags:
        - subscriptions
      summary: 'Performs bulk actions on an array of subscriptions'
      description: ''
      operationId: bulkSubscriptions
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Subscription response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/support/messages/send:
    post:
      tags:
        - support
      summary: 'Sends a support message to Invoice Ninja team'
      description: 'Allows a user to send a support message to the Invoice Ninja Team'
      operationId: supportMessage
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        description: 'The message'
        required: true
        content:
          application/json:
            schema:
              properties:
                message:
                  description: 'The support message'
                  type: string
              type: string
      responses:
        200:
          description: Success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                type: array
                items:
                  description: 'Server response'
                  type: string
                  example: true
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/system_logs:
    get:
      tags:
        - system_logs
      summary: 'Gets a list of system logs'
      description: "Lists system logs, search and filters allow fine grained lists to be generated.\n     *\n     *      Query parameters can be added to performed more fine grained filtering of the system logs, these are handled by the SystemLogFilters class which defines the methods available"
      operationId: getSystemLogs
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of system logs'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemLog'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/system_logs/{id}':
    get:
      tags:
        - system_logs
      summary: 'Shows a system_logs'
      description: 'Displays a system_logs by id'
      operationId: showSystemLogs
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The system_logs Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the system_logs object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemLog'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/tasks:
    get:
      tags:
        - tasks
      summary: 'Gets a list of tasks'
      description: "Lists tasks, search and filters allow fine grained lists to be generated.\n     *\n     *   Query parameters can be added to performed more fine grained filtering of the tasks, these are handled by the TaskFilters class which defines the methods available"
      operationId: getTasks
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of tasks'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - tasks
      summary: 'Adds a client'
      description: 'Adds an client to a company'
      operationId: storeTask
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/tasks/{id}':
    get:
      tags:
        - tasks
      summary: 'Shows a client'
      description: 'Displays a client by id'
      operationId: showTask
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Task Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the task object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - tasks
      summary: 'Updates a client'
      description: 'Handles the updating of a client by id'
      operationId: updateTask
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Task Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - tasks
      summary: 'Deletes a client'
      description: 'Handles the deletion of a client by id'
      operationId: deleteTask
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Task Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/tasks/{id}/edit':
    get:
      tags:
        - tasks
      summary: 'Shows a client for editting'
      description: 'Displays a client by id'
      operationId: editTask
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Task Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/tasks/create:
    get:
      tags:
        - tasks
      summary: 'Gets a new blank client object'
      description: 'Returns a blank object with default values'
      operationId: getTasksCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/tasks/bulk:
    post:
      tags:
        - tasks
      summary: 'Performs bulk actions on an array of tasks'
      description: ''
      operationId: bulkTasks
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Task User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/tasks/{id}/upload':
    put:
      tags:
        - tasks
      summary: 'Uploads a document to a task'
      description: 'Handles the uploading of a document to a task'
      operationId: uploadTask
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Task Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Task object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/tasks/stort:
    post:
      tags:
        - tasks
      summary: 'Sort tasks on KanBan'
      description: 'Sorts tasks after drag and drop on the KanBan.'
      operationId: sortTasks
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns an Ok, 200 HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/task_schedulers/:
    get:
      tags:
        - task_schedulers
      summary: 'Task Scheduler Index'
      description: 'Get all schedulers with associated jobs'
      operationId: getTaskSchedulers
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - task_schedulers
      summary: 'Create task scheduler with job '
      description: "Create task scheduler with a job (action(job) request should be sent via request also. Example: We want client report to be job which will be run\n     * multiple times, we should send the same parameters in the request as we would send if we wanted to get report, see example"
      operationId: createTaskScheduler
      parameters:
        -
          $ref: '#/components/parameters/X-API-SECRET'
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskSchedulerSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/invoices/task_schedulers:
    get:
      tags:
        - task_schedulers
      summary: 'Gets a new blank scheduler object'
      description: 'Returns a blank object with default values'
      operationId: getTaskScheduler
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank scheduler object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskSchedulerSchema'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/task_schedulers/{id}':
    get:
      tags:
        - task_schedulers
      summary: 'Show given scheduler'
      description: 'Get scheduler with associated job'
      operationId: showTaskScheduler
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: id
          in: path
          description: 'The Scheduler Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - task_schedulers
      summary: 'Update task scheduler '
      description: 'Update task scheduler'
      operationId: updateTaskScheduler
      parameters:
        -
          $ref: '#/components/parameters/X-API-SECRET'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: id
          in: path
          description: 'The Scheduler Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskSchedulerSchema'
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - task_schedulers
      summary: 'Destroy Task Scheduler'
      description: 'Destroy task scheduler and its associated job'
      operationId: destroyTaskScheduler
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: id
          in: path
          description: 'The Scheduler Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: success
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/task_schedulers/bulk:
    post:
      tags:
        - task_schedulers
      summary: 'Performs bulk actions on an array of task_schedulers'
      description: ''
      operationId: bulkTaskSchedulerActions
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'array of ids'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The TaskSchedule response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskSchedulerSchema'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/task_statuses:
    get:
      tags:
        - task_status
      summary: 'Gets a list of task statuses'
      description: 'Lists task statuses'
      operationId: getTaskStatuses
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of task statuses'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatus'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - task_status
      summary: 'Adds a TaskStatus'
      description: 'Adds a TaskStatusto the system'
      operationId: storeTaskStatus
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      requestBody:
        description: 'The task_status request'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskStatus'
      responses:
        200:
          description: 'Returns the saved TaskStatus object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatus'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/task_statuses/create:
    get:
      tags:
        - task_status
      summary: 'Gets a new blank TaskStatus object'
      description: 'Returns a blank object with default values'
      operationId: getTaskStatussCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank TaskStatus object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatus'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/task_statuses/{id}':
    get:
      tags:
        - task_status
      summary: 'Shows a TaskStatus Term'
      description: 'Displays an TaskStatusby id'
      operationId: showTaskStatus
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The TaskStatusHashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the TaskStatusobject'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatus'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - task_status
      summary: 'Updates a TaskStatus Term'
      description: 'Handles the updating of an TaskStatus Termby id'
      operationId: updateTaskStatus
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The TaskStatusHashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the TaskStatusobject'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatus'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - task_statuss
      summary: 'Deletes a TaskStatus Term'
      description: 'Handles the deletion of an TaskStatus by id'
      operationId: deleteTaskStatus
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The TaskStatusHashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/task_statuses/{id}/edit':
    get:
      tags:
        - task_status
      summary: 'Shows an TaskStatusfor editting'
      description: 'Displays an TaskStatusby id'
      operationId: editTaskStatuss
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The TaskStatusHashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the TaskStatus object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatus'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/task_statuses/bulk:
    post:
      tags:
        - task_status
      summary: 'Performs bulk actions on an array of task statuses'
      description: ''
      operationId: bulkTaskStatuss
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'TaskStatus Ter,s'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The TaskStatus Terms response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatus'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/tax_rates:
    get:
      tags:
        - tax_rates
      summary: 'Gets a list of tax_rates'
      description: 'Lists tax rates'
      operationId: getTaxRates
      parameters:
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of tax_rates'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxRate'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/tax_rates/create:
    get:
      tags:
        - tax_rates
      summary: 'Gets a new blank Tax Rate object'
      description: 'Returns a blank object with default values'
      operationId: getTaxRateCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: 'A blank Tax Rate object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxRate'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/tax_rates/{id}':
    get:
      tags:
        - tax_rates
      summary: 'Shows a Tax Rate'
      description: 'Displays an TaxRate by id'
      operationId: showTaxRate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: id
          in: path
          description: 'The TaxRate Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Tax Rate object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxRate'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - tax_rates
      summary: 'Updates a tax rate'
      description: 'Handles the updating of a tax rate by id'
      operationId: updateTaxRate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: id
          in: path
          description: 'The TaxRate Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the TaxRate object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxRate'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - tax_rates
      summary: 'Deletes a TaxRate'
      description: 'Handles the deletion of an TaxRate by id'
      operationId: deleteTaxRate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: id
          in: path
          description: 'The TaxRate Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/tax_rates/{id}/edit':
    get:
      tags:
        - tax_rates
      summary: 'Shows a Tax Rate for editting'
      description: 'Displays a Tax Rate by id'
      operationId: editTaxRate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          name: id
          in: path
          description: 'The TaxRate Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Tax Rate object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxRate'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/tax_rates/bulk:
    post:
      tags:
        - tax_rates
      summary: 'Performs bulk actions on an array of TaxRates'
      description: ''
      operationId: bulkTaxRates
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Tax Rates'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The TaxRate List response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/templates:
    post:
      tags:
        - templates
      summary: 'Returns a entity template with the template variables replaced with the Entities'
      description: 'Returns a entity template with the template variables replaced with the Entities'
      operationId: getShowTemplate
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      requestBody:
        description: 'The template subject and body'
        required: true
        content:
          application/json:
            schema:
              properties:
                subject:
                  description: 'The email template subject'
                  type: string
                body:
                  description: 'The email template body'
                  type: string
              type: object
      responses:
        200:
          description: 'The template response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/tokens:
    get:
      tags:
        - tokens
      summary: 'Gets a list of company tokens'
      description: "Lists company tokens.\n     *\n     *   Query parameters can be added to performed more fine grained filtering of the tokens, these are handled by the TokenFilters class which defines the methods available"
      operationId: getTokens
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of tokens'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - tokens
      summary: 'Adds a token'
      description: 'Adds an token to a company'
      operationId: storeToken
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved token object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/tokens/{id}':
    get:
      tags:
        - tokens
      summary: 'Shows a token'
      description: 'Displays a token by id'
      operationId: showToken
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Token Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the token object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - tokens
      summary: 'Updates a token'
      description: 'Handles the updating of a token by id'
      operationId: updateToken
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Token Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the token object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - tokens
      summary: 'Deletes a token'
      description: 'Handles the deletion of a token by id'
      operationId: deleteToken
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Token Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/tokens/{id}/edit':
    get:
      tags:
        - tokens
      summary: 'Shows a token for editting'
      description: 'Displays a token by id'
      operationId: editToken
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Token Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the token object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/tokens/create:
    get:
      tags:
        - tokens
      summary: 'Gets a new blank token object'
      description: 'Returns a blank object with default values'
      operationId: getTokensCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank token object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/tokens/bulk:
    post:
      tags:
        - tokens
      summary: 'Performs bulk actions on an array of tokens'
      description: ''
      operationId: bulkTokens
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Token ids'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Token response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyToken'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/users:
    get:
      tags:
        - users
      summary: 'Gets a list of users'
      description: "Lists users, search and filters allow fine grained lists to be generated.\n\n    Query parameters can be added to performed more fine grained filtering of the users, these are handled by the UserFilters class which defines the methods available"
      operationId: getUsers
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A list of users'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - users
      summary: 'Adds a User'
      description: 'Adds an User to the system'
      operationId: storeUser
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved User object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/users/create:
    get:
      tags:
        - users
      summary: 'Gets a new blank User object'
      description: 'Returns a blank object with default values'
      operationId: getUsersCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank User object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/users/{id}':
    get:
      tags:
        - users
      summary: 'Shows an User'
      description: 'Displays an User by id'
      operationId: showUser
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The User Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the User object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - users
      summary: 'Updates an User'
      description: 'Handles the updating of an User by id'
      operationId: updateUser
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The User Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the User object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - users
      summary: 'Deletes a User'
      description: 'Handles the deletion of an User by id'
      operationId: deleteUser
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: token_name
          in: query
          description: 'Customized name for the Users API Token'
          required: false
          schema:
            type: string
            format: string
          example: 'iOS Device 11 iPad'
        -
          name: id
          in: path
          description: 'The User Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/users/{id}/edit':
    get:
      tags:
        - users
      summary: 'Shows an User for editting'
      description: 'Displays an User by id'
      operationId: editUser
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The User Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the User object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/users/bulk:
    post:
      tags:
        - users
      summary: 'Performs bulk actions on an array of users'
      description: ''
      operationId: bulkUsers
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'Hashed ids'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/users/{user}/detach_from_company':
    delete:
      tags:
        - users
      summary: 'Detach an existing user to a company'
      description: 'Detach an existing user from a company'
      operationId: detachUser
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: user
          in: path
          description: 'The user hashed_id'
          required: true
          schema:
            type: string
            format: string
          example: FD767dfd7
      responses:
        200:
          description: 'Success response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/users/{user}/invite':
    post:
      tags:
        - users
      summary: 'Reconfirm an existing user to a company'
      description: 'Reconfirm an existing user from a company'
      operationId: inviteUser
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: user
          in: path
          description: 'The user hashed_id'
          required: true
          schema:
            type: string
            format: string
          example: FD767dfd7
      responses:
        200:
          description: 'Success response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/users/{user}/reconfirm':
    post:
      tags:
        - users
      summary: 'Reconfirm an existing user to a company'
      description: 'Reconfirm an existing user from a company'
      operationId: inviteUserReconfirm
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: user
          in: path
          description: 'The user hashed_id'
          required: true
          schema:
            type: string
            format: string
          example: FD767dfd7
      responses:
        200:
          description: 'Success response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/vendors:
    get:
      tags:
        - vendors
      summary: 'Gets a list of vendors'
      description: "Lists vendors, search and filters allow fine grained lists to be generated.\n\n    Query parameters can be added to performed more fine grained filtering of the vendors, these are handled by the VendorFilters class which defines the methods available"
      operationId: getVendors
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of vendors'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - vendors
      summary: 'Adds a client'
      description: 'Adds an client to a company'
      operationId: storeVendor
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/vendors/{id}':
    get:
      tags:
        - vendors
      summary: 'Shows a client'
      description: 'Displays a client by id'
      operationId: showVendor
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Vendor Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the vendor object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - vendors
      summary: 'Updates a client'
      description: 'Handles the updating of a client by id'
      operationId: updateVendor
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Vendor Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - vendors
      summary: 'Deletes a client'
      description: 'Handles the deletion of a client by id'
      operationId: deleteVendor
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Vendor Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/vendors/{id}/edit':
    get:
      tags:
        - vendors
      summary: 'Shows a client for editting'
      description: 'Displays a client by id'
      operationId: editVendor
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Vendor Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/vendors/create:
    get:
      tags:
        - vendors
      summary: 'Gets a new blank client object'
      description: 'Returns a blank object with default values'
      operationId: getVendorsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/vendors/bulk:
    post:
      tags:
        - vendors
      summary: 'Performs bulk actions on an array of vendors'
      description: ''
      operationId: bulkVendors
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Vendor User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/vendors/{id}/upload':
    put:
      tags:
        - vendors
      summary: 'Uploads a document to a vendor'
      description: 'Handles the uploading of a document to a vendor'
      operationId: uploadVendor
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Vendor Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Vendor object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/webcron:
    get:
      tags:
        - webcron
      summary: 'Executes the task scheduler via a webcron service'
      description: 'Executes the task scheduler via a webcron service'
      operationId: webcron
      parameters:
        -
          $ref: '#/components/parameters/X-Requested-With'
      responses:
        200:
          description: 'Success response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/webhooks:
    get:
      tags:
        - webhooks
      summary: 'Gets a list of Webhooks'
      description: "Lists Webhooks, search and filters allow fine grained lists to be generated.\n     *\n     *      Query parameters can be added to performed more fine grained filtering of the Webhooks, these are handled by the WebhookFilters class which defines the methods available"
      operationId: getWebhooks
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          $ref: '#/components/parameters/index'
      responses:
        200:
          description: 'A list of Webhooks'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - webhooks
      summary: 'Adds a Webhook'
      description: 'Adds an Webhook to a company'
      operationId: storeWebhook
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'Returns the saved Webhook object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/webhooks/{id}':
    get:
      tags:
        - webhooks
      summary: 'Shows a Webhook'
      description: 'Displays a Webhook by id'
      operationId: showWebhook
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Webhook Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Webhook object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - webhooks
      summary: 'Updates a Webhook'
      description: 'Handles the updating of a Webhook by id'
      operationId: updateWebhook
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Webhook Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Webhook object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - Webhooks
      summary: 'Deletes a Webhook'
      description: 'Handles the deletion of a Webhook by id'
      operationId: deleteWebhook
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Webhook Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/webhooks/{id}/edit':
    get:
      tags:
        - webhooks
      summary: 'Shows a Webhook for editting'
      description: 'Displays a Webhook by id'
      operationId: editWebhook
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Webhook Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the Webhook object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/webhooks/create:
    get:
      tags:
        - webhooks
      summary: 'Gets a new blank Webhook object'
      description: 'Returns a blank object with default values'
      operationId: getWebhooksCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      responses:
        200:
          description: 'A blank Webhook object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/webhooks/bulk:
    post:
      tags:
        - webhooks
      summary: 'Performs bulk actions on an array of Webhooks'
      description: ''
      operationId: bulkWebhooks
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Webhook User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/clients:
    get:
      tags:
        - clients
      summary: 'List clients'
      description: |
            Lists clients. Fine grained filtering is also available using query parameters.  
      operationId: getClients
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/client_include'
        -
          $ref: '#/components/parameters/index'
        -
          name: name
          in: query
          description: Filter by client name
          required: false
          schema:
            type: string
          example: bob
        -
          name: balance
          in: query
          description: Filter by client balance, format uses an operator and value separated by a colon. lt,lte, gt, gte, eq
          required: false
          schema:
            type: string
          example: lt:10
        -
          name: between_balance
          in: query
          description: Filter between client balances, format uses two values separated by a colon
          required: false
          schema:
            type: string
          example: 10:100
        -
          name: email
          in: query
          description: Filter by client email
          required: false
          schema:
            type: string
          example: bob@gmail.com
        -
          name: id_number
          in: query
          description: Filter by client id_number
          required: false
          schema:
            type: string
          example: a1039883
        -
          name: number
          in: query
          description: Filter by client number
          required: false
          schema:
            type: string
          example: a1039883
        -
          name: filter
          in: query
          description: Filters clients on columns - name, id_number, contact.first_name contact.last_name, contact.email, custom_value1-4
          required: false
          schema:
            type: string
          example: a1039883
        -
          name: sort
          in: query
          description: Returns the list sorted by column in ascending or descending order.
          required: false
          schema:
            type: string
          example: id|desc name|desc balance|asc 
      responses:
        200:
          description: 'A list of clients'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Client'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - clients
      summary: 'Create client'
      description: 'Adds an client to a company'
      operationId: storeClient
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/client_include'
      responses:
        200:
          description: 'Returns the saved client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Client'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/clients/{id}':
    get:
      tags:
        - clients
      summary: 'Show client'
      description: 'Displays a client by id'
      operationId: showClient
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/client_include'
        -
          name: id
          in: path
          description: 'The Client Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the cl.ient object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Client'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      tags:
        - clients
      summary: 'Update client'
      description: 'Handles the updating of a client by id'
      operationId: updateClient
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/client_include'
        -
          name: id
          in: path
          description: 'The Client Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Client'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - clients
      summary: 'Delete client'
      description: 'Handles the deletion of a client by id'
      operationId: deleteClient
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/client_include'
        -
          name: id
          in: path
          description: 'The Client Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns a HTTP status'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/clients/{id}/edit':
    get:
      tags:
        - clients
      summary: 'Edit Client'
      description: 'Displays a client by id'
      operationId: editClient
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
        -
          name: id
          in: path
          description: 'The Client Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Client'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/clients/create:
    get:
      tags:
        - clients
      summary: 'Blank Client'
      description: 'Returns a blank object with default values'
      operationId: getClientsCreate
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/client_include'
      responses:
        200:
          description: 'A blank client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Client'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/clients/bulk:
    post:
      tags:
        - clients
      summary: 'Bulk actions'
      description: ''
      operationId: bulkClients
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/index'
      requestBody:
        description: 'User credentials'
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: 'Array of hashed IDs to be bulk ''actioned'
                type: integer
                example: '[0,1,2,3]'
      responses:
        200:
          description: 'The Client User response'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Client'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/clients/{id}/upload':
    put:
      tags:
        - clients
      summary: 'Add client document'
      description: 'Handles the uploading of a document to a client'
      operationId: uploadClient
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/client_include'
        -
          name: id
          in: path
          description: 'The Client Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Client'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/clients/{id}/purge':
    post:
      tags:
        - clients
      summary: 'Purge client'
      description: 'Handles purging a client'
      operationId: purgeClient
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/client_include'
        -
          name: id
          in: path
          description: 'The Client Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  '/api/v1/clients/{id}/{mergeable_client_hashed_id}/merge':
    post:
      tags:
        - clients
      summary: 'Merge client'
      description: 'Handles merging 2 clients'
      operationId: mergeClient
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/client_include'
        -
          name: id
          in: path
          description: 'The Client Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
        -
          name: mergeable_client_hashed_id
          in: path
          description: 'The Mergeable Client Hashed ID'
          required: true
          schema:
            type: string
            format: string
          example: D2J234DFA
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/client_statement:
    post:
      tags:
        - clients
      summary: 'Client statement PDF'
      description: 'Return a PDF of the client statement'
      operationId: clientStatement
      parameters:
        -
          $ref: '#/components/parameters/X-API-TOKEN'
        -
          $ref: '#/components/parameters/X-Requested-With'
        -
          $ref: '#/components/parameters/include'
      requestBody:
        description: 'Statment Options'
        required: true
        content:
          application/json:
            schema:
              properties:
                start_date:
                  description: 'The start date of the statement period - format Y-m-d'
                  type: string
                end_date:
                  description: 'The start date of the statement period - format Y-m-d'
                  type: string
                client_id:
                  description: 'The hashed ID of the client'
                  type: string
                show_payments_table:
                  description: 'Flag which determines if the payments table is shown'
                  type: boolean
                show_aging_table:
                  description: 'Flag which determines if the aging table is shown'
                  type: boolean
              type: object
      responses:
        200:
          description: 'Returns the client object'
          headers:
            X-MINIMUM-CLIENT-VERSION:
              $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Client'
        401:
          description: 'Authentication error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthenticationError'
        403:
          description: 'Authorization error'
          content:
            application/json:
              schema:
                $ref: '#components/schemas/AuthorizationError'
        422:
          description: 'Validation error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: 'Unexpected Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    X-API-SECRET:
      name: X-API-SECRET
      in: header
      description: 'The API secret as defined by the .env variable API_SECRET. Only needed for self hosted users, and only applicable on the login route.'
      required: false
      schema:
        type: string
        example: password
    X-Requested-With:
      name: X-Requested-With
      in: header
      description: 'Used to send the XMLHttpRequest header'
      required: true
      schema:
        type: string
        readOnly: true
        example: XMLHttpRequest
    X-API-TOKEN:
      name: X-API-TOKEN
      in: header
      description: 'The API token to be used for authentication'
      required: true
      schema:
        type: string
        example: TOKEN
    X-API-PASSWORD:
      name: X-API-PASSWORD
      in: header
      description: 'The login password when challenged on certain protected routes'
      required: false
      schema:
        type: string
        example: supersecretpassword
    bank_integration_include:
      name: include
      in: query
      description: Include child relations of the BankIntegration object. Format is comma separated. 
      require: false
      schema:
        type: string
      examples:
        company:
          value: company
          summary: The associated Company
        account:
          value: account
          summary: The associated Account
        bank_transactions:
          value: bank_transactions
          summary: The associated Bank Transactions
    client_include:
      name: include
      in: query
      description: Include child relationships of the Client Object.
      required: false
      schema:
        type: string
      examples:
        activities:
          value: activities
          summary: include=activities will include the activities object in the response
        ledger:
          value: ledger
          summary: include=ledger will include the ledger object in the response
        system_logs:
          value: system_logs
          summary: include=system_logs will include the system_logs object in the response
    activity_include:
      name: include
      in: query
      description: Include child relations of the Activity object, format is comma separated. **Note** it is possible to chain multiple includes together, ie. include=account,token
      required: false
      schema:
        type: string
      examples:
        history:
          value: history
          summary: include=history will include the history object in the response (This could include references to the backup HTML of the entity)
        user:
          value: user
          summary: include=user will include the user object in the response
        client:
          value: client
          summary: include=client will include the client object in the response
        recurring_invoice:
          value: recurring_invoice
          summary: include=recurring_invoice will include the recurring_invoice object in the response
        invoice:
          value: invoice
          summary: include=invoice will include the invoice object in the response
        credit:
          value: credit
          summary: include=credit will include the credit object in the response
        quote:
          value: quote
          summary: include=quote will include the quote object in the response
        payment:
          value: payment
          summary: include=payment will include the payment object in the response
        expense:
          value: expense
          summary: include=expense will include the expense object in the response           
        vendor_contact:
          value: vendor_contact
          summary: include=vendor_contact will include the vendor_contact object in the response
        vendor:
          value: vendor
          summary: include=vendor will include the vendor object in the response
        purchase_order:
          value: purchase_order
          summary: include=purchase_order will include the purchase_order object in the response
        task:
          value: task
          summary: include=task will include the task object in the response        
    login_include:
      name: include
      in: query
      description: Include child relations of the CompanyUser object, format is comma separated. **Note** it is possible to chain multiple includes together, ie. include=account,token
      required: false
      schema:
        type: string
      examples:
        user:
          value: user
          summary: include=user will include the user object in the response
        company:
          value: company
          summary: include=company will include the company object in the response
        token:
          value: token
          summary: include=token will include the token object in the response
        account:
          value: account
          summary: include=account will include the account object in the response
    per_page_meta:
      name: per_page
      in: query
      description: The number of records to return for each request, default is 20
      required: false
      schema:
        type: int
        example: 20
    page_meta:
      name: page
      in: query
      description: The page number to return for this request (when performing pagination), default is 1
      required: false
      schema:
        type: int
        example: 1
    include:
      name: include
      in: query
      description: 'Includes child relationships in the response, format is comma separated. Check each model for the list of associated includes'
      required: false
      schema:
        type: string
        example: 'first_load'
    include_static:
      name: include_static
      in: query
      description: 'Returns static variables'
      required: false
      schema:
        type: string
        example: include_static=true
    clear_cache:
      name: clear_cache
      in: query
      description: 'Clears the static cache'
      required: false
      schema:
        type: string
        example: clear_cache=true
    index:
      name: index
      in: query
      description: 'Replaces the default response index from data to a user specific string'
      required: false
      schema:
        type: string
        example: user
    api_version:
      name: api_version
      in: query
      description: 'The API version'
      required: false
      schema:
        type: number
        example: user
  headers:
    X-MINIMUM-CLIENT-VERSION:
      description: 'The API version'
      schema:
        type: number
    X-RateLimit-Remaining:
      description: 'The number of requests left for the time window.'
      schema:
        type: integer
    X-RateLimit-Limit:
      description: 'The total number of requests in a given time window.'
      schema:
        type: integer
  components:
  securitySchemes:
    ApiKeyAuth:        
      type: apiKey
      in: header       
      name: X-API-TOKEN  
  schemas:
    BankTransactionRule:
      properties:
        id:
          description: 'The bank transaction rules hashed id'
          type: string
          example: AS3df3A
        company_id:
          description: 'The company hashed id'
          type: string
          example: AS3df3A
        user_id:
          description: 'The user hashed id'
          type: string
          example: AS3df3A
        name:
          description: 'The name of the transaction'
          type: string
          example: 'Rule 1'
        rules:
          description: 'A mapped collection of the sub rules for the BankTransactionRule'
          type: array
          items:
            $ref: '#/components/schemas/BTRules'
        auto_convert:
          description: 'Flags whether the rule converts the transaction automatically'
          type: boolean
          example: true
        matches_on_all:
          description: 'Flags whether all subrules are required for the match'
          type: boolean
          example: true
        applies_to:
          description: 'Flags whether the rule applies to a CREDIT or DEBIT'
          type: string
          example: CREDIT
        client_id:
          description: 'The client hashed id'
          type: string
          example: AS3df3A
        vendor_id:
          description: 'The vendor hashed id'
          type: string
          example: AS3df3A
        category_id:
          description: 'The category hashed id'
          type: string
          example: AS3df3A
      type: object
    Subscription:
      properties:
        id:
          description: ______
          type: string
          example: Opnel5aKBz
        user_id:
          description: ______
          type: string
          example: Opnel5aKBz
        product_id:
          description: ______
          type: string
          example: Opnel5aKBz
        company_id:
          description: ______
          type: string
          example: Opnel5aKBz
        recurring_invoice_id:
          description: ______
          type: string
          example: Opnel5aKBz
        is_recurring:
          description: ______
          type: boolean
          example: 'true'
        frequency_id:
          description: 'integer const representation of the frequency'
          type: string
          example: '1'
        auto_bill:
          description: 'enum setting'
          type: string
          example: always
        promo_code:
          description: ______
          type: string
          example: PROMOCODE4U
        promo_discount:
          description: ______
          type: number
          example: 10
        is_amount_discount:
          description: ______
          type: boolean
          example: 'true'
        allow_cancellation:
          description: ______
          type: boolean
          example: 'true'
        per_seat_enabled:
          description: ______
          type: boolean
          example: 'true'
        currency_id:
          description: ______
          type: integer
          example: '1'
        max_seats_limit:
          description: ______
          type: integer
          example: '100'
        trial_enabled:
          description: ______
          type: boolean
          example: 'true'
        trial_duration:
          description: ______
          type: integer
          example: '2'
        allow_query_overrides:
          description: ______
          type: boolean
          example: 'true'
        allow_plan_changes:
          description: ______
          type: boolean
          example: 'true'
        refund_period:
          description: ______
          type: integer
          example: '2'
        webhook_configuration:
          description: ______
          type: string
          example: '2'
        is_deleted:
          description: ______
          type: boolean
          example: 'true'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
      type: object
    BulkAction:
      type: array
      items:
        type: integer
        example: '[0,1,2,3,]'
    ClientContact:
      properties:
        id:
          description: 'The hashed if of the contact'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The hashed id of the user who created the contact'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The hashed id of the company'
          type: string
          example: Opnel5aKBz
        client_id:
          description: 'The hashed id of the client'
          type: string
          example: Opnel5aKBz
        first_name:
          description: 'The first name of the contact'
          type: string
          example: John
        last_name:
          description: 'The last name of the contact'
          type: string
          example: Doe
        phone:
          description: 'The phone number of the contact'
          type: string
          example: 555-152-4524
        custom_value1:
          description: 'A Custom field value'
          type: string
          example: ''
        custom_value2:
          description: 'A Custom field value'
          type: string
          example: ''
        custom_value3:
          description: 'A Custom field value'
          type: string
          example: ''
        custom_value4:
          description: 'A Custom field value'
          type: string
          example: ''
        email:
          description: 'The email of the contact'
          type: string
          example: ''
        accepted_terms_version:
          description: 'The terms of service which the contact has accpeted'
          type: string
          example: 'A long set of ToS'
        password:
          description: 'The hashed password of the contact'
          type: string
          example: '*****'
        confirmation-code:
          description: 'The confirmation code used to authenticate the contacts email address'
          type: string
          example: 333-sdjkh34gbasd
        token:
          description: 'A uuid based token.'
          type: string
          example: 333-sdjkh34gbasd
        is_primary:
          description: 'Defines is this contact is the primary contact for the client'
          type: boolean
          example: true
        confirmed:
          description: 'Boolean value confirms the user has confirmed their account.'
          type: boolean
          example: true
        is_locked:
          description: 'Boolean value defines if the contact has been locked out.'
          type: boolean
          example: true
        send_email:
          description: 'Boolean value determines is this contact should receive emails'
          type: boolean
          example: true
        failed_logins:
          description: 'The number of failed logins the contact has had'
          type: number
          format: integer
          example: '3'
        email_verified_at:
          description: 'The date which the contact confirmed their email'
          type: number
          format: integer
          example: '134341234234'
        last_login:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        deleted_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
      type: object
    ClientGatewayToken:
      properties:
        id:
          description: 'The hashed id of the client gateway token'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The hashed id of the company'
          type: string
          example: '2'
        client_id:
          description: 'The hashed_id of the client'
          type: string
          example: '2'
        token:
          description: 'The payment token'
          type: string
          example: '2'
        routing_number:
          description: 'THe bank account routing number'
          type: string
          example: '2'
        company_gateway_id:
          description: 'The hashed id of the company gateway'
          type: string
          example: '2'
        is_default:
          description: 'Flag determining if the token is the default payment method'
          type: boolean
          example: 'true'
      type: object
    Client:
      properties:
        id:
          description: 'The hashed id of the client'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The hashed id of the user'
          type: string
          example: ''
        company_id:
          description: 'The hashed id of the company'
          type: string
          example: ''
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/ClientContact'
        name:
          description: 'The client name'
          type: string
          example: 'Jims housekeeping'
        website:
          description: 'The client website'
          type: string
          example: www.jims.com
        private_notes:
          description: 'Private notes on the client'
          type: string
          example: 'These are very private notes'
        client_hash:
          description: 'The client hash'
          type: string
          example: asdfkjhk342hjhbfdvmnfb1
        industry_id:
          description: 'The industry id of the client'
          type: number
          example: '5'
        size_id:
          description: 'The size id of the client'
          type: number
          example: '2'
        address1:
          description: 'Address line 1'
          type: string
          example: ''
        address2:
          description: 'Address line 2'
          type: string
          example: ''
        city:
          description: City
          type: string
          example: 'Beverley Hills'
        state:
          description: State/Locality
          type: string
          example: Californnia
        postal_code:
          description: 'Zip / Postal code'
          type: string
          example: '90210'
        phone:
          description: 'The client phone number'
          type: string
          example: 555-3434-3434
        country_id:
          description: 'The client country id'
          type: number
          format: integer
          example: '1'
        custom_value1:
          description: 'A custom value'
          type: string
          example: 'Something custom'
        custom_value2:
          description: 'A custom value'
          type: string
          example: '2002-01-01'
        custom_value3:
          description: 'A custom value'
          type: string
          example: 'Something custom'
        custom_value4:
          description: 'A custom value'
          type: string
          example: 'Something custom'
        vat_number:
          description: 'The client VAT number'
          type: string
          example: VAT123
        id_number:
          description: ' The client id number'
          type: string
          example: CLIENT_ID_NUMBER
        number:
          description: 'The client number - assigned by the system typically'
          type: string
          example: ''
        shipping_address1:
          description: 'The shipping address line 1'
          type: string
          example: '5 Wallaby Way'
        shipping_address2:
          description: 'The shipping address line 2'
          type: string
          example: 'Suite 5'
        shipping_city:
          description: 'The shipping city'
          type: string
          example: Perth
        shipping_state:
          description: 'The shipping state'
          type: string
          example: 'Western Australia'
        shipping_postal_code:
          description: 'The shipping postal code'
          type: string
          example: '6110'
        shipping_country_id:
          description: 'The shipping country id'
          type: number
          format: integer
          example: '4'
        is_deleted:
          description: 'Boolean flagged determining if the client has been deleted'
          type: boolean
          example: true
        balance:
          description: 'The client balance'
          type: number
          format: float
          example: '10.00'
        paid_to_date:
          description: 'The amount the client has paid to date.'
          type: number
          format: float
          example: '10.00'
        credit_balance:
          description: 'An amount which is available to the client for future use.'
          type: number
          format: float
          example: '10.00'
        last_login:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        settings:
          $ref: '#/components/schemas/CompanySettings'
      type: object
    CompanyGateway:
      properties:
        id:
          description: 'The hashed id of the company gateway'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The company hashed id'
          type: string
          example: '2'
        gateway_key:
          description: 'The gateway key (hash)'
          type: string
          example: '2'
        accepted_credit_cards:
          description: 'Bitmask representation of cards'
          type: integer
          example: '32'
        require_billing_address:
          description: 'Determines if the the billing address is required prior to payment.'
          type: boolean
          example: true
        require_shipping_address:
          description: 'Determines if the the billing address is required prior to payment.'
          type: boolean
          example: true
        config:
          description: 'The configuration map for the gateway'
          type: string
          example: dfadsfdsafsafd
        update_details:
          description: 'Determines if the client details should be updated.'
          type: boolean
          example: true
        fees_and_limits:
          description: 'A mapped collection of the fees and limits for the configured gateway'
          type: array
          items:
            $ref: '#/components/schemas/FeesAndLimits'
      type: object
    CompanyLedger:
      properties:
        entity_id:
          description: 'This field will reference one of the following entity hashed ID payment_id, invoice_id or credit_id'
          type: string
          example: AS3df3A
        notes:
          description: 'The notes which reference this entry of the ledger'
          type: string
          example: 'Credit note for invoice #3212'
        balance:
          description: 'The client balance'
          type: number
          format: float
          example: '10.00'
        adjustment:
          description: 'The amount the client balance is adjusted by'
          type: number
          format: float
          example: '10.00'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
      type: object
    Company:
      properties:
        id:
          description: 'The company hash id'
          type: string
          example: WJxbojagwO
        size_id:
          description: 'The company size ID'
          type: string
          example: '1'
        industry_id:
          description: 'The company industry ID'
          type: string
          example: '1'
        slack_webhook_url:
          description: 'The slack webhook notification URL'
          type: string
          example: 'https://slack.com/sh328sj'
        google_analytics_key:
          description: 'The google analytics key'
          type: string
          example: '1'
        portal_mode:
          description: 'Determines the client facing urls ie: subdomain,domain,iframe'
          type: string
          example: subdomain
        subdomain:
          description: 'Specifies the first part of the company domain ie acme in acme.domain.com'
          type: string
          example: aceme
        portal_domain:
          description: 'The fully qualified domain for client facing URLS'
          type: string
          example: 'https://subdomain.invoicing.co'
        enabled_tax_rates:
          description: 'Number of taxes rates used per entity'
          type: integer
          example: '1'
        fill_products:
          description: 'Toggles filling a product description based on product key'
          type: boolean
          example: true
        convert_products:
          description: ___________
          type: boolean
          example: true
        update_products:
          description: 'Toggles updating a product description which description changes'
          type: boolean
          example: true
        show_product_details:
          description: 'Toggles showing a product description which description changes'
          type: boolean
          example: true
        custom_fields:
          description: 'Custom fields map'
          type: object
        enable_product_cost:
          description: 'Show/Hide the product cost field in the UI'
          type: boolean
          example: true
        enable_product_quantity:
          description: 'Show/hide the product quantity field (used in the UI to show the default quantity)'
          type: boolean
          example: true
        default_quantity:
          description: 'Enable/Disable whether to use a default quantity'
          type: boolean
          example: true
        custom_surcharge_taxes1:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_taxes2:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_taxes3:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_taxes4:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        logo:
          description: 'The company logo - binary'
          type: object
          example: logo.png
        settings:
          $ref: '#/components/schemas/CompanySettings'
      type: object
    CompanySettings:
      properties:
        timezone_id:
          description: 'The timezone id'
          type: string
          example: '15'
        date_format_id:
          description: 'The date format id'
          type: string
          example: '15'
        military_time:
          description: 'Toggles 12/24 hour time'
          type: boolean
          example: true
        language_id:
          description: 'The language id'
          type: string
          example: '1'
        show_currency_code:
          description: 'Toggles whether the currency symbol or code is shown'
          type: boolean
          example: true
        currency_id:
          description: 'The default currency id'
          type: string
          example: true
        payment_terms:
          description: '-1 sets no payment term, 0 sets payment due immediately, positive integers indicates payment terms in days'
          type: integer
          example: '1'
        company_gateway_ids:
          description: 'A commad separate list of available gateways'
          type: string
          example: '1,2,3,4'
        custom_value1:
          description: 'A Custom Label'
          type: string
          example: 'Custom Label'
        custom_value2:
          description: 'A Custom Label'
          type: string
          example: 'Custom Label'
        custom_value3:
          description: 'A Custom Label'
          type: string
          example: 'Custom Label'
        custom_value4:
          description: 'A Custom Label'
          type: string
          example: 'Custom Label'
        default_task_rate:
          description: 'The default task rate'
          type: number
          format: float
          example: '10.00'
        send_reminders:
          description: 'Toggles whether reminders are sent'
          type: boolean
          example: true
        enable_client_portal_tasks:
          description: 'Show/hide the tasks panel in the client portal'
          type: boolean
          example: true
        email_style:
          description: 'options include plain,light,dark,custom'
          type: string
          example: light
        reply_to_email:
          description: 'The reply to email address'
          type: string
          example: email@gmail.com
        bcc_email:
          description: 'A comma separate list of BCC emails'
          type: string
          example: 'email@gmail.com, contact@gmail.com'
        pdf_email_attachment:
          description: 'Toggles whether to attach PDF as attachment'
          type: boolean
          example: true
        ubl_email_attachment:
          description: 'Toggles whether to attach UBL as attachment'
          type: boolean
          example: true
        email_style_custom:
          description: 'The custom template'
          type: string
          example: ''
        counter_number_applied:
          description: 'enum when the invoice number counter is set, ie when_saved, when_sent, when_paid'
          type: string
          example: when_sent
        quote_number_applied:
          description: 'enum when the quote number counter is set, ie when_saved, when_sent'
          type: string
          example: when_sent
        custom_message_dashboard:
          description: 'A custom message which is displayed on the dashboard'
          type: string
          example: 'Please pay invoices immediately'
        custom_message_unpaid_invoice:
          description: 'A custom message which is displayed in the client portal when a client is viewing a unpaid invoice.'
          type: string
          example: 'Please pay invoices immediately'
        custom_message_paid_invoice:
          description: 'A custom message which is displayed in the client portal when a client is viewing a paid invoice.'
          type: string
          example: 'Thanks for paying this invoice!'
        custom_message_unapproved_quote:
          description: 'A custom message which is displayed in the client portal when a client is viewing a unapproved quote.'
          type: string
          example: 'Please approve quote'
        lock_invoices:
          description: 'Toggles whether invoices are locked once sent and cannot be modified further'
          type: boolean
          example: true
        auto_archive_invoice:
          description: 'Toggles whether a invoice is archived immediately following payment'
          type: boolean
          example: true
        auto_archive_quote:
          description: 'Toggles whether a quote is archived after being converted to a invoice'
          type: boolean
          example: true
        auto_convert_quote:
          description: 'Toggles whether a quote is converted to a invoice when approved'
          type: boolean
          example: true
        inclusive_taxes:
          description: 'Boolean flag determining whether inclusive or exclusive taxes are used'
          type: boolean
          example: true
        translations:
          description: 'JSON payload of customized translations'
          type: object
          example: ''
        task_number_pattern:
          description: 'Allows customisation of the task number pattern'
          type: string
          example: '{$year}-{$counter}'
        task_number_counter:
          description: 'The incrementing counter for tasks'
          type: integer
          example: '1'
        reminder_send_time:
          description: 'Time from UTC +0 when the email will be sent to the client'
          type: integer
          example: '32400'
        expense_number_pattern:
          description: 'Allows customisation of the expense number pattern'
          type: string
          example: '{$year}-{$counter}'
        expense_number_counter:
          description: 'The incrementing counter for expenses'
          type: integer
          example: '1'
        vendor_number_pattern:
          description: 'Allows customisation of the vendor number pattern'
          type: string
          example: '{$year}-{$counter}'
        vendor_number_counter:
          description: 'The incrementing counter for vendors'
          type: integer
          example: '1'
        ticket_number_pattern:
          description: 'Allows customisation of the ticket number pattern'
          type: string
          example: '{$year}-{$counter}'
        ticket_number_counter:
          description: 'The incrementing counter for tickets'
          type: integer
          example: '1'
        payment_number_pattern:
          description: 'Allows customisation of the payment number pattern'
          type: string
          example: '{$year}-{$counter}'
        payment_number_counter:
          description: 'The incrementing counter for payments'
          type: integer
          example: '1'
        invoice_number_pattern:
          description: 'Allows customisation of the invoice number pattern'
          type: string
          example: '{$year}-{$counter}'
        invoice_number_counter:
          description: 'The incrementing counter for invoices'
          type: integer
          example: '1'
        quote_number_pattern:
          description: 'Allows customisation of the quote number pattern'
          type: string
          example: '{$year}-{$counter}'
        quote_number_counter:
          description: 'The incrementing counter for quotes'
          type: integer
          example: '1'
        client_number_pattern:
          description: 'Allows customisation of the client number pattern'
          type: string
          example: '{$year}-{$counter}'
        client_number_counter:
          description: 'The incrementing counter for clients'
          type: integer
          example: '1'
        credit_number_pattern:
          description: 'Allows customisation of the credit number pattern'
          type: string
          example: '{$year}-{$counter}'
        credit_number_counter:
          description: 'The incrementing counter for credits'
          type: integer
          example: '1'
        recurring_invoice_number_prefix:
          description: 'This string is prepended to the recurring invoice number'
          type: string
          example: R
        reset_counter_frequency_id:
          description: 'CONSTANT which is used to apply the frequency which the counters are reset'
          type: integer
          example: '1'
        reset_counter_date:
          description: 'The explicit date which is used to reset counters'
          type: string
          example: '2019-01-01'
        counter_padding:
          description: 'Pads the counter with leading zeros'
          type: integer
          example: '1'
        shared_invoice_quote_counter:
          description: 'Flags whether to share the counter for invoices and quotes'
          type: boolean
          example: true
        update_products:
          description: 'Determines if client fields are updated from third party APIs'
          type: boolean
          example: true
        convert_products:
          description: ''
          type: boolean
          example: true
        fill_products:
          description: 'Automatically fill products based on product_key'
          type: boolean
          example: true
        invoice_terms:
          description: 'The default invoice terms'
          type: string
          example: 'Invoice Terms are...'
        quote_terms:
          description: 'The default quote terms'
          type: string
          example: 'Quote Terms are...'
        invoice_taxes:
          description: 'Taxes can be applied to the invoice'
          type: number
          example: '1'
        invoice_design_id:
          description: 'The default design id (invoice, quote etc)'
          type: string
          example: '1'
        quote_design_id:
          description: 'The default design id (invoice, quote etc)'
          type: string
          example: '1'
        invoice_footer:
          description: 'The default invoice footer'
          type: string
          example: '1'
        invoice_labels:
          description: 'JSON string of invoice labels'
          type: string
          example: '1'
        tax_rate1:
          description: 'The tax rate (float)'
          type: number
          example: '10'
        tax_name1:
          description: 'The tax name'
          type: string
          example: GST
        tax_rate2:
          description: 'The tax rate (float)'
          type: number
          example: '10'
        tax_name2:
          description: 'The tax name'
          type: string
          example: GST
        tax_rate3:
          description: 'The tax rate (float)'
          type: number
          example: '10'
        tax_name3:
          description: 'The tax name'
          type: string
          example: GST
        payment_type_id:
          description: 'The default payment type id'
          type: string
          example: '1'
        custom_fields:
          description: 'JSON string of custom fields'
          type: string
          example: '{}'
        email_footer:
          description: 'The default email footer'
          type: string
          example: 'A default email footer'
        email_sending_method:
          description: 'The email driver to use to send email, options include default, gmail'
          type: string
          example: default
        gmail_sending_user_id:
          description: 'The hashed_id of the user account to send email from'
          type: string
          example: F76sd34D
        email_subject_invoice:
          description: ''
          type: string
          example: 'Your Invoice Subject'
        email_subject_quote:
          description: ''
          type: string
          example: 'Your Quote Subject'
        email_subject_payment:
          description: ''
          type: string
          example: 'Your Payment Subject'
        email_template_invoice:
          description: 'The full template for invoice emails'
          type: string
          example: ''
        email_template_quote:
          description: 'The full template for quote emails'
          type: string
          example: ''
        email_template_payment:
          description: 'The full template for payment emails'
          type: string
          example: ''
        email_subject_reminder1:
          description: 'Email subject for Reminder'
          type: string
          example: ''
        email_subject_reminder2:
          description: 'Email subject for Reminder'
          type: string
          example: ''
        email_subject_reminder3:
          description: 'Email subject for Reminder'
          type: string
          example: ''
        email_subject_reminder_endless:
          description: 'Email subject for endless reminders'
          type: string
          example: ''
        email_template_reminder1:
          description: 'The full template for Reminder 1'
          type: string
          example: ''
        email_template_reminder2:
          description: 'The full template for Reminder 2'
          type: string
          example: ''
        email_template_reminder3:
          description: 'The full template for Reminder 3'
          type: string
          example: ''
        email_template_reminder_endless:
          description: 'The full template for enless reminders'
          type: string
          example: ''
        enable_portal_password:
          description: 'Toggles whether a password is required to log into the client portal'
          type: boolean
          example: true
        show_accept_invoice_terms:
          description: 'Toggles whether the terms dialogue is shown to the client'
          type: boolean
          example: true
        show_accept_quote_terms:
          description: 'Toggles whether the terms dialogue is shown to the client'
          type: boolean
          example: true
        require_invoice_signature:
          description: 'Toggles whether a invoice signature is required'
          type: boolean
          example: true
        require_quote_signature:
          description: 'Toggles whether a quote signature is required'
          type: boolean
          example: true
        name:
          description: 'The company name'
          type: string
          example: 'Acme Co'
        company_logo:
          description: 'The company logo file'
          type: object
          example: logo.png
        website:
          description: 'The company website URL'
          type: string
          example: www.acme.com
        address1:
          description: 'The company address line 1'
          type: string
          example: 'Suite 888'
        address2:
          description: 'The company address line 2'
          type: string
          example: '5 Jimbo Way'
        city:
          description: 'The company city'
          type: string
          example: Sydney
        state:
          description: 'The company state'
          type: string
          example: Florisa
        postal_code:
          description: 'The company zip/postal code'
          type: string
          example: '90210'
        phone:
          description: 'The company phone'
          type: string
          example: 555-213-3948
        email:
          description: 'The company email'
          type: string
          example: joe@acme.co
        country_id:
          description: 'The country ID'
          type: string
          example: '1'
        vat_number:
          description: 'The company VAT/TAX ID number'
          type: string
          example: '32 120 377 720'
        page_size:
          description: 'The default page size'
          type: string
          example: A4
        font_size:
          description: 'The font size'
          type: number
          example: '9'
        primary_font:
          description: 'The primary font'
          type: string
          example: roboto
        secondary_font:
          description: 'The secondary font'
          type: string
          example: roboto
        hide_paid_to_date:
          description: 'Flags whether to hide the paid to date field'
          type: boolean
          example: false
        embed_documents:
          description: 'Toggled whether to embed documents in the PDF'
          type: boolean
          example: false
        all_pages_header:
          description: 'The header for the PDF'
          type: boolean
          example: false
        all_pages_footer:
          description: 'The footer for the PDF'
          type: boolean
          example: false
        document_email_attachment:
          description: 'Toggles whether to attach documents in the email'
          type: boolean
          example: false
        enable_client_portal_password:
          description: 'Toggles password protection of the client portal'
          type: boolean
          example: false
        enable_email_markup:
          description: 'Toggles the use of markdown in emails'
          type: boolean
          example: false
        enable_client_portal_dashboard:
          description: 'Toggles whether the client dashboard is shown in the client portal'
          type: boolean
          example: false
        enable_client_portal:
          description: 'Toggles whether the entire client portal is displayed to the client, or only the context'
          type: boolean
          example: false
        email_template_statement:
          description: 'The body of the email for statements'
          type: string
          example: 'template matter'
        email_subject_statement:
          description: 'The subject of the email for statements'
          type: string
          example: 'subject matter'
        signature_on_pdf:
          description: 'Toggles whether the signature (if available) is displayed on the PDF'
          type: boolean
          example: false
        quote_footer:
          description: 'The default quote footer'
          type: string
          example: 'the quote footer'
        email_subject_custom1:
          description: 'Custom reminder template subject'
          type: string
          example: 'Custom Subject 1'
        email_subject_custom2:
          description: 'Custom reminder template subject'
          type: string
          example: 'Custom Subject 2'
        email_subject_custom3:
          description: 'Custom reminder template subject'
          type: string
          example: 'Custom Subject 3'
        email_template_custom1:
          description: 'Custom reminder template body'
          type: string
          example: ''
        email_template_custom2:
          description: 'Custom reminder template body'
          type: string
          example: ''
        email_template_custom3:
          description: 'Custom reminder template body'
          type: string
          example: ''
        enable_reminder1:
          description: 'Toggles whether this reminder is enabled'
          type: boolean
          example: false
        enable_reminder2:
          description: 'Toggles whether this reminder is enabled'
          type: boolean
          example: false
        enable_reminder3:
          description: 'Toggles whether this reminder is enabled'
          type: boolean
          example: false
        num_days_reminder1:
          description: 'The Reminder interval'
          type: number
          example: '9'
        num_days_reminder2:
          description: 'The Reminder interval'
          type: number
          example: '9'
        num_days_reminder3:
          description: 'The Reminder interval'
          type: number
          example: '9'
        schedule_reminder1:
          description: '(enum: after_invoice_date, before_due_date, after_due_date)'
          type: string
          example: after_invoice_date
        schedule_reminder2:
          description: '(enum: after_invoice_date, before_due_date, after_due_date)'
          type: string
          example: after_invoice_date
        schedule_reminder3:
          description: '(enum: after_invoice_date, before_due_date, after_due_date)'
          type: string
          example: after_invoice_date
        late_fee_amount1:
          description: 'The late fee amount for reminder 1'
          type: number
          example: 10
        late_fee_amount2:
          description: 'The late fee amount for reminder 2'
          type: number
          example: 20
        late_fee_amount3:
          description: 'The late fee amount for reminder 2'
          type: number
          example: 100
        endless_reminder_frequency_id:
          description: 'The frequency id of the endless reminder'
          type: string
          example: '1'
        client_online_payment_notification:
          description: 'Determines if a client should receive the notification for a online payment'
          type: boolean
          example: false
        client_manual_payment_notification:
          description: 'Determines if a client should receive the notification for a manually entered payment'
          type: boolean
          example: false
      type: object
    CompanyToken:
      properties:
        name:
          description: 'The token name'
          type: string
          example: 'Token Name'
        token:
          description: 'The token value'
          type: string
          example: AS3df3jUUH765fhfd9KJuidj3JShjA
        is_system:
          description: 'Determines whether the token is created by the system rather than a user'
          type: boolean
          example: 'true'
      type: object
    CompanyUser:
      properties:
        permissions:
          description: 'The company user permissions'
          type: string
          example: '[create_invoice]'
        settings:
          description: 'Settings that are used for the frontend applications to store user preferences / metadata'
          type: object
          example: 'json object'
        is_owner:
          description: 'Determines whether the user owns this company'
          type: boolean
          example: true
        is_admin:
          description: 'Determines whether the user is the admin of this company'
          type: boolean
          example: true
        is_locked:
          description: 'Determines whether the users access to this company has been locked'
          type: boolean
          example: true
        updated_at:
          description: 'The last time the record was modified, format Unix Timestamp'
          type: integer
          example: '1231232312321'
        deleted_at:
          description: 'Timestamp when the user was archived, format Unix Timestamp'
          type: integer
          example: '12312312321'
        account:
          $ref: '#/components/schemas/Account'
        company:
          $ref: '#/components/schemas/Company'
        user:
          $ref: '#/components/schemas/User'
        token:
          $ref: '#/components/schemas/CompanyToken'
      type: object
    CreditPaymentable:
      properties:
        credit_id:
          description: 'The credit hashed id'
          type: string
          example: Opnel5aKBz
        amount:
          description: 'The credit amount'
          type: string
          example: '2'
      type: object
    Credit:
      properties:
        id:
          description: 'The credit hashed id'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The user hashed id'
          type: string
          example: ''
        assigned_user_id:
          description: 'The assigned user hashed id'
          type: string
          example: ''
        company_id:
          description: 'The company hashed id'
          type: string
          example: ''
        client_id:
          description: 'The client hashed id'
          type: string
          example: ''
        status_id:
          description: 'The status field id infors of the current status of the credit'
          type: string
          example: ''
        invoice_id:
          description: 'The linked invoice this credit is applied to'
          type: string
          example: ''
        number:
          description: 'The credit number - is a unique alpha numeric number per credit per company'
          type: string
          example: QUOTE_101
        po_number:
          description: 'The purchase order number this credit refers to'
          type: string
          example: ''
        terms:
          description: 'The credit terms field'
          type: string
          example: ''
        public_notes:
          description: 'The public notes field of the credit'
          type: string
          example: ''
        private_notes:
          description: 'The private notes field of the credit'
          type: string
          example: ''
        footer:
          description: 'The credit footer text'
          type: string
          example: ''
        custom_value1:
          description: 'A Custom value'
          type: string
          example: ''
        custom_value2:
          description: 'A Custom value'
          type: string
          example: ''
        custom_value3:
          description: 'A Custom value'
          type: string
          example: ''
        custom_value4:
          description: 'A Custom value'
          type: string
          example: ''
        tax_name1:
          description: 'The tax name'
          type: string
          example: ''
        tax_name2:
          description: 'The tax rate'
          type: string
          example: ''
        tax_rate1:
          description: 'The tax name'
          type: number
          format: float
          example: '10.00'
        tax_rate2:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        tax_name3:
          description: 'The tax name'
          type: string
          example: ''
        tax_rate3:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        total_taxes:
          description: 'The total taxes for the credit'
          type: number
          format: float
          example: '10.00'
        line_items:
          description: 'The line items array containing the line items of the credit'
          type: object
          example: ''
        amount:
          description: 'The total credit amount'
          type: number
          format: float
          example: '10.00'
        balance:
          description: 'The credit balance'
          type: number
          format: float
          example: '10.00'
        paid_to_date:
          description: _________
          type: number
          format: float
          example: '10.00'
        discount:
          description: _________
          type: number
          format: float
          example: '10.00'
        partial:
          description: _________
          type: number
          format: float
          example: '10.00'
        is_amount_discount:
          description: _________
          type: boolean
          example: true
        is_deleted:
          description: _________
          type: boolean
          example: true
        uses_inclusive_taxes:
          description: 'Defines the type of taxes used as either inclusive or exclusive'
          type: boolean
          example: true
        date:
          description: 'The Credit Date'
          type: string
          format: date
          example: '1994-07-30'
        last_sent_date:
          description: 'The last date the credit was sent out'
          type: string
          format: date
          example: '1994-07-30'
        next_send_date:
          description: 'The Next date for a reminder to be sent'
          type: string
          format: date
          example: '1994-07-30'
        partial_due_date:
          description: _________
          type: string
          format: date
          example: '1994-07-30'
        due_date:
          description: _________
          type: string
          format: date
          example: '1994-07-30'
        settings:
          $ref: '#/components/schemas/CompanySettings'
        last_viewed:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        custom_surcharge1:
          description: 'First Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge2:
          description: 'Second Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge3:
          description: 'Third Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge4:
          description: 'Fourth Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge_tax1:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax2:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax3:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax4:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
      type: object
    Design:
      properties:
        id:
          description: 'The design hashed id'
          type: string
          example: AS3df3A
        name:
          description: 'The design name'
          type: string
          example: Beauty
        design:
          description: 'The design HTML'
          type: string
          example: ''
        is_custom:
          description: 'Flag to determine if the design is a custom user design'
          type: boolean
          example: true
        is_active:
          description: 'Flag to determine if the design is available for use'
          type: boolean
          example: true
        is_deleted:
          description: 'Flag to determine if the design is deleted'
          type: boolean
          example: true
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        deleted_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
      type: object
    Document:
      properties:
        id:
          description: 'The document hashed id'
          type: string
          example: AS3df3A
        user_id:
          description: 'The user hashed id'
          type: string
          example: ''
        assigned_user_id:
          description: 'The assigned user hashed id'
          type: string
          example: ''
        project_id:
          description: 'The project associated with this document'
          type: string
          example: ''
        vendor_id:
          description: 'The vendor associated with this documents'
          type: string
          example: ''
        name:
          description: 'The document name'
          type: string
          example: Beauty
        url:
          description: 'The document url'
          type: string
          example: Beauty
        preview:
          description: 'The document preview url'
          type: string
          example: Beauty
        type:
          description: 'The document type'
          type: string
          example: Beauty
        disk:
          description: 'The document disk'
          type: string
          example: Beauty
        hash:
          description: 'The document hashed'
          type: string
          example: Beauty
        is_deleted:
          description: 'Flag to determine if the document is deleted'
          type: boolean
          example: true
        is_default:
          description: 'Flag to determine if the document is a default doc'
          type: boolean
          example: true
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        deleted_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
      type: object
    Error:
      properties:
        message:
          description: 'Something terrible went wrong'
          type: string
          example: 'Unexpected error'
        code:
          description: 'The HTTP error code, ie 5xx 4xx'
          type: integer
          example: '500'
      type: object
    ExpenseCategory:
      properties:
        id:
          description: 'The expense hashed id'
          type: string
          example: Opnel5aKBz
        name:
          description: 'The expense category name'
          type: string
          example: Accounting
        user_id:
          description: 'The user hashed id'
          type: string
          example: XS987sD
        is_deleted:
          description: 'Flag determining whether the expense category has been deleted'
          type: boolean
          example: true
        updated_at:
          description: 'The updated at timestamp'
          type: integer
          example: '2'
        created_at:
          description: 'The created at timestamp'
          type: integer
          example: '2'
      type: object
    Expense:
      properties:
        id:
          description: 'The expense hashed id'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The user hashed id'
          type: string
          example: ''
        assigned_user_id:
          description: 'The assigned user hashed id'
          type: string
          example: ''
        company_id:
          description: 'The company hashed id'
          type: string
          example: ''
        client_id:
          description: 'The client hashed id'
          type: string
          example: ''
        invoice_id:
          description: 'The related invoice hashed id'
          type: string
          example: ''
        bank_id:
          description: 'The bank id related to this expense'
          type: string
          example: ''
        invoice_currency_id:
          description: 'The currency id of the related invoice'
          type: string
          example: ''
        expense_currency_id:
          description: 'The currency id of the expense'
          type: string
          example: ''
        invoice_category_id:
          description: 'The invoice category id'
          type: string
          example: ''
        payment_type_id:
          description: 'The payment type id'
          type: string
          example: ''
        recurring_expense_id:
          description: 'The related recurring expense this expense was created from'
          type: string
          example: ''
        private_notes:
          description: 'The private notes of the expense'
          type: string
          example: ''
        public_notes:
          description: 'The public notes of the expense'
          type: string
          example: ''
        transaction_reference:
          description: 'The transaction references of the expense'
          type: string
          example: ''
        transcation_id:
          description: 'The transaction id of the expense'
          type: string
          example: ''
        custom_value1:
          description: 'A custom value'
          type: string
          example: ''
        custom_value2:
          description: 'A custom value'
          type: string
          example: ''
        custom_value3:
          description: 'A custom value'
          type: string
          example: ''
        custom_value4:
          description: 'A custom value'
          type: string
          example: ''
        tax_name1:
          description: 'Tax name'
          type: string
          example: ''
        tax_name2:
          description: 'Tax name'
          type: string
          example: ''
        tax_rate1:
          description: 'Tax rate'
          type: number
          format: float
          example: '10.00'
        tax_rate2:
          description: 'Tax rate'
          type: number
          format: float
          example: '10.00'
        tax_name3:
          description: 'Tax name'
          type: string
          example: ''
        tax_rate3:
          description: 'Tax rate'
          type: number
          format: float
          example: '10.00'
        amount:
          description: 'The total expense amont'
          type: number
          format: float
          example: '10.00'
        foreign_amount:
          description: 'The total foreign amount of the expense'
          type: number
          format: float
          example: '10.00'
        exchange_rate:
          description: 'The exchange rate at the time of the expense'
          type: number
          format: float
          example: '0.80'
        date:
          description: 'The expense date formate Y-m-d'
          type: string
          example: '2022-12-01'
        payment_date:
          description: 'The date of payment for the expense, format Y-m-d'
          type: string
          example: ''
        should_be_invoiced:
          description: 'Flag whether the expense should be invoiced'
          type: boolean
          example: true
        is_deleted:
          description: 'Boolean determining whether the expense has been deleted'
          type: boolean
          example: true
        invoice_documents:
          description: 'Passing the expense documents over to the invoice'
          type: boolean
          example: true
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
      type: object
    FeesAndLimits:
      properties:
        min_limit:
          description: 'The minimum amount accepted for this gateway'
          type: string
          example: '2'
        max_limit:
          description: 'The maximum amount accepted for this gateway'
          type: string
          example: '2'
        fee_amount:
          description: 'The gateway fee amount'
          type: number
          format: float
          example: '2.0'
        fee_percent:
          description: 'The gateway fee percentage'
          type: number
          format: float
          example: '2.0'
        fee_tax_name1:
          description: 'Fee tax name'
          type: string
          example: GST
        fee_tax_name2:
          description: 'Fee tax name'
          type: string
          example: VAT
        fee_tax_name3:
          description: 'Fee tax name'
          type: string
          example: 'CA Sales Tax'
        fee_tax_rate1:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.0'
        fee_tax_rate2:
          description: 'The tax rate'
          type: number
          format: float
          example: '17.5'
        fee_tax_rate3:
          description: 'The tax rate'
          type: number
          format: float
          example: '25.0'
        fee_cap:
          description: 'If set the fee amount will be no higher than this amount'
          type: number
          format: float
          example: '2.0'
        adjust_fee_percent:
          description: 'Adjusts the fee to match the exact gateway fee.'
          type: boolean
          example: true
      type: object
    FillableInvoice:
      properties:
        assigned_user_id:
          description: __________
          type: string
          example: ''
        client_id:
          description: ________
          type: string
          example: ''
        number:
          description: 'The invoice number - is a unique alpha numeric number per invoice per company'
          type: string
          example: INV_101
        po_number:
          description: ________
          type: string
          example: ''
        terms:
          description: ________
          type: string
          example: ''
        public_notes:
          description: ________
          type: string
          example: ''
        private_notes:
          description: ________
          type: string
          example: ''
        footer:
          description: ________
          type: string
          example: ''
        custom_value1:
          description: ________
          type: string
          example: ''
        custom_value2:
          description: ________
          type: string
          example: ''
        custom_value3:
          description: ________
          type: string
          example: ''
        custom_value4:
          description: ________
          type: string
          example: ''
        tax_name1:
          description: ________
          type: string
          example: ''
        tax_name2:
          description: ________
          type: string
          example: ''
        tax_rate1:
          description: _________
          type: number
          example: '10.00'
        tax_rate2:
          description: _________
          type: number
          example: '10.00'
        tax_name3:
          description: ________
          type: string
          example: ''
        tax_rate3:
          description: _________
          type: number
          example: '10.00'
        line_items:
          description: _________
          type: object
          example: ''
        discount:
          description: _________
          type: number
          example: '10.00'
        partial:
          description: _________
          type: number
          example: '10.00'
        is_amount_discount:
          description: _________
          type: boolean
          example: '1'
        uses_inclusive_taxes:
          description: 'Defines the type of taxes used as either inclusive or exclusive'
          type: boolean
          example: '1'
        date:
          description: 'The Invoice Date'
          type: string
          example: '1994-07-30'
        partial_due_date:
          description: _________
          type: string
          example: '1994-07-30'
        due_date:
          description: _________
          type: string
          example: '1994-07-30'
        custom_surcharge1:
          description: 'First Custom Surcharge'
          type: number
          example: '10.00'
        custom_surcharge2:
          description: 'Second Custom Surcharge'
          type: number
          example: '10.00'
        custom_surcharge3:
          description: 'Third Custom Surcharge'
          type: number
          example: '10.00'
        custom_surcharge4:
          description: 'Fourth Custom Surcharge'
          type: number
          example: '10.00'
      type: object
    GenericReportSchema:
      properties:
        date_range:
          description: 'The string representation of the date range of data to be returned'
          type: string
          example: last7
        date_key:
          description: 'The date column to search between.'
          type: string
          example: created_at
        start_date:
          description: 'The start date to search between'
          type: string
          example: '2000-10-31'
        end_date:
          description: 'The end date to search between'
          type: string
          example: '2'
        report_keys:
          type: array
          items:
            description: 'Array of Keys to export'
            type: string
            example: '[''name'',''date'']'
      type: object
    GroupSetting:
      properties:
        id:
          description: 'The group setting hashed id'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The user hashed id'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The company hashed id'
          type: string
          example: Opnel5aKBz
        name:
          description: 'The name of the group'
          type: string
          example: 'A groupies group'
        settings:
          description: 'The settings object'
          type: object
          example: ''
      type: object
    InvoicePaymentable:
      properties:
        invoice_id:
          description: ______
          type: string
          example: Opnel5aKBz
        amount:
          description: ______
          type: string
          example: '2'
      type: object
    Invoice:
      properties:
        id:
          description: 'The invoice hashed id'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The user hashed id'
          type: string
          example: Opnel5aKBz
        assigned_user_id:
          description: 'The assigned user hashed id'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The company hashed id'
          type: string
          example: Opnel5aKBz
        client_id:
          description: 'The client hashed id'
          type: string
          example: Opnel5aKBz
        status_id:
          description: 'The invoice status variable'
          type: string
          example: '4'
        number:
          description: 'The invoice number - is a unique alpha numeric number per invoice per company'
          type: string
          example: INV_101
        po_number:
          description: 'The purchase order associated with this invoice'
          type: string
          example: PO-1234
        terms:
          description: 'The invoice terms'
          type: string
          example: 'These are invoice terms'
        public_notes:
          description: 'The public notes of the invoice'
          type: string
          example: 'These are some public notes'
        private_notes:
          description: 'The private notes of the invoice'
          type: string
          example: 'These are some private notes'
        footer:
          description: 'The invoice footer notes'
          type: string
          example: ''
        custom_value1:
          description: 'A custom field value'
          type: string
          example: '2022-10-01'
        custom_value2:
          description: 'A custom field value'
          type: string
          example: 'Something custom'
        custom_value3:
          description: 'A custom field value'
          type: string
          example: ''
        custom_value4:
          description: 'A custom field value'
          type: string
          example: ''
        tax_name1:
          description: 'The tax name'
          type: string
          example: ''
        tax_name2:
          description: 'The tax name'
          type: string
          example: ''
        tax_rate1:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        tax_rate2:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        tax_name3:
          description: 'The tax name'
          type: string
          example: ''
        tax_rate3:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        total_taxes:
          description: 'The total taxes for the invoice'
          type: number
          format: float
          example: '10.00'
        line_items:
          description: 'An array of objects which define the line items of the invoice'
          type: object
          example: ''
        amount:
          description: 'The invoice amount'
          type: number
          format: float
          example: '10.00'
        balance:
          description: 'The invoice balance'
          type: number
          format: float
          example: '10.00'
        paid_to_date:
          description: 'The amount paid on the invoice to date'
          type: number
          format: float
          example: '10.00'
        discount:
          description: 'The invoice discount, can be an amount or a percentage'
          type: number
          format: float
          example: '10.00'
        partial:
          description: 'The deposit/partial amount'
          type: number
          format: float
          example: '10.00'
        is_amount_discount:
          description: 'Flag determining if the discount is an amount or a percentage'
          type: boolean
          example: true
        is_deleted:
          description: 'Defines if the invoice has been deleted'
          type: boolean
          example: true
        uses_inclusive_taxes:
          description: 'Defines the type of taxes used as either inclusive or exclusive'
          type: boolean
          example: true
        date:
          description: 'The Invoice Date'
          type: string
          format: date
          example: '1994-07-30'
        last_sent_date:
          description: 'The last date the invoice was sent out'
          type: string
          format: date
          example: '1994-07-30'
        next_send_date:
          description: 'The Next date for a reminder to be sent'
          type: string
          format: date
          example: '1994-07-30'
        partial_due_date:
          description: 'The due date for the deposit/partial amount'
          type: string
          format: date
          example: '1994-07-30'
        due_date:
          description: 'The due date of the invoice'
          type: string
          format: date
          example: '1994-07-30'
        settings:
          $ref: '#/components/schemas/CompanySettings'
        last_viewed:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        custom_surcharge1:
          description: 'First Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge2:
          description: 'Second Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge3:
          description: 'Third Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge4:
          description: 'Fourth Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge_tax1:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax2:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax3:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax4:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
      type: object
    Payment:
      properties:
        id:
          description: 'The payment hashed id'
          type: string
          example: Opnel5aKBz
        client_id:
          description: 'The client hashed id'
          type: string
          example: Opnel5aKBz
        invitation_id:
          description: 'The invitation hashed id'
          type: string
          example: Opnel5aKBz
        client_contact_id:
          description: 'The client contact hashed id'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The user hashed id'
          type: string
          example: Opnel5aKBz
        type_id:
          description: 'The Payment Type ID'
          type: string
          example: '1'
        date:
          description: 'The Payment date'
          type: string
          example: 1-1-2014
        transaction_reference:
          description: 'The transaction reference as defined by the payment gateway'
          type: string
          example: xcsSxcs124asd
        assigned_user_id:
          description: 'The assigned user hashed id'
          type: string
          example: Opnel5aKBz
        private_notes:
          description: 'The private notes of the payment'
          type: string
          example: 'The payment was refunded due to error'
        is_manual:
          description: 'Flags whether the payment was made manually or processed via a gateway'
          type: boolean
          example: true
        is_deleted:
          description: 'Defines if the payment has been deleted'
          type: boolean
          example: true
        amount:
          description: 'The amount of this payment'
          type: number
          example: 10
        refunded:
          description: 'The refunded amount of this payment'
          type: number
          example: 10
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        company_gateway_id:
          description: 'The company gateway id'
          type: string
          example: '3'
        paymentables:
          $ref: '#/components/schemas/Paymentable'
        invoices:
          description: ''
          type: array
          items:
            $ref: '#/components/schemas/InvoicePaymentable'
        credits:
          description: ''
          type: array
          items:
            $ref: '#/components/schemas/CreditPaymentable'
      type: object
    PaymentTerm:
      properties:
        num_days:
          description: 'The payment term length in days'
          type: integer
          example: '1'
        name:
          description: 'The payment term length in string format'
          type: string
          example: 'NET 1'
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
      type: object
    Paymentable:
      properties:
        id:
          description: 'The paymentable hashed id'
          type: string
          example: AS3df3A
        invoice_id:
          description: 'The invoice hashed id'
          type: string
          example: AS3df3A
        credit_id:
          description: 'The credit hashed id'
          type: string
          example: AS3df3A
        refunded:
          description: 'The amount that has been refunded for this payment'
          type: number
          format: float
          example: '10.00'
        amount:
          description: 'The amount that has been applied to the payment'
          type: number
          format: float
          example: '10.00'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
      type: object
    Product:
      properties:
        id:
          description: 'The product hashed id'
          type: string
          example: Opnel5aKBz
      type: object
    Project:
      properties:
        id:
          description: 'The project hashed id'
          type: string
          example: Opnel5aKBz
        name:
          description: 'The project name'
          type: string
          example: 'New Project'
      type: object
    PurchaseOrder:
      properties:
        id:
          description: 'The purchase order hashed id'
          type: string
          example: Opnel5aKBz
      type: object
    Quote:
      properties:
        id:
          description: 'The quote hashed id'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The user hashed id'
          type: string
          example: ''
        assigned_user_id:
          description: 'The assigned user hashed id'
          type: string
          example: ''
        company_id:
          description: 'The company hashed id'
          type: string
          example: ''
        client_id:
          description: 'The client hashed id'
          type: string
          example: ''
        status_id:
          description: 'The status of the quote'
          type: string
          example: ''
        number:
          description: 'The quote number - is a unique alpha numeric number per quote per company'
          type: string
          example: QUOTE_101
        po_number:
          description: 'The purchase order number associated with this quote'
          type: string
          example: PO-1234
        terms:
          description: 'The quote terms'
          type: string
          example: 'These are some quote terms. Valid for 14 days.'
        public_notes:
          description: 'Public notes for the quote'
          type: string
          example: 'These are public notes which the client may see'
        private_notes:
          description: 'Private notes for the quote'
          type: string
          example: 'These are private notes, not to be disclosed to the client'
        footer:
          description: 'Footer text of quote'
          type: string
          example: 'The text goes in the footer of the quote'
        custom_value1:
          description: 'Custom value field'
          type: string
          example: 'A custom value'
        custom_value2:
          description: 'Custom value field'
          type: string
          example: 'A custom value'
        custom_value3:
          description: 'Custom value field'
          type: string
          example: 'A custom value'
        custom_value4:
          description: 'Custom value field'
          type: string
          example: 'A custom value'
        tax_name1:
          description: 'The tax name'
          type: string
          example: GST
        tax_name2:
          description: 'The tax name'
          type: string
          example: VAT
        tax_rate1:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        tax_rate2:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        tax_name3:
          description: 'The tax name'
          type: string
          example: ''
        tax_rate3:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        total_taxes:
          description: 'The total taxes for the quote'
          type: number
          format: float
          example: '10.00'
        line_items:
          description: 'An array of line items of the quote'
          type: object
          example: ''
        amount:
          description: 'The total amount of the quote'
          type: number
          format: float
          example: '10.00'
        balance:
          description: 'The balance due of the quote'
          type: number
          format: float
          example: '10.00'
        paid_to_date:
          description: 'The amount that has been paid to date on the quote'
          type: number
          format: float
          example: '10.00'
        discount:
          description: 'The quote discount'
          type: number
          format: float
          example: '10.00'
        partial:
          description: 'The partial/deposit amount'
          type: number
          format: float
          example: '10.00'
        is_amount_discount:
          description: 'Boolean flag determining if the quote is an amount or percentage'
          type: boolean
          example: true
        is_deleted:
          description: 'Boolean flag determining if the quote has been deleted'
          type: boolean
          example: true
        uses_inclusive_taxes:
          description: 'Defines the type of taxes used as either inclusive or exclusive'
          type: boolean
          example: true
        date:
          description: 'The Quote Date'
          type: string
          format: date
          example: '1994-07-30'
        last_sent_date:
          description: 'The last date the quote was sent out'
          type: string
          format: date
          example: '1994-07-30'
        next_send_date:
          description: 'The Next date for a reminder to be sent'
          type: string
          format: date
          example: '1994-07-30'
        partial_due_date:
          description: 'The date when the partial/deposit is due'
          type: string
          format: date
          example: '1994-07-30'
        due_date:
          description: 'The date the quote is valid until'
          type: string
          format: date
          example: '1994-07-30'
        settings:
          $ref: '#/components/schemas/CompanySettings'
        last_viewed:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        custom_surcharge1:
          description: 'First Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge2:
          description: 'Second Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge3:
          description: 'Third Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge4:
          description: 'Fourth Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge_tax1:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax2:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax3:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax4:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
      type: object
    RecurringExpense:
      properties:
        id:
          description: 'The hashed id of the recurring expense'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The hashed id of the user who created the recurring expense'
          type: string
          example: Opnel5aKBz
        assigned_user_id:
          description: 'The hashed id of the user assigned to this recurring expense'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The hashed id of the company'
          type: string
          example: Opnel5aKBz
        client_id:
          description: 'The hashed id of the client'
          type: string
          example: Opnel5aKBz
        invoice_id:
          description: 'The hashed id of the invoice'
          type: string
          example: Opnel5aKBz
        bank_id:
          description: 'The id of the bank associated with this recurring expense'
          type: string
          example: '22'
        invoice_currency_id:
          description: 'The currency id of the invoice associated with this recurring expense'
          type: string
          example: '1'
        expense_currency_id:
          description: 'The currency id of the expense associated with this recurring expense'
          type: string
          example: '1'
        invoice_category_id:
          description: 'The category id of the invoice'
          type: string
          example: '1'
        payment_type_id:
          description: 'The payment type id'
          type: string
          example: '1'
        private_notes:
          description: 'The recurring expense private notes'
          type: string
          example: 'Private and confidential'
        public_notes:
          description: 'The recurring expense public notes'
          type: string
          example: 'This is the best client in the world'
        transaction_reference:
          description: 'The recurring expense transaction reference'
          type: string
          example: EXP-1223-2333
        transcation_id:
          description: 'The transaction id of the recurring expense'
          type: string
          example: '1233312312'
        custom_value1:
          description: 'Custom value field'
          type: string
          example: $1000
        custom_value2:
          description: 'Custom value field'
          type: string
          example: '2022-10-10'
        custom_value3:
          description: 'Custom value field'
          type: string
          example: 'short text'
        custom_value4:
          description: 'Custom value field'
          type: string
          example: 'very long text'
        tax_name1:
          description: 'The tax name'
          type: string
          example: GST
        tax_name2:
          description: 'The tax name'
          type: string
          example: VAT
        tax_rate1:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        tax_rate2:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        tax_name3:
          description: 'The tax name'
          type: string
          example: ''
        tax_rate3:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        amount:
          description: 'The total amount of the recurring expense'
          type: number
          format: float
          example: '10.00'
        frequency_id:
          description: 'The frequency this recurring expense fires'
          type: number
          format: int
          example: '1'
        remaining_cycles:
          description: 'The number of remaining cycles for this recurring expense'
          type: number
          format: int
          example: '1'
        foreign_amount:
          description: 'The foreign currency amount of the recurring expense'
          type: number
          format: float
          example: '10.00'
        exchange_rate:
          description: 'The exchange rate for the expernse'
          type: number
          format: float
          example: '0.80'
        date:
          description: 'The date of the expense'
          type: string
          example: ''
        payment_date:
          description: 'The date the expense was paid'
          type: string
          example: ''
        should_be_invoiced:
          description: 'Boolean flag determining if the expense should be invoiced'
          type: boolean
          example: true
        is_deleted:
          description: 'Boolean flag determining if the recurring expense is deleted'
          type: boolean
          example: true
        last_sent_date:
          description: 'The Date it was sent last'
          type: string
          format: date
          example: '1994-07-30'
        next_send_date:
          description: 'The next send date'
          type: string
          format: date
          example: '1994-07-30'
        invoice_documents:
          description: 'Boolean flag determining if the documents associated with this expense should be passed onto the invoice if it is converted to an invoice'
          type: boolean
          example: true
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
      type: object
    RecurringInvoice:
      properties:
        id:
          description: 'The hashed id of the recurring invoice'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The user hashed id'
          type: string
          example: Opnel5aKBz
        assigned_user_id:
          description: 'The assigned user hashed id'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The company hashed id'
          type: string
          example: Opnel5aKBz
        client_id:
          description: 'The client hashed id'
          type: string
          example: Opnel5aKBz
        status_id:
          description: 'The invoice status variable'
          type: string
          example: '4'
        frequency_id:
          description: 'The recurring invoice frequency'
          type: number
          example: '4'
        remaining_cycles:
          description: 'The number of invoices left to be generated'
          type: number
          example: '4'
        number:
          description: 'The recurringinvoice number - is a unique alpha numeric number per invoice per company'
          type: string
          example: INV_101
        po_number:
          description: 'The purchase order associated with this recurring invoice'
          type: string
          example: PO-1234
        terms:
          description: 'The invoice terms'
          type: string
          example: 'These are invoice terms'
        public_notes:
          description: 'The public notes of the invoice'
          type: string
          example: 'These are some public notes'
        private_notes:
          description: 'The private notes of the invoice'
          type: string
          example: 'These are some private notes'
        footer:
          description: 'The invoice footer notes'
          type: string
          example: ''
        custom_value1:
          description: 'A custom field value'
          type: string
          example: '2022-10-01'
        custom_value2:
          description: 'A custom field value'
          type: string
          example: 'Something custom'
        custom_value3:
          description: 'A custom field value'
          type: string
          example: ''
        custom_value4:
          description: 'A custom field value'
          type: string
          example: ''
        tax_name1:
          description: 'The tax name'
          type: string
          example: ''
        tax_name2:
          description: 'The tax name'
          type: string
          example: ''
        tax_rate1:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        tax_rate2:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        tax_name3:
          description: 'The tax name'
          type: string
          example: ''
        tax_rate3:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        total_taxes:
          description: 'The total taxes for the invoice'
          type: number
          format: float
          example: '10.00'
        line_items:
          description: 'An array of objects which define the line items of the invoice'
          type: object
          example: ''
        amount:
          description: 'The invoice amount'
          type: number
          format: float
          example: '10.00'
        balance:
          description: 'The invoice balance'
          type: number
          format: float
          example: '10.00'
        paid_to_date:
          description: 'The amount paid on the invoice to date'
          type: number
          format: float
          example: '10.00'
        discount:
          description: 'The invoice discount, can be an amount or a percentage'
          type: number
          format: float
          example: '10.00'
        partial:
          description: 'The deposit/partial amount'
          type: number
          format: float
          example: '10.00'
        is_amount_discount:
          description: 'Flag determining if the discount is an amount or a percentage'
          type: boolean
          example: true
        is_deleted:
          description: 'Defines if the invoice has been deleted'
          type: boolean
          example: true
        uses_inclusive_taxes:
          description: 'Defines the type of taxes used as either inclusive or exclusive'
          type: boolean
          example: true
        date:
          description: 'The Invoice Date'
          type: string
          format: date
          example: '1994-07-30'
        last_sent_date:
          description: 'The last date the invoice was sent out'
          type: string
          format: date
          example: '1994-07-30'
        next_send_date:
          description: 'The Next date for a reminder to be sent'
          type: string
          format: date
          example: '1994-07-30'
        partial_due_date:
          description: 'The due date for the deposit/partial amount'
          type: string
          format: date
          example: '1994-07-30'
        due_date:
          description: 'The due date of the invoice'
          type: string
          format: date
          example: '1994-07-30'
        settings:
          $ref: '#/components/schemas/CompanySettings'
        last_viewed:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        custom_surcharge1:
          description: 'First Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge2:
          description: 'Second Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge3:
          description: 'Third Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge4:
          description: 'Fourth Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge_tax1:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax2:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax3:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax4:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
      type: object
    RecurringQuote:
      properties:
        id:
          description: 'The hashed id of the recurring quote'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The user hashed id'
          type: string
          example: Opnel5aKBz
        assigned_user_id:
          description: 'The assigned user hashed id'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The company hashed id'
          type: string
          example: Opnel5aKBz
        client_id:
          description: 'The client hashed id'
          type: string
          example: Opnel5aKBz
        status_id:
          description: 'The quote status variable'
          type: string
          example: '4'
        frequency_id:
          description: 'The recurring quote frequency'
          type: number
          example: '4'
        remaining_cycles:
          description: 'The number of quotes left to be generated'
          type: number
          example: '4'
        number:
          description: 'The recurringquote number - is a unique alpha numeric number per quote per company'
          type: string
          example: INV_101
        po_number:
          description: 'The purchase order associated with this recurring quote'
          type: string
          example: PO-1234
        terms:
          description: 'The quote terms'
          type: string
          example: 'These are quote terms'
        public_notes:
          description: 'The public notes of the quote'
          type: string
          example: 'These are some public notes'
        private_notes:
          description: 'The private notes of the quote'
          type: string
          example: 'These are some private notes'
        footer:
          description: 'The quote footer notes'
          type: string
          example: ''
        custom_value1:
          description: 'A custom field value'
          type: string
          example: '2022-10-01'
        custom_value2:
          description: 'A custom field value'
          type: string
          example: 'Something custom'
        custom_value3:
          description: 'A custom field value'
          type: string
          example: ''
        custom_value4:
          description: 'A custom field value'
          type: string
          example: ''
        tax_name1:
          description: 'The tax name'
          type: string
          example: ''
        tax_name2:
          description: 'The tax name'
          type: string
          example: ''
        tax_rate1:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        tax_rate2:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        tax_name3:
          description: 'The tax name'
          type: string
          example: ''
        tax_rate3:
          description: 'The tax rate'
          type: number
          format: float
          example: '10.00'
        total_taxes:
          description: 'The total taxes for the quote'
          type: number
          format: float
          example: '10.00'
        line_items:
          description: 'An array of objects which define the line items of the quote'
          type: object
          example: ''
        amount:
          description: 'The quote amount'
          type: number
          format: float
          example: '10.00'
        balance:
          description: 'The quote balance'
          type: number
          format: float
          example: '10.00'
        paid_to_date:
          description: 'The amount paid on the quote to date'
          type: number
          format: float
          example: '10.00'
        discount:
          description: 'The quote discount, can be an amount or a percentage'
          type: number
          format: float
          example: '10.00'
        partial:
          description: 'The deposit/partial amount'
          type: number
          format: float
          example: '10.00'
        is_amount_discount:
          description: 'Flag determining if the discount is an amount or a percentage'
          type: boolean
          example: true
        is_deleted:
          description: 'Defines if the quote has been deleted'
          type: boolean
          example: true
        uses_inclusive_taxes:
          description: 'Defines the type of taxes used as either inclusive or exclusive'
          type: boolean
          example: true
        date:
          description: 'The quote Date'
          type: string
          format: date
          example: '1994-07-30'
        last_sent_date:
          description: 'The last date the quote was sent out'
          type: string
          format: date
          example: '1994-07-30'
        next_send_date:
          description: 'The Next date for a reminder to be sent'
          type: string
          format: date
          example: '1994-07-30'
        partial_due_date:
          description: 'The due date for the deposit/partial amount'
          type: string
          format: date
          example: '1994-07-30'
        due_date:
          description: 'The due date of the quote'
          type: string
          format: date
          example: '1994-07-30'
        settings:
          $ref: '#/components/schemas/CompanySettings'
        last_viewed:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        custom_surcharge1:
          description: 'First Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge2:
          description: 'Second Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge3:
          description: 'Third Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge4:
          description: 'Fourth Custom Surcharge'
          type: number
          format: float
          example: '10.00'
        custom_surcharge_tax1:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax2:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax3:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
        custom_surcharge_tax4:
          description: 'Toggles charging taxes on custom surcharge amounts'
          type: boolean
          example: true
      type: object
    SystemLog:
      properties:
        id:
          description: 'The account hashed id'
          type: string
          example: AS3df3A
        company_id:
          description: 'The company hashed id'
          type: string
          example: AS3df3A
        user_id:
          description: 'The user_id hashed id'
          type: string
          example: AS3df3A
        client_id:
          description: 'The client_id hashed id'
          type: string
          example: AS3df3A
        event_id:
          description: 'The Log Type ID'
          type: integer
          example: 1
        category_id:
          description: 'The Category Type ID'
          type: integer
          example: 1
        type_id:
          description: 'The Type Type ID'
          type: integer
          example: 1
        log:
          description: 'The json object of the error'
          type: object
          example: '{''key'':''value''}'
        updated_at:
          description: Timestamp
          type: string
          example: '2'
        created_at:
          description: Timestamp
          type: string
          example: '2'
      type: object
    TaskSchedulerSchema:
      properties:
        paused:
          description: 'The scheduler paused state'
          type: boolean
          example: 'false'
        repeat_every:
          description: 'Accepted values (DAY,WEEK,MONTH,3MONTHS,YEAR)'
          type: string
          example: DAY
        start_from:
          description: 'Timestamp when we should start the scheduler, default is today'
          type: integer
          example: '1652898504'
        job:
          description: 'Job, we can find list of available jobs in Scheduler model'
          type: string
          example: create_credit_report
        date_range:
          description: 'The string representation of the date range of data to be returned'
          type: string
          example: last7
        date_key:
          description: 'The date column to search between.'
          type: string
          example: created_at
        start_date:
          description: 'The start date to search between'
          type: string
          example: '2022-10-31'
        end_date:
          description: 'The end date to search between'
          type: string
          example: '2022-10-31'
        report_keys:
          type: array
          items:
            description: 'Array of Keys to export'
            type: string
            example: '[''name'',''date'']'
      type: object
    UpdateTaskSchedulerSchema:
      properties:
        paused:
          description: 'The scheduler paused state'
          type: boolean
          example: 'false'
        repeat_every:
          description: 'Accepted values (DAY,WEEK,MONTH,3MONTHS,YEAR)'
          type: string
          example: DAY
        start_from:
          description: 'Timestamp when we should start the scheduler, default is today'
          type: integer
          example: '1652898504'
        job:
          description: 'Job, we can find list of available jobs in Scheduler model'
          type: string
          example: create_credit_report
        date_range:
          description: 'The string representation of the date range of data to be returned'
          type: string
          example: last7
        date_key:
          description: 'The date column to search between.'
          type: string
          example: created_at
        start_date:
          description: 'The start date to search between'
          type: string
          example: '2022-10-31'
        end_date:
          description: 'The end date to search between'
          type: string
          example: '2022-10-31'
      type: object
    UpdateJobForASchedulerSchema:
      properties:
        job:
          description: 'Set action name, action names can be found in Scheduler Model'
          type: string
          example: create_client_report
      type: object
    Task:
      properties:
        id:
          description: 'The hashed id of the task'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The hashed id of the user who created the task'
          type: string
          example: Opnel5aKBz
        assigned_user_id:
          description: 'The assigned user of the task'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The hashed id of the company'
          type: string
          example: Opnel5aKBz
        client_id:
          description: 'The hashed if of the client'
          type: string
          example: Opnel5aKBz
        invoice_id:
          description: 'The hashed id of the invoice associated with the task'
          type: string
          example: Opnel5aKBz
        project_id:
          description: 'The hashed id of the project associated with the task'
          type: string
          example: Opnel5aKBz
        number:
          description: 'The number of the task'
          type: string
          example: TASK-123
        time_log:
          description: 'An array of unix time stamps defining the start and end times of the task'
          type: string
          example: '[[1,2],[3,4]]'
        is_running:
          description: 'Determines if the task is still running'
          type: boolean
          example: true
        is_deleted:
          description: 'Boolean flag determining if the task has been deleted'
          type: boolean
          example: true
        task_status_id:
          description: 'The hashed id of the task status'
          type: string
          example: Opnel5aKBz
        description:
          description: 'The task description'
          type: string
          example: 'A wonder task to work on'
        duration:
          description: 'The task duration'
          type: integer
          example: ''
        task_status_order:
          description: 'The order of the task'
          type: integer
          example: '4'
        custom_value1:
          description: 'A custom value'
          type: string
          example: '2022-10-10'
        custom_value2:
          description: 'A custom value'
          type: string
          example: $1100
        custom_value3:
          description: 'A custom value'
          type: string
          example: 'I need help'
        custom_value4:
          description: 'A custom value'
          type: string
          example: INV-3343
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '1434342123'
      type: object
    TaskStatus:
      properties:
        name:
          description: 'The task status name'
          type: string
          example: Backlog
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        is_deleted:
          description: 'A boolean flag determining if the task status has been deleted'
          type: boolean
          example: true
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        archived_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
      type: object
    TaxRate:
      properties:
        id:
          description: 'Thie hashed id of the tax'
          type: string
          example: Opnel5aKBz
        name:
          description: 'The tax name'
          type: string
          example: GST
        rate:
          description: 'The tax rate'
          type: number
          example: '10'
        is_deleted:
          description: 'Boolean flag determining if the tax has been deleted'
          type: boolean
          example: true
      type: object
    Template:
      properties:
        html:
          description: 'The template HTML'
          type: string
          example: ''
      type: object
    User:
      properties:
        id:
          description: 'The hashed id of the user'
          type: string
          example: Opnel5aKBz
        first_name:
          description: 'The first name of the user'
          type: string
          example: Brad
        last_name:
          description: 'The last name of the user'
          type: string
          example: Pitt
        email:
          description: 'The users email address'
          type: string
          example: brad@pitt.com
        phone:
          description: 'The users phone number'
          type: string
          example: 555-1233-23232
        signature:
          description: 'The users sign off signature'
          type: string
          example: 'Have a nice day!'
        avatar:
          description: 'The users avatar'
          type: string
          example: 'https://url.to.your/avatar.png'
        accepted_terms_version:
          description: 'The version of the invoice ninja terms that has been accepted by the user'
          type: string
          example: 1.0.1
        oauth_user_id:
          description: 'The provider id of the oauth entity'
          type: string
          example: jkhasdf789as6f675sdf768sdfs
        oauth_provider_id:
          description: 'The oauth entity id'
          type: string
          example: google
      type: object
    AuthenticationError:
      type: object  
      properties:
        message:
          description: 'These credentials do not match our records / Invalid Token'
          type: string
          example: 'These credentials do not match our records / Invalid Token'
    ValidationError:
      properties:
        message:
          description: 'The error message'
          type: string
          example: 'The given data was invalid.'
        errors:
          properties:
            value:
              type: array
              items:
                type: string
          type: object
      type: object
    AuthorizationError:
      properties:
        message:
          description: 'Insufficient permissions for this resource.'
          type: string
          example: 'Insufficient permissions for this resource.'
        errors:
          properties:
            value:
              type: array
              items:
                type: string
          type: object
      type: object
    VendorContact:
      properties:
        id:
          description: 'The hashed id of the vendor contact'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The hashed id of the user id'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The hashed id of the company'
          type: string
          example: Opnel5aKBz
        vendor_id:
          description: 'The hashed id of the vendor'
          type: string
          example: Opnel5aKBz
        first_name:
          description: 'The first name of the contact'
          type: string
          example: Harry
        last_name:
          description: 'The last name of the contact'
          type: string
          example: Windsor
        phone:
          description: 'The contacts phone number'
          type: string
          example: 555-123-1234
        custom_value1:
          description: 'A custom value'
          type: string
          example: '2022-10-10'
        custom_value2:
          description: 'A custom value'
          type: string
          example: $1000
        custom_value3:
          description: 'A custom value'
          type: string
          example: ''
        custom_value4:
          description: 'A custom value'
          type: string
          example: ''
        email:
          description: 'The contact email address'
          type: string
          example: harry@windsor.com
        is_primary:
          description: 'Boolean flag determining if the contact is the primary contact for the vendor'
          type: boolean
          example: true
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        deleted_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
      type: object
    Vendor:
      properties:
        id:
          description: 'The hashed id of the vendor'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The hashed id of the user who created the vendor'
          type: string
          example: Opnel5aKBz
        assigned_user_id:
          description: 'The hashed id of the assigned user to this vendor'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The hashed id of the company'
          type: string
          example: Opnel5aKBz
        client_id:
          description: 'The hashed id of the client'
          type: string
          example: Opnel5aKBz
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/VendorContact'
        name:
          description: 'The vendor name'
          type: string
          example: 'Harry''s cafe de wheels'
        website:
          description: 'The website of the vendor'
          type: string
          example: www.harry.com
        private_notes:
          description: 'The private notes of the vendor'
          type: string
          example: 'Shhh, don''t tell the vendor'
        industry_id:
          description: 'The industry id of the vendor'
          type: string
          example: '1'
        size_id:
          description: ________
          type: string
          example: ''
        address1:
          description: ________
          type: string
          example: ''
        address2:
          description: ________
          type: string
          example: ''
        city:
          description: ________
          type: string
          example: ''
        state:
          description: ________
          type: string
          example: ''
        postal_code:
          description: ________
          type: string
          example: ''
        phone:
          description: 'The client phone number'
          type: string
          example: 555-3434-3434
        country_id:
          description: ________
          type: string
          example: ''
        currency_id:
          description: ________
          type: string
          example: '4'
        custom_value1:
          description: ________
          type: string
          example: ''
        custom_value2:
          description: ________
          type: string
          example: ''
        custom_value3:
          description: ________
          type: string
          example: ''
        custom_value4:
          description: ________
          type: string
          example: ''
        vat_number:
          description: ________
          type: string
          example: ''
        id_number:
          description: ________
          type: string
          example: ''
        number:
          description: ________
          type: string
          example: ''
        is_deleted:
          description: ________
          type: boolean
          example: true
        last_login:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        created_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        updated_at:
          description: Timestamp
          type: number
          format: integer
          example: '134341234234'
        settings:
          $ref: '#/components/schemas/CompanySettings'
      type: object
    Webhook:
      properties:
        id:
          description: 'The subscription hashed id'
          type: string
          example: AS3df3A
        event_id:
          description: 'The subscription event id'
          type: string
          example: AS3df3A
        target_url:
          description: 'The api endpoint'
          type: string
          example: AS3df3A
        format:
          description: 'JSON or UBL'
          type: string
          example: JSON
      type: object
    Activity:
      properties:
        id:
          description: 'The id field of the activity'
          type: string
          example: Opnel5aKBz
        activity_type_id:
          description: 'The activity type id'
          type: string
          example: Opnel5aKBz
        client_id:
          description: 'The client hashed id'
          type: string
          example: Opnel5aKBz
        company_id:
          description: 'The company hashed id'
          type: string
          example: Opnel5aKBz
        user_id:
          description: 'The user hashed id'
          type: string
          example: Opnel5aKBz
        invoice_id:
          description: 'The invoice hashed id'
          type: string
          example: Opnel5aKBz
        payment_id:
          description: 'The payment hashed id'
          type: string
          example: Opnel5aKBz
        credit_id:
          description: 'The credit hashed id'
          type: string
          example: Opnel5aKBz
        updated_at:
          description: 'Unixtimestamp the last time the record was updated'
          type: integer
          example: '343421434'
        expense_id:
          description: 'The expense hashed id'
          type: string
          example: Opnel5aKBz
        is_system:
          description: 'Defines is the activity was performed by the system'
          type: boolean
          example: true
        contact_id:
          description: 'The contact hashed id'
          type: string
          example: Opnel5aKBz
        task_id:
          description: 'The task hashed id'
          type: string
          example: Opnel5aKBz
        notes:
          description: 'Activity Notes'
          type: string
          example: Opnel5aKBz
        token_id:
          description: 'The hashed ID of the token who performed the action'
          type: string
          example: Opnel5aKBz
        ip:
          description: 'The IP Address of the user who performed the action'
          type: string
          example: 192.168.1.252
        user:
          $ref: '#/components/schemas/User'
        client:
          $ref: '#/components/schemas/Client'
        contact:
          $ref: '#/components/schemas/ClientContact'
        recurring_invoice:
          $ref: '#/components/schemas/RecurringInvoice'
        invoice:
          $ref: '#/components/schemas/Invoice'
        credit:
          $ref: '#/components/schemas/Credit'
        quote:
          $ref: '#/components/schemas/Quote'
        payment:
          $ref: '#/components/schemas/Payment'
        expense:
          $ref: '#/components/schemas/Expense'
        task:
          $ref: '#/components/schemas/Task'
        purchase_order:
          $ref: '#/components/schemas/PurchaseOrder'
        vendor:
          $ref: '#/components/schemas/Vendor'
        vendor_contact:
          $ref: '#/components/schemas/VendorContact'
      type: object
    BankTransaction:
      properties:
        id:
          description: 'The bank integration hashed id'
          type: string
          example: AS3df3A
        company_id:
          description: 'The company hashed id'
          type: string
          example: AS3df3A
        user_id:
          description: 'The user hashed id'
          type: string
          example: AS3df3A
        transaction_id:
          description: 'The id of the transaction rule'
          type: integer
          example: 343434
        amount:
          description: 'The transaction amount'
          type: number
          example: 10
        currency_id:
          description: 'The currency ID of the currency'
          type: string
          example: '1'
        account_type:
          description: 'The account type'
          type: string
          example: creditCard
        description:
          description: 'The description of the transaction'
          type: string
          example: 'Potato purchases for kevin'
        category_id:
          description: 'The category id'
          type: integer
          example: 1
        category_type:
          description: 'The category description'
          type: string
          example: Expenses
        base_type:
          description: 'Either CREDIT or DEBIT'
          type: string
          example: CREDIT
        date:
          description: 'The date of the transaction'
          type: string
          example: '2022-09-01'
        bank_account_id:
          description: 'The ID number of the bank account'
          type: integer
          example: '1'
      type: object
    BankIntegration:
      properties:
        id:
          description: 'The bank integration hashed id'
          type: string
          example: AS3df3A
        company_id:
          description: 'The company hashed id'
          type: string
          example: AS3df3A
        user_id:
          description: 'The user hashed id'
          type: string
          example: AS3df3A
        provider_bank_name:
          description: 'The providers bank name'
          type: string
          example: 'Chase Bank'
        bank_account_id:
          description: 'The bank account id'
          type: integer
          example: '1233434'
        bank_account_name:
          description: 'The name of the account'
          type: string
          example: 'My Checking Acc'
        bank_account_number:
          description: 'The account number'
          type: string
          example: '111 234 2332'
        bank_account_status:
          description: 'The status of the bank account'
          type: string
          example: ACTIVE
        bank_account_type:
          description: 'The type of account'
          type: string
          example: CREDITCARD
        balance:
          description: 'The current bank balance if available'
          type: number
          example: '1000000'
        currency:
          description: 'iso_3166_3 code'
          type: string
          example: USD
      type: object
    BTRules:
      properties:
        data_key:
          description: 'The key to search'
          type: string
          example: 'description,amount'
        operator:
          description: 'The operator flag of the search'
          type: string
          example: '>'
        value:
          description: 'The value to search for'
          type: string
          example: bob
      type: object
    Account:
      properties:
        id:
          description: 'The account hashed id'
          type: string
          example: AS3df3A
        account_sms_verified:
          description: 'Boolean flag if the account has been verified by sms'
          type: string
          example: true
      type: object
tags:
  -
    name: login
    description: |
          Attempts to authenticate with the API using a email/password combination.
    externalDocs:
      description: 'Find out more'
      url: 'https://invoiceninja.github.io'
  -
    name: clients
    description: |
          Endpoint definitions for interacting with clients.
  -
    name: products
    description: |
          Endpoint definitions for interacting with products.
  -
    name: invoices
    description: |
          Endpoint definitions for interacting with invoices.
externalDocs:
  description: 'https://invoiceninja.github.io'
  url: 'https://invoiceninja.github.io'
security:
  - ApiKeyAuth: []