openapi: 3.0.0
servers:
  - url: https://app.apacta.com/api/v1
info:
  description: |-
    API for a tool to craftsmen used to register working hours, material usage and quality assurance.
    # Endpoint
    The endpoint `https://app.apacta.com/api/v1` should be used to communicate with the API. API access is only allowed with SSL encrypted connection (https).
    # Authentication
    URL query authentication with an API key is used, so appending `?api_key={api_key}` to the URL where `{api_key}` is found within Apacta settings is used for authentication
    # Pagination
    If the endpoint returns a `pagination` object it means the endpoint supports pagination - currently it's only possible to change pages with `?page={page_number}` but implementing custom page sizes are on the road map.


    # Search/filter
    Is experimental but implemented in some cases - see the individual endpoints' docs for further explanation.
    # Ordering
    Is currently experimental, but on some endpoints it's implemented on URL querys so eg. to order Invoices by `invoice_number` appending `?sort=Invoices.invoice_number&direction=desc` would sort the list descending by the value of `invoice_number`.
    # Associations
    Is currently implemented on an experimental basis where you can append eg. `?include=Contacts,Projects`  to the `/api/v1/invoices/` endpoint to embed `Contact` and `Project` objects directly.
    # Project Files
    Currently project files can be retrieved from two endpoints. `/projects/{project_id}/files` handles files uploaded from wall posts or forms. `/projects/{project_id}/project_files` allows uploading and showing files, not belonging to specific form or wall post.
    # Errors/Exceptions
    ## 422 (Validation)
    Write something about how the `errors` object contains keys with the properties that failes validation like:
    ```
      {
          "success": false,
          "data": {
              "code": 422,
              "url": "/api/v1/contacts?api_key=5523be3b-30ef-425d-8203-04df7caaa93a",
              "message": "A validation error occurred",
              "errorCount": 1,
              "errors": {
                  "contact_types": [ ## Property name that failed validation
                      "Contacts must have at least one contact type" ## Message with further explanation
                  ]
              }
          }
      }
    ```
    ## Code examples
    Running examples of how to retrieve the 5 most recent forms registered and embed the details of the User that made the form, and eventual products contained in the form
    ### Swift
    ```
    ```
    ### Java
    #### OkHttp
    ```
      OkHttpClient client = new OkHttpClient();

      Request request = new Request.Builder()
        .url("https://app.apacta.com/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5")
        .get()
        .addHeader("x-auth-token", "{INSERT_YOUR_TOKEN}")
        .addHeader("accept", "application/json")
        .build();

      Response response = client.newCall(request).execute();
    ```
    #### Unirest
    ```
      HttpResponse<String> response = Unirest.get("https://app.apacta.com/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5")
        .header("x-auth-token", "{INSERT_YOUR_TOKEN}")
        .header("accept", "application/json")
        .asString();
    ```
    ### Javascript
    #### Native
    ```
      var data = null;

      var xhr = new XMLHttpRequest();

      xhr.addEventListener("readystatechange", function () {
        if (this.readyState === 4) {
          console.log(this.responseText);
        }
      });

      xhr.open("GET", "https://app.apacta.com/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5");
      xhr.setRequestHeader("x-auth-token", "{INSERT_YOUR_TOKEN}");
      xhr.setRequestHeader("accept", "application/json");

      xhr.send(data);
    ```
    #### jQuery
    ```
      var settings = {
        "async": true,
        "crossDomain": true,
        "url": "https://app.apacta.com/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5",
        "method": "GET",
        "headers": {
          "x-auth-token": "{INSERT_YOUR_TOKEN}",
          "accept": "application/json",
        }
      }

      $.ajax(settings).done(function (response) {
        console.log(response);
      });
    ```
    #### NodeJS (Request)
    ```
      var request = require("request");

      var options = { method: 'GET',
        url: 'https://app.apacta.com/api/v1/forms',
        qs:
         { extended: 'true',
           sort: 'Forms.created',
           direction: 'DESC',
           include: 'Products,CreatedBy',
           limit: '5' },
        headers:
         { accept: 'application/json',
           'x-auth-token': '{INSERT_YOUR_TOKEN}' } };

      request(options, function (error, response, body) {
        if (error) throw new Error(error);

        console.log(body);
      });

    ```
    ### Python 3
    ```
      import http.client

      conn = http.client.HTTPSConnection("app.apacta.com")

      payload = ""

      headers = {
          'x-auth-token': "{INSERT_YOUR_TOKEN}",
          'accept': "application/json",
          }

      conn.request("GET", "/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5", payload, headers)

      res = conn.getresponse()
      data = res.read()

      print(data.decode("utf-8"))
    ```
    ### C#
    #### RestSharp
    ```
      var client = new RestClient("https://app.apacta.com/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5");
      var request = new RestRequest(Method.GET);
      request.AddHeader("accept", "application/json");
      request.AddHeader("x-auth-token", "{INSERT_YOUR_TOKEN}");
      IRestResponse response = client.Execute(request);
    ```
    ### Ruby
    ```
      require 'uri'
      require 'net/http'

      url = URI("https://app.apacta.com/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5")

      http = Net::HTTP.new(url.host, url.port)
      http.use_ssl = true
      http.verify_mode = OpenSSL::SSL::VERIFY_NONE

      request = Net::HTTP::Get.new(url)
      request["x-auth-token"] = '{INSERT_YOUR_TOKEN}'
      request["accept"] = 'application/json'

      response = http.request(request)
      puts response.read_body
    ```
    ### PHP (HttpRequest)
    ```
      <?php

      $request = new HttpRequest();
      $request->setUrl('https://app.apacta.com/api/v1/forms');
      $request->setMethod(HTTP_METH_GET);

      $request->setQueryData(array(
        'extended' => 'true',
        'sort' => 'Forms.created',
        'direction' => 'DESC',
        'include' => 'Products,CreatedBy',
        'limit' => '5'
      ));

      $request->setHeaders(array(
        'accept' => 'application/json',
        'x-auth-token' => '{INSERT_YOUR_TOKEN}'
      ));

      try {
        $response = $request->send();

        echo $response->getBody();
      } catch (HttpException $ex) {
        echo $ex;
      }
    ```
    ### Shell (cURL)
    ```

      $ curl --request GET --url 'https://app.apacta.com/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5' --header 'accept: application/json' --header 'x-auth-token: {INSERT_YOUR_TOKEN}'

    ```
  title: Apacta
  version: 0.0.42
  x-apisguru-categories:
    - time_management
    - project_management
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_twitter.com_apactadk_profile_image.png
  x-origin:
    - format: openapi
      url: http://apidoc.apacta.com/swagger.yaml
      version: "3.0"
  x-providerName: apacta.com
tags:
  - name: Activities
  - description: Experimental
    name: TimeEntries
  - description: Experimental
    name: TimeEntryIntervals
  - description: Experimental
    name: TimeEntryTypes
  - description: Experimental
    name: TimeEntryUnitTypes
  - description: Experimental
    name: TimeEntryValueTypes
  - name: Contacts
  - name: ContactPersons
  - name: Invoices
  - name: InvoiceEmails
  - name: InvoiceFiles
  - name: InvoiceLineTextTemplates
  - name: ProjectStatusTypes
paths:
  /activities:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Activity"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      summary: Get a list of activities
      tags:
        - Activities
    post:
      requestBody:
        $ref: "#/components/requestBodies/Activity"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      summary: Create an activity
      tags:
        - Activities
  /activities/bulkDelete:
    delete:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkActionRequestBody"
        description: Activities ids
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
      summary: Bulk delete activities
      tags:
        - Activities
  "/activities/{activity_id}":
    delete:
      parameters:
        - in: path
          name: activity_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Record not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      summary: Delete an activity
      tags:
        - Activities
    put:
      parameters:
        - in: path
          name: activity_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        $ref: "#/components/requestBodies/Activity"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Record not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      summary: Edit an activity
      tags:
        - Activities
  /cities:
    get:
      parameters:
        - description: Used to search for a city with specific zip code
          in: query
          name: zip_code
          required: false
          schema:
            type: string
        - description: Used to search for a city by name
          in: query
          name: name
          required: false
          schema:
            type: string
        - description: Used to search for a city without filtering by country
          in: query
          name: include_all
          required: false
          schema:
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/City"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get list of cities supported in Apacta
      tags:
        - Cities
  "/cities/{city_id}":
    get:
      parameters:
        - in: path
          name: city_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/City"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get details about one city
      tags:
        - Cities
  /clocking_records:
    get:
      parameters:
        - description: Used to search for active clocking records
          in: query
          name: active
          required: false
          schema:
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/ClockingRecord"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of clocking records
      tags:
        - ClockingRecords
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                checkin_latitude:
                  type: string
                checkin_longitude:
                  type: string
                checkout_latitude:
                  type: string
                checkout_longitude:
                  type: string
                project_id:
                  format: uuid
                  type: string
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: Successfully added clocking record
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Create clocking record for authenticated user
      tags:
        - ClockingRecords
  /clocking_records/checkout:
    post:
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  success:
                    default: true
                    type: boolean
                type: object
          description: Successfully checked out
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Checkout active clocking record for authenticated user
      tags:
        - ClockingRecords
  "/clocking_records/{clocking_record_id}":
    delete:
      parameters:
        - in: path
          name: clocking_record_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a clocking record
      tags:
        - ClockingRecords
    get:
      parameters:
        - in: path
          name: clocking_record_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/ClockingRecord"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Clocking record not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Details of 1 clocking_record
      tags:
        - ClockingRecords
    put:
      parameters:
        - in: path
          name: clocking_record_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a clocking record
      tags:
        - ClockingRecords
  /companies:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Company"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of companies
      tags:
        - Companies
  /companies/subscription_self_service:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/SubscriptionSelfServiceRequestBody"
                  success:
                    default: true
                    type: boolean
                type: object
          description: Self service url
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Company not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: URL for subscription selfservice
      tags:
        - Companies
  "/companies/{company_id}":
    get:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Company"
                  success:
                    default: true
                    type: boolean
                type: object
          description: Company object
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Company not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Details of 1 company
      tags:
        - Companies
  "/companies/{company_id}/companies_integration_feature_settings":
    get:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/CompaniesIntegrationFeatureSetting"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Company not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List a company integration feature settings
      tags:
        - Companies
    post:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                integration_feature_setting_id:
                  format: uuid
                  type: string
                value:
                  type: string
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Company not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a company integration feature setting
      tags:
        - Companies
  "/companies/{company_id}/companies_integration_feature_settings/{c_integration_feature_setting_id}":
    get:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - in: path
          name: c_integration_feature_setting_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/CompaniesIntegrationFeatureSetting"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: IntegrationFeatureSetting not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View a company integration feature setting
      tags:
        - Companies
    put:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - in: path
          name: c_integration_feature_setting_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/CompaniesIntegrationFeatureSetting"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: IntegrationFeatureSetting not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a company integration feature setting
      tags:
        - Companies
  "/companies/{company_id}/form_templates/":
    get:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - in: query
          name: form_template_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items: {}
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Company not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of company form templates
      tags:
        - Companies
  "/companies/{company_id}/form_templates/{form_template_id}":
    delete:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: form_template_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Companies form template not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a form template company
      tags:
        - Companies
    get:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - in: query
          name: id
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: form_template_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items: {}
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Form template company not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a company form template
      tags:
        - Companies
  "/companies/{company_id}/integration_feature_settings":
    get:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/IntegrationFeatureSetting"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of integration feature settings
      tags:
        - Companies
  "/companies/{company_id}/integration_feature_settings/{integration_feature_setting_id}":
    get:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - in: path
          name: integration_feature_setting_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/IntegrationFeatureSetting"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: IntegrationFeatureSetting not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show details of 1 integration feature setting
      tags:
        - Companies
  "/companies/{company_id}/integration_settings":
    get:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - description: The identifier of an ERP integration
          in: query
          name: identifier
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/CompaniesIntegrationSetting"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Company not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of company integration settings
      tags:
        - Companies
    post:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/Companiesintegrationsetting"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Company not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a company integration setting
      tags:
        - Companies
  "/companies/{company_id}/integration_settings/{companies_integration_setting_id}":
    delete:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - in: path
          name: companies_integration_setting_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Companies integration setting not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a company integration setting
      tags:
        - Companies
    get:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - in: path
          name: companies_integration_setting_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/CompaniesIntegrationSetting"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Companies integration setting not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a company integration setting
      tags:
        - Companies
    put:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - in: path
          name: companies_integration_setting_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Companies integration setting not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a company integration setting
      tags:
        - Companies
  "/companies/{company_id}/price_margins/{price_margins_id}":
    delete:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - in: query
          name: price_margin_id
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: price_margins_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Companies integration setting not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a company price margin
      tags:
        - Companies
    get:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: price_margins_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/CompanyPriceMargins"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Company not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of company price margins
      tags:
        - Companies
    post:
      parameters:
        - in: path
          name: company_id
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: price_margins_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                id:
                  format: uuid
                  type: string
                value:
                  type: string
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Company not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a company price margin
      tags:
        - Companies
  /companies_vendors:
    get:
      operationId: getCompaiesVendorsList
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/CompaniesVendor"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of companies vendors
      tags:
        - CompaniesVendors
    post:
      operationId: addCompaniesVendor
      requestBody:
        $ref: "#/components/requestBodies/addCompaniesVendorCompaniesvendor"
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: Successfully added companies vendor
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a new companies vendor
      tags:
        - CompaniesVendors
  /companies_vendors/bulkDelete:
    delete:
      operationId: bulkCompaniesVendors
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkActionRequestBody"
        description: Companies vendors ids
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Forbidden
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Bulk delete companies vendors
      tags:
        - CompaniesVendors
  "/companies_vendors/{companies_vendor_id}":
    delete:
      parameters:
        - in: path
          name: companies_vendor_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a companies vendor
      tags:
        - CompaniesVendors
    get:
      operationId: getCompaniesVendor
      parameters:
        - in: path
          name: companies_vendor_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/CompaniesVendor"
                  success:
                    default: true
                    type: boolean
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a companies vendor
      tags:
        - CompaniesVendors
    put:
      operationId: editCompaniesVendor
      parameters:
        - in: path
          name: companies_vendor_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        $ref: "#/components/requestBodies/addCompaniesVendorCompaniesvendor"
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a companies vendor
      tags:
        - CompaniesVendors
  "/companies_vendors/{companies_vendor_id}/expense_statistics":
    get:
      operationId: getCompaniesVendorsExpenseStatistics
      parameters:
        - in: path
          name: companies_vendor_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      properties:
                        last_month:
                          items:
                            properties:
                              amount:
                                format: float
                                type: number
                              count:
                                format: int32
                                type: number
                            type: object
                          type: array
                        thirty_days:
                          items:
                            properties:
                              amount:
                                format: float
                                type: number
                              count:
                                format: int32
                                type: number
                            type: object
                          type: array
                        vendor_id:
                          format: uuid
                          type: string
                      type: object
                    type: array
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get companies vendor expense statistics
      tags:
        - CompaniesVendors
  /company_settings:
    get:
      operationId: getCompaySettingsList
      parameters:
        - description: Filter by name
          in: query
          name: name
          schema:
            type: string
        - description: Filter by description
          in: query
          name: description
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/CompanySettings"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: IntegrationFeatureSetting not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of company settings
      tags:
        - CompanySettings
  /contact_custom_field_attributes:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/ContactCustomFieldAttribute"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of contact custom field attributes
      tags:
        - ContactCustomFieldAttributes
  "/contact_custom_field_attributes/{contact_custom_field_attribute_id}":
    get:
      parameters:
        - in: path
          name: contact_custom_field_attribute_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/ContactCustomFieldAttribute"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: ContactCustomFieldAttribute not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Details of 1 contact custom field attribute
      tags:
        - ContactCustomFieldAttributes
  /contact_types:
    get:
      parameters:
        - description: Search for specific identifier value
          in: query
          name: identifier
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/ContactType"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get list of contact types supported in Apacta
      tags:
        - ContactTypes
  "/contact_types/{contact_type_id}":
    get:
      parameters:
        - in: path
          name: contact_type_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/ContactType"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get details about one contact type
      tags:
        - ContactTypes
  /contacts:
    get:
      parameters:
        - description: Used to search for a contact with a specific name
          in: query
          name: name
          required: false
          schema:
            type: string
        - description: Search for values in CVR field
          in: query
          name: cvr
          schema:
            type: string
        - description: Search for values in EAN field
          in: query
          name: ean
          schema:
            type: string
        - description: Search for values in ERP id field
          in: query
          name: erp_id
          schema:
            type: string
        - description: Used to show only contacts with with one specific `ContactType`
          in: query
          name: contact_type
          schema:
            format: uuid
            type: string
        - description: Used to show only contacts with with one specific `City`
          in: query
          name: city
          schema:
            type: string
        - in: query
          name: modified_gte
          schema:
            format: datetime
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Contact"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of contacts
      tags:
        - Contacts
    post:
      requestBody:
        $ref: "#/components/requestBodies/Contact"
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: Successfully added contact
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a new contact
      tags:
        - Contacts
  /contacts/bulkDelete:
    delete:
      operationId: bulkDeleteContacts
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkActionRequestBody"
        description: Contact ids
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Forbidden
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Bulk delete contacts
      tags:
        - Contacts
  "/contacts/{contact_id}":
    delete:
      parameters:
        - in: path
          name: contact_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a contact
      tags:
        - Contacts
    get:
      parameters:
        - in: path
          name: contact_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Contact"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Contact not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Details of 1 contact
      tags:
        - Contacts
    put:
      parameters:
        - in: path
          name: contact_id
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/Contact"
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a contact
      tags:
        - Contacts
  "/contacts/{contact_id}/contact_custom_field_values":
    get:
      parameters:
        - description: Automatically added
          in: path
          name: contact_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/ContactCustomFieldValue"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of contact custom field values
      tags:
        - ContactCustomFieldValue
  "/contacts/{contact_id}/contact_persons":
    get:
      description: Get a list of contact people associated with a contact
      operationId: getContactPersonsList
      parameters:
        - in: path
          name: contact_id
          required: true
          schema:
            type: string
        - in: query
          name: q
          schema:
            type: string
        - in: query
          name: created_gte
          schema:
            format: date
            type: string
        - in: query
          name: created_lte
          schema:
            format: date
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/ContactPerson"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of contact people
      tags:
        - ContactPersons
    post:
      operationId: addContactPerson
      parameters:
        - in: path
          name: contact_id
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/addContactPersonContactperson"
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: Successfully added contact person
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a new contact person to a contact
      tags:
        - ContactPersons
  "/contacts/{contact_id}/contact_persons/{contact_person_id}":
    delete:
      parameters:
        - in: path
          name: contact_id
          required: true
          schema:
            type: string
        - in: path
          name: contact_person_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a contact person
      tags:
        - ContactPersons
    get:
      operationId: getContactPerson
      parameters:
        - in: path
          name: contact_id
          required: true
          schema:
            type: string
        - in: path
          name: contact_person_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/ContactPerson"
                  success:
                    default: true
                    type: boolean
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a contact person
      tags:
        - ContactPersons
    put:
      operationId: editContactPerson
      parameters:
        - in: path
          name: contact_id
          required: true
          schema:
            type: string
        - in: path
          name: contact_person_id
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/addContactPersonContactperson"
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a contact person
      tags:
        - ContactPersons
  /countries:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Countries"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get list of countries supported in Apacta
      tags:
        - Countries
  "/countries/{country_id}":
    get:
      parameters:
        - in: path
          name: country_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Countries"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get details about one country
      tags:
        - Countries
  /currencies:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Currency"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get list of currencies supported in Apacta
      tags:
        - Currencies
  "/currencies/{currency_id}":
    get:
      parameters:
        - in: path
          name: currency_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Currency"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get details about one currency
      tags:
        - Currencies
  /driving_types:
    get:
      operationId: get-driving_types
      parameters:
        - in: query
          name: q
          schema:
            type: string
        - in: query
          name: sort
          schema:
            type: string
        - in: query
          name: direction
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/DrivingType"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - api_key: []
        - X-Auth-Token: []
      summary: List the driving types of the company
      tags:
        - DrivingTypes
    post:
      operationId: post-driving_types
      requestBody:
        content:
          application/json:
            schema:
              properties:
                company_id:
                  format: uuid
                  type: string
                employee_price:
                  format: float
                  type: number
                erp_id:
                  maxLength: 255
                  type: string
                invoice_price:
                  format: float
                  type: number
                name:
                  type: string
                salary_id:
                  maxLength: 255
                  type: string
              required:
                - company_id
                - name
                - employee_price
                - invoice_price
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      summary: Create driving type
      tags:
        - DrivingTypes
  /driving_types/bulkDelete:
    delete:
      operationId: bulkDeleteDrivingTypes
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkActionRequestBody"
        description: Driving types ids
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Bulk delete driving types
      tags:
        - DrivingTypes
  "/driving_types/{driving_type_id}":
    delete:
      operationId: delete-driving_types-driving_type_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Delete driving type
      tags:
        - DrivingTypes
    get:
      operationId: get-driving_types-driving_type_id
      parameters:
        - in: query
          name: driving_type_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/DrivingType"
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View driving type
      tags:
        - DrivingTypes
    parameters:
      - in: path
        name: driving_type_id
        required: true
        schema:
          type: string
    put:
      description: ""
      operationId: put-driving_types-driving_type_id
      responses:
        "200":
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/DrivingType"
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      summary: Edit driving type
      tags:
        - DrivingTypes
  /employee_hours:
    get:
      parameters:
        - description: Date formatted as Y-m-d (2016-06-28)
          in: query
          name: date_from
          required: true
          schema:
            type: string
        - description: Date formatted as Y-m-d (2016-06-28)
          in: query
          name: date_to
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    description: One element per form in the period
                    items:
                      properties:
                        form_date:
                          description: Y-m-d formatted
                          format: date
                          type: string
                        form_id:
                          format: uuid
                          type: string
                        project_name:
                          type: string
                        total_hours:
                          description: The amount of hours in seconds
                          format: int32
                          type: integer
                        working_description:
                          description: Trimmed at 50 characters
                          type: string
                        working_description_full:
                          description: Full work description (if available)
                          type: string
                      type: object
                    type: array
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Used to retrieve details about the logged in user's hours
      tags:
        - EmployeeHours
  /events:
    get:
      parameters:
        - in: query
          name: user_id
          schema:
            format: uuid
            type: string
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
        - in: query
          name: start[][gt]
          schema:
            format: datetime
            type: string
        - in: query
          name: start[][lt]
          schema:
            format: datetime
            type: string
        - in: query
          name: start[][eq]
          schema:
            format: datetime
            type: string
        - in: query
          name: end[][gt]
          schema:
            format: datetime
            type: string
        - in: query
          name: end[][lt]
          schema:
            format: datetime
            type: string
        - in: query
          name: end[][eq]
          schema:
            format: datetime
            type: string
        - description: List events with given tag ids separated by comma. Example tags=0377d6ce-db5e-4b1e-ac3a-8ca39ea3142e,8cec327e-a559-4b40-9ed6-316b9de46743
          in: query
          name: tags
          schema:
            format: string
            type: string
        - description: List events without attached user
          in: query
          name: without_users
          schema:
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Event"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show list of events
      tags:
        - Events
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                description:
                  maxLength: 255
                  type: string
                end:
                  format: datetime
                  type: string
                name:
                  maxLength: 255
                  type: string
                project_id:
                  format: uuid
                  type: string
                start:
                  format: datetime
                  type: string
                user_id:
                  format: uuid
                  type: string
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Create event
      tags:
        - Events
  /events/is_user_free:
    get:
      parameters:
        - in: query
          name: user_id
          required: true
          schema:
            format: uuid
            type: string
        - in: query
          name: start
          required: true
          schema:
            format: dateTime
            type: string
        - in: query
          name: end
          required: true
          schema:
            format: dateTime
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: boolean
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: BadRequestException
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Check if user is available at given datetime range
      tags:
        - Events
  "/events/{event_id}":
    delete:
      parameters:
        - in: path
          name: event_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Event"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete event
      tags:
        - Events
    get:
      parameters:
        - in: path
          name: event_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Event"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show event
      tags:
        - Events
    put:
      parameters:
        - in: path
          name: event_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Event"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit event
      tags:
        - Events
  /expense_files:
    get:
      parameters:
        - in: query
          name: created_by_id
          schema:
            format: uuid
            type: string
        - in: query
          name: expense_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/ExpenseFile"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show list of expense files
      tags:
        - ExpenseFiles
    post:
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                description:
                  type: string
                file:
                  format: binary
                  type: string
              required:
                - file
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: Successfully added file
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add file to expense
      tags:
        - ExpenseFiles
  "/expense_files/{expense_file_id}":
    delete:
      parameters:
        - in: path
          name: expense_file_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete file
      tags:
        - ExpenseFiles
    get:
      parameters:
        - in: path
          name: expense_file_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show file
      tags:
        - ExpenseFiles
    put:
      parameters:
        - in: path
          name: expense_file_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit file
      tags:
        - ExpenseFiles
  /expense_lines:
    get:
      parameters:
        - in: query
          name: created_by_id
          schema:
            format: uuid
            type: string
        - in: query
          name: currency_id
          schema:
            format: uuid
            type: string
        - in: query
          name: expense_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/ExpenseLine"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show list of expense lines
      tags:
        - ExpenseLines
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                buying_price:
                  format: float
                  type: number
                currency_id:
                  format: uuid
                  type: string
                expense_id:
                  format: uuid
                  type: string
                quantity:
                  format: int32
                  type: integer
                selling_price:
                  format: float
                  type: number
                text:
                  maxLength: 255
                  type: string
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add line to expense
      tags:
        - ExpenseLines
  "/expense_lines/{expense_line_id}":
    delete:
      parameters:
        - in: path
          name: expense_line_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/ExpenseLine"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete expense line
      tags:
        - ExpenseLines
    get:
      parameters:
        - in: path
          name: expense_line_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/ExpenseLine"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show expense line
      tags:
        - ExpenseLines
    put:
      parameters:
        - in: path
          name: expense_line_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/ExpenseLine"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit expense line
      tags:
        - ExpenseLines
  /expenses:
    get:
      parameters:
        - in: query
          name: created_by_id
          schema:
            format: uuid
            type: string
        - in: query
          name: company_id
          schema:
            format: uuid
            type: string
        - in: query
          name: contact_id
          schema:
            format: uuid
            type: string
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
        - description: Filter by [valid=records in future including today], [exceeded=records in past] or [null=all records]
          in: query
          name: due_date
          schema:
            enum:
              - valid
              - exceeded
              - null
            format: string
            type: string
        - description: Created after date
          in: query
          name: gt_created
          schema:
            format: date
            type: string
        - description: Created before date
          in: query
          name: lt_created
          schema:
            format: date
            type: string
        - description: Filter by status identifier. [null=all records]
          in: query
          name: status
          schema:
            enum:
              - expired_subscription
              - approved
              - null
            format: string
            type: string
        - in: query
          name: is_imported
          schema:
            default: true
            type: boolean
        - description: Expenses `total_selling_price` > `min_amount`
          in: query
          name: min_amount
          schema:
            format: float
            type: number
        - description: Expenses `total_selling_price` < `max_amount`
          in: query
          name: max_amount
          schema:
            format: float
            type: number
        - description: You can select `all projects`, `no projects` or select `multiple projects`
          in: query
          name: projects
          schema:
            enum:
              - all
              - none
              - - project1
                - project2
                - project3
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Expense"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show list of expenses
      tags:
        - Expenses
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                contact_id:
                  format: uuid
                  type: string
                currency_id:
                  format: uuid
                  type: string
                delivery_date:
                  format: date
                  type: string
                description:
                  maxLength: 8192
                  type: string
                project_id:
                  format: uuid
                  type: string
                reference:
                  maxLength: 8192
                  type: string
                short_text:
                  maxLength: 255
                  type: string
                supplier_invoice_number:
                  maxLength: 255
                  type: string
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add line to expense
      tags:
        - Expenses
  /expenses/bulkDelete:
    delete:
      operationId: bulkDeleteExpenses
      requestBody:
        $ref: "#/components/requestBodies/BulkActionRequestBody"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Bulk delete expenses
      tags:
        - Expenses
  /expenses/highest_amount:
    get:
      parameters:
        - description: Used to filter time range
          in: query
          name: gt_created
          required: true
          schema:
            format: date
            type: string
        - description: Used to filter time range
          in: query
          name: lt_created
          required: true
          schema:
            format: date
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      maxItems: 1
                      properties:
                        highest_amount:
                          default: 135.54
                          format: float
                          type: number
                    type: array
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show highest Expense amount(`total_selling_price`)
      tags:
        - Expenses
  /expenses/sendEmails:
    delete:
      operationId: sendEmailsExpenses
      requestBody:
        $ref: "#/components/requestBodies/BulkActionRequestBody"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Bulk delete expenses
      tags:
        - Expenses
  "/expenses/{expense_id}":
    delete:
      parameters:
        - in: path
          name: expense_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Expense"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete expense
      tags:
        - Expenses
    get:
      parameters:
        - in: path
          name: expense_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Expense"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show expense
      tags:
        - Expenses
    put:
      parameters:
        - in: path
          name: expense_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Expense"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit expense
      tags:
        - Expenses
  "/expenses/{expense_id}/original_files":
    get:
      parameters:
        - in: path
          name: expense_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show list of all OIOUBL files for the expense
      tags:
        - Expense OIOUBL files
  "/expenses/{expense_id}/original_files/{file_id}":
    get:
      parameters:
        - in: path
          name: expense_id
          required: true
          schema:
            type: string
        - in: path
          name: file_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show OIOUBL file
      tags:
        - Expense OIOUBL files
  /financial_statistics:
    get:
      operationId: getFinancialStatistics
      parameters:
        - in: query
          name: date_from
          schema:
            format: date
            type: string
        - in: query
          name: date_to
          schema:
            format: date
            type: string
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
        - in: query
          name: project_status_ids[]
          schema:
            format: uuid
            type: string
        - in: query
          name: only_not_invoiced
          schema:
            type: boolean
        - in: query
          name: details
          schema:
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      invoicedAmount:
                        format: float
                        type: number
                      invoicedWorkingHours:
                        example: 00:00
                        type: string
                      notInvoicedAmount:
                        format: float
                        type: number
                      notInvoicedWorkingHours:
                        example: 00:00
                        type: string
                      productsCosts:
                        format: float
                        type: number
                      productsSales:
                        format: float
                        type: number
                      rentalsCosts:
                        format: float
                        type: number
                      rentalsSales:
                        format: float
                        type: number
                      totalCosts:
                        format: float
                        type: number
                      totalSales:
                        format: float
                        type: number
                      workTimeCosts:
                        format: float
                        type: number
                      workTimeSales:
                        format: float
                        type: number
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get general statistics
      tags:
        - Financial Statistics
  /financial_statistics/expensesSalesPrice:
    get:
      operationId: getExpensesSalesPrice
      parameters:
        - in: query
          name: date_from
          schema:
            format: date
            type: string
        - in: query
          name: date_to
          schema:
            format: date
            type: string
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  expensesSalesPrice:
                    format: float
                    type: number
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get expenses sales price
      tags:
        - Financial Statistics
  /financial_statistics/invoicedAmount:
    get:
      operationId: getInvoicedAmount
      parameters:
        - in: query
          name: date_from
          schema:
            format: date
            type: string
        - in: query
          name: date_to
          schema:
            format: date
            type: string
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  invoicedAmount:
                    format: float
                    type: number
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get invoiced amount
      tags:
        - Financial Statistics
  /financial_statistics/margin:
    get:
      operationId: getMargin
      parameters:
        - in: query
          name: date_from
          schema:
            format: date
            type: string
        - in: query
          name: date_to
          schema:
            format: date
            type: string
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  margin:
                    format: float
                    type: number
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get margin
      tags:
        - Financial Statistics
  /financial_statistics/materialRentalsCostPrice:
    get:
      operationId: getMaterialRentalsCostPrice
      parameters:
        - in: query
          name: date_from
          schema:
            format: date
            type: string
        - in: query
          name: date_to
          schema:
            format: date
            type: string
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  materialRentalsCostPrice:
                    format: float
                    type: number
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get products material rentals cost price
      tags:
        - Financial Statistics
  /financial_statistics/overview:
    get:
      operationId: getFinancialStatisticsOverview
      parameters:
        - in: query
          name: date_from
          schema:
            format: date
            type: string
        - in: query
          name: date_to
          schema:
            format: date
            type: string
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      expensesSalesPrice:
                        format: float
                        type: number
                      invoicedAmount:
                        format: float
                        type: number
                      margin:
                        format: float
                        type: number
                      materialRentalsCostPrice:
                        format: float
                        type: number
                      productsCostPrice:
                        format: float
                        type: number
                      totalWorkingHours:
                        example: 00:00
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get statistics overview
      tags:
        - Financial Statistics
  /financial_statistics/productsCostPrice:
    get:
      operationId: getProductsCostPrice
      parameters:
        - in: query
          name: date_from
          schema:
            format: date
            type: string
        - in: query
          name: date_to
          schema:
            format: date
            type: string
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  productsCostPrice:
                    format: float
                    type: number
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get products cost price
      tags:
        - Financial Statistics
  /financial_statistics/workingHours:
    get:
      parameters:
        - in: query
          name: date_from
          required: false
          schema:
            format: date
            type: string
        - in: query
          name: date_to
          required: false
          schema:
            format: date
            type: string
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  normalWorkingHours:
                    type: string
                  timeEntries:
                    items:
                      properties:
                        id:
                          format: uuid
                          type: string
                        name:
                          type: string
                        total:
                          type: string
                      type: object
                    type: array
                  totalWorkingHours:
                    type: string
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get Total working hours grouped by time entry type
      tags:
        - FinancialStatistics
  /form_field_types:
    get:
      parameters:
        - description: Used to filter on the `name` of the form_fields
          in: query
          name: name
          required: false
          schema:
            type: string
        - description: Used to filter on the `identifier` of the form_fields
          in: query
          name: identifier
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/FormFieldType"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get list of form field types
      tags:
        - FormFieldTypes
  "/form_field_types/{form_field_type_id}":
    get:
      parameters:
        - in: path
          name: form_field_type_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/FormFieldType"
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get details about single `FormField`
      tags:
        - FormFieldTypes
  /form_fields:
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                comment:
                  maxLength: 8192
                  type: string
                content_value:
                  maxLength: 255
                  type: string
                file_id:
                  format: uuid
                  type: string
                form_field_type_id:
                  format: uuid
                  type: string
                form_id:
                  format: uuid
                  type: string
                form_template_field_id:
                  format: uuid
                  type: string
                placement:
                  format: int32
                  type: integer
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: Successfully added field
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a new field to a `Form`
      tags:
        - FormFields
  "/form_fields/{form_field_id}":
    get:
      parameters:
        - in: path
          name: form_field_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/FormField"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get details about single `FormField`
      tags:
        - FormFields
  /form_templates:
    get:
      parameters:
        - description: Used to filter on the `name` of the form_templates
          in: query
          name: name
          schema:
            type: string
        - description: Used to filter on the `identifier` of the form_templates
          in: query
          name: identifier
          required: false
          schema:
            type: string
        - description: Used to filter on the `pdf_template_identifier` of the form_templates
          in: query
          name: pdf_template_identifier
          schema:
            type: string
        - description: Used to filter on the `description` of the form_templates
          in: query
          name: description
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/FormTemplate"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get array of form_templates for your company
      tags:
        - FormTemplates
  "/form_templates/{form_template_id}":
    get:
      parameters:
        - in: path
          name: form_template_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/FormTemplate"
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View one form template
      tags:
        - FormTemplates
  /forms:
    get:
      parameters:
        - description: Used to have extended details from the forms from the `Form`'s `FormFields`
          in: query
          name: extended
          schema:
            enum:
              - true
              - false
            type: string
        - description: Used in conjunction with `date_to` to only show forms within these dates - format like `2016-28-05`
          in: query
          name: date_from
          schema:
            format: Y-m-d
            type: string
        - description: Used in conjunction with `date_from` to only show forms within these dates - format like `2016-28-30`
          in: query
          name: date_to
          schema:
            format: Y-m-d
            type: string
        - description: Used to show forms with trashed
          in: query
          name: show
          schema:
            format: with_trashed
            type: string
        - description: Used to filter on the `project_id` of the forms
          in: query
          name: project_id
          schema:
            format: uuid
            type: string
        - description: Used to filter on the `created_by_id` of the forms
          in: query
          name: created_by_id
          required: false
          schema:
            type: string
        - description: Used to filter on the `form_template_id` of the forms. Accept single value and array.
          explode: false
          in: query
          name: form_template_id
          schema:
            items:
              format: uuid
              type: string
            type: array
          style: form
        - description: Filter by `form_templates.identifier` containing string passed in `form_template_type`. Accept strings like [`qa`, `dagseddel`]
          in: query
          name: form_template_type
          schema:
            type: string
        - description: Used to filter forms by user's first or last name
          in: query
          name: employee_name
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Form"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Retrieve array of forms
      tags:
        - Forms
    post:
      description: Used to add a form into the system
      requestBody:
        content:
          application/json:
            schema:
              properties:
                form_template_id:
                  format: uuid
                  type: string
                project_id:
                  format: uuid
                  type: string
              required:
                - project_id
                - form_template_id
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add new form
      tags:
        - Forms
  "/forms/undelete/{form_id}":
    get:
      parameters:
        - in: path
          name: form_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Undelete form and related entities to it
      tags:
        - Forms
  "/forms/view_time_form_pdf/{form_id}":
    get:
      parameters:
        - in: path
          name: form_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Generate time form pdf
      tags:
        - Forms
  "/forms/{form_id}":
    delete:
      description: You can only delete the forms that you've submitted yourself
      parameters:
        - in: path
          name: form_id
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a form
      tags:
        - Forms
    get:
      parameters:
        - in: path
          name: form_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Form"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View form
      tags:
        - Forms
    put:
      parameters:
        - in: path
          name: form_id
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a form
      tags:
        - Forms
  /integrations:
    get:
      operationId: get-integrations-list
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  status:
                    type: string
                  success:
                    type: boolean
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      summary: Get integrations list
      tags:
        - Integrations
  /integrations/billysAuthenticate:
    post:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  accessToken:
                    type: string
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Authenticate to Billys
      tags:
        - Integrations
  /integrations/contactsSync:
    get:
      operationId: get-integrations-contactsSync
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  status:
                    type: string
                  success:
                    type: boolean
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      summary: Force Synchronization with ERP systems
      tags:
        - Integrations
  /integrations/productsSync:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Sync products from erp integration
      tags:
        - Integrations
  "/integrations/{integration_id}":
    get:
      operationId: get-integrations-view
      parameters:
        - description: Automatically added
          in: path
          name: integration_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  status:
                    type: string
                  success:
                    type: boolean
                type: object
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      summary: View integration details
      tags:
        - Integrations
  /invoice_line_text_template:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/InvoiceLineTextTemplate"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of invoice line text templates
      tags:
        - InvoiceLineTextTemplates
    post:
      requestBody:
        $ref: "#/components/requestBodies/postInvoiceLineTexts_invoiceLineTextId_"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      summary: Add a new invoice line text template
      tags:
        - InvoiceLineTextTemplates
  "/invoice_line_text_template/{invoice_line_text_template_id}":
    delete:
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete an invoice line text template
      tags:
        - InvoiceLineTextTemplates
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/InvoiceLineTextTemplate"
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a single invoice line text template
      tags:
        - InvoiceLineTextTemplates
    parameters:
      - in: path
        name: invoice_line_text_template_id
        required: true
        schema:
          format: uuid
          type: string
    post:
      requestBody:
        $ref: "#/components/requestBodies/postInvoiceLineTexts_invoiceLineTextId_"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit an invoice line text template
      tags:
        - InvoiceLineTextTemplates
  /invoice_line_texts/:
    post:
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                html:
                  type: string
                image:
                  format: binary
                  type: string
                invoice_id:
                  format: uuid
                  type: string
                placement:
                  type: integer
              required:
                - invoice_id
                - html
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add invoice line text
      tags:
        - InvoiceLines
  "/invoice_line_texts/{invoice_line_text_id}":
    post:
      parameters:
        - description: Automatically added
          in: path
          name: invoice_line_text_id
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/postInvoiceLineTexts_invoiceLineTextId_"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit invoice line text
      tags:
        - InvoiceLines
  /invoice_lines:
    get:
      parameters:
        - in: query
          name: invoice_id
          schema:
            format: uuid
            type: string
        - in: query
          name: product_id
          schema:
            format: uuid
            type: string
        - in: query
          name: user_id
          schema:
            format: uuid
            type: string
        - in: query
          name: name
          schema:
            type: string
        - in: query
          name: discount_text
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/InvoiceLine"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View list of invoice lines
      tags:
        - InvoiceLines
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                child_invoice_lines:
                  items:
                    type: object
                  type: array
                description:
                  maxLength: 8192
                  type: string
                discount_percent:
                  format: int32
                  type: integer
                discount_text:
                  maxLength: 255
                  type: string
                invoice_id:
                  format: uuid
                  type: string
                name:
                  maxLength: 2048
                  type: string
                product_bundle_id:
                  format: uuid
                  type: string
                product_id:
                  format: uuid
                  type: string
                quantity:
                  format: int32
                  type: integer
                selling_price:
                  format: float
                  type: number
                user_id:
                  format: uuid
                  type: string
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add invoice line
      tags:
        - InvoiceLines
  "/invoice_lines/{invoice_line_id}":
    delete:
      parameters:
        - in: path
          name: invoice_line_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete invoice line
      tags:
        - InvoiceLines
    get:
      parameters:
        - in: path
          name: invoice_line_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/InvoiceLine"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View invoice line
      tags:
        - InvoiceLines
    put:
      parameters:
        - in: path
          name: invoice_line_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                description:
                  maxLength: 8192
                  type: string
                discount_percent:
                  format: int32
                  type: integer
                discount_text:
                  maxLength: 255
                  type: string
                invoice_id:
                  format: uuid
                  type: string
                name:
                  maxLength: 2048
                  type: string
                product_id:
                  format: uuid
                  type: string
                quantity:
                  format: int32
                  type: integer
                selling_price:
                  format: float
                  type: number
                user_id:
                  format: uuid
                  type: string
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit invoice line
      tags:
        - InvoiceLines
  /invoices:
    get:
      parameters:
        - description: Used to filter on the `contact_id` of the invoices
          in: query
          name: contact_id
          schema:
            format: uuid
            type: string
        - description: Used to filter on the `project_id` of the invoices
          in: query
          name: project_id
          required: false
          schema:
            format: uuid
            type: string
        - description: Used to filter on the `invoice_number` of the invoices
          in: query
          name: invoice_number
          schema:
            type: string
        - in: query
          name: offer_number
          schema:
            type: string
        - in: query
          name: is_draft
          schema:
            enum:
              - 0
              - 1
            type: integer
        - in: query
          name: is_offer
          schema:
            enum:
              - 0
              - 1
            type: integer
        - in: query
          name: is_locked
          schema:
            enum:
              - 0
              - 1
            type: integer
        - in: query
          name: is_fixed_price
          schema:
            enum:
              - 0
              - 1
            type: integer
        - in: query
          name: date_from
          schema:
            format: date
            type: string
        - in: query
          name: date_to
          schema:
            format: date
            type: string
        - in: query
          name: issued_date
          schema:
            format: date
            type: string
        - description: Used to filter invoices which are sent as draft to integration
          in: query
          name: sent_as_draft
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Invoice"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View list of invoices
      tags:
        - Invoices
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                contact_id:
                  format: uuid
                  type: string
                created_or_modified_gte:
                  format: date
                  type: string
                date_from:
                  format: date
                  type: string
                date_to:
                  format: date
                  type: string
                erp_id:
                  maxLength: 255
                  type: string
                erp_payment_term_id:
                  maxLength: 255
                  type: string
                invoice_number:
                  format: int32
                  maxLength: 8
                  type: integer
                is_draft:
                  type: boolean
                is_locked:
                  type: boolean
                is_offer:
                  type: boolean
                issued_date:
                  format: date
                  type: string
                message:
                  maxLength: 8192
                  type: string
                offer_number:
                  format: int32
                  maxLength: 8
                  type: integer
                payment_due_date:
                  format: date
                  type: string
                payment_term_id:
                  format: uuid
                  type: string
                project_id:
                  format: uuid
                  type: string
                reference:
                  maxLength: 255
                  type: string
                vat_percent:
                  format: int32
                  maxLength: 2
                  type: integer
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add invoice
      tags:
        - Invoices
  /invoices/bulkDelete:
    delete:
      operationId: bulkDeleteInvoices
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkActionRequestBody"
        description: Invoices ids
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Bulk delete invoices
      tags:
        - Invoices
  /invoices/vatOptions:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List VAT options
      tags:
        - Invoices
  "/invoices/{invoice_id}":
    delete:
      parameters:
        - in: path
          name: invoice_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete invoice
      tags:
        - Invoices
    get:
      parameters:
        - in: path
          name: invoice_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Invoice"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View invoice
      tags:
        - Invoices
    put:
      parameters:
        - in: path
          name: invoice_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                contact_id:
                  format: uuid
                  type: string
                date_from:
                  format: date
                  type: string
                date_to:
                  format: date
                  type: string
                erp_id:
                  maxLength: 255
                  type: string
                erp_payment_term_id:
                  maxLength: 255
                  type: string
                invoice_number:
                  format: int32
                  maxLength: 8
                  type: integer
                is_draft:
                  type: boolean
                is_locked:
                  type: boolean
                is_offer:
                  type: boolean
                issued_date:
                  format: date
                  type: string
                message:
                  maxLength: 8192
                  type: string
                offer_number:
                  format: int32
                  maxLength: 8
                  type: integer
                payment_due_date:
                  format: date
                  type: string
                payment_term_id:
                  format: uuid
                  type: string
                project_id:
                  format: uuid
                  type: string
                reference:
                  maxLength: 255
                  type: string
                vat_percent:
                  format: int32
                  maxLength: 2
                  type: integer
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit invoice
      tags:
        - Invoices
  "/invoices/{invoice_id}/copy":
    post:
      parameters:
        - in: path
          name: invoice_id
          required: true
          schema:
            format: uuid
            type: string
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
        - in: query
          name: contact_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Create a copy of an invoice
      tags:
        - Invoices
  "/invoices/{invoice_id}/emails/{email_id}":
    get:
      operationId: getOneInvoiceEmails
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Email"
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Get an invoice emails
      tags:
        - InvoiceEmails
    parameters:
      - in: path
        name: invoice_id
        required: true
        schema:
          format: uuid
          type: string
      - in: path
        name: email_id
        required: true
        schema:
          format: uuid
          type: string
  "/invoices/{invoice_id}/files":
    get:
      operationId: getInvoiceFiles
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/InvoiceFile"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Get list of invoice files
      tags:
        - InvoiceFiles
    parameters:
      - in: path
        name: invoice_id
        required: true
        schema:
          format: uuid
          type: string
    post:
      operationId: createInvoiceFile
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                file_id:
                  format: uuid
                  type: string
                invoice_id:
                  format: uuid
                  type: string
                type:
                  maxLength: 255
                  type: string
              required:
                - invoice_id
                - file_id
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnauthorizedError"
          description: Unautorized
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      summary: Create a new invoice file
      tags:
        - InvoiceFiles
  "/invoices/{invoice_id}/files/{file_id}":
    delete:
      parameters:
        - in: path
          name: invoice_id
          required: true
          schema:
            format: uuid
            type: string
        - in: path
          name: file_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnauthorizedError"
          description: Unautorized
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete invoice file
      tags:
        - InvoiceFiles
    get:
      operationId: getOneInvoiceFiles
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/InvoiceFile"
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Get an invoice files
      tags:
        - InvoiceFiles
    parameters:
      - in: path
        name: invoice_id
        required: true
        schema:
          format: uuid
          type: string
      - in: path
        name: file_id
        required: true
        schema:
          format: uuid
          type: string
  "/invoices/{invoice_id}/linkProjectPdf":
    post:
      parameters:
        - in: path
          name: invoice_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Creates an invoice file containing the project's pdf overview
      tags:
        - Invoices
  "/invoices/{invoice_id}/unlinkProjectPdf":
    post:
      parameters:
        - in: path
          name: invoice_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Deletes the linked project overview pdf
      tags:
        - Invoices
  /mass_messages_users:
    get:
      parameters:
        - description: Used to filter on the `is_read` of the mass messages
          in: query
          name: is_read
          required: false
          schema:
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/MassMessagesUser"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View list of mass messages for specific user
      tags:
        - MassMessagesUsers
  "/mass_messages_users/{mass_messages_user_id}":
    get:
      parameters:
        - in: path
          name: mass_messages_user_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/MassMessagesUser"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View mass message
      tags:
        - MassMessagesUsers
    put:
      parameters:
        - in: path
          name: mass_messages_user_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit mass message
      tags:
        - MassMessagesUsers
  /materials:
    get:
      parameters:
        - description: Used to filter on the `barcode` of the materials
          in: query
          name: barcode
          required: false
          schema:
            type: string
        - description: Used to filter on the `name` of the materials
          in: query
          name: name
          required: false
          schema:
            type: string
        - description: Used to find materials used in specific project by `project_id`
          in: query
          name: project_id
          required: false
          schema:
            format: uuid
            type: string
        - description: Used to find currently rented materials
          in: query
          name: currently_rented
          required: false
          schema:
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Material"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View list of all materials
      tags:
        - Materials
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                barcode:
                  type: string
                billing_cysle:
                  enum:
                    - hourly
                    - daily
                    - weekly
                  type: string
                cost_price:
                  format: float
                  type: number
                description:
                  type: string
                is_single_usage:
                  type: boolean
                name:
                  type: string
                selling_price:
                  format: float
                  type: number
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add material
      tags:
        - Materials
  "/materials/{material_id}":
    delete:
      parameters:
        - in: path
          name: material_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete material
      tags:
        - Materials
    get:
      parameters:
        - in: path
          name: material_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Material"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View material
      tags:
        - Materials
    put:
      parameters:
        - in: path
          name: material_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit material
      tags:
        - Materials
  "/materials/{material_id}/rentals/":
    get:
      parameters:
        - in: path
          name: material_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/MaterialRental"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show list of rentals for specific material
      tags:
        - MaterialRentals
    post:
      parameters:
        - in: path
          name: material_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                form_id:
                  format: uuid
                  type: string
                from_date:
                  format: dateTime
                  type: string
                is_invoiced:
                  format: dateTime
                  type: string
                material_id:
                  format: uuid
                  type: string
                project_id:
                  format: uuid
                  type: string
                quantity:
                  format: float
                  type: number
                to_date:
                  format: dateTime
                  type: string
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add material rental
      tags:
        - MaterialRentals
  "/materials/{material_id}/rentals/checkout/":
    post:
      parameters:
        - in: path
          name: material_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                form_id:
                  format: uuid
                  type: string
                material_rental_id:
                  format: uuid
                  type: string
                to_date:
                  format: dateTime
                  type: string
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Checkout material rental
      tags:
        - MaterialRentals
  "/materials/{material_id}/rentals/{material_rental_id}/":
    delete:
      description: Delete rental for material
      parameters:
        - in: path
          name: material_id
          required: true
          schema:
            format: uuid
            type: string
        - in: path
          name: material_rental_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete material rental
      tags:
        - MaterialRentals
    get:
      parameters:
        - in: path
          name: material_id
          required: true
          schema:
            type: string
        - in: path
          name: material_rental_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/MaterialRental"
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show rental foor materi
      tags:
        - MaterialRentals
    put:
      description: Edit material rental
      parameters:
        - in: path
          name: material_id
          required: true
          schema:
            format: uuid
            type: string
        - in: path
          name: material_rental_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit material rental
      tags:
        - MaterialRentals
  /offer_statuses:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/OfferStatus"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get list of offer statuses
      tags:
        - OfferStatuses
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                company_id:
                  format: uuid
                  type: string
                description:
                  maxLength: 8192
                  type: string
                identifier:
                  maxLength: 255
                  type: string
                is_custom:
                  type: boolean
                name:
                  maxLength: 255
                  type: string
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Create a new offer status
      tags:
        - OfferStatuses
  /offer_statuses/bulkDelete:
    delete:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkActionRequestBody"
        description: Offer statuses ids
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
      summary: Bulk delete offer statuses
      tags:
        - OfferStatuses
  "/offer_statuses/{offer_status_id}":
    delete:
      parameters:
        - in: path
          name: offer_status_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Record not found
      summary: Delete a offer status
      tags:
        - OfferStatuses
    get:
      parameters:
        - in: path
          name: offer_status_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/OfferStatus"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a single offer status
      tags:
        - OfferStatuses
    put:
      parameters:
        - in: path
          name: offer_status_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Record Not Found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a offer status
      tags:
        - OfferStatuses
  /offers:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Offer"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View list of offers
      tags:
        - Offers
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                offer_lines:
                  items: {}
                  type: array
                project_id:
                  format: uuid
                  type: string
                status:
                  default: draft
                  enum:
                    - draft
                    - accepted
                    - rejected
                  type: string
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add new offer
      tags:
        - Offers
  "/offers/{offer_id}":
    delete:
      parameters:
        - in: path
          name: offer_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not Found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete an offer
      tags:
        - Offers
    get:
      parameters:
        - in: path
          name: offer_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Offer"
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not Found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View offer
      tags:
        - Offers
    put:
      parameters:
        - in: path
          name: offer_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                status:
                  default: draft
                  enum:
                    - draft
                    - accepted
                    - rejected
                  type: string
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not Found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit an offer
      tags:
        - Offers
  "/offers/{offer_id}/changelog":
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Offer"
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      summary: Get list of changelog history for the offer. Returns offer object with contact and user objects if they are provided
      tags:
        - Changelog
    parameters:
      - in: path
        name: offer_id
        required: true
        schema:
          format: uuid
          type: string
  /overview/rejection_reasons:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items: {}
                    type: array
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a statistics data for rejection reasons
      tags:
        - RejectionReasons
  /payment_term_types:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/PaymentTermType"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of payment term types
      tags:
        - PaymentTermTypes
  "/payment_term_types/{payment_term_type_id}":
    get:
      parameters:
        - in: path
          name: payment_term_type_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/PaymentTermType"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Details of 1 payment term type
      tags:
        - PaymentTermTypes
  /payment_terms:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/PaymentTerm"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of payment terms
      tags:
        - PaymentTerms
  /payment_terms/erp:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/PaymentTermsData"
                    type: array
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get integration payment terms list
      tags:
        - PaymentTerms
  "/payment_terms/{payment_term_id}":
    get:
      parameters:
        - in: path
          name: payment_term_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/PaymentTerm"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: PaymentTerm not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Details of 1 payment term
      tags:
        - PaymentTerms
  /ping:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  status:
                    default: ok
                    type: string
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Check if API is up and API key works
      tags:
        - Ping
  /products:
    get:
      parameters:
        - description: Used to filter on the `name` of the products
          in: query
          name: name
          schema:
            type: string
        - description: Used to filter on the `product_number` of the products
          in: query
          name: product_number
          schema:
            format: uuid
            type: string
        - description: Used to filter on the `barcode` of the products
          in: query
          name: barcode
          schema:
            type: string
        - in: query
          name: modified_gte
          schema:
            format: datetime
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Product"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List products
      tags:
        - Products
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                barcode:
                  maxLength: 255
                  type: string
                buying_price:
                  format: double
                  type: number
                description:
                  maxLength: 8192
                  type: string
                erp_id:
                  maxLength: 255
                  type: string
                name:
                  maxLength: 255
                  type: string
                product_number:
                  maxLength: 255
                  type: string
                selling_price:
                  format: double
                  type: number
              required:
                - name
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add new product
      tags:
        - Products
  /products/bulkDelete:
    delete:
      operationId: bulkDeleteProducts
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkActionRequestBody"
        description: Products ids
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Bulk delete products
      tags:
        - Products
  "/products/undelete/{product_id}":
    post:
      parameters:
        - in: path
          name: product_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Restore a deleted product
      tags:
        - Products
  "/products/{product_id}":
    delete:
      parameters:
        - in: path
          name: product_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a product
      tags:
        - Products
    get:
      parameters:
        - in: path
          name: product_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Product"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View single product
      tags:
        - Products
    put:
      parameters:
        - in: path
          name: product_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a product
      tags:
        - Products
  "/products/{product_id}/uploadImage":
    parameters:
      - in: path
        name: product_id
        required: true
        schema:
          type: string
    post:
      description: Upload or delete product image
      operationId: Upload or delete product image
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                image:
                  format: binary
                  type: string
              type: object
      responses:
        "200":
          description: OK
      summary: ""
      tags:
        - Products
  "/products/{product_id}/variants":
    get:
      parameters:
        - in: path
          name: product_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/ProductVariant"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Get a product's variants
      tags:
        - ProductVariants
    post:
      parameters:
        - in: path
          name: product_id
          required: true
          schema:
            format: uuid
            type: string
        - description: Filters by name
          in: query
          name: name
          schema:
            type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                ratio:
                  type: number
                variant_id:
                  format: uuid
                  type: string
                variant_type:
                  enum:
                    - expense_line
                    - vendor_product
                  type: string
              required:
                - variant_type
                - variant_id
                - ratio
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a new variant to a product
      tags:
        - ProductVariants
  "/products/{product_id}/variants/{variant_type}/{variant_id}":
    delete:
      parameters:
        - in: path
          name: product_id
          required: true
          schema:
            format: uuid
            type: string
        - in: path
          name: variant_type
          required: true
          schema:
            enum:
              - expense_line
              - vendor_product
            type: string
        - in: path
          name: variant_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Delete a product variant
      tags:
        - ProductVariants
  /project_custom_field_attributes:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/ProjectCustomFieldAttribute"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of project custom field attributes
      tags:
        - ProjectCustomFieldAttributes
  "/project_custom_field_attributes/{project_custom_field_attribute_id}":
    get:
      parameters:
        - in: path
          name: project_custom_field_attribute_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/ProjectCustomFieldAttribute"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: ProjectCustomFieldAttribute not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Details of 1 project custom field attribute
      tags:
        - ProjectCustomFieldAttributes
  /project_status_types:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/ProjectStatusType"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of project status types
      tags:
        - ProjectStatusTypes
  /project_statuses:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/ProjectStatus"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get list of project statuses
      tags:
        - ProjectStatuses
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                description:
                  maxLength: 8192
                  type: string
                name:
                  maxLength: 255
                  type: string
                project_status_type_id:
                  format: uuid
                  type: string
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Create a new project status
      tags:
        - ProjectStatuses
  /project_statuses/add_default:
    post:
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AddDefaultProjectStatusesError"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AddDefaultProjectStatusesSuccess"
          description: Bad Request
      summary: Add default project statuses to company
      tags:
        - DefaultProjectStatuses
  /project_statuses/bulkDelete:
    delete:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkActionRequestBody"
        description: Project statuses ids
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
      summary: Bulk delete project statuses
      tags:
        - ProjectStatuses
  "/project_statuses/{project_status_id}":
    delete:
      parameters:
        - in: path
          name: project_status_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Record not found
      summary: Delete a project status
      tags:
        - ProjectStatuses
    get:
      parameters:
        - in: path
          name: project_status_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/ProjectStatus"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a single project status
      tags:
        - ProjectStatuses
    put:
      parameters:
        - in: path
          name: project_status_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Record Not Found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a project status
      tags:
        - ProjectStatuses
  /projects:
    get:
      parameters:
        - description: Unless this is set to `true` only open projects will be shown
          in: query
          name: show_all
          required: false
          schema:
            default: false
            type: boolean
        - description: Sort projects by `not_invoiced_amount`
          in: query
          name: sort
          schema:
            type: string
        - in: query
          name: direction
          schema:
            type: string
        - description: Used to filter on the `contact_id` of the projects
          in: query
          name: contact_id
          schema:
            format: uuid
            type: string
        - description: Used to filter on the `company_id` of the projects
          in: query
          name: company_id
          schema:
            format: uuid
            type: string
        - description: Used to filter on the `project_status_id` of the projects
          in: query
          name: project_status_id
          schema:
            format: uuid
            type: string
        - description: Used to filter on the `project_status_id` of the projects (match any of the provided values)
          explode: false
          in: query
          name: project_status_ids
          schema:
            items:
              format: uuid
              type: string
            type: array
          style: form
        - description: Used to search on the `name` of the projects
          in: query
          name: name
          schema:
            type: string
        - description: Used to search on the `erp_project_id` of the projects
          in: query
          name: erp_project_id
          schema:
            type: string
        - description: Used to search on the `erp_task_id` of the projects
          in: query
          name: erp_task_id
          schema:
            type: string
        - description: Show projects with start time after than this value
          in: query
          name: start_time_gte
          schema:
            type: string
        - description: Show projects with start time before this value
          in: query
          name: start_time_lte
          schema:
            type: string
        - description: Show only projects with start time on specific date
          in: query
          name: start_time_eq
          schema:
            type: string
        - in: query
          name: event_start[][gt]
          schema:
            format: datetime
            type: string
        - in: query
          name: event_start[][lt]
          schema:
            format: datetime
            type: string
        - in: query
          name: event_start[][eq]
          schema:
            format: datetime
            type: string
        - in: query
          name: event_end[][gt]
          schema:
            format: datetime
            type: string
        - in: query
          name: event_end[][lt]
          schema:
            format: datetime
            type: string
        - in: query
          name: event_end[][eq]
          schema:
            format: datetime
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Project"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View list of projects
      tags:
        - Projects
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                child_projects:
                  items:
                    type: object
                  type: array
                city_id:
                  format: uuid
                  type: string
                contact_id:
                  format: uuid
                  type: string
                description:
                  maxLength: 8192
                  type: string
                erp_project_id:
                  maxLength: 255
                  type: string
                erp_task_id:
                  maxLength: 255
                  type: string
                name:
                  maxLength: 255
                  type: string
                parent_id:
                  format: uuid
                  type: string
                project_status_id:
                  format: uuid
                  type: string
                start_time:
                  format: datetime
                  type: string
                street_name:
                  maxLength: 255
                  type: string
              required:
                - name
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a project
      tags:
        - Projects
  /projects/has_projects_with_custom_statuses:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  has_custom_statuses:
                    type: boolean
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Check if the company has projects with custom statuses
      tags:
        - ProjectStatuses
        - Projects
  "/projects/{project_id}":
    delete:
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a project
      tags:
        - Projects
    get:
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Project"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View specific project
      tags:
        - Projects
    put:
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                contact_id:
                  format: uuid
                  type: string
                description:
                  maxLength: 8192
                  type: string
                erp_project_id:
                  maxLength: 255
                  type: string
                erp_task_id:
                  maxLength: 255
                  type: string
                name:
                  maxLength: 255
                  type: string
                project_status_id:
                  format: uuid
                  type: string
                start_time:
                  format: datetime
                  type: string
                street_name:
                  maxLength: 255
                  type: string
              required:
                - name
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a project
      tags:
        - Projects
  "/projects/{project_id}/all_files":
    get:
      description: Used to show files uploaded to a project from form, expense and project
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show list of all files uploaded to project
      tags:
        - Projects
  "/projects/{project_id}/files":
    get:
      description: Used to show files uploaded to a project from wall post or form
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show list of files uploaded to project
      tags:
        - Projects
  "/projects/{project_id}/files/{file_id}/":
    delete:
      description: Delete file uploaded to a project from wall post or form
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            format: uuid
            type: string
        - in: path
          name: file_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete file
      tags:
        - Projects
    get:
      description: Show file uploaded to a project from wall post or form
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
        - in: path
          name: file_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show file
      tags:
        - Projects
    put:
      description: Edit file uploaded to a project from wall post or form
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            format: uuid
            type: string
        - in: path
          name: file_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit file
      tags:
        - Projects
  "/projects/{project_id}/project_files":
    get:
      description: Returns files belonging to the project, not uploaded from wall post or form
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show list of project files uploaded to project
      tags:
        - Projects
    post:
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  format: binary
                  type: string
              required:
                - file
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: Successfully added project file
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add project file to projects
      tags:
        - Projects
  "/projects/{project_id}/project_files/{project_file_id}/":
    delete:
      parameters:
        - in: path
          name: project_file_id
          required: true
          schema:
            format: uuid
            type: string
        - in: path
          name: project_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete project file
      tags:
        - Projects
    get:
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
        - in: path
          name: project_file_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show project file
      tags:
        - Projects
    put:
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            format: uuid
            type: string
        - in: path
          name: project_file_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit project file
      tags:
        - Projects
  "/projects/{project_id}/send_bulk_pdf":
    post:
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                form_id:
                  items:
                    format: uuid
                    type: string
                  type: array
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Send bulk forms pdf by email
      tags:
        - Projects
  "/projects/{project_id}/users/":
    get:
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/User"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Show list of users added to project
      tags:
        - Projects
    post:
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                user_id:
                  format: uuid
                  type: string
              required:
                - user_id
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add user to project
      tags:
        - Projects
  "/projects/{project_id}/users/{user_id}":
    delete:
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            type: string
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete user from project
      tags:
        - Projects
    get:
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            type: string
        - in: path
          name: project_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/User"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View specific user assigned to project
      tags:
        - Projects
  /reports:
    get:
      description: View list of report types
      operationId: ""
      responses:
        "200":
          description: OK
      summary: ""
      tags:
        - Reports
    parameters: []
  /roles:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Role"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of roles
      tags:
        - Roles
  /stock_locations:
    get:
      parameters:
        - description: Used to filter on the `name` of the stock_locations
          in: query
          name: name
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/StockLocation"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List stock_locations
      tags:
        - StockLocations
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  maxLength: 255
                  type: string
              required:
                - name
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add new stock_locations
      tags:
        - StockLocations
  "/stock_locations/{location_id}":
    delete:
      parameters:
        - in: path
          name: location_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete location
      tags:
        - StockLocations
    get:
      parameters:
        - in: path
          name: location_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/StockLocation"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View single location
      tags:
        - StockLocations
    put:
      parameters:
        - in: path
          name: location_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit location
      tags:
        - StockLocations
  /time_entries:
    get:
      parameters:
        - in: query
          name: user_id
          schema:
            type: string
        - in: query
          name: form_id
          schema:
            type: string
        - in: query
          name: project_id
          schema:
            type: string
        - in: query
          name: gt_from_time
          schema:
            type: string
        - in: query
          name: lt_from_time
          schema:
            type: string
        - in: query
          name: gt_to_time
          schema:
            type: string
        - in: query
          name: lt_to_time
          schema:
            type: string
        - in: query
          name: lt_sum
          schema:
            type: string
        - in: query
          name: gt_sum
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/TimeEntry"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List time entries
      tags:
        - TimeEntries
    post:
      requestBody:
        $ref: "#/components/requestBodies/TimeEntry"
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add new time entry
      tags:
        - TimeEntries
  "/time_entries/{time_entry_id}":
    delete:
      parameters:
        - in: path
          name: time_entry_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete time entry
      tags:
        - TimeEntries
    get:
      parameters:
        - in: path
          name: time_entry_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/TimeEntry"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View time entry
      tags:
        - TimeEntries
    put:
      parameters:
        - in: path
          name: time_entry_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit time entry
      tags:
        - TimeEntries
  /time_entry_intervals:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/TimeEntryInterval"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List possible time entry intervals
      tags:
        - TimeEntryIntervals
  "/time_entry_intervals/{time_entry_interval_id}":
    get:
      parameters:
        - in: path
          name: time_entry_interval_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/TimeEntryInterval"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View time entry interval
      tags:
        - TimeEntryIntervals
  /time_entry_rates:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/TimeEntryRate"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List time entry rates
      tags:
        - TimeEntryRates
    post:
      requestBody:
        $ref: "#/components/requestBodies/TimeEntry"
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add new time entry rate
      tags:
        - TimeEntryRates
  "/time_entry_rates/{time_entry_rate_id}":
    delete:
      parameters:
        - in: path
          name: time_entry_rate_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete time entry rate
      tags:
        - TimeEntryRate
    get:
      parameters:
        - in: path
          name: time_entry_rate_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/TimeEntryRate"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View time entry rate
      tags:
        - TimeEntryRates
    put:
      parameters:
        - in: path
          name: time_entry_rate_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit time entry rate
      tags:
        - TimeEntryRates
  /time_entry_rule_groups:
    get:
      parameters:
        - in: query
          name: q
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/TimeEntryRuleGroup"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List time entry rule groups
      tags:
        - TimeEntryRuleGroups
  /time_entry_types:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/TimeEntryType"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List time entries types
      tags:
        - TimeEntryTypes
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                description:
                  maxLength: 8192
                  type: string
                name:
                  maxLength: 255
                  type: string
                time_entry_interval_id:
                  format: uuid
                  type: string
                time_entry_value_type_id:
                  format: uuid
                  type: string
              required:
                - time_entry_interval_id
                - time_entry_value_type_id
                - name
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add new time entry type
      tags:
        - TimeEntryTypes
  /time_entry_types/bulkActivate:
    post:
      operationId: bulkActivateTimeEntryTypes
      requestBody:
        $ref: "#/components/requestBodies/BulkActionRequestBody2"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Bulk activate time entry types
      tags:
        - TimeEntryTypes
  /time_entry_types/bulkDeactivate:
    post:
      operationId: bulkDeactivateTimeEntryTypes
      requestBody:
        $ref: "#/components/requestBodies/BulkActionRequestBody2"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Bulk deactivate time entry types
      tags:
        - TimeEntryTypes
  /time_entry_types/bulkDelete:
    delete:
      operationId: bulkDeleteTimeEntryTypes
      requestBody:
        $ref: "#/components/requestBodies/BulkActionRequestBody2"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Bulk delete time entry types
      tags:
        - TimeEntryTypes
  "/time_entry_types/{time_entry_type_id}":
    delete:
      parameters:
        - in: path
          name: time_entry_type_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete time entry type
      tags:
        - TimeEntryTypes
    get:
      parameters:
        - in: path
          name: time_entry_type_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/TimeEntryType"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View time entry type
      tags:
        - TimeEntryTypes
    put:
      parameters:
        - in: path
          name: time_entry_type_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit time entry type
      tags:
        - TimeEntryTypes
  /time_entry_unit_types:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/TimeEntryUnitType"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List possible time entry unit types
      tags:
        - TimeEntryUnitTypes
  "/time_entry_unit_types/{time_entry_unit_type_id}":
    get:
      parameters:
        - in: path
          name: time_entry_unit_type_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/TimeEntryUnitType"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View time entry unit type
      tags:
        - TimeEntryUnitTypes
  /time_entry_value_types:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/TimeEntryValueType"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List possible time entry value types
      tags:
        - TimeEntryValueTypes
  "/time_entry_value_types/{time_entry_value_type_id}":
    get:
      parameters:
        - in: path
          name: time_entry_value_type_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/TimeEntryValueType"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View time entry value type
      tags:
        - TimeEntryValueTypes
  /user_custom_field_attributes:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/UserCustomFieldAttribute"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of user custom field attributes
      tags:
        - UserCustomFieldAttributes
  "/user_custom_field_attributes/{user_custom_field_attribute_id}":
    get:
      parameters:
        - in: path
          name: user_custom_field_attribute_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/UserCustomFieldAttribute"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: UserCustomFieldAttribute not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Details of 1 user custom field attribute
      tags:
        - UserCustomFieldAttributes
  /users:
    get:
      parameters:
        - description: Used to filter on the `first_name` of the users
          in: query
          name: first_name
          required: false
          schema:
            type: string
        - description: Used to filter on the `last_name` of the users
          in: query
          name: last_name
          required: false
          schema:
            type: string
        - description: Used to filter on the `email` of the users
          in: query
          name: email
          schema:
            type: string
        - description: Used to filter on the `stock_location_id` of the users
          in: query
          name: stock_location_id
          schema:
            type: string
        - description: Filters active/inactive users
          in: query
          name: is_active
          schema:
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/User"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get list of users in company
      tags:
        - Users
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                city_id:
                  format: uuid
                  type: string
                cost_price:
                  description: Cost of salaries
                  format: float
                  type: number
                email:
                  format: email
                  maxLength: 255
                  type: string
                expected_billable_hours:
                  format: float
                  type: number
                extra_price:
                  description: Additional cost on this employee (pension, vacation etc.)
                  format: float
                  type: number
                first_name:
                  maxLength: 255
                  type: string
                hide_address:
                  type: boolean
                hide_phone:
                  type: boolean
                initials:
                  maxLength: 3
                  type: string
                is_active:
                  type: boolean
                language_id:
                  format: uuid
                  type: string
                last_name:
                  maxLength: 255
                  type: string
                mobile:
                  maxLength: 32
                  type: string
                mobile_countrycode:
                  maxLength: 8
                  type: string
                password:
                  format: password
                  maxLength: 255
                  type: string
                phone:
                  maxLength: 32
                  type: string
                phone_countrycode:
                  maxLength: 8
                  type: string
                receive_form_mails:
                  description: If `true` the employee will receive an email receipt of every form submitted
                  type: boolean
                roles:
                  properties:
                    _ids:
                      items:
                        type: string
                      type: array
                  type: object
                sale_price:
                  description: The price this employee costs per hour when working
                  format: float
                  type: number
                street_name:
                  maxLength: 255
                  type: string
              required:
                - first_name
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add user to company
      tags:
        - Users
  /users/bulkActivate:
    post:
      operationId: usersBulkActivate
      requestBody:
        $ref: "#/components/requestBodies/BulkActionRequestBody3"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Activate multiple users
      tags:
        - Users
  /users/bulkDeactivate:
    post:
      operationId: usersBulkDeactivate
      requestBody:
        $ref: "#/components/requestBodies/BulkActionRequestBody3"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Deactivate multiple users
      tags:
        - Users
  /users/resendWelcomeSms:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      message:
                        type: string
                    type: object
                  status:
                    enum:
                      - success
                      - error
                    type: string
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Resend Welcome SMS to the user
      tags:
        - Users
  "/users/{user_id}":
    delete:
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete user
      tags:
        - Users
    get:
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/User"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View user
      tags:
        - Users
    put:
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit user
      tags:
        - Users
  "/users/{user_id}/integration_settings":
    get:
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/IntegrationSettingsUser"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: User not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of user integration settings
      tags:
        - Users
    post:
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/Companiesintegrationsetting"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: User not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a user integration setting
      tags:
        - Users
  "/users/{user_id}/integration_settings/{integration_settings_user_id}":
    delete:
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            type: string
        - in: path
          name: integration_settings_user_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Companies integration setting not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a user integration setting
      tags:
        - Users
    get:
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            type: string
        - in: path
          name: integration_settings_user_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/IntegrationSettingsUser"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Users integration setting not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a user integration setting
      tags:
        - Users
    put:
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            type: string
        - in: path
          name: integration_settings_user_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptySuccessResponse"
          description: OK
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Users integration setting not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a user integration setting
      tags:
        - Users
  "/users/{user_id}/uploadImage":
    parameters:
      - in: path
        name: user_id
        required: true
        schema:
          type: string
    post:
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                image:
                  format: binary
                  type: string
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: User not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Upload a new image to a user
      tags:
        - Users
  "/users/{user_id}/user_custom_field_value":
    get:
      parameters:
        - description: Automatically added
          in: path
          name: user_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/UserCustomFieldValue"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of user custom field values
      tags:
        - UserCustomFieldValue
  "/users/{user_id}/user_custom_field_value/{user_custom_field_value_id}":
    get:
      parameters:
        - description: Automatically added
          in: path
          name: user_id
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: user_custom_field_value_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/UserCustomFieldValue"
                    type: array
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a single record of user custom field value
      tags:
        - UserCustomFieldValue
    put:
      parameters:
        - description: Automatically added
          in: path
          name: user_id
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: user_custom_field_value_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    default: []
                    items: {}
                    type: array
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Update a single record of user custom field value
      tags:
        - UserCustomFieldValue
  /vendor_product_price_files:
    get:
      parameters:
        - in: query
          name: file_name
          schema:
            type: string
        - in: query
          name: vendor_name
          schema:
            type: string
        - explode: false
          in: query
          name: vendor_ids
          schema:
            items:
              type: string
            type: array
          style: form
        - in: query
          name: status
          schema:
            enum:
              - awaiting
              - fresh
              - expired
              - failed
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/VendorProductPriceFile"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of price files
      tags:
        - VendorProductPriceFiles
    post:
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                companies_vendor_id:
                  type: string
                file:
                  format: binary
                  type: string
              required:
                - file
                - companies_vendor_id
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateSuccessResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadRequestResponse"
          description: Bad Request
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Bad Request
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Upload a vendor price file
      tags:
        - VendorProductPriceFiles
  "/vendor_product_price_files/{vendor_product_price_file_id}":
    get:
      parameters:
        - description: Automatically added
          in: path
          name: vendor_product_price_file_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    allOf:
                      - $ref: "#/components/schemas/VendorProductPriceFile"
                      - properties:
                          download_link:
                            format: uri
                            type: string
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a single price file
      tags:
        - VendorProductPriceFiles
  /vendor_products:
    get:
      parameters:
        - description: Used to filter on the `name` of the vendor products
          in: query
          name: name
          schema:
            type: string
        - description: Used to filter on the `product_number` of the vendor products
          in: query
          name: product_number
          schema:
            format: uuid
            type: string
        - description: Used to filter on the `barcode` of the vendor products
          in: query
          name: barcode
          schema:
            type: string
        - description: Used to filter on the `vendor_id` of the vendor products
          in: query
          name: vendor_id
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/VendorProduct"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: List vendor products
      tags:
        - VendorProducts
  "/vendor_products/{vendor_product_id}":
    get:
      parameters:
        - in: path
          name: vendor_product_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/VendorProduct"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View single vendor product
      tags:
        - VendorProducts
  /vendors:
    get:
      operationId: getVendorsList
      parameters:
        - in: query
          name: with_custom
          required: false
          schema:
            type: boolean
        - in: query
          name: email
          required: false
          schema:
            type: string
        - in: query
          name: name
          required: false
          schema:
            type: string
        - in: query
          name: cvr
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/Vendor"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a list of vendors
      tags:
        - Vendors
    post:
      operationId: addVendor
      requestBody:
        $ref: "#/components/requestBodies/addVendorVendor"
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: Successfully added vendor
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a new vendor
      tags:
        - Vendors
  "/vendors/{vendor_id}":
    delete:
      parameters:
        - in: path
          name: vendor_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: string
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Delete a vendor
      tags:
        - Vendors
    get:
      operationId: getVendor
      parameters:
        - in: path
          name: vendor_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/Vendor"
                  success:
                    default: true
                    type: boolean
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Get a vendor
      tags:
        - Vendors
    put:
      operationId: editVendor
      parameters:
        - in: path
          name: vendor_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        $ref: "#/components/requestBodies/addVendorVendor"
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      type: object
                    type: array
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Edit a vendor
      tags:
        - Vendors
  /wages/downloadSalaryFile:
    get:
      parameters:
        - in: query
          name: date_from
          required: false
          schema:
            format: date
            type: string
        - in: query
          name: date_to
          required: false
          schema:
            format: date
            type: string
        - in: query
          name: company_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Download salary file
      tags:
        - Wages
  /wall_comments:
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                message:
                  type: string
                wall_post_id:
                  format: uuid
                  type: string
              required:
                - wall_post_id
                - message
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add wall comment
      tags:
        - WallComments
  "/wall_comments/{wall_comment_id}":
    get:
      parameters:
        - in: path
          name: wall_comment_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/WallComment"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View wall comment
      tags:
        - WallComments
  /wall_posts:
    get:
      parameters:
        - in: query
          name: project_id
          schema:
            format: uuid
            type: string
        - in: query
          name: user_id
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/WallPost"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
        "401":
          description: Not authorized to access project
        "404":
          description: Project not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View list of wall posts
      tags:
        - WallPosts
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                message:
                  type: string
                project_id:
                  format: uuid
                  type: string
              required:
                - project_id
                - message
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      id:
                        format: uuid
                        type: string
                    type: object
                  success:
                    default: true
                    type: boolean
                type: object
          description: OK
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorValidation"
          description: Validation error
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: Add a wall post
      tags:
        - WallPosts
  "/wall_posts/{wall_post_id}":
    get:
      parameters:
        - in: path
          name: wall_post_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/WallPost"
                  success:
                    type: boolean
                type: object
          description: OK
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: View wall post
      tags:
        - WallPosts
  "/wall_posts/{wall_post_id}/wall_comments":
    get:
      parameters:
        - in: path
          name: wall_post_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/WallComment"
                    type: array
                  pagination:
                    $ref: "#/components/schemas/PaginationDetails"
                  success:
                    type: boolean
                type: object
          description: OK
        "401":
          description: Not authorized to access project
        "404":
          description: Wall post not found
      security:
        - X-Auth-Token: []
        - api_key: []
      summary: See wall comments to a wall post
      tags:
        - WallPosts
components:
  requestBodies:
    Activity:
      content:
        application/json:
          schema:
            properties:
              hex_code:
                maxLength: 6
                type: string
              name:
                maxLength: 255
                type: string
            type: object
      required: true
    BulkActionRequestBody:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/BulkActionRequestBody"
      description: expense ids
      required: true
    BulkActionRequestBody2:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/BulkActionRequestBody"
      description: Time entry types ids
      required: true
    BulkActionRequestBody3:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/BulkActionRequestBody"
      description: User ids
    Companiesintegrationsetting:
      content:
        application/json:
          schema:
            properties:
              integration_setting_id:
                format: uuid
                type: string
              value:
                type: string
            type: object
    Contact:
      content:
        application/json:
          schema:
            properties:
              address:
                description: Street address
                maxLength: 255
                type: string
              city_id:
                format: uuid
                type: string
              contact_types:
                properties:
                  _ids:
                    items:
                      type: string
                    type: array
                type: object
              cvr:
                maxLength: 255
                type: string
              description:
                maxLength: 8192
                type: string
              email:
                maxLength: 255
                type: string
              erp_id:
                description: If company has integration to an ERP system, and the contacts are synchronized, this will be the ERP-systems ID of this contact
                maxLength: 255
                type: string
              name:
                maxLength: 255
                type: string
              phone:
                description: Format like eg. `28680133` or `046158971404`
                maxLength: 32
                type: string
              website:
                maxLength: 255
                type: string
            type: object
    TimeEntry:
      content:
        application/json:
          schema:
            properties:
              form_id:
                format: uuid
                type: string
              from_time:
                format: dateTime
                type: string
              is_all_day:
                type: boolean
              project_id:
                format: uuid
                type: string
              sum:
                description: Amount of seconds - should only be included when using is_all_day, otherwise will be calculated from from_time and to_time
                format: int32
                type: integer
              time_entry_type_id:
                format: uuid
                type: string
              to_time:
                format: dateTime
                type: string
              user_id:
                format: uuid
                type: string
            required:
              - user_id
              - time_entry_type_id
            type: object
    addCompaniesVendorCompaniesvendor:
      content:
        application/json:
          schema:
            properties:
              company_id:
                format: uuid
                type: string
              delivery_price:
                format: float
                type: number
              free_delivery_price:
                format: float
                type: number
              is_active:
                type: boolean
              password:
                maxLength: 255
                type: string
              receive_automatic_price_files:
                type: boolean
              receive_invoice_mails:
                type: boolean
              reviewed:
                type: boolean
              use_price_files:
                type: boolean
              username:
                maxLength: 255
                type: string
              vendor_account_reference:
                maxLength: 255
                type: string
              vendor_department_id:
                format: uuid
                type: string
              vendor_email:
                maxLength: 255
                type: string
              vendor_id:
                format: uuid
                type: string
              vendor_name:
                maxLength: 255
                type: string
            type: object
    addContactPersonContactperson:
      content:
        application/json:
          schema:
            properties:
              email:
                maxLength: 255
                type: string
              name:
                maxLength: 255
                type: string
              phone:
                maxLength: 32
                type: string
              title:
                maxLength: 255
                type: string
            type: object
    addVendorVendor:
      content:
        application/json:
          schema:
            properties:
              country_id:
                format: uuid
                type: string
              cvr:
                maxLength: 12
                type: string
              email:
                maxLength: 255
                type: string
              identifier:
                maxLength: 255
                type: string
              is_custom:
                type: boolean
              name:
                maxLength: 255
                type: string
            type: object
    postInvoiceLineTexts_invoiceLineTextId_:
      content:
        multipart/form-data:
          schema:
            properties:
              html:
                type: string
              image:
                format: binary
                type: string
            required:
              - html
            type: object
      required: true
  schemas:
    Activity:
      properties:
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        hex_code:
          maxLength: 6
          type: string
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
      type: object
    AddDefaultProjectStatusesError:
      properties:
        message:
          type: string
        success:
          type: boolean
      type: object
    AddDefaultProjectStatusesSuccess:
      properties:
        success:
          type: boolean
      type: object
    BadRequestResponse:
      properties:
        data:
          properties:
            code:
              default: 400
              type: integer
            message:
              type: string
            url:
              type: string
          type: object
        success:
          default: false
          type: boolean
      title: BadRequestResponse
      type: object
    BulkActionRequestBody:
      properties:
        id:
          items:
            type: string
          type: array
      title: BulkActionRequestBody
      type: object
    BulkEditIntegrationSettingsUsersItemsRequestBody:
      properties:
        integration_setting_id:
          format: uuid
          type: string
        value:
          type: string
      title: BulkEditIntegrationSettingsUsersItemsRequestBody
      type: object
    BulkEditIntegrationSettingsUsersRequestBody:
      properties:
        integration_settings:
          items:
            $ref: "#/components/schemas/BulkEditIntegrationSettingsUsersItemsRequestBody"
          type: array
        user_id:
          format: uuid
          type: string
      title: BulEditIntegrationSettingsUsersRequestBody
      type: object
    City:
      properties:
        created:
          $ref: "#/components/schemas/created"
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        zip_code:
          maxLength: 11
          type: integer
      type: object
    ClockingRecord:
      properties:
        checked_in:
          format: dateTime
          type: string
        checked_out:
          format: dateTime
          type: string
        checkin_latitude:
          type: string
        checkin_longitude:
          type: string
        checkout_latitude:
          type: string
        checkout_longitude:
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        project_id:
          format: uuid
          type: string
        user_id:
          format: uuid
          type: string
      type: object
    CompaniesFormTemplates:
      properties:
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        form_template_id:
          format: uuid
          type: string
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
      type: object
    CompaniesIntegrationFeatureSetting:
      properties:
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        integration_feature_setting_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        value:
          type: string
      title: CompaniesIntegrationFeatureSetting
      type: object
    CompaniesIntegrationSetting:
      properties:
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        integration_setting_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        value:
          type: string
      title: CompaniesIntegrationSetting
      type: object
    CompaniesVendor:
      properties:
        company_id:
          format: uuid
          type: string
        company_password:
          maxLength: 255
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          readOnly: true
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        delivery_price:
          format: float
          type: number
        free_delivery_price:
          format: float
          type: number
        id:
          format: uuid
          type: string
        is_active:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          readOnly: true
          type: string
        receive_automatic_price_files:
          type: boolean
        receive_invoice_mails:
          type: boolean
        reviewed:
          type: boolean
        use_price_files:
          type: boolean
        username:
          maxLength: 255
          type: string
        vendor:
          $ref: "#/components/schemas/Vendor"
        vendor_account_reference:
          maxLength: 255
          type: string
        vendor_department_id:
          format: uuid
          type: string
        vendor_email:
          maxLength: 255
          type: string
        vendor_id:
          format: uuid
          type: string
        vendor_name:
          maxLength: 255
          type: string
      type: object
    Company:
      properties:
        city_id:
          format: uuid
          type: string
        contact_person_id:
          format: uuid
          type: string
        country_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        cvr:
          maxLength: 255
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        expired:
          format: date-time
          type: string
        file_id:
          format: uuid
          type: string
        id:
          format: uuid
          type: string
        invoice_email:
          format: email
          maxLength: 255
          type: string
        language_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        next_invoice_number:
          format: int32
          maxLength: 8
          type: integer
        next_offer_number:
          format: int32
          maxLength: 8
          type: integer
        next_project_number:
          format: int32
          maxLength: 8
          type: integer
        phone:
          description: Format like eg. `28680133` or `046158971404`
          maxLength: 32
          type: string
        phone_countrycode:
          description: Format like eg. `45` or `49`
          maxLength: 3
          type: string
        receive_form_mails:
          format: email
          maxLength: 255
          type: string
        street_name:
          maxLength: 255
          type: string
        vat_percent:
          format: int32
          maxLength: 12
          type: integer
        website:
          maxLength: 255
          type: string
      type: object
    CompanyPriceMargins:
      properties:
        amount_from:
          format: double
          type: number
        amount_to:
          format: double
          type: number
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        percentage_ratio:
          format: double
          type: number
        ratio:
          format: float
          type: number
        type:
          maxLength: 255
          type: string
      type: object
    CompanySettings:
      properties:
        company_settings_category_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          readOnly: true
          type: string
        default_value:
          maxLength: 255
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        feature_id:
          format: uuid
          type: string
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          readOnly: true
          type: string
        name:
          maxLength: 255
          type: string
        options:
          maxLength: 255
          type: string
        placement:
          type: integer
        type:
          maxLength: 255
          type: string
      type: object
    Contact:
      properties:
        address:
          description: Street address
          maxLength: 255
          type: string
        centiga_id:
          maxLength: 255
          type: string
        city_id:
          format: uuid
          type: string
        company_id:
          description: Only filled out if this represents another company within Apacta (used for partners)
          format: uuid
          type: string
        country_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        cvr:
          maxLength: 255
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        email:
          maxLength: 255
          type: string
        erp_id:
          description: If company has integration to an ERP system, and the contacts are synchronized, this will be the ERP-systems ID of this contact
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        phone:
          description: Format like eg. `28680133` or `046158971404`
          maxLength: 32
          type: string
        pogo_id:
          maxLength: 255
          type: string
        tripletex_id:
          maxLength: 255
          type: string
        website:
          maxLength: 255
          type: string
      type: object
    ContactCustomFieldAttribute:
      properties:
        access_type:
          maxLength: 255
          type: string
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        is_active:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        placement:
          maxLength: 11
          type: integer
      type: object
    ContactCustomFieldValue:
      properties:
        contact_custom_field_attribute_id:
          format: uuid
          type: string
        contact_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        value:
          maxLength: 255
          type: string
      type: object
    ContactPerson:
      properties:
        contact_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          readOnly: true
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        email:
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        phone:
          maxLength: 32
          type: string
        title:
          maxLength: 255
          type: string
      type: object
    ContactType:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        identifier:
          description: One of 3 values
          enum:
            - client
            - partner
            - supplier
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
      type: object
    Countries:
      properties:
        created:
          $ref: "#/components/schemas/created"
        currency_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        language_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        phone_code:
          maxLength: 10
          type: string
        time_zone:
          maxLength: 255
          type: string
      type: object
    CreateSuccessResponse:
      properties:
        data:
          properties:
            id:
              format: uuid
              type: string
          type: object
        success:
          default: true
          type: boolean
      type: object
    Currency:
      properties:
        centiga_id:
          maxLength: 255
          type: string
        created:
          $ref: "#/components/schemas/created"
        currency_sign:
          maxLength: 8
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        pogo_id:
          maxLength: 255
          type: string
        tripletex_id:
          maxLength: 255
          type: string
      type: object
    DrivingType:
      properties:
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        employee_price:
          format: double
          type: number
        erp_id:
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        invoice_price:
          format: double
          type: number
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        name:
          maxLength: 255
          type: string
        salary_id:
          maxLength: 255
          type: string
      required:
        - id
        - company_id
        - name
        - employee_price
        - invoice_price
        - created
        - modified
      type: object
    Email:
      properties:
        api_response:
          type: string
        body:
          type: string
        carbon_copy:
          type: string
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        is_sent:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        recipients:
          maxLength: 1024
          type: string
        reply_to:
          format: email
          type: string
        subject:
          type: string
      type: object
    EmptySuccessResponse:
      properties:
        data:
          items:
            type: string
          type: array
        success:
          type: boolean
      type: object
    ErrorNotFound:
      properties:
        data:
          properties:
            code:
              default: 404
              description: The HTTP status code
              type: integer
            message:
              default: Record not found
              description: Error message
              type: string
            url:
              description: The url from which this originated
              type: string
          type: object
        success:
          default: false
          type: boolean
      type: object
    ErrorValidation:
      properties:
        data:
          properties:
            code:
              description: The HTTP status code
              type: integer
            errorCount:
              description: The amount of validation errors
              type: integer
            errors:
              description: Object that contains details information about which properties failed validation and what rules they failed.
              type: object
            message:
              default: A validation error occurred
              description: Error message
              type: string
            url:
              description: The url from which this originated
              type: string
          type: object
        success:
          default: false
          type: boolean
      type: object
    Event:
      properties:
        company_id:
          description: Read-only
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        end:
          format: datetime
          type: string
        id:
          description: Read-only
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          description: Read-only
          format: uuid
          type: string
        name:
          maxLength: 255
          type: string
        project_id:
          format: uuid
          type: string
        start:
          format: datetime
          type: string
        user_id:
          format: uuid
          type: string
      type: object
    Expense:
      properties:
        activity_id:
          format: uuid
          type: string
        comment:
          maxLength: 8192
          type: string
        company_id:
          description: Read-only
          format: uuid
          type: string
        contact_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        currency_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        delivery_date:
          format: date
          type: string
        description:
          maxLength: 8192
          type: string
        due_date:
          format: date
          type: string
        file_reference:
          maxLength: 255
          type: string
        id:
          description: Read-only
          format: uuid
          type: string
        is_imported:
          maxLength: 8192
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        order_number:
          maxLength: 8192
          type: string
        project_id:
          format: uuid
          type: string
        readsoft_id:
          maxLength: 255
          type: string
        reference:
          maxLength: 8192
          type: string
        roger_id:
          format: uuid
          type: string
        sent_to_email:
          maxLength: 8192
          type: string
        short_text:
          maxLength: 255
          type: string
        status:
          maxLength: 255
          type: string
        supplier_invoice_number:
          maxLength: 255
          type: string
        total_buying_price:
          description: Sum of all `buying_price` from expense lines
          format: float
          type: number
        total_selling_price:
          description: Sum of all `selling_price` from expense lines
          format: float
          type: number
      type: object
    ExpenseFile:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        expense_id:
          format: uuid
          type: string
        file:
          description: File's name
          maxLength: 255
          type: string
        file_extension:
          maxLength: 255
          type: string
        file_original_name:
          maxLength: 255
          type: string
        file_size:
          description: File size in bytes
          maxLength: 255
          type: string
        file_type:
          description: File's MIME type
          maxLength: 255
          type: string
        file_url:
          description: Read-only
          maxLength: 255
          type: string
        id:
          description: Read-only
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
      type: object
    ExpenseLine:
      properties:
        buying_price:
          format: float
          type: number
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        currency_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        expense_id:
          format: uuid
          type: string
        id:
          description: Read-only
          format: uuid
          type: string
        is_invoiced:
          default: null
          format: dateTime
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        quantity:
          format: int32
          type: integer
        selling_price:
          format: float
          type: number
        text:
          maxLength: 255
          type: string
      type: object
    ForbiddenError:
      properties:
        data:
          properties:
            code:
              default: 403
              description: The HTTP status code
              type: integer
            message:
              default: Forbidden
              description: Error message
              type: string
            url:
              description: The url from which this originated
              type: string
          type: object
        success:
          default: false
          type: boolean
      type: object
    Form:
      properties:
        approved_by_id:
          format: uuid
          type: string
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        form_date:
          format: date
          type: string
        form_template_id:
          format: uuid
          type: string
        id:
          description: Read-only
          format: uuid
          type: string
        is_draft:
          default: false
          type: boolean
        is_invoiced:
          default: null
          format: dateTime
          type: string
        is_shared:
          default: false
          type: boolean
        mass_form_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        project_id:
          format: uuid
          type: string
      type: object
    FormField:
      properties:
        comment:
          maxLength: 8192
          type: string
        content_value:
          maxLength: 255
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        file_id:
          format: uuid
          type: string
        form_field_type_id:
          format: uuid
          type: string
        form_id:
          format: uuid
          type: string
        form_template_field_id:
          format: uuid
          type: string
        id:
          description: Read-only
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        placement:
          format: int32
          type: integer
      type: object
    FormFieldType:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          description: Read-only
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
      type: object
    FormTemplate:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        form_category_id:
          format: uuid
          type: string
        form_overview_category_id:
          format: uuid
          type: string
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        is_active:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        pdf_template_identifier:
          maxLength: 255
          type: string
      type: object
    IntegrationFeatureSetting:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        default_value:
          maxLength: 255
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        integration_feature_id:
          format: uuid
          type: string
        is_custom_setting:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
      type: object
    IntegrationSettingsUser:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        integration_setting_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        user_id:
          format: uuid
          type: string
        value:
          type: string
      title: IntegrationSettingsUser
      type: object
    IntegrationSettingsUsers:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        integration_setting_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        user_id:
          format: uuid
          type: string
        value:
          type: string
      type: object
    Invoice:
      properties:
        all_products_one_line:
          type: boolean
        all_working_hours_one_line:
          type: boolean
        company_id:
          format: uuid
          type: string
        contact_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        currency_id:
          format: uuid
          type: string
        date_from:
          format: date
          type: string
        date_to:
          format: date
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        downloaded:
          format: dateTime
          type: string
        erp_id:
          maxLength: 255
          type: string
        erp_payment_term_id:
          maxLength: 255
          type: string
        eu_customer:
          type: boolean
        gross_payment:
          format: float
          type: number
        group_by_forms:
          type: boolean
        id:
          format: uuid
          type: string
        include_invoiced_lines:
          type: boolean
        integration_id:
          format: uuid
          type: string
        invoice_number:
          format: int32
          maxLength: 8
          type: integer
        is_draft:
          type: boolean
        is_final_invoice:
          type: boolean
        is_locked:
          type: boolean
        is_offer:
          type: boolean
        issued_date:
          format: date
          type: string
        message:
          maxLength: 8192
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        net_payment:
          format: float
          type: number
        offer_number:
          format: int32
          maxLength: 8
          type: integer
        order_line_group_id:
          format: uuid
          type: string
        payment_due_date:
          format: date
          type: string
        payment_term_id:
          format: uuid
          type: string
        project_id:
          format: uuid
          type: string
        project_overview_attached:
          type: boolean
        reference:
          maxLength: 255
          type: string
        show_employee_name:
          type: boolean
        show_price_product_bundle:
          type: boolean
        show_prices_products_and_hours:
          type: boolean
        show_product_images:
          type: boolean
        show_products_product_bundle:
          type: boolean
        title:
          maxLength: 255
          type: string
        total_cost_price:
          format: float
          type: number
        total_discount_percent:
          format: float
          type: number
        vat_percent:
          format: int32
          maxLength: 2
          type: integer
        vendor_id:
          format: uuid
          type: string
      type: object
    InvoiceFile:
      properties:
        created:
          $ref: "#/components/schemas/created"
        deleted:
          $ref: "#/components/schemas/deleted"
        file_id:
          format: uuid
          type: string
        id:
          format: uuid
          type: string
        invoice_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        type:
          maxLength: 255
          type: string
      type: object
    InvoiceLine:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        discount_percent:
          format: int32
          type: integer
        discount_text:
          maxLength: 255
          type: string
        ean_product_id:
          format: uuid
          type: string
        form_id:
          format: uuid
          type: string
        id:
          format: uuid
          type: string
        invoice_id:
          format: uuid
          type: string
        material_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 2048
          type: string
        parent_id:
          format: uuid
          type: string
        product_bundle_id:
          format: uuid
          type: string
        product_id:
          format: uuid
          type: string
        quantity:
          format: int32
          type: integer
        selling_price:
          format: float
          type: number
        type:
          enum:
            - normal
            - text
            - bundle
          type: string
        user_id:
          format: uuid
          type: string
      type: object
    InvoiceLineText:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        file_id:
          format: uuid
          type: string
        html:
          type: string
        id:
          format: uuid
          type: string
        invoice_line_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
      type: object
    InvoiceLineTextTemplate:
      properties:
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        html:
          type: string
        id:
          format: uuid
          type: string
        image:
          maxLength: 255
          type: string
        modified:
          $ref: "#/components/schemas/modified"
      type: object
    MassMessage:
      properties:
        company_id:
          format: uuid
          type: string
        content:
          maxLength: 8192
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
      type: object
    MassMessagesUser:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        is_read:
          type: boolean
        is_sent_email:
          type: boolean
        mass_message:
          $ref: "#/components/schemas/MassMessage"
        mass_message_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        user_id:
          format: uuid
          type: string
      type: object
    Material:
      properties:
        barcode:
          maxLength: 255
          type: string
        billing_cycle:
          maxLength: 255
          type: string
        centiga_id:
          maxLength: 255
          type: string
        company_id:
          format: uuid
          type: string
        cost_price:
          format: float
          type: number
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        is_single_usage:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        name:
          maxLength: 2048
          type: string
        pogo_id:
          maxLength: 255
          type: string
        selling_price:
          format: float
          type: number
        tripletex_id:
          maxLength: 255
          type: string
      type: object
    MaterialRental:
      properties:
        amount:
          format: float
          type: number
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        from_date:
          format: dateTime
          type: string
        id:
          format: uuid
          type: string
        is_invoiced:
          format: dateTime
          type: string
        material_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        project_id:
          format: uuid
          type: string
        quantity:
          format: float
          type: number
        to_date:
          format: dateTime
          type: string
      type: object
    Offer:
      properties:
        address:
          description: Street address
          maxLength: 255
          type: string
        all_lines_one_line:
          type: boolean
        all_products_one_line:
          type: boolean
        all_working_hours_one_line:
          type: boolean
        city_id:
          format: uuid
          type: string
        company_id:
          format: uuid
          type: string
        contact_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 255
          type: string
        discount_percent:
          format: int32
          maxLength: 2
          type: integer
        erp_payment_term_id:
          maxLength: 255
          type: string
        expiraton_date:
          format: datetime
          type: string
        id:
          format: uuid
          type: string
        issue_date:
          format: date
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        offer_number:
          format: int32
          maxLength: 8
          type: integer
        offer_status_id:
          format: uuid
          type: string
        payment_term_id:
          maxLength: 255
          type: string
        rejection_reason:
          maxLength: 255
          type: string
        sender_id:
          format: uuid
          type: string
        show_employee_name:
          type: boolean
        show_offer_lines:
          type: boolean
        show_payment_term:
          type: boolean
        show_prices:
          type: boolean
        show_product_images:
          type: boolean
        show_products_product_bundle:
          type: boolean
        slug:
          maxLength: 255
          type: string
        status:
          format: enum - draft - accepted - rejected
          type: string
        title:
          maxLength: 255
          type: string
        vat_percent:
          format: int32
          maxLength: 2
          type: integer
      type: object
    OfferLine:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        name:
          maxLength: 255
          type: string
        offer_id:
          format: uuid
          type: string
        product_bundle_id:
          format: uuid
          type: string
        quantity:
          format: int32
          type: integer
        sales_price:
          format: float
          type: number
      type: object
    OfferStatus:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        identifier:
          description: One of 6 values
          enum:
            - accepted
            - rejected
            - draft
            - sent
            - sent_and_seen
            - declined
          maxLength: 255
          type: string
        is_custom:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        name:
          maxLength: 255
          type: string
      type: object
    PaginationDetails:
      properties:
        count:
          type: integer
        current_page:
          type: string
        has_next_page:
          type: boolean
        has_prev_page:
          type: boolean
        limit:
          type: integer
        page_count:
          type: string
      type: object
    PaymentTerm:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        days_of_credit:
          format: int32
          maxLength: 11
          type: integer
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        payment_term_type_id:
          format: uuid
          type: string
      type: object
    PaymentTermType:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
      type: object
    PaymentTermsData:
      properties:
        daysOfCredit:
          type: integer
        id:
          type: string
        name:
          type: string
        pretty_string:
          type: string
        type:
          type: string
      type: object
    PlannedProduct:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        price:
          format: double
          type: number
        product_number:
          maxLength: 255
          type: string
        project_id:
          format: uuid
          type: string
        quantity:
          format: int32
          type: integer
        vendor_product_id:
          format: uuid
          type: string
      type: object
    Product:
      properties:
        average_cost_price:
          format: double
          type: number
        barcode:
          maxLength: 255
          type: string
        buying_price:
          format: double
          type: number
        centiga_id:
          maxLength: 255
          type: string
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        erp_id:
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        pogo_id:
          maxLength: 255
          type: string
        product_number:
          maxLength: 255
          type: string
        project_status_type_id:
          format: uuid
          type: string
        selling_price:
          format: double
          type: number
        tripletex_id:
          maxLength: 255
          type: string
      type: object
    ProductVariant:
      properties:
        name:
          maxLength: 255
          type: string
        price:
          format: double
          type: number
        product_number:
          maxLength: 255
          type: string
        variant_id:
          format: uuid
          type: string
        variant_type:
          enum:
            - expense_line
            - vendor_product
          type: string
      type: object
    Project:
      properties:
        city_id:
          format: uuid
          type: string
        company_id:
          format: uuid
          type: string
        contact_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        end_time:
          format: datetime
          type: string
        erp_project_id:
          maxLength: 255
          type: string
        erp_task_id:
          maxLength: 255
          type: string
        full_name:
          description: Project number + name
          maxLength: 255
          type: string
        has_final_invoice:
          description: Is there at least one final invoice
          type: boolean
        id:
          format: uuid
          type: string
        is_fixed_price:
          type: boolean
        is_offer:
          description: Is the project was offer
          format: boolean
          type: string
        is_rotten:
          description: Last form date - read-only
          format: datetime
          type: string
        latitude:
          maxLength: 255
          type: string
        longitude:
          maxLength: 255
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        not_invoiced_amount:
          format: float
          type: number
        offer_id:
          format: uuid
          type: string
        parent_id:
          format: uuid
          type: string
        pre_calculation_id:
          format: uuid
          type: string
        products_total_cost_price:
          format: float
          type: number
        project_image_url:
          type: string
        project_number:
          type: number
        project_status_id:
          format: uuid
          type: string
        shared_project_id:
          format: uuid
          type: string
        start_time:
          format: datetime
          type: string
        street_name:
          maxLength: 255
          type: string
        thumbnail:
          type: string
        total_sales_price:
          format: float
          type: number
        working_hours_total_cost_price:
          format: float
          type: number
      required:
        - id
        - name
      type: object
    ProjectCustomFieldAttribute:
      properties:
        access_type:
          maxLength: 255
          type: string
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        is_active:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        placement:
          maxLength: 11
          type: integer
      type: object
    ProjectCustomFieldValue:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        project_custom_field_attribute_id:
          format: uuid
          type: string
        project_id:
          format: uuid
          type: string
        value:
          maxLength: 255
          type: string
      type: object
    ProjectStatus:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        identifier:
          description: One of 3 values
          enum:
            - ready_for_billing
            - open
            - closed
          maxLength: 255
          type: string
        is_custom:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
      type: object
    ProjectStatusType:
      properties:
        _locale:
          example: en_US
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
      type: object
    Role:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
      type: object
    Sender:
      properties:
        city_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        cvr:
          maxLength: 255
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        email:
          format: email
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        language_id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        phone:
          description: Format like eg. `28680133` or `046158971404`
          maxLength: 32
          type: string
        phone_countrycode:
          description: Format like eg. `45` or `49`
          maxLength: 3
          type: string
        street_name:
          maxLength: 255
          type: string
        website:
          maxLength: 255
          type: string
      type: object
    SharedProjectContact:
      properties:
        contact_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        project_id:
          format: uuid
          type: string
        sent_email:
          type: boolean
        sent_sms:
          type: boolean
      type: object
    SharedProjectVendor:
      properties:
        created:
          $ref: "#/components/schemas/created"
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        project_id:
          format: uuid
          type: string
        sent_email:
          type: boolean
        sent_sms:
          type: boolean
        vendor_id:
          format: uuid
          type: string
      type: object
    StockLocation:
      properties:
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
      type: object
    SubscriptionSelfServiceRequestBody:
      properties:
        subscription_self_service_url:
          type: string
      title: SubscriptionSelfServiceRequestBody
      type: object
    TimeEntry:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        form_id:
          format: uuid
          type: string
        from_time:
          format: dateTime
          type: string
        id:
          format: uuid
          type: string
        is_all_day:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        project_id:
          format: uuid
          type: string
        sum:
          description: Amount of seconds
          format: int32
          type: integer
        time_entry_type_id:
          format: uuid
          type: string
        to_time:
          format: dateTime
          type: string
        user_id:
          format: uuid
          type: string
      type: object
    TimeEntryInterval:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        name:
          maxLength: 255
          type: string
      type: object
    TimeEntryRate:
      properties:
        amount:
          format: float
          type: number
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        currency_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        selling_amount:
          format: float
          type: number
        time_entry_type_id:
          format: uuid
          type: string
      type: object
    TimeEntryRuleGroup:
      properties:
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        name:
          maxLength: 255
          type: string
        salary_period_days:
          format: float
          type: number
        salary_period_from:
          format: dateTime
          type: string
      type: object
    TimeEntryType:
      properties:
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        name:
          maxLength: 255
          type: string
        time_entry_interval_id:
          format: uuid
          type: string
        time_entry_value_type_id:
          format: uuid
          type: string
      type: object
    TimeEntryUnitType:
      properties:
        abbreviation:
          maxLength: 255
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        name:
          maxLength: 255
          type: string
      type: object
    TimeEntryValueType:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 8192
          type: string
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        modified_by_id:
          format: uuid
          type: string
        name:
          maxLength: 255
          type: string
        time_entry_unit_type_id:
          format: uuid
          type: string
      type: object
    UnauthorizedError:
      properties:
        data:
          properties:
            code:
              default: 401
              description: The HTTP status code
              type: integer
            message:
              default: Unauthorized
              description: Error message
              type: string
            url:
              description: The url from which this originated
              type: string
          type: object
        success:
          default: false
          type: boolean
      type: object
    User:
      properties:
        api_key:
          format: uuid
          type: string
        city_id:
          format: uuid
          type: string
        company_id:
          format: uuid
          type: string
        cost_price:
          description: Cost of salaries
          format: float
          type: number
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        email:
          format: email
          maxLength: 255
          type: string
        expected_billable_hours:
          format: float
          type: number
        extra_price:
          description: Additional cost on this employee (pension, vacation etc.)
          format: float
          type: number
        first_name:
          maxLength: 255
          type: string
        full_name:
          description: READ-ONLY
          type: string
        hide_address:
          type: boolean
        hide_phone:
          type: boolean
        id:
          format: uuid
          type: string
        initials:
          maxLength: 3
          type: string
        is_active:
          type: boolean
        language_id:
          format: uuid
          type: string
        last_name:
          maxLength: 255
          type: string
        mobile:
          maxLength: 32
          type: string
        mobile_countrycode:
          maxLength: 8
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        password:
          format: password
          maxLength: 255
          type: string
        phone:
          maxLength: 32
          type: string
        phone_countrycode:
          maxLength: 8
          type: string
        receive_form_mails:
          description: If `true` the employee will receive an email receipt of every form submitted
          type: boolean
        sale_price:
          description: The price this employee costs per hour when working
          format: float
          type: number
        street_name:
          maxLength: 255
          type: string
        website:
          maxLength: 255
          type: string
      type: object
    UserCustomFieldAttribute:
      properties:
        access_type:
          maxLength: 255
          type: string
        company_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        is_active:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        placement:
          maxLength: 11
          type: integer
      type: object
    UserCustomFieldValue:
      properties:
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          description: Read-only
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        user_custom_field_attribute_id:
          format: uuid
          type: string
        user_id:
          format: uuid
          type: string
        value:
          maxLength: 255
          type: string
      type: object
    Vendor:
      properties:
        created:
          $ref: "#/components/schemas/created"
        cvr:
          maxLength: 12
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        email:
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        identifier:
          maxLength: 255
          type: string
        is_custom:
          type: boolean
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
      type: object
    VendorProduct:
      properties:
        barcode:
          maxLength: 255
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        description:
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        name:
          maxLength: 255
          type: string
        price:
          format: double
          type: number
        product_category_number:
          maxLength: 255
          type: string
        product_number:
          maxLength: 255
          type: string
        vendor_id:
          format: uuid
          type: string
      type: object
    VendorProductPriceFile:
      properties:
        companies_vendor_id:
          format: uuid
          type: string
        created:
          $ref: "#/components/schemas/created"
        created_by_id:
          format: uuid
          type: string
        deleted:
          $ref: "#/components/schemas/deleted"
        dir:
          type: string
        file:
          type: string
        finished:
          type: boolean
        id:
          format: uuid
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        original_file_name:
          type: string
        progress:
          type: integer
        size:
          type: integer
        status:
          enum:
            - awaiting
            - fresh
            - expired
            - failed
          type: string
        type:
          type: string
        vendor_products_count:
          type: integer
        vendor_products_count_total:
          type: integer
      type: object
    WallComment:
      properties:
        created:
          $ref: "#/components/schemas/created"
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        message:
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        user_id:
          maxLength: 255
          type: string
        wall_post_id:
          format: uuid
          type: string
      type: object
    WallPost:
      properties:
        created:
          $ref: "#/components/schemas/created"
        deleted:
          $ref: "#/components/schemas/deleted"
        id:
          format: uuid
          type: string
        message:
          type: string
        modified:
          $ref: "#/components/schemas/modified"
        project_id:
          format: uuid
          type: string
        user_id:
          format: uuid
          type: string
      type: object
    created:
      format: dateTime
      readOnly: true
      type: string
    deleted:
      description: Only present if it's a deleted object
      format: dateTime
      readOnly: true
      type: string
    modified:
      format: dateTime
      readOnly: true
      type: string
  securitySchemes:
    X-Auth-Token:
      in: header
      name: X-Auth-Token
      type: apiKey
    api_key:
      description: Uses the user's API token found from within the control panel in "settings" -> "additional settings"
      in: query
      name: api_token
      type: apiKey
