openapi: 3.1.0
info:
  title: Prana API
  description: API Definition to interact with Prana platform
  version: '1.0'
servers:
  - url: https://api.prana.software
tags:
  - name: Stock Regularization
    description: Manage your Stock Regularizations
  - name: Inventory
    description: Manage your Inventories
  - name: Warehouse
    description: Manage your Warehouses
  - name: Invoice
    description: Manage your Invoices
  - name: Vat
    description: Manage your vats
  - name: Bank
    description: Manage your Banks
  - name: Country
    description: Manage your countries
  - name: Quote
    description: Manage your Quotes
  - name: Stock Transfer
    description: Manage your Stock Transfers
  - name: Customer
    description: Manage your Customers
  - name: Warehouse Movement
    description: Manage your warehouse movements
  - name: Product
    description: Manage your Products
  - name: Entry
    description: Manage your entries
  - name: DeliveryNote
    description: Manage your DeliveryNotes
  - name: Warehouse Accumulate
    description: Manage your warehouse accumulates
  - name: Collection
    description: Manage your Collections
  - name: Rate
    description: Manage your rates
  - name: Supplier
    description: Manage your Suppliers
  - name: Sale Price
    description: Manage your Sale Prices
  - name: Purchase Invoice
    description: Manage your Purchase Invoices
  - name: State
    description: Manage your states
  - name: Payment Method
    description: Manage your Payment Methods
  - name: Currency
    description: Manage your Currencies
  - name: Recurring Billing Templates
    description: Manage your recurring billing templates
  - name: Option
    description: Manage your Options
  - name: Billing Series
    description: Manage your Billing Series
  - name: Service
    description: Manage your Services
  - name: Company
    description: Manage your Company
  - name: PurchaseDeliveryNote
    description: Manage your PurchaseDeliveryNotes
paths:
  /api/v1/warehouse/{id}:
    get:
      tags:
        - Warehouse
      summary: Get Warehouse
      description: Get a specific warehouse.
      operationId: getById
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiWarehouseReadDto'
    put:
      tags:
        - Warehouse
      summary: Update Warehouse
      description: Update a specific warehouse.
      operationId: update
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiWarehouseWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiWarehouseReadDto'
    delete:
      tags:
        - Warehouse
      summary: Delete Warehouse
      description: Delete specific warehouse.
      operationId: delete
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/vat-type/{id}:
    get:
      tags:
        - Vat
      summary: Get Vat/Surcharge
      description: Get a specific vat/surcharge.
      operationId: getById_1
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVatReadDto'
    put:
      tags:
        - Vat
      summary: Update Vat/Surcharge
      description: Update a specific vat/surcharge.
      operationId: update_1
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiVatWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVatReadDto'
    delete:
      tags:
        - Vat
      summary: Delete Vat/surcharge
      description: Delete specific vat/surcharge.
      operationId: delete_1
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/template-sale-invoice/{id}:
    get:
      tags:
        - Recurring Billing Templates
      summary: Get Recurring Billing Templates
      description: Get a specific periodic recurring billing template.
      operationId: getById_2
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTemplateSaleInvoiceReadDto'
    put:
      tags:
        - Recurring Billing Templates
      summary: Update Recurring Billing Template
      description: Update a specific recurring billing template.
      operationId: update_2
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiTemplateSaleInvoiceWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTemplateSaleInvoiceReadDto'
    delete:
      tags:
        - Recurring Billing Templates
      summary: Delete Recurring Billing Template
      description: Delete specific recurring billing template.
      operationId: delete_2
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/supplier/{id}:
    get:
      tags:
        - Supplier
      summary: Get Supplier
      description: Get a specific supplier.
      operationId: getById_3
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSupplierReadDto'
    put:
      tags:
        - Supplier
      summary: Update Supplier
      description: Update a specific supplier.
      operationId: update_3
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSupplierWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSupplierReadDto'
    delete:
      tags:
        - Supplier
      summary: Delete Supplier
      description: Delete specific supplier.
      operationId: delete_3
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/state/{id}:
    get:
      tags:
        - State
      summary: Get State
      description: Get a specific state.
      operationId: getById_4
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiStateReadDto'
    put:
      tags:
        - State
      summary: Update State
      description: Update a specific state.
      operationId: update_4
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiStateWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiStateReadDto'
    delete:
      tags:
        - State
      summary: Delete State
      description: Delete specific state.
      operationId: delete_4
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/service/{id}:
    get:
      tags:
        - Service
      summary: Get Service
      description: Get a specific service.
      operationId: getById_5
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiArticleReadDto'
    put:
      tags:
        - Service
      summary: Update Service
      description: Update a specific service.
      operationId: update_5
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiArticleWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiArticleReadDto'
    delete:
      tags:
        - Service
      summary: Delete Service
      description: Delete specific service.
      operationId: delete_5
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/rate/{id}:
    get:
      tags:
        - Rate
      summary: Get Rate
      description: Get a specific rate.
      operationId: getById_6
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiRateReadDto'
    put:
      tags:
        - Rate
      summary: Update Rate
      description: Update a specific rate.
      operationId: update_6
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiRateWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiRateReadDto'
    delete:
      tags:
        - Rate
      summary: Delete Rate
      description: Delete specific rate.
      operationId: delete_6
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/quote/{id}:
    get:
      tags:
        - Quote
      summary: Get Quote
      description: Get a specific quote.
      operationId: getById_7
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiQuoteReadDto'
    put:
      tags:
        - Quote
      summary: Update Quote
      description: Update a specific quote.
      operationId: update_7
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiQuoteWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiQuoteReadDto'
    delete:
      tags:
        - Quote
      summary: Delete Quote
      description: Delete specific quote.
      operationId: delete_7
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/purchaseDeliveryNote/{id}:
    get:
      tags:
        - PurchaseDeliveryNote
      summary: Get PurchaseDeliveryNote
      description: Get a specific purchaseDeliveryNote.
      operationId: getById_8
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPurchaseDeliveryNoteReadDto'
    put:
      tags:
        - PurchaseDeliveryNote
      summary: Update PurchaseDeliveryNote
      description: Update a specific purchaseDeliveryNote.
      operationId: update_8
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPurchaseDeliveryNoteWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPurchaseDeliveryNoteReadDto'
    delete:
      tags:
        - PurchaseDeliveryNote
      summary: Delete PurchaseDeliveryNote
      description: Delete specific purchaseDeliveryNote.
      operationId: delete_8
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/purchase-invoice/{id}:
    get:
      tags:
        - Purchase Invoice
      summary: Get Invoice
      description: Get a specific purchase invoice.
      operationId: getById_9
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPurchaseInvoiceReadDto'
    put:
      tags:
        - Purchase Invoice
      summary: Update Invoice
      description: Update a specific purchase invoice.
      operationId: update_9
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPurchaseInvoiceWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPurchaseInvoiceReadDto'
    delete:
      tags:
        - Purchase Invoice
      summary: Delete Invoice
      description: Delete specific purchase invoice.
      operationId: delete_9
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/payment/method/{id}:
    get:
      tags:
        - Payment Method
      summary: Get Payment Method
      description: Get a specific payment method.
      operationId: getById_10
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPaymentMethodReadDto'
    put:
      tags:
        - Payment Method
      summary: Update Payment Method
      description: Update a specific payment method.
      operationId: update_10
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPaymentMethodWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPaymentMethodReadDto'
    delete:
      tags:
        - Payment Method
      summary: Delete Payment Method
      description: Delete specific payment method.
      operationId: delete_10
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/invoice/{id}:
    get:
      tags:
        - Invoice
      summary: Get Invoice
      description: Get a specific invoice.
      operationId: getById_11
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiInvoiceReadDto'
    put:
      tags:
        - Invoice
      summary: Update Invoice
      description: Update a specific invoice.
      operationId: update_11
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiInvoiceWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiInvoiceReadDto'
    delete:
      tags:
        - Invoice
      summary: Delete Invoice
      description: Delete specific invoice.
      operationId: delete_11
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/entry/{id}:
    get:
      tags:
        - Entry
      summary: Get Entry
      description: Get a specific entry.
      operationId: getById_12
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiEntryReadDto'
    put:
      tags:
        - Entry
      summary: Update Entry
      description: Update a specific Entry.
      operationId: update_12
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiEntryWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiEntryReadDto'
    delete:
      tags:
        - Entry
      summary: Delete Entry
      description: Delete specific entry.
      operationId: delete_12
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/deliveryNote/{id}:
    get:
      tags:
        - DeliveryNote
      summary: Get DeliveryNote
      description: Get a specific deliveryNote.
      operationId: getById_13
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDeliveryNoteReadDto'
    put:
      tags:
        - DeliveryNote
      summary: Update DeliveryNote
      description: Update a specific deliveryNote.
      operationId: update_13
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiDeliveryNoteWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDeliveryNoteReadDto'
    delete:
      tags:
        - DeliveryNote
      summary: Delete DeliveryNote
      description: Delete specific deliveryNote.
      operationId: delete_13
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/customer/{id}:
    get:
      tags:
        - Customer
      summary: Get Customer
      description: Get a specific customer.
      operationId: getById_14
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCustomerReadDto'
    put:
      tags:
        - Customer
      summary: Update Customer
      description: Update a specific customer.
      operationId: update_14
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCustomerWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCustomerReadDto'
    delete:
      tags:
        - Customer
      summary: Delete Customer
      description: Delete specific customer.
      operationId: delete_14
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/currency/{id}:
    get:
      tags:
        - Currency
      summary: Get Currency
      description: Get a specific currency.
      operationId: getById_15
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCurrencyReadDto'
    put:
      tags:
        - Currency
      summary: Update Currency
      description: Update a specific currency.
      operationId: update_15
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCurrencyWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCurrencyReadDto'
    delete:
      tags:
        - Currency
      summary: Delete Currency
      description: Delete specific currency.
      operationId: delete_15
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/country/{id}:
    get:
      tags:
        - Country
      summary: Get Country
      description: Get a specific country.
      operationId: getById_16
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCountryReadDto'
    put:
      tags:
        - Country
      summary: Update Country
      description: Update a specific country.
      operationId: update_16
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCountryWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCountryReadDto'
    delete:
      tags:
        - Country
      summary: Delete Country
      description: Delete specific country.
      operationId: delete_16
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/collection/{id}:
    get:
      tags:
        - Collection
      summary: Get Collection
      description: Get a specific collection.
      operationId: getById_17
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiReceiptCollectionReadDto'
    put:
      tags:
        - Collection
      summary: Update Collection
      description: Update a specific collection.
      operationId: update_17
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiReceiptCollectionWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiReceiptCollectionReadDto'
    delete:
      tags:
        - Collection
      summary: Delete Collection
      description: Delete specific collection.
      operationId: delete_17
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/billing-series/{id}:
    get:
      tags:
        - Billing Series
      summary: Get Billing Series
      description: Get a specific billing series.
      operationId: getById_18
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBillingSeriesReadDto'
    put:
      tags:
        - Billing Series
      summary: Update Billing Series
      description: Update a specific billing series.
      operationId: update_18
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiBillingSeriesWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBillingSeriesReadDto'
    delete:
      tags:
        - Billing Series
      summary: Delete Billing Series
      description: Delete specific billing series.
      operationId: delete_18
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/bank/{id}:
    get:
      tags:
        - Bank
      summary: Get Bank
      description: Get a specific bank.
      operationId: getById_19
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBankReadDto'
    put:
      tags:
        - Bank
      summary: Update Bank
      description: Update a specific bank.
      operationId: update_19
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiBankWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBankReadDto'
    delete:
      tags:
        - Bank
      summary: Delete Bank
      description: Delete specific bank.
      operationId: delete_19
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/article/{id}:
    get:
      tags:
        - Product
      summary: Get Product
      description: Get a specific product.
      operationId: getById_20
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiArticleReadDto'
    put:
      tags:
        - Product
      summary: Update Product
      description: Update a specific product.
      operationId: update_20
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiArticleWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiArticleReadDto'
    delete:
      tags:
        - Product
      summary: Delete Product
      description: Delete specific product.
      operationId: delete_20
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
  /api/v1/warehouse:
    post:
      tags:
        - Warehouse
      summary: Create Warehouse
      description: Create a new warehouse.
      operationId: create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiWarehouseWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiWarehouseReadDto'
  /api/v1/warehouse/search:
    post:
      tags:
        - Warehouse
      summary: List Warehouses
      description: Get all your warehouses.
      operationId: getAll
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiWarehouseListReadDto'
  /api/v1/warehouse/movement/search:
    post:
      tags:
        - Warehouse Movement
      summary: List warehouse movements
      description: Get all your warehouse movements.
      operationId: getAll_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiWarehouseMovementListReadDto'
  /api/v1/warehouse/accumulate/search:
    post:
      tags:
        - Warehouse Accumulate
      summary: List warehouse accumulates
      description: Get all your warehouse accumulates.
      operationId: getAll_2
      parameters:
        - name: articleId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ApiPageDtoApiWarehouseAccumulateListReadDto
  /api/v1/vat-type:
    post:
      tags:
        - Vat
      summary: Create Vat/Surcharge
      description: Create a new vat/surcharge.
      operationId: create_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiVatWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVatReadDto'
  /api/v1/vat-type/search:
    post:
      tags:
        - Vat
      summary: List Vats/Surcharges
      description: Get all your vats/surcharges.
      operationId: getAll_3
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiVatListReadDto'
  /api/v1/template-sale-invoice:
    post:
      tags:
        - Recurring Billing Templates
      summary: Create Recurring Billing Template
      description: Create a new recurring billing template.
      operationId: create_2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiTemplateSaleInvoiceWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTemplateSaleInvoiceReadDto'
  /api/v1/template-sale-invoice/search:
    post:
      tags:
        - Recurring Billing Templates
      summary: List Recurring Billing Templates
      description: Get all your recurring billing templates.
      operationId: getAll_4
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ApiPageDtoApiTemplateSaleInvoiceListReadDto
  /api/v1/supplier:
    post:
      tags:
        - Supplier
      summary: Create Supplier
      description: Create a new supplier.
      operationId: create_3
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSupplierWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSupplierReadDto'
  /api/v1/supplier/search:
    post:
      tags:
        - Supplier
      summary: List Suppliers
      description: Get all your suppliers.
      operationId: getAll_5
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiSupplierListReadDto'
  /api/v1/stock-transfer:
    post:
      tags:
        - Stock Transfer
      summary: Create Stock Transfer
      description: Create a new stock Transfer.
      operationId: create_4
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiStockTransferWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiStockTransferReadDto'
  /api/v1/stock-transfer/search:
    post:
      tags:
        - Stock Transfer
      summary: List stock transfers
      description: Get all your stock transfers.
      operationId: getAll_6
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiStockTransferListReadDto'
  /api/v1/stock-regularization:
    post:
      tags:
        - Stock Regularization
      summary: Create Stock Regularization
      description: Create a new stock regularization.
      operationId: create_5
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiStockRegularizationWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiStockRegularizationReadDto'
  /api/v1/stock-regularization/search:
    post:
      tags:
        - Stock Regularization
      summary: List stock regularizations
      description: Get all your stock regularizations.
      operationId: getAll_7
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ApiPageDtoApiStockRegularizationListReadDto
  /api/v1/state:
    post:
      tags:
        - State
      summary: Create State
      description: Create a new state.
      operationId: create_6
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiStateWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiStateReadDto'
  /api/v1/state/search:
    post:
      tags:
        - State
      summary: List States
      description: Get all your states.
      operationId: getAll_8
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiStateListReadDto'
  /api/v1/service:
    post:
      tags:
        - Service
      summary: Create Service
      description: Create a new service.
      operationId: create_7
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiArticleWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiArticleReadDto'
  /api/v1/service/search:
    post:
      tags:
        - Service
      summary: List Services
      description: Get all your services.
      operationId: getAll_9
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiArticleListReadDto'
  /api/v1/rate:
    post:
      tags:
        - Rate
      summary: Create Rate
      description: Create a new rate.
      operationId: create_8
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiRateWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiRateReadDto'
  /api/v1/rate/search:
    post:
      tags:
        - Rate
      summary: List rates
      description: Get all your rates.
      operationId: getAll_10
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiRateListReadDto'
  /api/v1/quote:
    post:
      tags:
        - Quote
      summary: Create Quote
      description: Create a new quote.
      operationId: create_9
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiQuoteWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiQuoteReadDto'
  /api/v1/quote/search:
    post:
      tags:
        - Quote
      summary: List Quotes
      description: Get all your quotes.
      operationId: getAll_11
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiQuoteListReadDto'
  /api/v1/purchaseDeliveryNote:
    post:
      tags:
        - PurchaseDeliveryNote
      summary: Create PurchaseDeliveryNote
      description: Create a new purchaseDeliveryNote.
      operationId: create_10
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPurchaseDeliveryNoteWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPurchaseDeliveryNoteReadDto'
  /api/v1/purchaseDeliveryNote/search:
    post:
      tags:
        - PurchaseDeliveryNote
      summary: List PurchaseDeliveryNotes
      description: Get all your purchaseDeliveryNotes.
      operationId: getAll_12
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ApiPageDtoApiPurchaseDeliveryNoteListReadDto
  /api/v1/purchase-invoice:
    post:
      tags:
        - Purchase Invoice
      summary: Create Invoice
      description: Create a new purchase invoice.
      operationId: create_11
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPurchaseInvoiceWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPurchaseInvoiceReadDto'
  /api/v1/purchase-invoice/search:
    post:
      tags:
        - Purchase Invoice
      summary: List Invoices
      description: Get all your purchase invoices.
      operationId: getAll_13
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiPurchaseInvoiceListReadDto'
  /api/v1/payment/method:
    post:
      tags:
        - Payment Method
      summary: Create Payment Method
      description: Create a new payment method.
      operationId: create_12
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPaymentMethodWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPaymentMethodReadDto'
  /api/v1/payment/method/search:
    post:
      tags:
        - Payment Method
      summary: List Payment Methods
      description: Get all your payment methods.
      operationId: getAll_14
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiPaymentMethodListReadDto'
  /api/v1/item-sale-rate/search:
    post:
      tags:
        - Sale Price
      summary: List Sale Prices
      description: Get all your sale prices.
      operationId: getAll_15
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiItemSaleRateListReadDto'
  /api/v1/invoice:
    post:
      tags:
        - Invoice
      summary: Create Invoice
      description: Create a new invoice.
      operationId: create_13
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiInvoiceWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiInvoiceReadDto'
  /api/v1/invoice/send:
    post:
      tags:
        - Invoice
      summary: Send Invoice
      description: Send a list of invoices.
      operationId: send
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSendRequestDto'
        required: true
      responses:
        '200':
          description: OK
  /api/v1/invoice/search:
    post:
      tags:
        - Invoice
      summary: List Invoices
      description: Get all your invoices.
      operationId: getAll_16
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiInvoiceListReadDto'
  /api/v1/inventory:
    post:
      tags:
        - Inventory
      summary: Create Inventory
      description: Create a new inventory.
      operationId: create_14
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiInventoryWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiInventoryReadDto'
  /api/v1/inventory/search:
    post:
      tags:
        - Inventory
      summary: List Inventories
      description: Get all your inventories.
      operationId: getAll_17
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiInventoryListReadDto'
  /api/v1/entry:
    post:
      tags:
        - Entry
      summary: Create Entry
      description: Create a new entry.
      operationId: create_15
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiEntryWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiEntryReadDto'
  /api/v1/entry/search:
    post:
      tags:
        - Entry
      summary: List Entries
      description: Get all your entries.
      operationId: getAll_18
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiEntryListReadDto'
  /api/v1/deliveryNote:
    post:
      tags:
        - DeliveryNote
      summary: Create DeliveryNote
      description: Create a new deliveryNote.
      operationId: create_16
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiDeliveryNoteWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDeliveryNoteReadDto'
  /api/v1/deliveryNote/search:
    post:
      tags:
        - DeliveryNote
      summary: List DeliveryNotes
      description: Get all your deliveryNotes.
      operationId: getAll_19
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiDeliveryNoteListReadDto'
  /api/v1/customer:
    post:
      tags:
        - Customer
      summary: Create Customer
      description: Create a new customer.
      operationId: create_17
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCustomerWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCustomerReadDto'
  /api/v1/customer/search:
    post:
      tags:
        - Customer
      summary: List Customers
      description: Get all your customers.
      operationId: getAll_20
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiCustomerListReadDto'
  /api/v1/currency:
    post:
      tags:
        - Currency
      summary: Create Currency
      description: Create a new currency.
      operationId: create_18
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCurrencyWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCurrencyReadDto'
  /api/v1/currency/search:
    post:
      tags:
        - Currency
      summary: List Currencies
      description: Get all your currencies.
      operationId: getAll_21
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiCurrencyListReadDto'
  /api/v1/country:
    post:
      tags:
        - Country
      summary: Create Country
      description: Create a new country.
      operationId: create_19
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCountryWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCountryReadDto'
  /api/v1/country/search:
    post:
      tags:
        - Country
      summary: List Countries
      description: Get all your countries.
      operationId: getAll_22
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiCountryListReadDto'
  /api/v1/collection:
    post:
      tags:
        - Collection
      summary: Create Collection
      description: Create a new collection.
      operationId: create_20
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiReceiptCollectionWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiReceiptCollectionReadDto'
  /api/v1/collection/search:
    post:
      tags:
        - Collection
      summary: List Collections
      description: Get all your collections.
      operationId: getAll_23
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiReceiptCollectionListReadDto'
  /api/v1/billing-series:
    post:
      tags:
        - Billing Series
      summary: Create Billing Series
      description: Create a new billing series.
      operationId: create_21
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiBillingSeriesWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBillingSeriesReadDto'
  /api/v1/billing-series/search:
    post:
      tags:
        - Billing Series
      summary: List Billing Series
      description: Get all your billing series.
      operationId: getAll_24
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiBillingSeriesListReadDto'
  /api/v1/bank:
    post:
      tags:
        - Bank
      summary: Create Bank
      description: Create a new bank.
      operationId: create_22
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiBankWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBankReadDto'
  /api/v1/bank/search:
    post:
      tags:
        - Bank
      summary: List Banks
      description: Get all your banks.
      operationId: getAll_25
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiBankListReadDto'
  /api/v1/article:
    post:
      tags:
        - Product
      summary: Create Product
      description: Create a new product.
      operationId: create_23
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiArticleWriteDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiArticleReadDto'
  /api/v1/article/search:
    post:
      tags:
        - Product
      summary: List Products
      description: Get all your products.
      operationId: getAll_26
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiArticleListReadDto'
  /api/v1/article/search/preview:
    post:
      tags:
        - Product
      summary: List Products with aditional info
      description: Get all your products with aditional info.
      operationId: getAllPreview
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSearchCriteriaDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPageDtoApiArticlePreviewReadDto'
  /api/v1/stock-transfer/{id}:
    get:
      tags:
        - Stock Transfer
      summary: Get Stock Transfer
      description: Get a specific stock transfers.
      operationId: getById_21
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiStockTransferReadDto'
  /api/v1/stock-regularization/{id}:
    get:
      tags:
        - Stock Regularization
      summary: Get Stock Regularization
      description: Get a specific stock regularizations.
      operationId: getById_22
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiStockRegularizationReadDto'
  /api/v1/option:
    get:
      tags:
        - Option
      summary: List Options
      description: Get all your options.
      operationId: getAllCompanyOptions
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiOptionWithValueDto'
  /api/v1/option/{optionName}:
    get:
      tags:
        - Option
      summary: Get Option
      description: Get a specific option.
      operationId: getOptionFromOptionName
      parameters:
        - name: optionName
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiOptionDto'
  /api/v1/inventory/{id}:
    get:
      tags:
        - Inventory
      summary: Get Inventory
      description: Get a specific inventories.
      operationId: getById_23
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiInventoryReadDto'
  /api/v1/company:
    get:
      tags:
        - Company
      summary: Get Company
      description: Get a specific company.
      operationId: getCompanyInfo
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCompanyReadDto'
components:
  schemas:
    ApiWarehouseWriteDto:
      type: object
      properties:
        code:
          type: string
          description: Warehouse code (unique).
          example: ALM01
          maxLength: 10
          minLength: 0
        nationalIdentityCard:
          type: string
          description: National Identity Card associated to the warehouse.
          example: 12345678A
          maxLength: 20
          minLength: 0
        description:
          type: string
          maxLength: 100
          minLength: 0
        address:
          type: string
          maxLength: 100
          minLength: 0
        postalCode:
          type: string
          maxLength: 10
          minLength: 0
        population:
          type: string
          maxLength: 100
          minLength: 0
        country:
          type: integer
          format: int32
        state:
          type: integer
          format: int32
        phone1:
          type: string
          maxLength: 20
          minLength: 0
        phone2:
          type: string
          maxLength: 20
          minLength: 0
        email:
          type: string
          maxLength: 250
          minLength: 0
        byDefault:
          type: boolean
      required:
        - code
        - description
    ApiAlpha2CountryCodeEnum:
      type: string
      description: Defines the ISO Alpha-2 country codes.
      enum:
        - AD
        - AE
        - AF
        - AG
        - AI
        - AL
        - AM
        - AO
        - AQ
        - AR
        - AS
        - AT
        - AU
        - AW
        - AX
        - AZ
        - BA
        - BB
        - BD
        - BE
        - BF
        - BG
        - BH
        - BI
        - BJ
        - BL
        - BM
        - BN
        - BO
        - BQ
        - BR
        - BS
        - BT
        - BV
        - BW
        - BY
        - BZ
        - CA
        - CC
        - CD
        - CF
        - CG
        - CH
        - CI
        - CK
        - CL
        - CM
        - CN
        - CO
        - CR
        - CU
        - CV
        - CW
        - CX
        - CY
        - CZ
        - DE
        - DJ
        - DK
        - DM
        - DO
        - DZ
        - EC
        - EE
        - EG
        - EH
        - ER
        - ES
        - ET
        - FI
        - FJ
        - FK
        - FM
        - FO
        - FR
        - GA
        - GB
        - GD
        - GE
        - GF
        - GG
        - GH
        - GI
        - GL
        - GM
        - GN
        - GP
        - GQ
        - GR
        - GS
        - GT
        - GU
        - GW
        - GY
        - HK
        - HM
        - HN
        - HR
        - HT
        - HU
        - ID
        - IE
        - IL
        - IM
        - IN
        - IO
        - IQ
        - IR
        - IS
        - IT
        - JE
        - JM
        - JO
        - JP
        - KE
        - KG
        - KH
        - KI
        - KM
        - KN
        - KP
        - KR
        - KW
        - KY
        - KZ
        - LA
        - LB
        - LC
        - LI
        - LK
        - LR
        - LS
        - LT
        - LU
        - LV
        - LY
        - MA
        - MC
        - MD
        - ME
        - MF
        - MG
        - MH
        - MK
        - ML
        - MM
        - MN
        - MO
        - MP
        - MQ
        - MR
        - MS
        - MT
        - MU
        - MV
        - MW
        - MX
        - MY
        - MZ
        - NA
        - NC
        - NE
        - NF
        - NG
        - NI
        - NL
        - 'NO'
        - NP
        - NR
        - NU
        - NZ
        - OM
        - PA
        - PE
        - PF
        - PG
        - PH
        - PK
        - PL
        - PM
        - PN
        - PR
        - PS
        - PT
        - PW
        - PY
        - QA
        - RE
        - RO
        - RS
        - RU
        - RW
        - SA
        - SB
        - SC
        - SD
        - SE
        - SG
        - SH
        - SI
        - SJ
        - SK
        - SL
        - SM
        - SN
        - SO
        - SR
        - SS
        - ST
        - SV
        - SX
        - SY
        - SZ
        - TC
        - TD
        - TF
        - TG
        - TH
        - TJ
        - TK
        - TL
        - TM
        - TN
        - TO
        - TR
        - TT
        - TV
        - TW
        - TZ
        - UA
        - UG
        - UM
        - US
        - UY
        - UZ
        - VA
        - VC
        - VE
        - VG
        - VI
        - VN
        - VU
        - WF
        - WS
        - YE
        - YT
        - ZA
        - ZM
        - ZW
      example: US
    ApiCountryListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Country code (usually ISO numeric or similar).
          example: 724
        description:
          type: string
          description: Country description or name.
          example: Spain
        isoCode:
          $ref: '#/components/schemas/ApiAlpha2CountryCodeEnum'
          description: ISO Alpha-2 code for the country.
          example: ES
        customerVatType:
          type: string
          description: Type of VAT scheme for customers in this country.
          example: GENERAL
        geographicalLocation:
          $ref: '#/components/schemas/ApiGeographicalLocationEnum'
          description: >-
            Geographical location of the country. See ApiGeographicalLocation
            enum for values.
          example: EUROPE
      required:
        - code
        - description
        - geographicalLocation
        - id
    ApiGeographicalLocationEnum:
      type: string
      description: Defines the geographical locations.
      enum:
        - CEUTA_MELILLA_CANARIAS
        - COMMUNITY
        - NATIONAL
        - OTHERS
      example: NATIONAL
    ApiStateListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
        description:
          type: string
        country:
          $ref: '#/components/schemas/ApiCountryListReadDto'
        isoCode:
          type: string
      required:
        - code
        - id
    ApiWarehouseReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Warehouse code (unique per warehouse).
          example: ALM01
        nationalIdentityCard:
          type: string
          description: National Identity Card associated to the warehouse.
          example: 12345678A
        description:
          type: string
          description: Warehouse description.
          example: Central warehouse
        address:
          type: string
          description: Street address of the warehouse.
          example: Av. de la Industria, 23
        postalCode:
          type: string
          description: Postal code.
          example: '03001'
        population:
          type: string
          description: Population or locality (city/town) of the warehouse.
          example: Alicante
        country:
          $ref: '#/components/schemas/ApiCountryListReadDto'
          description: Country information. See ApiCountryListReadDto.java for structure.
        state:
          $ref: '#/components/schemas/ApiStateListReadDto'
          description: State information. See ApiStateListReadDto.java for structure.
        phone1:
          type: string
          description: First contact phone number.
          example: '+34965123456'
        phone2:
          type: string
          description: Second contact phone number.
          example: '+34965111111'
        email:
          type: string
          description: Contact email address for the warehouse.
          example: warehouse@company.com
        byDefault:
          type: boolean
          description: True if this is the default warehouse.
          example: true
      required:
        - code
        - description
        - id
    ApiArticleVatTypeEnum:
      type: string
      description: Defines the VAT types applicable to articles.
      enum:
        - SUPER_REDUCED
        - REDUCED
        - GENERAL
        - EXEMPT
      example: STANDARD
    ApiVatWriteDto:
      type: object
      description: >-
        Data for creating or updating VAT type configurations with customer and
        article VAT information
      properties:
        customerVatType:
          type: integer
          format: int32
          description: Customer VAT type identifier
          example: 1
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: Article VAT type classification
          example: GENERAL
        vatPercentage:
          type: number
          description: VAT percentage to be applied
          example: 21
        rePercentage:
          type: number
          description: Surcharge (Recargo de Equivalencia) percentage
          example: 5.2
        sellVatAccount:
          type: integer
          format: int32
          description: VAT account identifier for sales operations
          example: 4770000
        sellRechargeAccount:
          type: integer
          format: int32
          description: Surcharge account identifier for sales operations
          example: 4771000
        buyVatAccount:
          type: integer
          format: int32
          description: VAT account identifier for purchase operations
          example: 4720000
        buyRechargeAccount:
          type: integer
          format: int32
          description: Surcharge account identifier for purchase operations
          example: 4721000
      required:
        - articleVatType
        - customerVatType
    ApiArticleVatTypeListReadDto:
      type: object
      description: Article VAT type information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the VAT type
          example: 1
        code:
          type: string
          description: Code for the VAT type
          example: GENERAL
        description:
          type: string
          description: Description of the VAT type
          example: General VAT type
    ApiChartAccountListReadDto:
      type: object
      description: Surcharge account information for purchase operations
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Code of the chart account
          example: 1000
        description:
          type: string
          description: Description of the chart account
          example: Cash account
        cif:
          type: string
          description: Tax identification number
          example: B12345678
        active:
          type: boolean
          description: Indicates if the account is active
          example: true
        color:
          type: string
          description: Color code for visual representation
          example: '#FF5733'
        parentCode:
          type: string
          description: Code of the parent account
          example: 100
        parentDescription:
          type: string
          description: Description of the parent account
          example: Assets
      required:
        - id
    ApiCustomerVatTypeListReadDto:
      type: object
      description: Customer VAT type information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: 'VAT type code. Example: GENERAL, REDUCED, EXEMPT, etc.'
          example: GENERAL
        description:
          type: string
          description: Description of the VAT type.
          example: General VAT type
      required:
        - code
        - id
    ApiVatReadDto:
      type: object
      description: >-
        VAT type configuration information with customer and article VAT details
        and associated accounts
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        customerVatType:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
          description: Customer VAT type information
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeListReadDto'
          description: Article VAT type information
        vatPercentage:
          type: number
          description: VAT percentage applied
          example: 21
        rePercentage:
          type: number
          description: Surcharge (Recargo de Equivalencia) percentage
          example: 5.2
        sellVatAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: VAT account information for sales operations
        sellRechargeAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Surcharge account information for sales operations
        buyVatAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: VAT account information for purchase operations
        buyRechargeAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Surcharge account information for purchase operations
      required:
        - articleVatType
        - customerVatType
        - id
    ApiCommissionTypeEnum:
      type: string
      description: Defines the types of commission calculations.
      enum:
        - PERCENTAGE
        - AMOUNT_PER_UNIT
        - FIXED
      example: PERCENTAGE
    ApiPeriodicInvoiceEnum:
      type: string
      enum:
        - DAILY
        - WEEKLY
        - BIWEEKLY
        - MONTHLY
        - BIMONTHLY
        - QUARTERLY
        - SEMIANNUAL
        - ANNUAL
    ApiProximityTypeEnum:
      type: string
      description: Defines the proximity types.
      enum:
        - NEARBY
        - PREVIOUS
        - LATER
      example: NEARBY
    ApiTemplateSaleInvoiceLineDetailWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier for this line detail.
          example: 200
        sizeRangeDetail:
          type: integer
          format: int32
          description: Identifier for the size range detail.
          example: 15
        width:
          type: integer
          format: int32
          description: Width identifier.
          example: 12
        quantityPerPackage:
          type: number
          description: Quantity per package for this detail.
          example: 9.3
    ApiTemplateSaleInvoiceLineWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the line.
          example: 1001
        articleCombination:
          type: integer
          format: int32
          description: Identifier of the related article combination.
          example: 200
        sizeRange:
          type: integer
          format: int32
          description: Identifier of the size range associated with the article.
          example: 15
        assortment:
          type: integer
          format: int32
          description: Identifier of the assortment to which the article belongs.
          example: 8
        lineNumber:
          type: integer
          format: int32
          description: Sequential number of the line within the document.
          example: 1
        articleDescription:
          type: string
          description: Description of the article in the line.
          example: Cotton T-shirt - Blue
        packages:
          type: integer
          format: int32
          description: Number of packages for this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity of items per package.
          example: 12
        price:
          type: number
          description: Unit price of the article.
          example: 19.99
        lineObservations:
          type: string
          description: Additional observations or comments about this line.
          example: Special discount applied.
        details:
          type: array
          description: >-
            List of line detail objects. See ApiBaseLineDetailWriteDto for
            details.
          items:
            $ref: '#/components/schemas/ApiTemplateSaleInvoiceLineDetailWriteDto'
        concept:
          type: string
        assortedPackages:
          type: boolean
        packaging:
          type: integer
          format: int32
        discount:
          type: number
        rsp:
          type: number
        reference:
          type: string
          maxLength: 50
          minLength: 0
        serviceDate:
          type: string
          format: date
        noAccumulateWarehouse:
          type: boolean
        warehouse:
          type: integer
          format: int32
        brand:
          type: integer
          format: int32
        customCommission:
          type: boolean
        representative1:
          type: integer
          format: int32
        commissionType1:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
        commission1:
          type: number
        representative2:
          type: integer
          format: int32
        commissionType2:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
        commission2:
          type: number
        representative3:
          type: integer
          format: int32
        commissionType3:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
        commission3:
          type: number
        freeDescription1:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription2:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription3:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription4:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription5:
          type: string
          maxLength: 50
          minLength: 0
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
        vatPercentage:
          type: number
        surchargePercentage:
          type: number
        disbursement:
          type: boolean
    ApiTemplateSaleInvoiceStatusEnum:
      type: string
      enum:
        - PENDING
        - CURRENT
    ApiTemplateSaleInvoiceWriteDto:
      type: object
      properties:
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1050
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2025-08-07'
        quantityTotal:
          type: number
          description: Total quantity of all document lines.
          example: 120.5
        observations:
          type: string
          description: Free text for header observations.
          example: Deliver to warehouse B
        lines:
          type: array
          description: List of document lines. For structure, see ApiBaseLineWriteDto.java
          items:
            $ref: '#/components/schemas/ApiTemplateSaleInvoiceLineWriteDto'
        id:
          type: integer
          format: int32
        customerVatType:
          type: integer
          format: int32
        billingSeries:
          type: integer
          format: int32
        shippingTerm:
          type: integer
          format: int32
        shippingAmount:
          type: number
        shippingVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
        shippingVatPercentage:
          type: number
        shippingSurchargePercentage:
          type: number
        currency:
          type: integer
          format: int32
        change:
          type: number
        rateCode:
          type: integer
          format: int32
        customerAddress:
          type: integer
          format: int32
        status:
          $ref: '#/components/schemas/ApiTemplateSaleInvoiceStatusEnum'
        validityDate:
          type: string
          format: date
        serviceDate:
          type: string
          format: date
        manufacturingDate:
          type: string
          format: date
        valueDate:
          type: string
          format: date
        season:
          type: integer
          format: int32
        warehouse:
          type: integer
          format: int32
        representative1:
          type: integer
          format: int32
        commissionType1:
          type: string
          maxLength: 20
          minLength: 0
        commission1:
          type: number
        representative2:
          type: integer
          format: int32
        commissionType2:
          type: string
          maxLength: 20
          minLength: 0
        commission2:
          type: number
        representative3:
          type: integer
          format: int32
        commissionType3:
          type: string
          maxLength: 20
          minLength: 0
        commission3:
          type: number
        reference:
          type: string
          maxLength: 50
          minLength: 0
        paymentMethod:
          type: integer
          format: int32
        firstTerm:
          type: integer
          format: int32
        daysTerm:
          type: integer
          format: int32
        terms:
          type: integer
          format: int32
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
        iban:
          type: string
          maxLength: 50
          minLength: 0
        discount1:
          type: number
        discount2:
          type: number
        discount3:
          type: number
        discount4:
          type: number
        discountPp:
          type: number
        billingCompany:
          type: integer
          format: int32
        withholding:
          type: number
        packages:
          type: integer
          format: int32
        grossWeight:
          type: number
        netWeight:
          type: number
        volume:
          type: number
        invoiceEditObservations:
          type: string
        tags:
          type: array
          items:
            type: string
        active:
          type: boolean
        automaticGeneration:
          type: boolean
        automaticSending:
          type: boolean
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        nextInvoice:
          type: string
          format: date
        periodicInvoice:
          $ref: '#/components/schemas/ApiPeriodicInvoiceEnum'
      required:
        - customerAddress
        - periodicInvoice
    ApiArticleCombinationListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        article:
          type: string
          description: Article code
          example: 123456
        articleId:
          type: integer
          format: int32
          description: Internal article identifier
          example: 876
        articleType:
          $ref: '#/components/schemas/ApiArticleTypeEnum'
          description: Type of article
          example: MERCHANDISE
        unitWarehouseId:
          type: integer
          format: int32
          description: Warehouse ID where the item is stored
          example: 55
        articleDescription:
          type: string
          description: Description of the article
          example: Blue cotton T-shirt
        attribute1:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: First attribute of the article. See ApiAttributeListReadDto
        attribute2:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: Second attribute of the article. See ApiAttributeListReadDto
        attribute3:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: Third attribute of the article. See ApiAttributeListReadDto
        attribute4:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: Fourth attribute of the article. See ApiAttributeListReadDto
        attribute5:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: Fifth attribute of the article. See ApiAttributeListReadDto
        seasonId:
          type: integer
          format: int32
          description: Season identifier
          example: 1
        season:
          type: string
          description: Season name
          example: Summer 2025
        category1:
          type: string
          description: First article category
          example: Men
        category2:
          type: string
          description: Second article category
          example: Shirts
        category3:
          type: string
          description: Third article category
          example: Cotton
        category4:
          type: string
          description: Fourth article category
          example: Casual
        description:
          type: string
          description: Combination description
          example: Casual blue T-shirt, 100% cotton
        active:
          type: boolean
          description: Indicates if the article is active
          example: true
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for the article
          example: GENERAL
        assortment:
          $ref: '#/components/schemas/ApiAssortmentListReadDto'
          description: Assortment information. See ApiAssortmentListReadDto
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: Size range information. See ApiSizeRangeListReadDto
        serialNumberControl:
          type: boolean
          description: Indicates if serial number control is used
          example: false
        batchControl:
          type: boolean
          description: Indicates if batch control is used
          example: false
      required:
        - id
    ApiArticleListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Code of the article
          example: ART123
        description:
          type: string
          description: Description of the article
          example: Premium leather jacket
        description2:
          type: string
          description: Secondary description of the article
          example: Available in multiple colors
        warehouse:
          type: string
          description: Warehouse associated with the article
          example: MAIN
        category1:
          type: string
          description: Primary category of the article
          example: Clothing
        category2:
          type: string
          description: Secondary category of the article
          example: Jackets
        category3:
          type: string
          description: Tertiary category of the article
          example: Leather
        category4:
          type: string
          description: Quaternary category of the article
          example: Premium
        vatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type of the article
          example: STANDARD
        season:
          type: string
          description: Season associated with the article
          example: FALL2023
        family:
          type: string
          description: Family of the article
          example: OUTDOOR
        baseCombination:
          $ref: '#/components/schemas/ApiArticleCombinationListReadDto'
          description: Base combination of the article
        tags:
          type: array
          description: List of tags associated with the article
          example:
            - premium
            - leather
            - fashion
          items:
            type: string
        showAttribute1:
          type: boolean
          description: Indicates if attribute 1 should be displayed
          example: true
        showAttribute2:
          type: boolean
          description: Indicates if attribute 2 should be displayed
          example: false
        showAttribute3:
          type: boolean
          description: Indicates if attribute 3 should be displayed
          example: false
        showAttribute4:
          type: boolean
          description: Indicates if attribute 4 should be displayed
          example: false
        showAttribute5:
          type: boolean
          description: Indicates if attribute 5 should be displayed
          example: false
      required:
        - code
        - id
        - vatType
        - warehouse
    ApiArticleTypeEnum:
      type: string
      description: Available article types
      enum:
        - PACKAGING
        - EXPENSE
        - RAW_MATERIAL
        - MERCHANDISE
        - OTHERS
        - FINISHED_PRODUCT
        - SEMI_FINISHED
        - SERVICE
        - ADVERTISING
      example: MERCHANDISE
    ApiAssortmentListReadDto:
      type: object
      description: Assortment list information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Assortment code.
          example: ASRT123
          maxLength: 10
          minLength: 0
        title:
          type: string
          description: Title of the assortment.
          example: Summer Collection
          maxLength: 50
          minLength: 0
        sizeRange:
          type: string
          maxLength: 50
          minLength: 0
      required:
        - id
    ApiAttributeListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Unique code for the attribute.
          example: COLOR
          maxLength: 20
          minLength: 0
        description:
          type: string
          description: Description of the attribute.
          example: Color of the item
          maxLength: 100
          minLength: 0
      required:
        - code
        - description
        - id
    ApiBillingSeriesDocumentTypeEnum:
      type: string
      description: Defines the document types for billing series.
      enum:
        - PURCHASE
        - PURCHASE_TICKET
        - SALE
        - SALE_TICKET
        - INVOICE_DRAFT
      example: SALE
    ApiBillingSeriesListReadDto:
      type: object
      description: Billing series information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        type:
          $ref: '#/components/schemas/ApiBillingSeriesDocumentTypeEnum'
          description: >-
            Type of the billing series. See ApiBillingSeriesTypeEnum for
            possible values.
          example: INVOICE
        code:
          type: string
          description: Billing series code.
          example: SER2025
        description:
          type: string
          description: Description of the billing series.
          example: Main invoice series
        deposit:
          type: boolean
          description: Indicates if this is the default series.
          example: true
        corrective:
          type: boolean
      required:
        - code
        - id
        - type
    ApiBrandListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Unique brand code.
          example: NIKE
      required:
        - code
        - id
    ApiCompanyInfoListReadDto:
      type: object
      description: Billing company information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Company code.
          example: C100
        cif:
          type: string
          description: Tax identification code (CIF) of the company.
          example: B12345678
        name:
          type: string
          description: Name of the company.
          example: Clavei S.L.
        phone1:
          type: string
          description: Indicates if this is the default company.
          example: true
        email:
          type: string
        logo:
          type: string
        logoToken:
          type: string
      required:
        - id
    ApiCurrencyISOEnum:
      type: string
      description: Defines the ISO currency codes.
      enum:
        - AED
        - AFA
        - ALL
        - AMD
        - ANG
        - AOA
        - ARS
        - AUD
        - AWG
        - AZM
        - BAM
        - BBD
        - BDT
        - BGL
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BRL
        - BSD
        - BTN
        - BWP
        - BYR
        - BZD
        - CAD
        - CDF
        - CHF
        - CLP
        - CNY
        - COP
        - CRC
        - CUP
        - CVE
        - CYP
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EEK
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GGP
        - GHC
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HRK
        - HTG
        - HUF
        - IDR
        - ILS
        - IMP
        - INR
        - IQD
        - IRR
        - ISK
        - JEP
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LTL
        - LVL
        - LYD
        - MAD
        - MDL
        - MGF
        - MKD
        - MMK
        - MNT
        - MOP
        - MRO
        - MTL
        - MUR
        - MVR
        - MWK
        - MXN
        - MYR
        - MZM
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - ROL
        - RUR
        - RWF
        - SAR
        - SBD
        - SCR
        - SDD
        - SEK
        - SGD
        - SHP
        - SIT
        - SKK
        - SLL
        - SOS
        - SPL
        - SRG
        - STD
        - SVC
        - SYP
        - SZL
        - THB
        - TJS
        - TMM
        - TND
        - TOP
        - TRL
        - TTD
        - TVD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - UYU
        - UZS
        - VEB
        - VND
        - VUV
        - WST
        - XAF
        - XAG
        - XAU
        - XCD
        - XDR
        - XOF
        - XPD
        - XPF
        - XPT
        - YER
        - YUM
        - ZAR
        - ZMK
        - ZWD
        - RUB
        - TRY
      example: USD
    ApiCurrencyListReadDto:
      type: object
      description: Currency information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          maxLength: 5
          minLength: 0
        description:
          type: string
          maxLength: 50
          minLength: 0
        nomenclature:
          type: string
          maxLength: 5
          minLength: 0
        isoCode:
          $ref: '#/components/schemas/ApiCurrencyISOEnum'
        changeValue:
          type: number
        significantDecimalsDocuments:
          type: integer
          format: int32
        intermediateDecimalsDocuments:
          type: integer
          format: int32
        decimalsCalculatePrices:
          type: integer
          format: int32
        decimalsCalculateCosts:
          type: integer
          format: int32
      required:
        - code
        - description
        - id
    ApiCustomerAddressViewReadDto:
      type: object
      description: Customer address information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: integer
          format: int32
          description: Address code.
          example: 101
        customerCode:
          type: string
          description: Customer string code.
          example: C10001
        customerName:
          type: string
          description: Name of the customer.
          example: Acme S.A.
        customerPostalCode:
          type: string
          description: Postal code of the customer.
          example: '03001'
        customerAddress:
          type: string
          description: Street address of the customer.
          example: Avenida de la Estación, 5
        customerCity:
          type: string
          description: City of the customer.
          example: Alicante
        customerState:
          type: string
          description: Customer state code.
          example: A
        customerStateDescription:
          type: string
          description: Description of the customer state.
          example: Alicante
        customerCountry:
          type: string
          description: Country code of the customer.
          example: ES
        customerCountryDescription:
          type: string
          description: Country description of the customer.
          example: Spain
        customerFirstPhoneNumber:
          type: string
          description: First customer phone number.
          example: '+34965123456'
        customerSecondPhoneNumber:
          type: string
          description: Second customer phone number.
          example: '+34965111111'
        customerEmail:
          type: string
          description: Customer email address.
          example: cliente@acme.es
        customerCif:
          type: string
          description: Customer CIF or NIF.
          example: B12345678
        customerId:
          type: integer
          format: int32
          description: Customer identifier (numeric).
          example: 10001
        customerCommercialName:
          type: string
          description: Customer commercial name.
          example: Acme España
        name:
          type: string
          description: Address name or label.
          example: Warehourse
        city:
          type: string
          description: City for this address.
          example: Alicante
        state:
          type: string
          description: State (code).
          example: A
        stateDescription:
          type: string
          description: State description.
          example: Alicante
        postalCode:
          type: string
          description: Postal code for the address.
          example: '03001'
        country:
          type: string
          description: Country code for this address.
          example: ES
        countryDescription:
          type: string
          description: Country description for this address.
          example: Spain
        address:
          type: string
          description: Street address.
          example: Street Example, 14
        firstPhoneNumber:
          type: string
          description: First phone number.
          example: '+34965123456'
        secondPhoneNumber:
          type: string
          description: Second phone number.
          example: '+34965111111'
        email:
          type: string
          description: Email for this address.
          example: direccion@acme.es
        cif:
          type: string
          description: CIF/NIF for this address.
          example: B12345678
        activity:
          type: string
          description: Activity for this address.
          example: Wholesale
        brand:
          type: string
          description: Brand associated to this address.
          example: Acme Main Brand
        brandId:
          type: string
          description: Brand id for this address.
          example: 5010
        customerIsActive:
          type: boolean
          description: True if the customer is active.
          example: true
        isActive:
          type: boolean
          description: True if this address is active.
          example: true
      required:
        - code
        - id
    ApiFacturaECodeEnum:
      type: string
      description: Electronic invoice codes
      enum:
        - NOT_SPECIFIED
        - CASH
        - DOMICILED_RECEIPT
        - RECEIPT
        - TRANSFER
        - ACCEPTED_LETTER
        - LETTER_OF_CREDIT
        - CONTRACT_AWARD
        - BILL_OF_EXCHANGE
        - PROMISORY_NOTE_IN_ORDER
        - PROMISORY_NOTE_NOT_IN_ORDER
        - CHECK_NOTE
        - REPLACEMENT
        - SPECIALS
        - COMPENSATION
        - POSTAL_ORDER
        - FORMED_CHECK
        - BANK_CHECK
        - CASH_ON_DELIVERY_PAYMENT
        - PAYMENT_BY_CARD
      example: '01'
    ApiPaymentMethodListReadDto:
      type: object
      description: DTO para listar los métodos de pago disponibles
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: integer
          format: int32
          description: Código único del método de pago
          example: 1
        description:
          type: string
          description: Descripción del método de pago
          example: Transferencia bancaria
        document:
          type: string
          description: Documento asociado al método de pago
          example: Contrato
        firstTerm:
          type: integer
          format: int32
          description: Primer plazo de pago en días
          example: 30
        terms:
          type: integer
          format: int32
          description: Número total de plazos
          example: 3
        daysTerms:
          type: integer
          format: int32
          description: Días entre plazos
          example: 30
        remittance:
          type: boolean
          description: Indica si es una remesa
          example: true
        addToCustomerBase:
          type: boolean
          description: Indica si se debe añadir a la base de clientes
          example: true
        serveFullPrePaid:
          type: boolean
          description: Indica si sirve como pago anticipado completo
          example: false
        observations:
          type: string
          description: Observaciones adicionales
          example: Requiere verificación bancaria
        icon:
          type: string
          description: Icono representativo del método de pago
          example: fa-credit-card
        facturaECode:
          $ref: '#/components/schemas/ApiFacturaECodeEnum'
          description: Código de factura electrónica asociado
      required:
        - code
        - description
        - id
    ApiRateCodeListReadDto:
      type: object
      description: Exchange rate code information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
        taxesIncluded:
          type: boolean
      required:
        - code
        - id
    ApiRepresentativeListReadDto:
      type: object
      description: Tertiary representative information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: integer
          format: int32
        name:
          type: string
          maxLength: 100
          minLength: 0
        cif:
          type: string
          maxLength: 20
          minLength: 0
        population:
          type: string
          maxLength: 100
          minLength: 0
        country:
          type: string
        state:
          type: string
        phone1:
          type: string
          maxLength: 20
          minLength: 0
        phone2:
          type: string
          maxLength: 20
          minLength: 0
        email:
          type: string
          maxLength: 20
          minLength: 0
        commission:
          type: number
        commissionType:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
        irpfPercentage:
          type: number
        vatPercentage:
          type: number
        subAgentOf:
          type: string
        userB2bMobility:
          type: string
        enableB2bMobility:
          type: boolean
      required:
        - code
        - id
    ApiSeasonListReadDto:
      type: object
      description: Season information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
        description:
          type: string
        isCurrent:
          type: boolean
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
      required:
        - code
        - endDate
        - id
        - startDate
    ApiShippingTermListReadDto:
      type: object
      description: Shipping terms information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
        customerPays:
          type: boolean
        intrastatCode:
          type: string
      required:
        - id
    ApiSizeRangeListReadDto:
      type: object
      description: Size range list information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
        description:
          type: string
      required:
        - code
        - description
        - id
    ApiTemplateSaleInvoiceLineDetailReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        widthId:
          type: integer
          format: int32
          description: Width identifier.
          example: 200
        widthCode:
          type: string
          description: Width code.
          example: W-35
        quantitiesPerSize:
          type: array
          description: >-
            Quantities per size. For structure see
            ApiBaseLineDetailSizeReadDto.java
          items:
            $ref: '#/components/schemas/ApiTemplateSaleInvoiceLineDetailSizeReadDto'
      required:
        - id
    ApiTemplateSaleInvoiceLineDetailSizeReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        sizeRangeDetailId:
          type: integer
          format: int32
          description: Size detail identifier.
          example: 15
        sizeRangeDetailSize:
          type: string
          description: Size code within the range.
          example: M
        sizeRangeSizeOrder:
          type: integer
          format: int32
          description: Order value of the size in the range.
          example: 2
        quantityPerPackage:
          type: number
          description: Quantity per package for this size.
          example: 8
        quantityDetail:
          type: number
          description: Total quantity for this size.
          example: 24
        availability:
          type: number
          description: Available quantity for this size.
          example: 10
        cancelledQuantityDetail:
          type: number
          description: Quantity that has been cancelled for this size
          example: 5.5
        servedQuantityDetail:
          type: number
          description: Quantity that has been served for this size
          example: 18.5
      required:
        - id
        - sizeRangeDetailId
        - sizeRangeDetailSize
    ApiTemplateSaleInvoiceLineReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        lineNumber:
          type: integer
          format: int32
          description: Line number within the document.
          example: 1
        articleCombination:
          $ref: '#/components/schemas/ApiArticleCombinationListReadDto'
          description: >-
            Article combination info. See ApiArticleCombinationListReadDto.java
            for the structure.
        attributesDescription:
          type: string
          description: Additional attributes description for the line.
          example: 'Color: Red, Size: L'
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: >-
            Size range information. See ApiSizeRangeListReadDto.java for the
            structure.
        assortment:
          $ref: '#/components/schemas/ApiAssortmentListReadDto'
          description: >-
            Assortment information. See ApiAssortmentListReadDto.java for the
            structure.
        articleDescription:
          type: string
          description: Description of the article.
          example: Cotton T-Shirt
        packages:
          type: integer
          format: int32
          description: Number of packages in this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity per package for this line.
          example: 5
        quantityLine:
          type: number
          description: Total quantity for this line.
          example: 15
        price:
          type: number
          description: Unit price for this article line.
          example: 12.95
        lineObservations:
          type: string
          description: Observations for this document line.
          example: Deliver before 9 AM
        details:
          type: array
          description: >-
            List of line details. See ApiBaseLineDetailReadDto.java for the
            structure.
          items:
            $ref: '#/components/schemas/ApiTemplateSaleInvoiceLineDetailReadDto'
        concept:
          type: string
        assortedPackages:
          type: boolean
        packaging:
          $ref: '#/components/schemas/ApiArticleListReadDto'
        discount:
          type: number
        rsp:
          type: number
        reference:
          type: string
          maxLength: 50
          minLength: 0
        serviceDate:
          type: string
          format: date
        noAccumulateWarehouse:
          type: boolean
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
        brand:
          $ref: '#/components/schemas/ApiBrandListReadDto'
        customCommission:
          type: boolean
        representative1:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
        commissionType1:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
        commission1:
          type: number
        representative2:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
        commissionType2:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
        commission2:
          type: number
        representative3:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
        commissionType3:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
        commission3:
          type: number
        freeDescription1:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription2:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription3:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription4:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription5:
          type: string
          maxLength: 50
          minLength: 0
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
        vatPercentage:
          type: number
        surchargePercentage:
          type: number
        grossAmount:
          type: number
        grossAmountCompanyCurrency:
          type: number
        netAmount:
          type: number
        netAmountCompanyCurrency:
          type: number
        totalLine:
          type: number
        totalLineCompanyCurrency:
          type: number
        disbursement:
          type: boolean
        templateSaleInvoiceId:
          type: integer
          format: int32
        templateSaleInvoiceNumber:
          type: integer
        templateSaleInvoiceDocumentDate:
          type: string
          format: date
        templateSaleInvoiceBillingSeriesCode:
          type: string
        customerId:
          type: integer
          format: int32
        customerName:
          type: string
      required:
        - articleCombination
        - id
        - lineNumber
    ApiTemplateSaleInvoiceReadDto:
      type: object
      description: Template sale invoice information for recurring invoices
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1001
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2024-08-07'
        quantityTotal:
          type: number
          description: Total quantity for all document lines.
          example: 200.5
        observations:
          type: string
          description: Free text field for any observations related to the document.
          example: Customer requested urgent delivery
        lines:
          type: array
          description: >-
            List of detail lines for the document. For structure see:
            ApiBaseLineReadDto.java
          items:
            $ref: '#/components/schemas/ApiTemplateSaleInvoiceLineReadDto'
        change:
          type: number
          description: Change applied to the invoice or document
          example: 0.5
        discount1:
          type: number
          description: First discount percentage
          example: 5
        discount2:
          type: number
          description: Second discount percentage
          example: 2
        discountAmountTotal:
          type: number
          description: Total discount amount
          example: 100
        discountAmountTotalCompanyCurrency:
          type: number
          description: Total discount amount in company currency
          example: 95
        discountPp:
          type: number
          description: Prompt payment discount percentage
          example: 3
        discountPpAmountTotal:
          type: number
          description: Total prompt payment discount amount
          example: 15
        discountPpAmountTotalCompanyCurrency:
          type: number
          description: Total prompt payment discount amount in company currency
          example: 14
        grossAmountTotal:
          type: number
          description: Gross total amount
          example: 1200
        grossAmountTotalCompanyCurrency:
          type: number
          description: Gross total amount in company currency
          example: 1150
        netAmountTotal:
          type: number
          description: Net total amount
          example: 1100
        netAmountTotalCompanyCurrency:
          type: number
          description: Net total amount in company currency
          example: 1080
        vatAmountTotal:
          type: number
          description: Total VAT amount
          example: 230
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency
          example: 225
        surchargeAmountTotal:
          type: number
          description: Total surcharge amount
          example: 20
        surchargeAmountTotalCompanyCurrency:
          type: number
          description: Total surcharge amount in company currency
          example: 18
        withholding:
          type: number
          description: Withholding percentage
          example: 2
        withholdingAmountTotal:
          type: number
          description: Total withholding amount
          example: 22
        withholdingAmountTotalCompanyCurrency:
          type: number
          description: Total withholding amount in company currency
          example: 21
        total:
          type: number
          description: Total document amount
          example: 1300
        totalCompanyCurrency:
          type: number
          description: Total document amount in company currency
          example: 1280
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount
          example: 50
        disbursementAmountTotalCompanyCurrency:
          type: number
          description: Total disbursement amount in company currency
          example: 48
        customerVatType:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
          description: Customer VAT type information
        billingSeries:
          $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
          description: Billing series information
        shippingTerm:
          $ref: '#/components/schemas/ApiShippingTermListReadDto'
          description: Shipping terms information
        shippingVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for shipping
          example: GENERAL
        shippingVatPercentage:
          type: number
          description: VAT percentage for shipping
          example: 21
        shippingSurchargePercentage:
          type: number
          description: Surcharge percentage for shipping
          example: 5
        shippingAmount:
          type: number
          description: Shipping amount
          example: 25.5
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: Currency information
        rateCode:
          $ref: '#/components/schemas/ApiRateCodeListReadDto'
          description: Exchange rate code information
        customerAddress:
          $ref: '#/components/schemas/ApiCustomerAddressViewReadDto'
          description: Customer address information
        status:
          $ref: '#/components/schemas/ApiTemplateSaleInvoiceStatusEnum'
          description: Status of the template sale invoice
          example: ACTIVE
        validityDate:
          type: string
          format: date
          description: Date until which the template is valid
          example: '2024-12-31'
        serviceDate:
          type: string
          format: date
          description: Service date
          example: '2024-01-15'
        manufacturingDate:
          type: string
          format: date
          description: Manufacturing date
          example: '2024-01-10'
        valueDate:
          type: string
          format: date
          description: Value date
          example: '2024-01-20'
        season:
          $ref: '#/components/schemas/ApiSeasonListReadDto'
          description: Season information
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Warehouse information
        representative1:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Primary representative information
        commissionType1:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for primary representative
          example: PERCENTAGE
        commission1:
          type: number
          description: Commission amount for primary representative
          example: 5
        representative2:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Secondary representative information
        commissionType2:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for secondary representative
          example: FIXED
        commission2:
          type: number
          description: Commission amount for secondary representative
          example: 100
        representative3:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Tertiary representative information
        commissionType3:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for tertiary representative
          example: PERCENTAGE
        commission3:
          type: number
          description: Commission amount for tertiary representative
          example: 2.5
        reference:
          type: string
          description: Reference number for the template
          example: TEMP-2024-001
        paymentMethod:
          $ref: '#/components/schemas/ApiPaymentMethodListReadDto'
          description: Payment method information
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days
          example: 30
        daysTerm:
          type: integer
          format: int32
          description: Payment term in days
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms
          example: 3
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Type of proximity
          example: LOCAL
        iban:
          type: string
          description: IBAN for payments
          example: ES9121000418450200051332
        discount3:
          type: number
          description: Third discount percentage
          example: 3
        discount4:
          type: number
          description: Fourth discount percentage
          example: 2
        billingCompany:
          $ref: '#/components/schemas/ApiCompanyInfoListReadDto'
          description: Billing company information
        packages:
          type: integer
          format: int32
          description: Number of packages
          example: 5
        grossWeight:
          type: number
          description: Gross weight in kilograms
          example: 25.5
        netWeight:
          type: number
          description: Net weight in kilograms
          example: 23
        volume:
          type: number
          description: Volume in cubic meters
          example: 0.5
        invoiceEditObservations:
          type: string
          description: Observations for invoice editing
          example: Special packaging required
        collectedAmount:
          type: number
          description: Collected amount
          example: 1500
        collectedAmountCompanyCurrency:
          type: number
          description: Collected amount in company currency
          example: 1500
        tags:
          type: array
          description: Tags associated with the template
          example:
            - recurring
            - monthly
          items:
            type: string
        discount1AmountTotal:
          type: number
          description: Total amount of first discount
          example: 150
        discount1AmountTotalCompanyCurrency:
          type: number
          description: Total amount of first discount in company currency
          example: 150
        discount2AmountTotal:
          type: number
          description: Total amount of second discount
          example: 75
        discount2AmountTotalCompanyCurrency:
          type: number
          description: Total amount of second discount in company currency
          example: 75
        discount3AmountTotal:
          type: number
          description: Total amount of third discount
          example: 45
        discount3AmountTotalCompanyCurrency:
          type: number
          description: Total amount of third discount in company currency
          example: 45
        discount4AmountTotal:
          type: number
          description: Total amount of fourth discount
          example: 30
        discount4AmountTotalCompanyCurrency:
          type: number
          description: Total amount of fourth discount in company currency
          example: 30
        active:
          type: boolean
          description: Flag indicating if the template is active
          example: true
        automaticGeneration:
          type: boolean
          description: Flag indicating if generation is automatic
          example: true
        automaticSending:
          type: boolean
          description: Flag indicating if sending is automatic
          example: false
        startDate:
          type: string
          format: date
          description: Start date for the template
          example: '2024-01-01'
        endDate:
          type: string
          format: date
          description: End date for the template
          example: '2024-12-31'
        nextInvoice:
          type: string
          format: date
          description: Next invoice date
          example: '2024-02-01'
        periodicInvoice:
          $ref: '#/components/schemas/ApiPeriodicInvoiceEnum'
          description: Periodic invoice type
          example: MONTHLY
      required:
        - customerAddress
        - documentDate
        - id
        - number
    ApiWarehouseListReadDto:
      type: object
      description: Warehouse information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Warehouse code (unique per warehouse).
          example: ALM01
        description:
          type: string
          description: Warehouse description.
          example: Central warehouse
      required:
        - code
        - description
        - id
    ApiIRPFTypeEnum:
      type: string
      description: Defines the IRPF types.
      enum:
        - LEASES
        - PROFESIONAL_ACTIVITIES
        - AGRO
      example: LEASES
    ApiSupplierFileWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
        token:
          type: string
          maxLength: 36
          minLength: 0
        fileName:
          type: string
          maxLength: 255
          minLength: 0
        fileExtension:
          type: string
          maxLength: 10
          minLength: 0
        fileSize:
          type: integer
          format: int64
      required:
        - fileExtension
        - fileName
        - token
    ApiSupplierObservationWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
        title:
          type: string
          maxLength: 50
          minLength: 0
        description:
          type: string
      required:
        - description
        - title
    ApiSupplierWriteDto:
      type: object
      properties:
        code:
          type: integer
          format: int32
        cif:
          type: string
          maxLength: 20
          minLength: 0
        commercialName:
          type: string
          maxLength: 100
          minLength: 0
        name:
          type: string
          maxLength: 100
          minLength: 0
        address:
          type: string
          maxLength: 100
          minLength: 0
        country:
          type: integer
          format: int32
        vat:
          type: integer
          format: int32
        state:
          type: integer
          format: int32
        postalCode:
          type: string
          maxLength: 10
          minLength: 0
        city:
          type: string
          maxLength: 100
          minLength: 0
        phone1:
          type: string
          maxLength: 20
          minLength: 0
        phone2:
          type: string
          maxLength: 20
          minLength: 0
        replacementTime:
          type: number
        language:
          type: integer
          format: int32
        currency:
          type: integer
          format: int32
        manufacturer:
          type: boolean
        importer:
          type: boolean
        active:
          type: boolean
        notCreateOrder:
          type: boolean
        observation:
          type: string
        geographicalLocation:
          $ref: '#/components/schemas/ApiGeographicalLocationEnum'
        creationDate:
          type: string
          format: date
        inactiveDate:
          type: string
          format: date
        accountingAccount:
          type: integer
          format: int32
        customer:
          type: integer
          format: int32
        operator:
          type: integer
          format: int32
        warehouse:
          type: integer
          format: int32
        email:
          type: string
          maxLength: 250
          minLength: 0
        paymentMethod:
          type: integer
          format: int32
        terms:
          type: integer
          format: int32
        daysFirstTerm:
          type: integer
          format: int32
        daysBetweenTerms:
          type: integer
          format: int32
        discount1:
          type: number
        discount2:
          type: number
        discountPp:
          type: number
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
        paymentDay1:
          type: integer
          format: int32
        paymentDay2:
          type: integer
          format: int32
        paymentDay3:
          type: integer
          format: int32
        weekday:
          $ref: '#/components/schemas/ApiWeekDayEnum'
        paymentMethodObservation:
          type: integer
          format: int32
        paymentMethodObservationDescription:
          type: string
        account:
          type: string
          maxLength: 50
          minLength: 0
        swift:
          type: string
          maxLength: 20
          minLength: 0
        bic:
          type: string
          maxLength: 20
          minLength: 0
        agency:
          type: integer
          format: int32
        shippingTerm:
          type: integer
          format: int32
        ropoCode:
          type: string
        ropoExpireDate:
          type: string
          format: date
        irpfType:
          $ref: '#/components/schemas/ApiIRPFTypeEnum'
        picture:
          type: string
        bankName:
          type: string
        contactPerson:
          type: string
        incomeTaxRate:
          type: number
        web:
          type: string
        tags:
          type: array
          items:
            type: string
        observations:
          type: array
          items:
            $ref: '#/components/schemas/ApiSupplierObservationWriteDto'
        files:
          type: array
          items:
            $ref: '#/components/schemas/ApiSupplierFileWriteDto'
      required:
        - commercialName
        - paymentMethod
    ApiWeekDayEnum:
      type: string
      enum:
        - MONDAY
        - TUESDAY
        - WEDNESDAY
        - THURSDAY
        - FRIDAY
        - SATURDAY
        - SUNDAY
    ApiAgencyListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Agency code.
          example: AG001
        name:
          type: string
          description: Name of the agency.
          example: Fast Transport Agency
      required:
        - code
        - id
        - name
    ApiAlpha2LanguageCodeEnum:
      type: string
      description: Defines the ISO Alpha-2 language codes.
      enum:
        - AA
        - AB
        - AF
        - AM
        - AR
        - AS
        - AY
        - AZ
        - BA
        - BE
        - BG
        - BH
        - BI
        - BN
        - BO
        - BR
        - CA
        - CO
        - CS
        - CY
        - DA
        - DE
        - DZ
        - EL
        - EN
        - EO
        - ES
        - ET
        - EU
        - FA
        - FI
        - FJ
        - FO
        - FR
        - FY
        - GA
        - GD
        - GL
        - GN
        - GU
        - GV
        - HA
        - HE
        - HI
        - HR
        - HU
        - HY
        - IA
        - ID
        - IE
        - IK
        - IS
        - IT
        - IU
        - JA
        - JW
        - KA
        - KK
        - KL
        - KM
        - KN
        - KO
        - KS
        - KU
        - KW
        - KY
        - LA
        - LB
        - LN
        - LO
        - LT
        - LV
        - MG
        - MI
        - MK
        - ML
        - MN
        - MO
        - MR
        - MS
        - MT
        - MY
        - NA
        - NE
        - NL
        - 'NO'
        - OC
        - OM
        - OR
        - PA
        - PL
        - PS
        - PT
        - QU
        - RM
        - RN
        - RO
        - RU
        - RW
        - SA
        - SD
        - SE
        - SG
        - SH
        - SI
        - SK
        - SL
        - SM
        - SN
        - SO
        - SQ
        - SR
        - SS
        - ST
        - SU
        - SV
        - SW
        - TA
        - TE
        - TG
        - TH
        - TI
        - TK
        - TL
        - TN
        - TO
        - TR
        - TS
        - TT
        - TW
        - UG
        - UK
        - UR
        - UZ
        - VI
        - VO
        - WO
        - XH
        - YI
        - YO
        - ZA
        - ZH
        - ZU
      example: EN
    ApiCustomerFileListReadDto:
      type: object
      description: >-
        Customer file information for read operations. Inherits all structure
        from ApiBaseFileByEntityListReadDto.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        token:
          type: string
          description: File token (unique identifier).
          example: 729eda1d03b34634b8e3c81a8b2d0974
        url:
          type: string
          description: URL to access or download the file.
          example: https://apihost.com/file/729eda1d03b34634b8e3c81a8b2d0974
        fileName:
          type: string
          description: File name (with extension).
          example: invoice_2023.pdf
        fileExtension:
          type: string
          description: File extension.
          example: pdf
        fileSize:
          type: integer
          format: int64
          description: File size in bytes.
          example: 1048576
        modifiedOn:
          type: string
          format: date-time
          description: Date and time the file was last modified (ISO8601).
          example: '2024-08-07T18:10:55'
      required:
        - fileExtension
        - fileName
        - id
        - modifiedOn
        - token
        - url
    ApiCustomerListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Customer unique identifier.
          example: 10001
        code:
          type: integer
          format: int32
          description: Customer numeric code.
          example: 10001
        name:
          type: string
          description: Legal name of the customer.
          example: Acme S.A.
        commercialName:
          type: string
          description: Commercial name of the customer.
          example: Acme España
        cif:
          type: string
          description: Tax identification code (CIF/NIF).
          example: B12345678
        address:
          type: string
          description: Postal address of the customer.
          example: Av. de la Estación, 5
        firstPhoneNumber:
          type: string
          description: First phone number.
          example: '+34600111222'
        secondPhoneNumber:
          type: string
          description: Second phone number.
          example: '+34600333444'
        postalCode:
          type: string
          description: Postal code.
          example: '03001'
        countryDescription:
          type: string
          description: Country name or description.
          example: Spain
        stateDescription:
          type: string
          description: State name or description.
          example: Alicante
        email:
          type: string
          description: Email address.
          example: info@acme.es
        city:
          type: string
          description: City name.
          example: Alicante
        activity:
          type: string
          description: Activity description.
          example: Wholesale Trade
        brand:
          type: string
          description: Brand description.
          example: Acme
        brandId:
          type: integer
          format: int32
          description: Brand identifier.
          example: 100
        creationDate:
          type: string
          format: date
          description: 'Date of customer creation. Format: yyyy-MM-dd'
          example: '2020-01-01'
        isActive:
          type: boolean
          description: True if the customer is active.
          example: true
        inactiveDate:
          type: string
          format: date
          description: 'Date when customer became inactive. Format: yyyy-MM-dd'
          example: '2023-08-07'
        paymentMethodId:
          type: integer
          format: int32
          description: Payment method identifier.
          example: 1
        paymentMethod:
          type: string
          description: Payment method description.
          example: Bank Transfer
        paymentMethodServeFullPrePaid:
          type: boolean
          description: If true, payment method requires all amount prepaid.
          example: false
        rateCode:
          type: string
          description: Rate code used for customer.
          example: RATE-001
        account:
          type: string
          description: Bank account number.
          example: ES9820385778983000760236
        vatDescription:
          type: string
          description: Tax regime description (VAT).
          example: General
        discount1:
          type: number
          description: First discount rate (percent).
          example: 5
        currencyCode:
          type: string
          description: Currency code.
          example: EUR
        currencyDescription:
          type: string
          description: Currency description.
          example: Euro
        modifiedOn:
          type: string
          format: date-time
          description: 'When information was last updated. Format: yyyy-MM-dd''T''HH:mm:ss'
          example: '2024-08-07T12:30:00'
        bankName:
          type: string
          description: Name of the customer's bank.
          example: Santander
        contactPerson:
          type: string
          description: Main contact person.
          example: Juan Pérez
        web:
          type: string
          description: Web URL.
          example: https://www.acme.es
        picture:
          type: string
          description: Picture or logo (URL or base64).
          example: https://www.acme.es/logo.png
        pictureToken:
          type: string
          description: Authentication token for the picture file.
          example: xyz-token-241235
        tags:
          type: array
          description: List of assigned customer tags.
          example:
            - VIP
            - EXPORT
          items:
            type: string
      required:
        - city
        - code
        - commercialName
        - countryDescription
        - creationDate
        - id
    ApiCustomerObservationListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        title:
          type: string
        description:
          type: string
        modifiedOn:
          type: string
          format: date-time
      required:
        - description
        - id
        - modifiedOn
        - title
    ApiLanguageListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Language code.
          example: ES
        description:
          type: string
          description: Description of the language.
          example: Spanish
        isoCode:
          $ref: '#/components/schemas/ApiAlpha2LanguageCodeEnum'
          description: ISO Alpha-2 language code enum.
          example: ES
      required:
        - code
        - description
        - id
        - isoCode
    ApiObservationListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
        type:
          $ref: '#/components/schemas/ApiObservationTypeEnum'
        description:
          type: string
        blockOrder:
          type: boolean
      required:
        - code
        - description
        - id
        - type
    ApiObservationTypeEnum:
      type: string
      description: Defines the observation types.
      enum:
        - CLASSIFICATION
        - PAYMENT_METHODS
        - SHIPMENT
        - PRODUCTION
        - ORDERS
        - BILLING
        - DELIVERY_NOTE
        - PACKING
      example: CLASSIFICATION
    ApiOperatorReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: integer
          format: int32
        name:
          type: string
      required:
        - code
        - id
        - name
    ApiSupplierReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: integer
          format: int32
        cif:
          type: string
        commercialName:
          type: string
        vat:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
        name:
          type: string
        address:
          type: string
        country:
          $ref: '#/components/schemas/ApiCountryListReadDto'
        state:
          $ref: '#/components/schemas/ApiStateListReadDto'
        postalCode:
          type: string
        city:
          type: string
        phone1:
          type: string
        phone2:
          type: string
        replacementTime:
          type: number
        language:
          $ref: '#/components/schemas/ApiLanguageListReadDto'
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
        manufacturer:
          type: boolean
        importer:
          type: boolean
        active:
          type: boolean
        notCreateOrder:
          type: boolean
        observation:
          type: string
        geographicalLocation:
          $ref: '#/components/schemas/ApiGeographicalLocationEnum'
        creationDate:
          type: string
          format: date
        inactiveDate:
          type: string
          format: date
        accountingAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
        customer:
          $ref: '#/components/schemas/ApiCustomerListReadDto'
        operator:
          $ref: '#/components/schemas/ApiOperatorReadDto'
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
        email:
          type: string
        paymentMethod:
          $ref: '#/components/schemas/ApiPaymentMethodListReadDto'
        terms:
          type: integer
          format: int32
        daysFirstTerm:
          type: integer
          format: int32
        daysBetweenTerms:
          type: integer
          format: int32
        discount1:
          type: number
        discount2:
          type: number
        discountPp:
          type: number
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
        paymentDay1:
          type: integer
          format: int32
        paymentDay2:
          type: integer
          format: int32
        paymentDay3:
          type: integer
          format: int32
        weekday:
          $ref: '#/components/schemas/ApiWeekDayEnum'
        paymentMethodObservation:
          $ref: '#/components/schemas/ApiObservationListReadDto'
        paymentMethodObservationDescription:
          type: string
          maxLength: 255
          minLength: 0
        account:
          type: string
          maxLength: 50
          minLength: 0
        swift:
          type: string
          maxLength: 20
          minLength: 0
        bic:
          type: string
          maxLength: 20
          minLength: 0
        agency:
          $ref: '#/components/schemas/ApiAgencyListReadDto'
        shippingTerm:
          $ref: '#/components/schemas/ApiShippingTermListReadDto'
        ropoCode:
          type: string
        ropoExpireDate:
          type: string
          format: date
        tags:
          type: array
          items:
            type: string
        irpfType:
          $ref: '#/components/schemas/ApiIRPFTypeEnum'
        bankName:
          type: string
        contactPerson:
          type: string
        picture:
          type: string
        pictureToken:
          type: string
        incomeTaxRate:
          type: number
        web:
          type: string
        modifiedOn:
          type: string
          format: date-time
        observations:
          type: array
          items:
            $ref: '#/components/schemas/ApiCustomerObservationListReadDto'
        files:
          type: array
          items:
            $ref: '#/components/schemas/ApiCustomerFileListReadDto'
      required:
        - id
    ApiStateWriteDto:
      type: object
      properties:
        country:
          type: integer
          format: int32
        code:
          type: string
          maxLength: 20
          minLength: 0
        agency:
          type: integer
          format: int32
        description:
          type: string
          maxLength: 100
          minLength: 0
        prefix:
          type: string
          maxLength: 5
          minLength: 0
        account:
          type: integer
          format: int32
        intrastatCode:
          type: string
          maxLength: 20
          minLength: 0
        target:
          type: integer
        isoCode:
          type: string
          maxLength: 5
          minLength: 0
        cyc:
          type: string
          maxLength: 5
          minLength: 0
      required:
        - code
        - country
    ApiStateReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        country:
          $ref: '#/components/schemas/ApiCountryListReadDto'
        code:
          type: string
        agency:
          $ref: '#/components/schemas/ApiAgencyListReadDto'
        description:
          type: string
        prefix:
          type: string
        account:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
        intrastatCode:
          type: string
        target:
          type: integer
        isoCode:
          type: string
          maxLength: 5
          minLength: 0
        cyc:
          type: string
      required:
        - code
        - country
        - id
    ApiArticleCombinationPictureWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
        token:
          type: string
          maxLength: 36
          minLength: 0
        pictureFileName:
          type: string
          maxLength: 255
          minLength: 0
        pictureFileExtension:
          type: string
          maxLength: 10
          minLength: 0
        viewOrder:
          type: integer
          format: int32
      required:
        - pictureFileExtension
        - pictureFileName
        - token
        - viewOrder
    ApiArticleCombinationSizeRangeWriteDto:
      type: object
      description: Article combination size range creation/update information
      properties:
        id:
          type: integer
          format: int32
          description: ID of the article combination size range
          example: 123
        articleCombination:
          type: integer
          format: int32
          description: ID of the article combination
          example: 456
        sizeRange:
          type: integer
          format: int32
          description: ID of the size range
          example: 789
        assortment:
          type: integer
          format: int32
          description: ID of the assortment
          example: 101
        inactive:
          type: boolean
          description: Indicates if the size range is inactive
          example: false
        height:
          type: number
          description: Height of the article in this size range
          example: 10.5
        width:
          type: number
          description: Width of the article in this size range
          example: 20.3
        depth:
          type: number
          description: Depth of the article in this size range
          example: 15.7
        grossWeight:
          type: number
          description: Gross weight of the article in this size range
          example: 500.25
        netWeight:
          type: number
          description: Net weight of the article in this size range
          example: 450.75
        ean:
          type: string
          description: EAN code of the article in this size range
          example: 8412345678901
          maxLength: 13
          minLength: 12
        cactive:
          type: boolean
      required:
        - sizeRange
    ApiArticleCombinationSupplierWriteDto:
      type: object
      description: Supplier information for article combination creation/update
      properties:
        id:
          type: integer
          format: int32
          description: ID of the article combination supplier
          example: 123
        articleCombination:
          type: integer
          format: int32
          description: ID of the article combination
          example: 456
        supplierCode:
          type: string
          description: Supplier code
          example: SUP001
        supplierReference:
          type: string
          description: Supplier reference
          example: REF123
        supplierPrice:
          type: number
          description: Supplier's price for the article
          example: 29.99
        currency:
          type: string
          description: Currency for the price
          example: EUR
        mainSupplier:
          type: boolean
          description: Indicates if this is the main supplier
          example: true
        purchasingNotes:
          type: string
          description: Purchasing notes
          example: Order in advance during peak season
        supplier:
          type: integer
          format: int32
          description: ID of the supplier
          example: 789
        usual:
          type: boolean
          description: Indicates if this is the usual supplier
          example: true
        purchasePrice:
          type: number
          description: Purchase price from this supplier
          example: 25.99
        unitType:
          type: integer
          format: int32
          description: ID of the unit type
          example: 1
        sizeRange:
          type: integer
          format: int32
          description: ID of the size range
          example: 101
        changeDate:
          type: string
          format: date
          description: Date of the last price change
          example: '2023-05-15'
        previousPrice:
          type: number
          description: Previous purchase price
          example: 24.5
        netPrice:
          type: number
          description: Net price without taxes
          example: 21.48
        netPriceInCompanyCurrency:
          type: number
          description: Net price in company currency
          example: 19.5
        bomPrice:
          type: number
          description: Bill of materials price
          example: 18.75
        bomPriceInCompanyCurrency:
          type: number
          description: Bill of materials price in company currency
          example: 17
        minimumPurchase:
          type: number
          description: Minimum purchase quantity
          example: 10
        yourReference:
          type: string
          description: Supplier's reference for this article
          example: REF-T101
          maxLength: 100
          minLength: 0
        discount:
          type: number
          description: Discount percentage applied
          example: 5
        waitTime:
          type: integer
          format: int32
          description: Wait time in days for delivery
          example: 5
        observations:
          type: string
          description: Additional observations
          example: Special packaging required
        futurePrice:
          type: number
          description: Future price agreed with supplier
          example: 23.99
        multiplesOf:
          type: integer
          format: int32
          description: Order quantity must be multiple of this value
          example: 5
    ApiArticleCombinationWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: ID of the article combination
          example: 123
        defaultArticleCombinationSupplier:
          type: integer
          format: int32
          description: ID of the default supplier for this combination
          example: 5
        defaultItemSaleRate:
          type: integer
          format: int32
          description: ID of the default sale rate for this combination
          example: 2
        defaultEan:
          type: integer
          format: int32
          description: ID of the default EAN for this combination
          example: 1
        article:
          type: integer
          format: int32
          description: ID of the article
          example: 1001
        attribute1:
          type: integer
          format: int32
          description: ID of the first attribute
          example: 15
        attribute2:
          type: integer
          format: int32
          description: ID of the second attribute
          example: 22
        attribute3:
          type: integer
          format: int32
          description: ID of the third attribute
          example: 33
        attribute4:
          type: integer
          format: int32
          description: ID of the fourth attribute
          example: 44
        attribute5:
          type: integer
          format: int32
          description: ID of the fifth attribute
          example: 55
        active:
          type: boolean
          description: Indicates if the combination is active
          example: true
        creationDate:
          type: string
          format: date
          description: Date when the combination was created
          example: '2025-01-15'
        inactiveDate:
          type: string
          format: date
          description: Date when the combination became inactive
          example: '2025-12-31'
        ean:
          type: string
          description: EAN code for the article
          example: 8412345678901
          maxLength: 13
          minLength: 12
        minimum:
          type: number
        articleCombinationSuppliers:
          type: array
          items:
            $ref: '#/components/schemas/ApiArticleCombinationSupplierWriteDto'
        itemSaleRates:
          type: array
          items:
            $ref: '#/components/schemas/ApiItemSaleRateWriteDto'
        articleCombinationSizeRanges:
          type: array
          items:
            $ref: '#/components/schemas/ApiArticleCombinationSizeRangeWriteDto'
        season:
          type: integer
          format: int32
        manufactured:
          type: boolean
        maxProductionOrder:
          type: integer
          format: int32
        maxSizePrint:
          type: integer
          format: int32
        bought:
          type: boolean
        dontOrder:
          type: boolean
        description:
          type: string
          maxLength: 100
          minLength: 0
        observations:
          type: string
        family:
          type: integer
          format: int32
        activeB2B:
          type: boolean
        availabilityB2B:
          $ref: '#/components/schemas/ApiB2BAvailabilityEnum'
        visibleDateB2B:
          type: string
          format: date
        dtoB2B:
          type: integer
          format: int32
        activeMobility:
          type: boolean
        activeTPV:
          type: boolean
        activePrestashop:
          type: boolean
        maximum:
          type: number
        tariffItem:
          type: string
          maxLength: 20
          minLength: 0
        pictures:
          type: array
          items:
            $ref: '#/components/schemas/ApiArticleCombinationPictureWriteDto'
      required:
        - article
    ApiArticleFileWriteDto:
      type: object
      description: Information for creating or updating an article file
      properties:
        id:
          type: integer
          format: int32
        token:
          type: string
          maxLength: 36
          minLength: 0
        fileName:
          type: string
          maxLength: 255
          minLength: 0
        fileExtension:
          type: string
          maxLength: 10
          minLength: 0
        fileSize:
          type: integer
          format: int64
      required:
        - fileExtension
        - fileName
        - token
    ApiArticleObservationWriteDto:
      type: object
      description: Information for creating or updating an article observation
      properties:
        id:
          type: integer
          format: int32
        title:
          type: string
          maxLength: 50
          minLength: 0
        description:
          type: string
      required:
        - description
        - title
    ApiArticleWriteDto:
      type: object
      properties:
        baseCombination:
          type: integer
          format: int32
          description: ID of the base combination
          example: 1
        code:
          type: string
          description: Code of the article
          example: ART123
          maxLength: 20
          minLength: 0
        description:
          type: string
          description: Description of the article
          example: Premium leather jacket
          maxLength: 100
          minLength: 0
        vatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type of the article
          example: STANDARD
        height:
          type: number
          description: Height of the article
          example: 10.5
        width:
          type: number
          description: Width of the article
          example: 20.3
        depth:
          type: number
          description: Depth of the article
          example: 5.2
        grossWeight:
          type: number
          description: Gross weight of the article
          example: 1.75
        netWeight:
          type: number
          description: Net weight of the article
          example: 1.5
        warehouse:
          type: integer
          format: int32
          description: ID of the warehouse
          example: 1
        accumulateWarehouse:
          type: boolean
          description: Indicates if the warehouse accumulates stock
          example: true
        unitWarehouse:
          type: integer
          format: int32
          description: ID of the unit type used in the warehouse
          example: 2
        salesAccount:
          type: integer
          format: int32
          description: ID of the sales account
          example: 401
        purchasingAccount:
          type: integer
          format: int32
          description: ID of the purchasing account
          example: 601
        articleCombinations:
          type: array
          description: List of article combinations
          items:
            $ref: '#/components/schemas/ApiArticleCombinationWriteDto'
        observations:
          type: array
          description: List of observations about the article
          items:
            $ref: '#/components/schemas/ApiArticleObservationWriteDto'
        files:
          type: array
          description: List of files associated with the article
          items:
            $ref: '#/components/schemas/ApiArticleFileWriteDto'
        tags:
          type: array
          description: List of tags associated with the article
          example:
            - premium
            - leather
            - fashion
          items:
            type: string
        showAttribute1:
          type: boolean
          description: Indicates if attribute 1 should be displayed
          example: true
        showAttribute2:
          type: boolean
          description: Indicates if attribute 2 should be displayed
          example: false
        showAttribute3:
          type: boolean
          description: Indicates if attribute 3 should be displayed
          example: false
        showAttribute4:
          type: boolean
          description: Indicates if attribute 4 should be displayed
          example: false
        showAttribute5:
          type: boolean
          description: Indicates if attribute 5 should be displayed
          example: false
        stockQuantity:
          type: number
        salesQuantity:
          type: number
        cancelledQuantity:
          type: number
        outboundQuantity:
          type: number
        pendingDeliveryQuantity:
          type: number
        purchaseQuantity:
          type: number
        providerCancelledQuantity:
          type: number
        inboundQuantity:
          type: number
        pendingReceiptQuantity:
          type: number
        description2:
          type: string
          description: Secondary description of the article
          example: Available in multiple colors
          maxLength: 100
          minLength: 0
        articleType:
          $ref: '#/components/schemas/ApiArticleTypeEnum'
          description: Type of the article
          example: PRODUCT
        batchControl:
          type: boolean
          description: Indicates if batch control is enabled for the article
          example: true
        serialNumberControl:
          type: boolean
          description: Indicates if serial number control is enabled for the article
          example: false
        category1:
          type: integer
          format: int32
          description: ID of the primary category
          example: 1
        category2:
          type: integer
          format: int32
          description: ID of the secondary category
          example: 2
        category3:
          type: integer
          format: int32
          description: ID of the tertiary category
          example: 3
        category4:
          type: integer
          format: int32
          description: ID of the quaternary category
          example: 4
        phytosanitaryProduct:
          type: integer
          format: int32
          description: ID of the phytosanitary product
          example: 101
      required:
        - code
        - vatType
        - warehouse
    ApiB2BAvailabilityEnum:
      type: string
      enum:
        - STOCK
        - ORDER_MANUFACTURER
        - ALWAYS
    ApiItemSaleRateWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier of this item sale rate.
          example: 101
        rate:
          type: integer
          format: int32
          description: ID of the rate applied.
          example: 7
        articleCombination:
          type: integer
          format: int32
          description: ID of the article combination.
          example: 24
        price:
          type: number
          description: Unit price for this item and rate.
          example: 31.2
        price2:
          type: number
          description: Secondary unit price for this item and rate.
          example: 29.99
        rateCode:
          type: integer
          format: int32
          description: Additional rate code.
          example: 42
        season:
          type: integer
          format: int32
          description: Season identifier.
          example: 2025
        sizeRange:
          type: integer
          format: int32
          description: ID of the size range.
          example: 3
    ApiArticleCombinationDefaultReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        defaultArticleCombinationSupplier:
          $ref: '#/components/schemas/ApiArticleCombinationSupplierDefaultReadDto'
          description: >-
            Default supplier information for the article combination. See
            ApiArticleCombinationSupplierDefaultReadDto for details.
        defaultItemSaleRate:
          $ref: '#/components/schemas/ApiItemSaleRateListReadDto'
          description: >-
            Default sale rate information for the article combination. See
            ApiItemSaleRateListReadDto for details.
        defaultEan:
          $ref: '#/components/schemas/ApiEanListReadDto'
          description: >-
            Default EAN codes for the article combination. See ApiEanListReadDto
            for details.
        article:
          type: string
          description: Article code.
          example: ART-00123
        articleId:
          type: integer
          format: int32
          description: Unique identifier of the article.
          example: 1024
        articleType:
          $ref: '#/components/schemas/ApiArticleTypeEnum'
          description: Type of the article.
          example: PHYSICAL
        unitWarehouseId:
          type: integer
          format: int32
          description: Warehouse unit identifier where the article is stored.
          example: 15
        articleDescription:
          type: string
          description: Description of the article.
          example: Men's cotton T-shirt, size L
        attribute1:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: >-
            First attribute of the article. See ApiAttributeListReadDto for
            details.
        attribute2:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: >-
            Second attribute of the article. See ApiAttributeListReadDto for
            details.
        attribute3:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: >-
            Third attribute of the article. See ApiAttributeListReadDto for
            details.
        attribute4:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: >-
            Fourth attribute of the article. See ApiAttributeListReadDto for
            details.
        attribute5:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: >-
            Fifth attribute of the article. See ApiAttributeListReadDto for
            details.
        seasonId:
          type: integer
          format: int32
          description: Season identifier associated with the article.
          example: 2024
        season:
          type: string
          description: Season name or description.
          example: Spring/Summer 2024
        category1:
          type: string
          description: First category of the article.
          example: Clothing
        category2:
          type: string
          description: Second category of the article.
          example: Men's Wear
        category3:
          type: string
          description: Third category of the article.
          example: T-Shirts
        category4:
          type: string
          description: Fourth category of the article.
          example: Casual
        description:
          type: string
          description: Detailed description of the article combination.
          example: Short-sleeve cotton T-shirt with round neck.
        active:
          type: boolean
          description: Indicates if the article is active.
          example: true
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type applied to the article.
          example: STANDARD
        assortment:
          $ref: '#/components/schemas/ApiAssortmentListReadDto'
          description: >-
            Assortment details for the article. See ApiAssortmentListReadDto for
            details.
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: >-
            Size range details for the article. See ApiSizeRangeListReadDto for
            details.
        serialNumberControl:
          type: boolean
          description: Indicates if serial number control is enabled for the article.
          example: false
        batchControl:
          type: boolean
          description: Indicates if batch control is enabled for the article.
          example: true
      required:
        - id
    ApiArticleCombinationPictureListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        token:
          type: string
        url:
          type: string
        pictureFileName:
          type: string
        pictureFileExtension:
          type: string
        viewOrder:
          type: integer
          format: int32
      required:
        - id
        - pictureFileExtension
        - pictureFileName
        - token
        - url
        - viewOrder
    ApiArticleCombinationReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        articleId:
          type: integer
          format: int32
          description: ID of the article
          example: 1001
        attribute1:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: First attribute of the article combination
        attribute2:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: Second attribute of the article combination
        attribute3:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: Third attribute of the article combination
        attribute4:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: Fourth attribute of the article combination
        attribute5:
          $ref: '#/components/schemas/ApiAttributeListReadDto'
          description: Fifth attribute of the article combination
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Warehouse associated with the article combination
        active:
          type: boolean
          description: Indicates if the article combination is active
          example: true
        creationDate:
          type: string
          format: date
          description: Date when the article combination was created
          example: '2025-01-15'
        inactiveDate:
          type: string
          format: date
          description: Date when the article combination became inactive
          example: '2025-12-31'
        ean:
          type: string
          description: EAN code of the article
          example: 8412345678901
          maxLength: 20
          minLength: 0
        minimum:
          type: number
          description: Minimum quantity allowed
          example: 10.5
        articleCombinationSuppliers:
          type: array
          items:
            $ref: '#/components/schemas/ApiArticleCombinationSupplierReadDto'
        itemSaleRates:
          type: array
          items:
            $ref: '#/components/schemas/ApiItemSaleRateReadDto'
        articleCombinationSizeRanges:
          type: array
          items:
            $ref: '#/components/schemas/ApiArticleCombinationSizeRangeReadDto'
        season:
          $ref: '#/components/schemas/ApiSeasonListReadDto'
        manufactured:
          type: boolean
        maxProductionOrder:
          type: integer
          format: int32
        maxSizePrint:
          type: integer
          format: int32
        bought:
          type: boolean
        dontOrder:
          type: boolean
        description:
          type: string
          maxLength: 100
          minLength: 0
        observations:
          type: string
        family:
          $ref: '#/components/schemas/ApiFamilyListReadDto'
        activeB2B:
          type: boolean
        availabilityB2B:
          $ref: '#/components/schemas/ApiB2BAvailabilityEnum'
        visibleDateB2B:
          type: string
          format: date
        dtoB2B:
          type: integer
          format: int32
        activeMobility:
          type: boolean
        activeTPV:
          type: boolean
        activePrestashop:
          type: boolean
        maximum:
          type: number
        tariffItem:
          type: string
        pictures:
          type: array
          items:
            $ref: '#/components/schemas/ApiArticleCombinationPictureListReadDto'
      required:
        - id
    ApiArticleCombinationSizeRangeReadDto:
      type: object
      description: Article combination size range information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        inactive:
          type: boolean
          description: Indicates if the size range is inactive
          example: false
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: Size range information
        assortment:
          $ref: '#/components/schemas/ApiAssortmentListReadDto'
          description: Assortment information
        height:
          type: number
          description: Height of the article in this size range
          example: 10.5
        width:
          type: number
          description: Width of the article in this size range
          example: 20.3
        depth:
          type: number
          description: Depth of the article in this size range
          example: 15.7
        grossWeight:
          type: number
          description: Gross weight of the article in this size range
          example: 500.25
        netWeight:
          type: number
          description: Net weight of the article in this size range
          example: 450.75
        ean:
          type: string
          description: EAN code of the article in this size range
          example: 8412345678901
      required:
        - id
    ApiArticleCombinationSupplierDefaultReadDto:
      type: object
      description: Default supplier information for an article combination
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        supplierId:
          type: integer
          format: int32
          description: ID of the supplier
          example: 123
        supplierCode:
          type: string
          description: Code of the supplier
          example: SUP001
        supplierCommercialName:
          type: string
          description: Commercial name of the supplier
          example: Supplier Company Inc.
        articleCombinationId:
          type: integer
          format: int32
          description: ID of the article combination
          example: 456
        articleCombinationDescription:
          type: string
          description: Description of the article combination
          example: Red T-shirt Size M
        usual:
          type: boolean
          description: Indicates if this is the usual supplier
          example: true
        purchasePrice:
          type: number
          description: Purchase price from this supplier
          example: 25.99
        unitTypeDescription:
          type: string
          description: Description of the unit type
          example: Units
        sizeRangeId:
          type: integer
          format: int32
          description: ID of the size range
          example: 789
        sizeRangeDescription:
          type: string
          description: Description of the size range
          example: Adult sizes
        changeDate:
          type: string
          format: date
          description: Date of the last price change
          example: '2023-05-15'
        previousPrice:
          type: number
          description: Previous purchase price
          example: 24.5
        netPrice:
          type: number
          description: Net price without taxes
          example: 21.48
        netPriceInCompanyCurrency:
          type: number
          description: Net price in company currency
          example: 19.5
        bomPrice:
          type: number
          description: Bill of materials price
          example: 18.75
        bomPriceInCompanyCurrency:
          type: number
          description: Bill of materials price in company currency
          example: 17
        minimumPurchase:
          type: number
          description: Minimum purchase quantity
          example: 10
        yourReference:
          type: string
          description: Supplier's reference for this article
          example: REF-T101
          maxLength: 100
          minLength: 0
        discount:
          type: number
          description: Discount percentage applied
          example: 5
        waitTime:
          type: integer
          format: int32
          description: Wait time in days for delivery
          example: 5
        observations:
          type: string
          description: Additional observations
          example: Special packaging required
        futurePrice:
          type: number
          description: Future price agreed with supplier
          example: 23.99
        multiplesOf:
          type: integer
          format: int32
          description: Order quantity must be multiple of this value
          example: 5
      required:
        - id
    ApiArticleCombinationSupplierReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        supplier:
          $ref: '#/components/schemas/ApiSupplierListReadDto'
          description: Supplier details. See ApiSupplierListReadDto
        usual:
          type: boolean
          description: Indicates if this supplier is the usual one
          example: true
        purchasePrice:
          type: number
          description: Purchase price from the supplier
          example: 12.34
        unitType:
          $ref: '#/components/schemas/ApiUnitTypeReadDto'
          description: Unit type information. See ApiUnitTypeReadDto
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: Size range information. See ApiSizeRangeListReadDto
        changeDate:
          type: string
          format: date
          description: Date of the last change
          example: '2025-01-15'
        previousPrice:
          type: number
          description: Previous purchase price
          example: 11.5
        netPrice:
          type: number
          description: Net price
          example: 13
        netPriceInCompanyCurrency:
          type: number
          description: Net price in company currency
          example: 13.5
        bomPrice:
          type: number
          description: Bill of materials price
          example: 10.1
        bomPriceInCompanyCurrency:
          type: number
          description: Bill of materials price in company currency
          example: 10.5
        minimumPurchase:
          type: number
          description: Minimum purchase quantity
          example: 100
        yourReference:
          type: string
          description: Reference used by the supplier
          example: SUPPLIER-REF-123
          maxLength: 100
          minLength: 0
        discount:
          type: number
          description: Discount applied by the supplier (percentage)
          example: 2.5
        waitTime:
          type: integer
          format: int32
          description: Supplier wait time in days
          example: 30
        observations:
          type: string
          description: Observations and comments
          example: Urgent orders in spring season
        futurePrice:
          type: number
          description: Future purchase price
          example: 14
        multiplesOf:
          type: integer
          format: int32
          description: Order must be placed in multiples of this quantity
          example: 10
      required:
        - id
    ApiArticleFileListReadDto:
      type: object
      description: List of files associated with an article
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        token:
          type: string
          description: File token (unique identifier).
          example: 729eda1d03b34634b8e3c81a8b2d0974
        url:
          type: string
          description: URL to access or download the file.
          example: https://apihost.com/file/729eda1d03b34634b8e3c81a8b2d0974
        fileName:
          type: string
          description: File name (with extension).
          example: invoice_2023.pdf
        fileExtension:
          type: string
          description: File extension.
          example: pdf
        fileSize:
          type: integer
          format: int64
          description: File size in bytes.
          example: 1048576
        modifiedOn:
          type: string
          format: date-time
          description: Date and time the file was last modified (ISO8601).
          example: '2024-08-07T18:10:55'
      required:
        - fileExtension
        - fileName
        - id
        - modifiedOn
        - token
        - url
    ApiArticleObservationListReadDto:
      type: object
      description: List of observations associated with an article
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        title:
          type: string
        description:
          type: string
        modifiedOn:
          type: string
          format: date-time
      required:
        - description
        - id
        - modifiedOn
        - title
    ApiArticleReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Code of the article
          example: ART123
          maxLength: 20
          minLength: 0
        description:
          type: string
          description: Description of the article
          example: Premium leather jacket
          maxLength: 100
          minLength: 0
        vatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type of the article
          example: STANDARD
        height:
          type: number
          description: Height of the article
          example: 10.5
        width:
          type: number
          description: Width of the article
          example: 20.3
        depth:
          type: number
          description: Depth of the article
          example: 5.2
        grossWeight:
          type: number
          description: Gross weight of the article
          example: 1.75
        netWeight:
          type: number
          description: Net weight of the article
          example: 1.5
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Warehouse associated with the article
        accumulateWarehouse:
          type: boolean
          description: Indicates if the warehouse accumulates stock
          example: true
        unitWarehouse:
          $ref: '#/components/schemas/ApiUnitTypeListReadDto'
          description: Unit type used in the warehouse
        salesAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Sales account associated with the article
        purchasingAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Purchasing account associated with the article
        baseCombination:
          $ref: '#/components/schemas/ApiArticleCombinationDefaultReadDto'
          description: Base combination of the article
        articleCombinations:
          type: array
          description: List of article combinations
          items:
            $ref: '#/components/schemas/ApiArticleCombinationReadDto'
        observations:
          type: array
          description: List of observations about the article
          items:
            $ref: '#/components/schemas/ApiArticleObservationListReadDto'
        files:
          type: array
          description: List of files associated with the article
          items:
            $ref: '#/components/schemas/ApiArticleFileListReadDto'
        tags:
          type: array
          description: List of tags associated with the article
          example:
            - premium
            - leather
            - fashion
          items:
            type: string
        showAttribute1:
          type: boolean
          description: Indicates if attribute 1 should be displayed
          example: true
        showAttribute2:
          type: boolean
          description: Indicates if attribute 2 should be displayed
          example: false
        showAttribute3:
          type: boolean
          description: Indicates if attribute 3 should be displayed
          example: false
        showAttribute4:
          type: boolean
          description: Indicates if attribute 4 should be displayed
          example: false
        showAttribute5:
          type: boolean
          description: Indicates if attribute 5 should be displayed
          example: false
        stockQuantity:
          type: number
          description: Current stock quantity
          example: 100.5
        salesQuantity:
          type: number
          description: Sales quantity
          example: 75
        cancelledQuantity:
          type: number
          description: Cancelled quantity
          example: 5
        outboundQuantity:
          type: number
          description: Outbound quantity
          example: 80
        pendingDeliveryQuantity:
          type: number
          description: Pending delivery quantity
          example: 25
        purchaseQuantity:
          type: number
          description: Purchase quantity
          example: 150
        providerCancelledQuantity:
          type: number
          description: Provider cancelled quantity
          example: 10
        inboundQuantity:
          type: number
          description: Inbound quantity
          example: 120
        pendingReceiptQuantity:
          type: number
          description: Pending receipt quantity
          example: 30
        description2:
          type: string
          description: Secondary description of the article
          example: Available in multiple colors
          maxLength: 100
          minLength: 0
        articleType:
          $ref: '#/components/schemas/ApiArticleTypeEnum'
          description: Type of the article
          example: PRODUCT
        phytosanitaryProduct:
          $ref: '#/components/schemas/ApiPhytosanitaryProductListReadDto'
          description: Phytosanitary product associated with the article
        batchControl:
          type: boolean
          description: Indicates if batch control is enabled for the article
          example: true
        serialNumberControl:
          type: boolean
          description: Indicates if serial number control is enabled for the article
          example: false
        category1:
          $ref: '#/components/schemas/ApiCategoryListReadDto'
          description: Primary category of the article
        category2:
          $ref: '#/components/schemas/ApiCategoryListReadDto'
          description: Secondary category of the article
        category3:
          $ref: '#/components/schemas/ApiCategoryListReadDto'
          description: Tertiary category of the article
        category4:
          $ref: '#/components/schemas/ApiCategoryListReadDto'
          description: Quaternary category of the article
      required:
        - articleType
        - code
        - id
        - vatType
        - warehouse
    ApiCategoryListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Category code.
          example: FOOTWEAR
          maxLength: 10
          minLength: 0
        description:
          type: string
          description: Description of the category.
          example: Footwear and shoes
          maxLength: 100
          minLength: 0
      required:
        - code
        - description
        - id
    ApiEanEntryTypeEnum:
      type: string
      enum:
        - ALL
        - COMBINATION
        - SIZE_RANGE
        - SIZE
    ApiEanListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        article:
          type: string
          maxLength: 20
          minLength: 0
        attribute1:
          type: string
          maxLength: 20
          minLength: 0
        attribute2:
          type: string
          maxLength: 20
          minLength: 0
        attribute3:
          type: string
          maxLength: 20
          minLength: 0
        attribute4:
          type: string
          maxLength: 20
          minLength: 0
        attribute5:
          type: string
          maxLength: 20
          minLength: 0
        width:
          type: string
        assortment:
          type: string
          maxLength: 5
          minLength: 0
        size:
          type: string
          maxLength: 5
          minLength: 0
        sizeRange:
          type: string
        eanCode:
          type: string
          maxLength: 50
          minLength: 0
        upca:
          type: string
          maxLength: 50
          minLength: 0
        reference:
          type: string
          maxLength: 50
          minLength: 0
        articleCombinationId:
          type: integer
          format: int32
        sizeRangeId:
          type: integer
          format: int32
        sizeRangeDetailId:
          type: integer
          format: int32
        type:
          $ref: '#/components/schemas/ApiEanEntryTypeEnum'
        sinactive:
          type: boolean
        cactive:
          type: boolean
      required:
        - id
    ApiFamilyListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Unique family code.
          example: FAM001
        description:
          type: string
          description: Family description.
          example: Main textile family
      required:
        - code
        - description
        - id
    ApiItemSaleRateListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        rateId:
          type: integer
          format: int32
          description: Rate identifier.
          example: 10
        rateDescription:
          type: string
          description: Description of the rate.
          example: Spring 2025 Sale
        currencyDescription:
          type: string
          description: Description of the currency for the rate.
          example: Euro
        currencyNomenclature:
          type: string
          description: Currency code or nomenclature (ISO, etc).
          example: EUR
        unitWarehouseDescription:
          type: string
          description: Description of the unit warehouse.
          example: Main
        articleCombinationId:
          type: integer
          format: int32
          description: Identifier of the article combination.
          example: 25
        articleCombinationDescription:
          type: string
          description: Description of the article combination.
          example: Pack 3xBlue
        sizeRangeId:
          type: integer
          format: int32
          description: ID of the size range.
          example: 5
        sizeRangeDescription:
          type: string
          description: Description of the size range.
          example: Sizes S-L
        price:
          type: number
          description: Price for the rate.
          example: 22.5
        price2:
          type: number
          description: Secondary price for the rate.
          example: 21.75
      required:
        - id
    ApiItemSaleRateReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        rate:
          $ref: '#/components/schemas/ApiRateListReadDto'
          description: Rate information. For structure, see ApiRateListReadDto.java
        price:
          type: number
          description: Unit price for this item and rate.
          example: 29.95
        price2:
          type: number
          description: Secondary unit price for this item and rate.
          example: 27.45
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: >-
            Size range information. For structure, see
            ApiSizeRangeListReadDto.java
      required:
        - id
    ApiPhytosanitaryProductListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
        description:
          type: string
        headline:
          type: string
        form:
          type: string
        cancellationDate:
          type: string
          format: date
        saleDeadline:
          type: string
          format: date
      required:
        - id
    ApiRateListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Unique code for the rate.
          example: R-SALE-2024
          maxLength: 30
          minLength: 0
        seasonDescription:
          type: string
          description: Description of the season associated with the rate.
          example: Spring 2024
          maxLength: 50
          minLength: 0
        currencyId:
          type: integer
          format: int32
          description: ID for the currency associated with the rate.
          example: 978
        currencyDescription:
          type: string
          description: Description of the currency for the rate.
          example: Euro
          maxLength: 50
          minLength: 0
        currencyNomenclature:
          type: string
          description: Nomenclature or code of the currency.
          example: EUR
        motherRate:
          type: string
          description: Mother rate description.
          example: General Rate
          maxLength: 100
          minLength: 0
        active:
          type: boolean
          description: Indicates whether the rate is active.
          example: true
        rateCodeId:
          type: integer
          format: int32
          description: Identifier for the rate code.
          example: 12
      required:
        - code
        - currencyDescription
        - id
        - motherRate
    ApiSupplierListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: integer
          format: int32
        cif:
          type: string
        commercialName:
          type: string
        name:
          type: string
        address:
          type: string
        country:
          type: string
        state:
          type: string
        postalCode:
          type: string
        city:
          type: string
        phone1:
          type: string
        phone2:
          type: string
        currency:
          type: string
        currencyNomenclature:
          type: string
        currencyChangeValue:
          type: number
        active:
          type: boolean
        email:
          type: string
        shippingTerm:
          type: integer
          format: int32
        tags:
          type: array
          items:
            type: string
        vatDescription:
          type: string
        discount1:
          type: number
        paymentMethodId:
          type: integer
          format: int32
        paymentMethod:
          type: string
        currencyCode:
          type: string
        creationDate:
          type: string
          format: date
        inactiveDate:
          type: string
          format: date
        countryDescription:
          type: string
        stateDescription:
          type: string
        bankName:
          type: string
        account:
          type: string
        picture:
          type: string
        pictureToken:
          type: string
        modifiedOn:
          type: string
          format: date-time
        web:
          type: string
      required:
        - cif
        - code
        - commercialName
        - id
    ApiUnitIsoCodeEnum:
      type: string
      description: Defines the unit ISO codes.
      enum:
        - DMK
        - FOT
        - FTK
        - LM
        - MIL
        - MTK
        - MTR
        - NMP
        - PR
        - B5
        - C62
      example: MTR
    ApiUnitTypeListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          maxLength: 10
          minLength: 0
        description:
          type: string
          maxLength: 50
          minLength: 0
        isoCode:
          $ref: '#/components/schemas/ApiUnitIsoCodeEnum'
      required:
        - code
        - description
        - id
    ApiUnitTypeReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          maxLength: 10
          minLength: 0
        description:
          type: string
          maxLength: 50
          minLength: 0
        numOrder:
          type: string
          maxLength: 6
          minLength: 0
        volume:
          type: number
        isoCode:
          $ref: '#/components/schemas/ApiUnitIsoCodeEnum'
      required:
        - code
        - description
        - id
    ApiCalculationMethodEnum:
      type: string
      description: Defines the calculation methods used in the application.
      enum:
        - BOM_COST
        - PURCHASE_PRICE
        - MOTHER_RATE
      example: BOM_COST
    ApiRateWriteDto:
      type: object
      properties:
        code:
          type: string
          maxLength: 30
          minLength: 0
        season:
          type: integer
          format: int32
        currency:
          type: integer
          format: int32
        calculationMethod:
          $ref: '#/components/schemas/ApiCalculationMethodEnum'
        motherRate:
          type: integer
          format: int32
        percentageIncrease:
          type: number
        amountToAdd:
          type: number
        roundingType:
          $ref: '#/components/schemas/ApiRoundingTypeEnum'
        roundingRate:
          type: number
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
        active:
          type: boolean
        taxesIncluded:
          type: boolean
        finalPriceCalculations:
          type: boolean
      required:
        - code
        - currency
    ApiRoundingTypeEnum:
      type: string
      description: Defines the rounding types.
      enum:
        - TERMINATION
        - MULTIPLE
      example: TERMINATION
    ApiRateReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
        season:
          $ref: '#/components/schemas/ApiSeasonListReadDto'
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
        calculationMethod:
          $ref: '#/components/schemas/ApiCalculationMethodEnum'
        motherRate:
          $ref: '#/components/schemas/ApiRateListReadDto'
        percentageIncrease:
          type: number
        amountToAdd:
          type: number
        roundingType:
          $ref: '#/components/schemas/ApiRoundingTypeEnum'
        roundingRate:
          type: number
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
        active:
          type: boolean
        rateCode:
          $ref: '#/components/schemas/ApiRateCodeListReadDto'
        taxesIncluded:
          type: boolean
        finalPriceCalculations:
          type: boolean
      required:
        - code
        - id
    ApiQuoteLineDetailWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier for this line detail.
          example: 200
        sizeRangeDetail:
          type: integer
          format: int32
          description: Identifier for the size range detail.
          example: 15
        width:
          type: integer
          format: int32
          description: Width identifier.
          example: 12
        quantityPerPackage:
          type: number
          description: Quantity per package for this detail.
          example: 9.3
    ApiQuoteLineWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the line.
          example: 1001
        articleCombination:
          type: integer
          format: int32
          description: Identifier of the related article combination.
          example: 200
        sizeRange:
          type: integer
          format: int32
          description: Identifier of the size range associated with the article.
          example: 15
        assortment:
          type: integer
          format: int32
          description: Identifier of the assortment to which the article belongs.
          example: 8
        lineNumber:
          type: integer
          format: int32
          description: Sequential number of the line within the document.
          example: 1
        articleDescription:
          type: string
          description: Description of the article in the line.
          example: Cotton T-shirt - Blue
        packages:
          type: integer
          format: int32
          description: Number of packages for this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity of items per package.
          example: 12
        price:
          type: number
          description: Unit price of the article.
          example: 19.99
        lineObservations:
          type: string
          description: Additional observations or comments about this line.
          example: Special discount applied.
        details:
          type: array
          description: >-
            List of line detail objects. See ApiBaseLineDetailWriteDto for
            details.
          items:
            $ref: '#/components/schemas/ApiQuoteLineDetailWriteDto'
        concept:
          type: string
        assortedPackages:
          type: boolean
        packaging:
          type: integer
          format: int32
        discount:
          type: number
        rsp:
          type: number
        reference:
          type: string
          maxLength: 50
          minLength: 0
        serviceDate:
          type: string
          format: date
        noAccumulateWarehouse:
          type: boolean
        warehouse:
          type: integer
          format: int32
        brand:
          type: integer
          format: int32
        customCommission:
          type: boolean
        representative1:
          type: integer
          format: int32
        commissionType1:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
        commission1:
          type: number
        representative2:
          type: integer
          format: int32
        commissionType2:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
        commission2:
          type: number
        representative3:
          type: integer
          format: int32
        commissionType3:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
        commission3:
          type: number
        freeDescription1:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription2:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription3:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription4:
          type: string
          maxLength: 50
          minLength: 0
        freeDescription5:
          type: string
          maxLength: 50
          minLength: 0
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
        vatPercentage:
          type: number
        surchargePercentage:
          type: number
        disbursement:
          type: boolean
    ApiQuoteStatusEnum:
      type: string
      enum:
        - PENDING_ACCEPTANCE
        - REJECTED
        - ACCEPTED
    ApiQuoteWriteDto:
      type: object
      description: Quote information for creating sales proposals
      properties:
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1050
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2025-08-07'
        quantityTotal:
          type: number
          description: Total quantity of all document lines.
          example: 120.5
        observations:
          type: string
          description: Free text for header observations.
          example: Deliver to warehouse B
        lines:
          type: array
          description: List of document lines. For structure, see ApiBaseLineWriteDto.java
          items:
            $ref: '#/components/schemas/ApiQuoteLineWriteDto'
        id:
          type: integer
          format: int32
          description: Unique identifier of the quote
          example: 1
        customerVatType:
          type: integer
          format: int32
          description: Customer VAT type identifier
          example: 5
        billingSeries:
          type: integer
          format: int32
          description: Billing series identifier
          example: 3
        shippingTerm:
          type: integer
          format: int32
          description: Shipping term identifier
          example: 2
        shippingAmount:
          type: number
          description: Shipping amount
          example: 25.5
        shippingVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for shipping
          example: GENERAL
        shippingVatPercentage:
          type: number
          description: VAT percentage for shipping
          example: 21
        shippingSurchargePercentage:
          type: number
          description: Surcharge percentage for shipping
          example: 5
        currency:
          type: integer
          format: int32
          description: Currency identifier
          example: 1
        change:
          type: number
          description: Exchange rate
          example: 1
        rateCode:
          type: integer
          format: int32
          description: Rate code identifier
          example: 2
        customerAddress:
          type: integer
          format: int32
          description: Customer address identifier
          example: 10
        status:
          $ref: '#/components/schemas/ApiQuoteStatusEnum'
          description: Status of the quote
          example: DRAFT
        validityDate:
          type: string
          format: date
          description: Date until which the quote is valid
          example: '2024-12-31'
        serviceDate:
          type: string
          format: date
          description: Service date
          example: '2024-01-15'
        manufacturingDate:
          type: string
          format: date
          description: Manufacturing date
          example: '2024-01-10'
        valueDate:
          type: string
          format: date
          description: Value date
          example: '2024-01-20'
        season:
          type: integer
          format: int32
          description: Season identifier
          example: 3
        warehouse:
          type: integer
          format: int32
          description: Warehouse identifier
          example: 5
        representative1:
          type: integer
          format: int32
          description: Primary representative identifier
          example: 2
        commissionType1:
          type: string
          description: Type of commission for primary representative
          example: PERCENTAGE
          maxLength: 20
          minLength: 0
        commission1:
          type: number
          description: Commission amount for primary representative
          example: 5
        representative2:
          type: integer
          format: int32
          description: Secondary representative identifier
          example: 3
        commissionType2:
          type: string
          description: Type of commission for secondary representative
          example: FIXED
          maxLength: 20
          minLength: 0
        commission2:
          type: number
          description: Commission amount for secondary representative
          example: 100
        representative3:
          type: integer
          format: int32
          description: Tertiary representative identifier
          example: 4
        commissionType3:
          type: string
          description: Type of commission for tertiary representative
          example: PERCENTAGE
          maxLength: 20
          minLength: 0
        commission3:
          type: number
          description: Commission amount for tertiary representative
          example: 2.5
        reference:
          type: string
          description: Reference number
          example: Q-2024-001
          maxLength: 50
          minLength: 0
        paymentMethod:
          type: integer
          format: int32
          description: Payment method identifier
          example: 3
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days
          example: 30
        daysTerm:
          type: integer
          format: int32
          description: Payment term in days
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms
          example: 3
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Type of proximity
          example: LOCAL
        iban:
          type: string
          description: IBAN for payments
          example: ES9121000418450200051332
          maxLength: 50
          minLength: 0
        discount1:
          type: number
          description: First discount percentage
          example: 10
        discount2:
          type: number
          description: Second discount percentage
          example: 5
        discount3:
          type: number
          description: Third discount percentage
          example: 3
        discount4:
          type: number
          description: Fourth discount percentage
          example: 2
        discountPp:
          type: number
          description: PP discount percentage
          example: 5
        billingCompany:
          type: integer
          format: int32
          description: Billing company identifier
          example: 1
        withholding:
          type: number
          description: Withholding percentage
          example: 15
        packages:
          type: integer
          format: int32
          description: Number of packages
          example: 5
        grossWeight:
          type: number
          description: Gross weight in kilograms
          example: 25.5
        netWeight:
          type: number
          description: Net weight in kilograms
          example: 23
        volume:
          type: number
          description: Volume in cubic meters
          example: 0.5
        invoiceEditObservations:
          type: string
          description: Observations for invoice editing
          example: Special packaging required
        tags:
          type: array
          description: Tags associated with the quote
          example:
            - urgent
            - priority
          items:
            type: string
      required:
        - customerAddress
    ApiLastInfoResponseDto:
      type: object
      description: List of related invoices
      properties:
        id:
          type: integer
          format: int32
        billingSeriesCode:
          type: string
        number:
          type: integer
        documentDate:
          type: string
          format: date
        customerName:
          type: string
        total:
          type: number
        status:
          type: string
    ApiQuoteLineDetailReadDto:
      type: object
      description: Quote line detail information for sales proposals
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        widthId:
          type: integer
          format: int32
          description: Width identifier.
          example: 200
        widthCode:
          type: string
          description: Width code.
          example: W-35
        quantitiesPerSize:
          type: array
          description: >-
            Quantities per size. For structure see
            ApiBaseLineDetailSizeReadDto.java
          items:
            $ref: '#/components/schemas/ApiQuoteLineDetailSizeReadDto'
      required:
        - id
    ApiQuoteLineDetailSizeReadDto:
      type: object
      description: Quote line detail size information for sales proposals
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        sizeRangeDetailId:
          type: integer
          format: int32
          description: Size detail identifier.
          example: 15
        sizeRangeDetailSize:
          type: string
          description: Size code within the range.
          example: M
        sizeRangeSizeOrder:
          type: integer
          format: int32
          description: Order value of the size in the range.
          example: 2
        quantityPerPackage:
          type: number
          description: Quantity per package for this size.
          example: 8
        quantityDetail:
          type: number
          description: Total quantity for this size.
          example: 24
        availability:
          type: number
          description: Available quantity for this size.
          example: 10
      required:
        - id
        - sizeRangeDetailId
        - sizeRangeDetailSize
    ApiQuoteLineReadDto:
      type: object
      description: Quote line information for sales proposals
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        lineNumber:
          type: integer
          format: int32
          description: Line number within the document.
          example: 1
        articleCombination:
          $ref: '#/components/schemas/ApiArticleCombinationListReadDto'
          description: >-
            Article combination info. See ApiArticleCombinationListReadDto.java
            for the structure.
        attributesDescription:
          type: string
          description: Additional attributes description for the line.
          example: 'Color: Red, Size: L'
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: >-
            Size range information. See ApiSizeRangeListReadDto.java for the
            structure.
        assortment:
          $ref: '#/components/schemas/ApiAssortmentListReadDto'
          description: >-
            Assortment information. See ApiAssortmentListReadDto.java for the
            structure.
        articleDescription:
          type: string
          description: Description of the article.
          example: Cotton T-Shirt
        packages:
          type: integer
          format: int32
          description: Number of packages in this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity per package for this line.
          example: 5
        quantityLine:
          type: number
          description: Total quantity for this line.
          example: 15
        price:
          type: number
          description: Unit price for this article line.
          example: 12.95
        lineObservations:
          type: string
          description: Observations for this document line.
          example: Deliver before 9 AM
        details:
          type: array
          description: >-
            List of line details. See ApiBaseLineDetailReadDto.java for the
            structure.
          items:
            $ref: '#/components/schemas/ApiQuoteLineDetailReadDto'
        concept:
          type: string
          description: Concept or description of the line
          example: Product X - Premium Quality
        assortedPackages:
          type: boolean
          description: Flag indicating if packages are assorted
          example: false
        packaging:
          $ref: '#/components/schemas/ApiArticleListReadDto'
          description: Packaging article information
        discount:
          type: number
          description: Discount percentage
          example: 10
        rsp:
          type: number
          description: Recommended selling price
          example: 150
        reference:
          type: string
          description: Reference number
          example: REF-001
          maxLength: 50
          minLength: 0
        serviceDate:
          type: string
          format: date
          description: Service date
          example: '2024-01-15'
        noAccumulateWarehouse:
          type: boolean
          description: Flag indicating no warehouse accumulation
          example: false
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Warehouse information
        brand:
          $ref: '#/components/schemas/ApiBrandListReadDto'
          description: Brand information
        customCommission:
          type: boolean
          description: Flag indicating custom commission
          example: true
        representative1:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Primary representative information
        commissionType1:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for primary representative
          example: PERCENTAGE
        commission1:
          type: number
          description: Commission amount for primary representative
          example: 5
        representative2:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Secondary representative information
        commissionType2:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for secondary representative
          example: FIXED
        commission2:
          type: number
          description: Commission amount for secondary representative
          example: 100
        representative3:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Tertiary representative information
        commissionType3:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for tertiary representative
          example: PERCENTAGE
        commission3:
          type: number
          description: Commission amount for tertiary representative
          example: 2.5
        freeDescription1:
          type: string
          description: Free description field 1
          example: Custom field 1
          maxLength: 50
          minLength: 0
        freeDescription2:
          type: string
          description: Free description field 2
          example: Custom field 2
          maxLength: 50
          minLength: 0
        freeDescription3:
          type: string
          description: Free description field 3
          example: Custom field 3
          maxLength: 50
          minLength: 0
        freeDescription4:
          type: string
          description: Free description field 4
          example: Custom field 4
          maxLength: 50
          minLength: 0
        freeDescription5:
          type: string
          description: Free description field 5
          example: Custom field 5
          maxLength: 50
          minLength: 0
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for the article
          example: GENERAL
        vatPercentage:
          type: number
          description: VAT percentage
          example: 21
        surchargePercentage:
          type: number
          description: Surcharge percentage
          example: 5
        grossAmount:
          type: number
          description: Gross amount
          example: 1000
        grossAmountCompanyCurrency:
          type: number
          description: Gross amount in company currency
          example: 1000
        netAmount:
          type: number
          description: Net amount
          example: 900
        netAmountCompanyCurrency:
          type: number
          description: Net amount in company currency
          example: 900
        totalLine:
          type: number
          description: Total line amount
          example: 1114.5
        totalLineCompanyCurrency:
          type: number
          description: Total line amount in company currency
          example: 1114.5
        disbursement:
          type: boolean
          description: Flag indicating if disbursement is included
          example: true
        quoteId:
          type: integer
          format: int32
          description: Quote identifier
          example: 100
        quoteNumber:
          type: integer
          description: Quote number
          example: 1001
        quoteDocumentDate:
          type: string
          format: date
          description: Quote document date
          example: '2024-01-15'
        quoteBillingSeriesCode:
          type: string
          description: Quote billing series code
          example: Q
        customerId:
          type: integer
          format: int32
          description: Customer identifier
          example: 50
        customerName:
          type: string
          description: Customer name
          example: John Doe
      required:
        - articleCombination
        - id
        - lineNumber
    ApiQuoteReadDto:
      type: object
      description: Quote information for sales proposals
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1001
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2024-08-07'
        quantityTotal:
          type: number
          description: Total quantity for all document lines.
          example: 200.5
        observations:
          type: string
          description: Free text field for any observations related to the document.
          example: Customer requested urgent delivery
        lines:
          type: array
          description: >-
            List of detail lines for the document. For structure see:
            ApiBaseLineReadDto.java
          items:
            $ref: '#/components/schemas/ApiQuoteLineReadDto'
        change:
          type: number
          description: Change applied to the invoice or document
          example: 0.5
        discount1:
          type: number
          description: First discount percentage
          example: 5
        discount2:
          type: number
          description: Second discount percentage
          example: 2
        discountAmountTotal:
          type: number
          description: Total discount amount
          example: 100
        discountAmountTotalCompanyCurrency:
          type: number
          description: Total discount amount in company currency
          example: 95
        discountPp:
          type: number
          description: Prompt payment discount percentage
          example: 3
        discountPpAmountTotal:
          type: number
          description: Total prompt payment discount amount
          example: 15
        discountPpAmountTotalCompanyCurrency:
          type: number
          description: Total prompt payment discount amount in company currency
          example: 14
        grossAmountTotal:
          type: number
          description: Gross total amount
          example: 1200
        grossAmountTotalCompanyCurrency:
          type: number
          description: Gross total amount in company currency
          example: 1150
        netAmountTotal:
          type: number
          description: Net total amount
          example: 1100
        netAmountTotalCompanyCurrency:
          type: number
          description: Net total amount in company currency
          example: 1080
        vatAmountTotal:
          type: number
          description: Total VAT amount
          example: 230
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency
          example: 225
        surchargeAmountTotal:
          type: number
          description: Total surcharge amount
          example: 20
        surchargeAmountTotalCompanyCurrency:
          type: number
          description: Total surcharge amount in company currency
          example: 18
        withholding:
          type: number
          description: Withholding percentage
          example: 2
        withholdingAmountTotal:
          type: number
          description: Total withholding amount
          example: 22
        withholdingAmountTotalCompanyCurrency:
          type: number
          description: Total withholding amount in company currency
          example: 21
        total:
          type: number
          description: Total document amount
          example: 1300
        totalCompanyCurrency:
          type: number
          description: Total document amount in company currency
          example: 1280
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount
          example: 50
        disbursementAmountTotalCompanyCurrency:
          type: number
          description: Total disbursement amount in company currency
          example: 48
        customerVatType:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
          description: Customer VAT type information
        billingSeries:
          $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
          description: Billing series information
        shippingTerm:
          $ref: '#/components/schemas/ApiShippingTermListReadDto'
          description: Shipping terms information
        shippingVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for shipping
          example: GENERAL
        shippingVatPercentage:
          type: number
          description: VAT percentage for shipping
          example: 21
        shippingSurchargePercentage:
          type: number
          description: Surcharge percentage for shipping
          example: 5
        shippingAmount:
          type: number
          description: Shipping amount
          example: 25.5
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: Currency information
        rateCode:
          $ref: '#/components/schemas/ApiRateCodeListReadDto'
          description: Exchange rate code information
        customerAddress:
          $ref: '#/components/schemas/ApiCustomerAddressViewReadDto'
          description: Customer address information
        status:
          $ref: '#/components/schemas/ApiQuoteStatusEnum'
          description: Status of the quote
          example: DRAFT
        validityDate:
          type: string
          format: date
          description: Date until which the quote is valid
          example: '2024-12-31'
        serviceDate:
          type: string
          format: date
          description: Service date
          example: '2024-01-15'
        manufacturingDate:
          type: string
          format: date
          description: Manufacturing date
          example: '2024-01-10'
        valueDate:
          type: string
          format: date
          description: Value date
          example: '2024-01-20'
        season:
          $ref: '#/components/schemas/ApiSeasonListReadDto'
          description: Season information
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Warehouse information
        representative1:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Primary representative information
        commissionType1:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for primary representative
          example: PERCENTAGE
        commission1:
          type: number
          description: Commission amount for primary representative
          example: 5
        representative2:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Secondary representative information
        commissionType2:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for secondary representative
          example: FIXED
        commission2:
          type: number
          description: Commission amount for secondary representative
          example: 100
        representative3:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Tertiary representative information
        commissionType3:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for tertiary representative
          example: PERCENTAGE
        commission3:
          type: number
          description: Commission amount for tertiary representative
          example: 2.5
        reference:
          type: string
          description: Reference number for the quote
          example: Q-2024-001
        paymentMethod:
          $ref: '#/components/schemas/ApiPaymentMethodListReadDto'
          description: Payment method information
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days
          example: 30
        daysTerm:
          type: integer
          format: int32
          description: Payment term in days
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms
          example: 3
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Type of proximity
          example: LOCAL
        iban:
          type: string
          description: IBAN for payments
          example: ES9121000418450200051332
        discount3:
          type: number
          description: Third discount percentage
          example: 3
        discount4:
          type: number
          description: Fourth discount percentage
          example: 2
        billingCompany:
          $ref: '#/components/schemas/ApiCompanyInfoListReadDto'
          description: Billing company information
        packages:
          type: integer
          format: int32
          description: Number of packages
          example: 5
        grossWeight:
          type: number
          description: Gross weight in kilograms
          example: 25.5
        netWeight:
          type: number
          description: Net weight in kilograms
          example: 23
        volume:
          type: number
          description: Volume in cubic meters
          example: 0.5
        invoiceEditObservations:
          type: string
          description: Observations for invoice editing
          example: Special packaging required
        collectedAmount:
          type: number
          description: Collected amount
          example: 1500
        collectedAmountCompanyCurrency:
          type: number
          description: Collected amount in company currency
          example: 1500
        invoices:
          $ref: '#/components/schemas/ApiLastInfoResponseDto'
          description: List of related invoices
        tags:
          type: array
          description: Tags associated with the quote
          example:
            - urgent
            - priority
          items:
            type: string
        receiptCollections:
          $ref: '#/components/schemas/ApiQuoteReceiptCollectionListReadDto'
          description: Receipt collections information
        discount1AmountTotal:
          type: number
          description: Total amount of first discount
          example: 150
        discount1AmountTotalCompanyCurrency:
          type: number
          description: Total amount of first discount in company currency
          example: 150
        discount2AmountTotal:
          type: number
          description: Total amount of second discount
          example: 75
        discount2AmountTotalCompanyCurrency:
          type: number
          description: Total amount of second discount in company currency
          example: 75
        discount3AmountTotal:
          type: number
          description: Total amount of third discount
          example: 45
        discount3AmountTotalCompanyCurrency:
          type: number
          description: Total amount of third discount in company currency
          example: 45
        discount4AmountTotal:
          type: number
          description: Total amount of fourth discount
          example: 30
        discount4AmountTotalCompanyCurrency:
          type: number
          description: Total amount of fourth discount in company currency
          example: 30
        proformaInvoice:
          type: boolean
          description: Proforma invoice
          example: false
      required:
        - customerAddress
        - documentDate
        - id
        - number
    ApiQuoteReceiptCollectionListReadDto:
      type: object
      description: Quote receipt collection list information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        orderNumber:
          type: integer
          format: int32
          description: Order number
          example: 1001
        collectionDate:
          type: string
          format: date
          description: Collection date
          example: '2024-01-15'
        customerCode:
          type: string
          description: Customer code
          example: CUST001
        customerBusinessName:
          type: string
          description: Customer business name
          example: Doe Enterprises
        customerName:
          type: string
          description: Customer name
          example: John Doe
        country:
          type: string
          description: Country
          example: Spain
        accountCode:
          type: string
          description: Account code
          example: 430
        observations:
          type: string
          description: Observations
          example: Payment received
        collectedAmountTotal:
          type: number
          description: Total collected amount
          example: 1114.5
        collectedAmountTotalCompanyCurrency:
          type: number
          description: Total collected amount in company currency
          example: 1114.5
        accounted:
          type: boolean
          description: Flag indicating if the amount is accounted
          example: true
        bankName:
          type: string
          description: Bank name
          example: Banco Santander
      required:
        - id
    ApiBaseLineBatchInboundWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier for this inbound batch line.
          example: 11
        batch:
          type: string
          description: Batch code or identifier.
          example: LOT-2025B
        quantity:
          type: number
          description: Quantity for this inbound batch.
          example: 75.5
        packages:
          type: integer
          format: int32
          description: Packages count for this batch inbound line.
          example: 2
    ApiBaseLineSerialNumberInboundWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier for this serial number inbound line.
          example: 12
        serialNumber:
          type: string
          description: Serial number string.
          example: SN-20250807-XYZ
    ApiPurchaseDeliveryNoteLineDetailWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier for this line detail.
          example: 200
        sizeRangeDetail:
          type: integer
          format: int32
          description: Identifier for the size range detail.
          example: 15
        width:
          type: integer
          format: int32
          description: Width identifier.
          example: 12
        quantityPerPackage:
          type: number
          description: Quantity per package for this detail.
          example: 9.3
    ApiPurchaseDeliveryNoteLineWriteDto:
      type: object
      description: >-
        Data for creating or updating a purchase delivery note line with article
        details, pricing, batches and serial numbers
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the line.
          example: 1001
        articleCombination:
          type: integer
          format: int32
          description: Gets the article combination identifier
          example: 5312
        sizeRange:
          type: integer
          format: int32
          description: Identifier of the size range associated with the article.
          example: 15
        assortment:
          type: integer
          format: int32
          description: Identifier of the assortment to which the article belongs.
          example: 8
        lineNumber:
          type: integer
          format: int32
          description: Sequential number of the line within the document.
          example: 1
        articleDescription:
          type: string
          description: Description of the article in the line.
          example: Cotton T-shirt - Blue
        packages:
          type: integer
          format: int32
          description: Number of packages for this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity of items per package.
          example: 12
        price:
          type: number
          description: Unit price of the article.
          example: 19.99
        lineObservations:
          type: string
          description: Additional observations or comments about this line.
          example: Special discount applied.
        details:
          type: array
          description: >-
            Gets the list of line details. See ApiBaseLineDetailWriteDto for
            structure.
          items:
            $ref: '#/components/schemas/ApiPurchaseDeliveryNoteLineDetailWriteDto'
        packaging:
          type: integer
          format: int32
          description: Packaging article identifier
          example: 1001
        discount:
          type: number
          description: Discount percentage applied to this line
          example: 10.5
        vatPercentage:
          type: number
          description: VAT percentage applied to this line
          example: 21
        reference:
          type: string
          description: Reference code for the line
          example: REF-2024-001
          maxLength: 100
          minLength: 0
        picture:
          type: string
          description: Picture filename
          example: product_image_001.jpg
          maxLength: 36
          minLength: 0
        noAccumulateWarehouse:
          type: boolean
          description: Indicates if warehouse accumulation is disabled
          example: false
        warehouse:
          type: integer
          format: int32
          description: Warehouse identifier
          example: 3
        assortedPackages:
          type: boolean
          description: Indicates if packages are assorted
          example: true
        shippingVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for shipping costs
          example: GENERAL
        shippingVatPercentage:
          type: number
          description: VAT percentage applied to shipping
          example: 21
        shippingSurchargePercentage:
          type: number
          description: Surcharge percentage applied to shipping
          example: 5.2
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for the article
          example: GENERAL
        surchargePercentage:
          type: number
          description: Surcharge percentage applied to this line
          example: 5.2
        grossAmount:
          type: number
          description: Gross amount before discounts
          example: 1000
        grossAmountCompanyCurrency:
          type: number
          description: Gross amount in company currency
          example: 1000
        netAmount:
          type: number
          description: Net amount after discounts
          example: 900
        netAmountCompanyCurrency:
          type: number
          description: Net amount in company currency
          example: 900
        totalLine:
          type: number
          description: Total line amount
          example: 1089
        totalLineCompanyCurrency:
          type: number
          description: Total line amount in company currency
          example: 1089
        batchList:
          type: array
          description: >-
            Returns the list of batch objects for inbound operations. See
            ApiBaseLineBatchInboundWriteDto for structure.
          items:
            $ref: '#/components/schemas/ApiBaseLineBatchInboundWriteDto'
        serialNumberList:
          type: array
          description: >-
            Returns the list of serial number objects for inbound operations.
            See ApiBaseLineSerialNumberInboundWriteDto for structure.
          items:
            $ref: '#/components/schemas/ApiBaseLineSerialNumberInboundWriteDto'
        disbursement:
          type: boolean
          description: Indicates if this line involves disbursement
          example: false
        concept:
          type: string
          description: Concept description for the line
          example: Product purchase
    ApiPurchaseDeliveryNoteWriteDto:
      type: object
      description: >-
        Data for creating or updating a purchase delivery note with supplier
        information, pricing details and shipping terms
      properties:
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1050
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2025-08-07'
        quantityTotal:
          type: number
          description: Total quantity of all document lines.
          example: 120.5
        observations:
          type: string
          description: Free text for header observations.
          example: Deliver to warehouse B
        lines:
          type: array
          description: List of document lines. For structure, see ApiBaseLineWriteDto.java
          items:
            $ref: '#/components/schemas/ApiPurchaseDeliveryNoteLineWriteDto'
        id:
          type: integer
          format: int32
          description: Unique identifier of the purchase delivery note
          example: 1001
        billingSeries:
          type: integer
          format: int32
          description: Billing series identifier
          example: 5
        receivedDate:
          type: string
          format: date
          description: Date when the delivery note was received
          example: '2024-08-07'
        billCode:
          type: string
          description: Bill code reference
          example: BILL-2024-001
          maxLength: 50
          minLength: 0
        locked:
          type: boolean
          description: Indicates if the delivery note is locked for modifications
          example: false
        warehouse:
          type: integer
          format: int32
          description: Warehouse identifier
          example: 3
        reference:
          type: string
          description: Reference number for the delivery note
          example: DN-2024-001
          maxLength: 50
          minLength: 0
        noAccumulateWarehouse:
          type: boolean
          description: Indicates if warehouse accumulation is disabled
          example: false
        supplier:
          type: integer
          format: int32
          description: Supplier identifier
          example: 1001
        deliveryNote:
          type: string
          description: Delivery note reference
          example: DN-SUPP-2024-001
          maxLength: 20
          minLength: 0
        packages:
          type: integer
          format: int32
          description: Total number of packages
          example: 5
        billingObservations:
          type: string
          description: Billing observations
          example: Handle with care
          maxLength: 255
          minLength: 0
        paymentMethod:
          type: integer
          format: int32
          description: Payment method identifier
          example: 3
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days
          example: 30
        daysTerm:
          type: integer
          format: int32
          description: Subsequent payment term in days
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms
          example: 3
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Type of proximity for the delivery
          example: LOCAL
        withholding:
          type: integer
          format: int32
          description: Withholding identifier
          example: 1
        discount1:
          type: number
          description: First discount percentage
          example: 10
        discount2:
          type: number
          description: Second discount percentage
          example: 5
        discountPp:
          type: number
          description: Prompt payment discount percentage
          example: 3
        currency:
          type: integer
          format: int32
          description: Currency identifier
          example: 1
        change:
          type: number
          description: Exchange rate for currency conversion
          example: 1
        customerVatType:
          type: integer
          format: int32
          description: Customer VAT type identifier
          example: 1
        shippingVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for shipping costs
          example: GENERAL
        shippingTerm:
          type: integer
          format: int32
          description: Shipping term identifier
          example: 2
        shippingVatPercentage:
          type: number
          description: VAT percentage applied to shipping
          example: 21
        shippingSurchargePercentage:
          type: number
          description: Surcharge percentage applied to shipping
          example: 5.2
        tags:
          type: array
          description: Tags associated with the delivery note
          example:
            - urgent
            - priority
          items:
            type: string
        invoiceEditObservations:
          type: string
          description: Invoice editing observations
          example: Delivery note reviewed and approved
        purchasingAccount:
          type: integer
          format: int32
          description: Purchasing account identifier
          example: 6000001
      required:
        - billingSeries
        - currency
        - receivedDate
        - supplier
        - warehouse
    ApiBaseLineBatchReadDto:
      type: object
      description: List of batches for this line
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        batchId:
          type: integer
          format: int32
          description: Batch identifier.
          example: 101
        batchCode:
          type: string
          description: Batch code/label.
          example: LOT-2025A
        quantity:
          type: number
          description: Quantity in the batch.
          example: 50.25
        availability:
          type: number
          description: Availability in the batch.
          example: 26
        packages:
          type: integer
          format: int32
          description: Amount of packages in this batch.
          example: 2
      required:
        - id
    ApiBaseLineSerialNumberReadDto:
      type: object
      description: List of serial numbers for this line
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        serialNumberId:
          type: integer
          format: int32
          description: Serial number identifier.
          example: 1500
        serialNumberCode:
          type: string
          description: Serial code.
          example: SN-A123XYZ
        expirationDate:
          type: string
          format: date
          description: >-
            Expiration date for the serial number, if any, in ISO format
            (yyyy-MM-dd).
          example: '2026-12-31'
      required:
        - id
    ApiPurchaseDeliveryNoteLineDetailReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        widthId:
          type: integer
          format: int32
          description: Width identifier.
          example: 200
        widthCode:
          type: string
          description: Width code.
          example: W-35
        quantitiesPerSize:
          type: array
          description: >-
            Quantities per size. For structure see
            ApiBaseLineDetailSizeReadDto.java
          items:
            $ref: '#/components/schemas/ApiPurchaseDeliveryNoteLineDetailSizeReadDto'
      required:
        - id
    ApiPurchaseDeliveryNoteLineDetailSizeReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        sizeRangeDetailId:
          type: integer
          format: int32
          description: Size detail identifier.
          example: 15
        sizeRangeDetailSize:
          type: string
          description: Size code within the range.
          example: M
        sizeRangeSizeOrder:
          type: integer
          format: int32
          description: Order value of the size in the range.
          example: 2
        quantityPerPackage:
          type: number
          description: Quantity per package for this size.
          example: 8
        quantityDetail:
          type: number
          description: Total quantity for this size.
          example: 24
        availability:
          type: number
          description: Available quantity for this size.
          example: 10
      required:
        - id
        - sizeRangeDetailId
        - sizeRangeDetailSize
    ApiPurchaseDeliveryNoteLineReadDto:
      type: object
      description: >-
        Purchase delivery note line information including article details,
        pricing, batches, and purchase order references
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        lineNumber:
          type: integer
          format: int32
          description: Line number within the document.
          example: 1
        articleCombination:
          $ref: '#/components/schemas/ApiArticleCombinationListReadDto'
          description: >-
            Article combination info. See ApiArticleCombinationListReadDto.java
            for the structure.
        attributesDescription:
          type: string
          description: Additional attributes description for the line.
          example: 'Color: Red, Size: L'
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: >-
            Size range information. See ApiSizeRangeListReadDto.java for the
            structure.
        assortment:
          $ref: '#/components/schemas/ApiAssortmentListReadDto'
          description: >-
            Assortment information. See ApiAssortmentListReadDto.java for the
            structure.
        articleDescription:
          type: string
          description: Description of the article.
          example: Cotton T-Shirt
        packages:
          type: integer
          format: int32
          description: Number of packages in this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity per package for this line.
          example: 5
        quantityLine:
          type: number
          description: Total quantity for this line.
          example: 15
        price:
          type: number
          description: Unit price for this article line.
          example: 12.95
        lineObservations:
          type: string
          description: Observations for this document line.
          example: Deliver before 9 AM
        details:
          type: array
          description: >-
            List of line details. See ApiBaseLineDetailReadDto.java for the
            structure.
          items:
            $ref: '#/components/schemas/ApiPurchaseDeliveryNoteLineDetailReadDto'
        packaging:
          $ref: '#/components/schemas/ApiArticleListReadDto'
          description: Packaging article information
        discount:
          type: number
          description: Discount percentage applied to this line
          example: 10.5
        vatPercentage:
          type: number
          description: VAT percentage applied to this line
          example: 21
        surchargePercentage:
          type: number
          description: Surcharge percentage applied to this line
          example: 5.2
        grossAmount:
          type: number
          description: Gross amount before discounts
          example: 1000
        grossAmountCompanyCurrency:
          type: number
          description: Gross amount in company currency
          example: 1000
        netAmount:
          type: number
          description: Net amount after discounts
          example: 900
        netAmountCompanyCurrency:
          type: number
          description: Net amount in company currency
          example: 900
        totalLine:
          type: number
          description: Total line amount
          example: 1089
        totalLineCompanyCurrency:
          type: number
          description: Total line amount in company currency
          example: 1089
        reference:
          type: string
          description: Reference code for the line
          example: REF-2024-001
        picture:
          type: string
          description: Picture filename
          example: product_image_001.jpg
        pictureToken:
          type: string
          description: Picture access token
          example: abc123def456
        noAccumulateWarehouse:
          type: boolean
          description: Indicates if warehouse accumulation is disabled
          example: false
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Warehouse information
        purchaseOrderServedQuantity:
          type: number
          description: Quantity served from the purchase order
          example: 25.5
        batches:
          $ref: '#/components/schemas/ApiBaseLineBatchReadDto'
          description: List of batches for this line
        serialNumbers:
          $ref: '#/components/schemas/ApiBaseLineSerialNumberReadDto'
          description: List of serial numbers for this line
        invoiceId:
          type: integer
          format: int32
          description: Related invoice identifier
          example: 2001
        invoiceNumber:
          type: integer
          description: Related invoice number
          example: 10025
        invoiceDocumentDate:
          type: string
          format: date
          description: Related invoice document date
          example: '2024-08-05'
        invoiceBillingSeriesCode:
          type: string
          description: Related invoice billing series code
          example: A
        purchaseOrderId:
          type: integer
          format: int32
          description: Related purchase order identifier
          example: 1501
        purchaseOrderNumber:
          type: integer
          description: Related purchase order number
          example: PO-2024-001
        purchaseOrderTotal:
          type: number
          description: Total amount of the related purchase order
          example: 5000
        purchaseOrderLineId:
          type: integer
          format: int32
          description: Related purchase order line identifier
          example: 3001
        purchaseOrderLineLineNumber:
          type: integer
          format: int32
          description: Line number in the related purchase order
          example: 1
        supplierId:
          type: integer
          format: int32
          description: Supplier identifier
          example: 1001
        supplierCommercialName:
          type: string
          description: Commercial name of the supplier
          example: ABC Suppliers Ltd.
        disbursement:
          type: boolean
          description: Indicates if this line involves disbursement
          example: false
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for the article
          example: GENERAL
        concept:
          type: string
          description: Concept description for the line
          example: Product purchase
        investment:
          type: boolean
          description: Indicates if this line is an investment
          example: false
        deductible:
          type: boolean
          description: Indicates if this line is deductible
          example: true
      required:
        - articleCombination
        - id
        - lineNumber
    ApiPurchaseDeliveryNoteReadDto:
      type: object
      description: >-
        Complete purchase delivery note information including supplier details,
        amounts, and shipping information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1001
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2024-08-07'
        quantityTotal:
          type: number
          description: Total quantity for all document lines.
          example: 200.5
        observations:
          type: string
          description: Free text field for any observations related to the document.
          example: Customer requested urgent delivery
        lines:
          type: array
          description: >-
            List of detail lines for the document. For structure see:
            ApiBaseLineReadDto.java
          items:
            $ref: '#/components/schemas/ApiPurchaseDeliveryNoteLineReadDto'
        change:
          type: number
          description: Change applied to the invoice or document
          example: 0.5
        discount1:
          type: number
          description: First discount percentage
          example: 5
        discount2:
          type: number
          description: Second discount percentage
          example: 2
        discountAmountTotal:
          type: number
          description: Total discount amount
          example: 100
        discountAmountTotalCompanyCurrency:
          type: number
          description: Total discount amount in company currency
          example: 95
        discountPp:
          type: number
          description: Prompt payment discount percentage
          example: 3
        discountPpAmountTotal:
          type: number
          description: Total prompt payment discount amount
          example: 15
        discountPpAmountTotalCompanyCurrency:
          type: number
          description: Total prompt payment discount amount in company currency
          example: 14
        grossAmountTotal:
          type: number
          description: Gross total amount
          example: 1200
        grossAmountTotalCompanyCurrency:
          type: number
          description: Gross total amount in company currency
          example: 1150
        netAmountTotal:
          type: number
          description: Net total amount
          example: 1100
        netAmountTotalCompanyCurrency:
          type: number
          description: Net total amount in company currency
          example: 1080
        vatAmountTotal:
          type: number
          description: Total VAT amount
          example: 230
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency
          example: 225
        surchargeAmountTotal:
          type: number
          description: Total surcharge amount
          example: 20
        surchargeAmountTotalCompanyCurrency:
          type: number
          description: Total surcharge amount in company currency
          example: 18
        withholding:
          type: number
          description: Withholding percentage
          example: 2
        withholdingAmountTotal:
          type: number
          description: Total withholding amount
          example: 22
        withholdingAmountTotalCompanyCurrency:
          type: number
          description: Total withholding amount in company currency
          example: 21
        total:
          type: number
          description: Total document amount
          example: 1300
        totalCompanyCurrency:
          type: number
          description: Total document amount in company currency
          example: 1280
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount
          example: 50
        disbursementAmountTotalCompanyCurrency:
          type: number
          description: Total disbursement amount in company currency
          example: 48
        billingSeries:
          $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
          description: Billing series information
        receivedDate:
          type: string
          format: date
          description: Date when the delivery note was received
          example: '2024-08-07'
        billCode:
          type: string
          description: Bill code reference
          example: BILL-2024-001
        locked:
          type: boolean
          description: Indicates if the delivery note is locked for modifications
          example: false
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Warehouse information
        reference:
          type: string
          description: Reference number for the delivery note
          example: DN-2024-001
        noAccumulateWarehouse:
          type: boolean
          description: Indicates if warehouse accumulation is disabled
          example: false
        supplier:
          $ref: '#/components/schemas/ApiSupplierListReadDto'
          description: Supplier information
        supplierName:
          type: string
          description: Name of the supplier
          example: ABC Suppliers Ltd.
        supplierAddress:
          type: string
          description: Address of the supplier
          example: 123
        supplierPhone:
          type: string
          description: Phone number of the supplier
          example: +34 91 123 4567
        supplierEmail:
          type: string
          description: Email address of the supplier
          example: contact@abcsuppliers.com
        supplierCif:
          type: string
          description: Tax identification number of the supplier
          example: B12345678
        deliveryNote:
          type: string
          description: Delivery note reference
          example: DN-SUPP-2024-001
        packages:
          type: integer
          format: int32
          description: Total number of packages
          example: 5
        billingObservations:
          type: string
          description: Billing observations
          example: Handle with care
        paymentMethod:
          $ref: '#/components/schemas/ApiPaymentMethodListReadDto'
          description: Payment method information
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days
          example: 30
        daysTerm:
          type: integer
          format: int32
          description: Subsequent payment term in days
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms
          example: 3
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Type of proximity for the delivery
          example: LOCAL
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: Currency information
        customerVatType:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
          description: Customer VAT type information
        shippingTerm:
          $ref: '#/components/schemas/ApiShippingTermListReadDto'
          description: Shipping terms information
        shippingVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for shipping costs
          example: GENERAL
        shippingVatPercentage:
          type: number
          description: VAT percentage applied to shipping
          example: 21
        shippingSurchargePercentage:
          type: number
          description: Surcharge percentage applied to shipping
          example: 5.2
        invoiceDocumentDate:
          type: string
          format: date
          description: Document date of the related invoice
          example: '2024-08-05'
        invoiceBillingSeriesCode:
          type: string
          description: Billing series code of the related invoice
          example: A
        tags:
          type: array
          description: Tags associated with the delivery note
          example:
            - urgent
            - priority
          items:
            type: string
        invoiceEditObservations:
          type: string
          description: Invoice editing observations
          example: Invoice reviewed and approved
      required:
        - documentDate
        - id
        - number
    ApiPurchaseInvoiceDeliveryNoteWriteDto:
      type: object
      description: >-
        Data for creating or updating the relation between a purchase invoice
        and its delivery notes, including their lines
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the purchase invoice-delivery note relation
          example: 2123
        lines:
          $ref: '#/components/schemas/ApiPurchaseDeliveryNoteLineWriteDto'
          description: Lines associated with the purchase delivery note for the invoice
    ApiPurchaseInvoiceWriteDto:
      type: object
      description: >-
        Data for creating or updating a purchase invoice with receipts, taxes
        and delivery note information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the invoice.
          example: 1001
        valueDate:
          type: string
          format: date
          description: Value date of the invoice.
          example: '2024-05-15'
        locked:
          type: boolean
          description: Indicates if the invoice is locked for modifications.
          example: false
        periodId:
          type: integer
          format: int32
          description: >-
            Unique identifier of the accounting period. If not set, system will
            determine based on document date.
          example: 1
        accounted:
          type: boolean
          description: Indicates if the invoice has been accounted.
          example: true
        packages:
          type: integer
          format: int32
          description: Total number of packages associated with the invoice.
          example: 5
        observations:
          type: string
          description: General observations for the invoice.
          example: Deliver before noon.
        billingObservations:
          type: string
          description: Internal billing observations for the invoice.
          example: Special rate applied.
        paymentMethod:
          type: integer
          format: int32
          description: Payment method identifier.
          example: 3
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days.
          example: 30
        daysTerm:
          type: integer
          format: int32
          description: Subsequent payment term in days.
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms.
          example: 3
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Type of proximity for the invoice.
          example: LOCAL
        tags:
          type: array
          description: Tags related to the invoice.
          example:
            - urgent
            - international
          items:
            type: string
        accountingAccount:
          type: integer
          format: int32
          description: Accounting account code for the invoice.
          example: 43000001
        status:
          $ref: '#/components/schemas/ApiStatusInvoiceEnum'
          description: Status of the invoice.
          example: ISSUED
        reference:
          type: string
          description: Reference number or string for the invoice.
          example: INV-2024-0123
        customerVatType:
          type: integer
          format: int32
          description: Customer VAT type identifier.
          example: 1
        billingSeries:
          type: integer
          format: int32
          description: Billing series identifier.
          example: 7
        shippingTerm:
          type: integer
          format: int32
          description: Shipping term identifier.
          example: 2
        currency:
          type: integer
          format: int32
          description: Currency identifier.
          example: 1
        change:
          type: number
          description: Exchange rate for currency conversion.
          example: 1.1
        discount1:
          type: number
          description: First discount percentage applied to the invoice.
          example: 10
        discount2:
          type: number
          description: Second discount percentage applied to the invoice.
          example: 5
        discount3:
          type: number
          description: Third discount percentage applied to the invoice.
          example: 2
        discount4:
          type: number
          description: Fourth discount percentage applied to the invoice.
          example: 1
        discountPp:
          type: number
          description: Prompt payment discount percentage.
          example: 3
        withholding:
          type: number
          description: Withholding percentage applied to the invoice.
          example: 15
        number:
          type: integer
          description: Invoice document number.
          example: 10022
        documentDate:
          type: string
          format: date
          description: Document date for the invoice.
          example: '2024-05-01'
        expirationDate:
          type: string
          format: date
          description: Expiration date of the invoice.
          example: '2024-06-01'
        manual:
          type: boolean
          description: Indicates if the invoice was created manually.
          example: false
        receipts:
          $ref: '#/components/schemas/ApiPurchaseReceiptWriteDto'
          description: List of purchase receipts associated with the invoice
        taxes:
          $ref: '#/components/schemas/ApiPurchaseTaxesWriteDto'
          description: List of taxes applied to the purchase invoice
        deliveryNotes:
          $ref: '#/components/schemas/ApiPurchaseInvoiceDeliveryNoteWriteDto'
          description: List of delivery notes associated with the purchase invoice
        purchasingAccount:
          type: integer
          format: int32
          description: Purchasing account identifier
          example: 6000001
        supplier:
          type: integer
          format: int32
          description: Supplier identifier
          example: 1001
        receivedDate:
          type: string
          format: date
          description: Date when the purchase invoice was received
          example: '2024-08-07'
        billCode:
          type: string
          description: Bill code reference
          example: BILL-2024-001
        deliveryNote:
          type: string
          description: Delivery note reference
          example: DN-2024-001
        correctiveInvoice:
          type: integer
          format: int32
          description: Corrective invoice identifier if this invoice corrects another
          example: 1050
        irpfType:
          $ref: '#/components/schemas/ApiIRPFTypeEnum'
          description: Type of IRPF for the customer. See ApiIRPFTypeEnum enum for values.
          example: GENERAL
    ApiPurchaseReceiptWriteDto:
      type: object
      description: >-
        Data for creating or updating a purchase receipt with payment details
        and collection information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the purchase receipt
          example: 1
        purchaseInvoice:
          type: integer
          format: int32
          description: Purchase invoice identifier
          example: 100
        billingSeries:
          type: integer
          format: int32
          description: Billing series identifier
          example: 5
        paymentMethod:
          type: integer
          format: int32
          description: Payment method identifier
          example: 3
        supplier:
          type: integer
          format: int32
          description: Supplier identifier
          example: 1001
        currency:
          type: integer
          format: int32
          description: Currency identifier
          example: 1
        invoiceNumber:
          type: integer
          format: int32
          description: Invoice number
          example: 1001
        receiptNumber:
          type: integer
          format: int32
          description: Receipt number
          example: 5001
        invoiceDate:
          type: string
          format: date
          description: Invoice date
          example: '2024-01-15'
        receiptDate:
          type: string
          format: date
          description: Receipt date
          example: '2024-01-20'
        expirationDate:
          type: string
          format: date
          description: Expiration date
          example: '2024-02-15'
        actualDate:
          type: string
          format: date
          description: Actual date
          example: '2024-01-20'
        printed:
          type: boolean
          description: Flag indicating if the receipt is printed
          example: true
        accounted:
          type: boolean
          description: Flag indicating if the receipt is accounted
          example: true
        reclaimed:
          type: boolean
          description: Flag indicating if the receipt is reclaimed
          example: false
        reclaimedDate:
          type: string
          format: date
          description: Date when the receipt was reclaimed
          example: '2024-01-25'
        currencyChangeValue:
          type: number
          description: Currency exchange rate
          example: 1
        remittance:
          type: boolean
          description: Flag indicating if remittance is applicable
          example: false
        daysUntilExpirationDate:
          type: integer
          format: int32
          description: Days until expiration date
          example: 30
        iban:
          type: string
          description: IBAN for payments
          example: ES9121000418450200051332
          maxLength: 50
          minLength: 0
        total:
          type: number
          description: Total amount
          example: 1250
        totalCompanyCurrency:
          type: number
          description: Total amount in company currency
          example: 1250
        collectedAmount:
          type: number
          description: Collected amount
          example: 1250
        collectedAmountCompanyCurrency:
          type: number
          description: Collected amount in company currency
          example: 1250
        expenses:
          type: number
          description: Expenses amount
          example: 25.5
        pendingAmount:
          type: number
          description: Pending amount
          example: 0
        pendingAmountCompanyCurrency:
          type: number
          description: Pending amount in company currency
          example: 0
        payments:
          type: integer
          format: int32
          description: Number of payments
          example: 1
        remittable:
          type: boolean
          description: Flag indicating if the receipt is remittable
          example: true
        ignorePending:
          type: boolean
          description: Flag indicating if pending amounts should be ignored
          example: false
        uncollectable:
          type: boolean
          description: Flag indicating if the receipt is uncollectable
          example: false
        promissoryNoteBank:
          type: string
          description: Promissory note bank
          example: Banco Santander
          maxLength: 50
          minLength: 0
        promissoryNoteNumber:
          type: string
          description: Promissory note number
          example: PN-2024-001
          maxLength: 50
          minLength: 0
        observations:
          type: string
          description: Observations about the receipt
          example: Payment received
          maxLength: 255
          minLength: 0
      required:
        - billingSeries
        - currency
        - expirationDate
        - invoiceNumber
        - receiptDate
        - receiptNumber
        - supplier
    ApiPurchaseTaxesWriteDto:
      type: object
      description: List of taxes applied to the purchase invoice
      properties:
        id:
          type: integer
          format: int32
        purchaseInvoice:
          type: integer
          format: int32
        vatPercentage:
          type: number
        surchargePercentage:
          type: number
        grossAmountTotal:
          type: number
        netAmountTotal:
          type: number
        surchargeAmountTotal:
          type: number
        withholdingAmountTotal:
          type: number
        vatAmountTotal:
          type: number
        vatAmountTotalDeductible:
          type: number
        vatAmountTotalDeductibleCompanyCurrency:
          type: number
        surchargeAmountTotalDeductible:
          type: number
        surchargeAmountTotalDeductibleCompanyCurrency:
          type: number
        vatAmountTotalInvestment:
          type: number
        vatAmountTotalInvestmentCompanyCurrency:
          type: number
        surchargeAmountTotalInvestment:
          type: number
        surchargeAmountTotalInvestmentCompanyCurrency:
          type: number
    ApiStatusInvoiceEnum:
      type: string
      enum:
        - PENDING
        - PAID
        - PARTIALLY_PAID
        - DRAFT
    ApiInvoiceReceiptCollectionLineReadDto:
      type: object
      description: >-
        Represents a read-only view of a collection line for an invoice receipt,
        including amount, date, and observations.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        collectionAmount:
          type: number
          description: Amount collected for this line.
          example: 1234.56
        collectionDate:
          type: string
          format: date
          description: Date on which the amount was collected.
          example: '2024-03-20'
        observations:
          type: string
          description: Observations or notes for the collection line.
          example: Paid via bank transfer.
        headerId:
          type: integer
          format: int32
          description: Identifier of the receipt collection header related to this line.
          example: 1005
      required:
        - id
    ApiPurchaseInvoiceFileListReadDto:
      type: object
      description: List of files attached to the purchase invoice
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        token:
          type: string
          description: File token (unique identifier).
          example: 729eda1d03b34634b8e3c81a8b2d0974
        url:
          type: string
          description: URL to access or download the file.
          example: https://apihost.com/file/729eda1d03b34634b8e3c81a8b2d0974
        fileName:
          type: string
          description: File name (with extension).
          example: invoice_2023.pdf
        fileExtension:
          type: string
          description: File extension.
          example: pdf
        fileSize:
          type: integer
          format: int64
          description: File size in bytes.
          example: 1048576
        modifiedOn:
          type: string
          format: date-time
          description: Date and time the file was last modified (ISO8601).
          example: '2024-08-07T18:10:55'
      required:
        - fileExtension
        - fileName
        - id
        - modifiedOn
        - token
        - url
    ApiPurchaseInvoiceListReadDto:
      type: object
      description: >-
        Purchase invoice list information with supplier details and purchasing
        account information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        billingSeriesCode:
          type: string
          description: Billing series code associated with the invoice.
          example: A
        number:
          type: integer
          description: Invoice number.
          example: 10023
        documentDate:
          type: string
          format: date
          description: Document date of the invoice.
          example: '2024-04-20'
        valueDate:
          type: string
          format: date
          description: Value date of the invoice.
          example: '2024-04-22'
        commercialName:
          type: string
          description: Commercial name of the customer.
          example: Company ABC S.A.
        grossAmountTotal:
          type: number
          description: Total gross amount of the invoice.
          example: 800
        grossAmountTotalCompanyCurrency:
          type: number
          description: Total gross amount in company currency.
          example: 820
        discount1AmountTotal:
          type: number
          description: Total amount of first discount applied.
          example: 10
        discount1AmountTotalCompanyCurrency:
          type: number
          description: Total amount of first discount in company currency.
          example: 10.25
        discount2AmountTotal:
          type: number
          description: Total amount of second discount applied.
          example: 5
        discount2AmountTotalCompanyCurrency:
          type: number
          description: Total amount of second discount in company currency.
          example: 5.1
        discountPpAmountTotal:
          type: number
          description: Total amount of prompt payment discount.
          example: 3
        discountPpAmountTotalCompanyCurrency:
          type: number
          description: Total amount of prompt payment discount in company currency.
          example: 3.06
        discountAmountTotal:
          type: number
          description: Total amount of all discounts.
          example: 18
        discountAmountTotalCompanyCurrency:
          type: number
          description: Total amount of all discounts in company currency.
          example: 18.41
        netAmountTotal:
          type: number
          description: Total net amount (after discounts, before VAT) of the invoice.
          example: 700
        netAmountTotalCompanyCurrency:
          type: number
          description: Total net amount in company currency.
          example: 715
        vatAmountTotal:
          type: number
          description: Total VAT amount of the invoice.
          example: 147
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency.
          example: 150
        total:
          type: number
          description: Total amount of the invoice (final amount).
          example: 847
        totalCompanyCurrency:
          type: number
          description: Total amount of the invoice in company currency.
          example: 865
        paymentMethodDescription:
          type: string
          description: Description of payment method.
          example: Bank transfer
        currencyNomenclature:
          type: string
          description: Nomenclature of the currency.
          example: EUR
        documentType:
          type: string
          description: Type of the document.
          example: INVOICE
        quantityTotal:
          type: number
          description: Total quantity associated with the invoice.
          example: 25
        tags:
          type: array
          description: Tags associated with the invoice.
          example:
            - urgent
            - priority
          items:
            type: string
        status:
          $ref: '#/components/schemas/ApiStatusInvoiceEnum'
          description: Invoice status.
          example: ISSUED
        collectedAmount:
          type: number
          description: Total amount collected for the invoice.
          example: 400
        collectedAmountCompanyCurrency:
          type: number
          description: Total amount collected in company currency.
          example: 420
        currencySignificantDecimalsDocuments:
          type: integer
          format: int32
          description: >-
            Number of significant decimals for documents in the invoice
            currency.
          example: 2
        currencyIntermediateDecimalsDocuments:
          type: integer
          format: int32
          description: >-
            Number of intermediate decimals for documents in the invoice
            currency.
          example: 2
        currencyDecimalsCalculatePrices:
          type: integer
          format: int32
          description: Number of decimals for calculating prices.
          example: 4
        currencyDecimalsCalculateCosts:
          type: integer
          format: int32
          description: Number of decimals for calculating costs.
          example: 4
        reference:
          type: string
          description: Reference number or code for the invoice.
          example: INV-2024-1001
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount of the invoice.
          example: 50
        disbursementAmountTotalCompanyCurrency:
          type: number
          description: Total disbursement amount of the invoice in company currency.
          example: 50
        expirationDate:
          type: string
          format: date
          description: Expiration date of the invoice.
          example: '2024-05-29'
        withholdingAmountTotal:
          type: number
          description: Total withholding amount applied to the invoice.
          example: 30
        manual:
          type: boolean
          description: Indicates if the invoice was generated manually.
          example: false
        amountReconciliation:
          type: number
        amountReconciliationCompanyCurrency:
          type: number
        supplierId:
          type: string
          description: Unique identifier of the supplier
          example: 1001
        supplierCode:
          type: string
          description: Supplier code
          example: SUPP001
        supplierName:
          type: string
          description: Name of the supplier
          example: ABC Suppliers Ltd.
        purchasingAccountCode:
          type: string
          description: Purchasing account code
          example: 6000001
        billCode:
          type: string
          description: Bill code reference
          example: BILL-2024-001
        receivedDate:
          type: string
          format: date
          description: Date when the purchase invoice was received
          example: '2024-08-07'
        irpfType:
          $ref: '#/components/schemas/ApiIRPFTypeEnum'
          description: Type of IRPF for the customer. See ApiIRPFTypeEnum enum for values.
          example: GENERAL
      required:
        - id
    ApiPurchaseInvoicePurchaseReceiptListReadDto:
      type: object
      description: Purchase invoice receipt list information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        billingSeriesCode:
          type: string
          description: Billing series code
          example: FAC
        invoiceNumber:
          type: integer
          format: int32
          description: Invoice number
          example: 1001
        receiptNumber:
          type: integer
          format: int32
          description: Receipt number
          example: 5001
        invoiceDate:
          type: string
          format: date
          description: Invoice date
          example: '2024-01-15'
        expirationDate:
          type: string
          format: date
          description: Expiration date
          example: '2024-02-15'
        receiptDate:
          type: string
          format: date
          description: Receipt date
          example: '2024-01-20'
        total:
          type: number
          description: Total amount
          example: 1250
        totalCompanyCurrency:
          type: number
          description: Total amount in company currency
          example: 1250
        collectedAmount:
          type: number
          description: Collected amount
          example: 1250
        collectedAmountCompanyCurrency:
          type: number
          description: Collected amount in company currency
          example: 1250
        pendingAmount:
          type: number
          description: Pending amount
          example: 0
        pendingAmountCompanyCurrency:
          type: number
          description: Pending amount in company currency
          example: 0
        paymentMethodDescription:
          type: string
          description: Payment method description
          example: Bank Transfer
        supplierCode:
          type: string
          description: Supplier code
          example: SUP001
        remittance:
          type: boolean
          description: Flag indicating if remittance is enabled
          example: true
        paymentMethodDocument:
          type: string
          description: Payment method document
          example: TRANSFER
        currencyNomenclature:
          type: string
          description: Currency nomenclature
          example: EUR
        receiptCollectionLines:
          $ref: '#/components/schemas/ApiInvoiceReceiptCollectionLineReadDto'
          description: Receipt collection lines
      required:
        - id
    ApiPurchaseInvoiceReadDto:
      type: object
      description: >-
        Complete purchase invoice information including lines, taxes, receipts
        and related data
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        observations:
          type: string
          description: General observations
          example: Special handling required
        number:
          type: integer
          description: Invoice number
          example: 1001
        documentDate:
          type: string
          format: date
          description: Document date
          example: '2024-01-15'
        quantityTotal:
          type: number
          description: Total quantity
          example: 10
        billingSeries:
          $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
          description: Billing series information
        locked:
          type: boolean
          description: Flag indicating if the invoice is locked
          example: false
        accounted:
          type: boolean
          description: Flag indicating if the invoice is accounted
          example: true
        grossAmountTotal:
          type: number
          description: Total gross amount
          example: 1000
        grossAmountTotalCompanyCurrency:
          type: number
          description: Total gross amount in company currency
          example: 1000
        discount1AmountTotal:
          type: number
          description: Total amount of first discount
          example: 150
        discount1AmountTotalCompanyCurrency:
          type: number
          description: Total amount of first discount in company currency
          example: 150
        discount2AmountTotal:
          type: number
          description: Total amount of second discount
          example: 75
        discount2AmountTotalCompanyCurrency:
          type: number
          description: Total amount of second discount in company currency
          example: 75
        discountPp:
          type: number
          description: PP discount percentage
          example: 5
        discountPpAmountTotalCompanyCurrency:
          type: number
          description: PP discount amount in company currency
          example: 50
        netAmountTotal:
          type: number
          description: Total net amount
          example: 900
        netAmountTotalCompanyCurrency:
          type: number
          description: Total net amount in company currency
          example: 900
        vatAmountTotal:
          type: number
          description: Total VAT amount
          example: 189
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency
          example: 189
        total:
          type: number
          description: Total amount
          example: 1114.5
        totalCompanyCurrency:
          type: number
          description: Total amount in company currency
          example: 1114.5
        paymentMethod:
          $ref: '#/components/schemas/ApiPaymentMethodListReadDto'
          description: Payment method information
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days
          example: 30
        daysTerm:
          type: integer
          format: int32
          description: Payment term in days
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms
          example: 3
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Type of proximity
          example: LOCAL
        discount1:
          type: number
          description: First discount percentage
          example: 10
        discount2:
          type: number
          description: Second discount percentage
          example: 5
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: Currency information
        change:
          type: number
          description: Exchange rate
          example: 1
        iban:
          type: string
          description: IBAN for payments
          example: ES9121000418450200051332
        withholding:
          type: number
          description: Withholding percentage
          example: 15
        customerVatType:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
          description: Customer VAT type information
        billingObservations:
          type: string
          description: Billing observations
          example: Handle with care
        paidCommissions:
          type: boolean
          description: Flag indicating if commissions are paid
          example: true
        packages:
          type: integer
          format: int32
          description: Number of packages
          example: 5
        tags:
          type: array
          description: Tags associated with the invoice
          example:
            - urgent
            - priority
          items:
            type: string
        status:
          $ref: '#/components/schemas/ApiStatusInvoiceEnum'
          description: Status of the invoice
          example: PAID
        reference:
          type: string
          description: Reference number
          example: FAC-2024-001
        valueDate:
          type: string
          format: date
          description: Value date
          example: '2024-01-20'
        shippingTerm:
          $ref: '#/components/schemas/ApiShippingTermListReadDto'
          description: Shipping terms information
        irpfAmountTotal:
          type: number
          description: Total IRPF amount
          example: 15
        withholdingAmountTotal:
          type: number
          description: Total withholding amount
          example: 15
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount
          example: 25.5
        disbursementAmountTotalCompanyCurrency:
          type: number
          description: Total disbursement amount in company currency
          example: 25.5
        collectedAmount:
          type: number
          description: Collected amount
          example: 1114.5
        collectedAmountCompanyCurrency:
          type: number
          description: Collected amount in company currency
          example: 1114.5
        expirationDate:
          type: string
          format: date
          description: Expiration date
          example: '2024-02-15'
        manual:
          type: boolean
          description: Flag indicating if the invoice is manual
          example: false
        amountReconciliation:
          type: number
          description: Amount for reconciliation
          example: 0
        amountReconciliationCompanyCurrency:
          type: number
          description: Amount for reconciliation in company currency
          example: 0
        lines:
          $ref: '#/components/schemas/ApiPurchaseDeliveryNoteLineReadDto'
          description: List of purchase delivery note lines associated with this invoice
        taxes:
          $ref: '#/components/schemas/ApiPurchaseTaxesListReadDto'
          description: List of taxes applied to the purchase invoice
        receipts:
          $ref: '#/components/schemas/ApiPurchaseInvoicePurchaseReceiptListReadDto'
          description: List of purchase receipts associated with this invoice
        deliveryNotes:
          $ref: '#/components/schemas/ApiPurchaseDeliveryNoteReadDto'
          description: List of purchase delivery notes associated with this invoice
        files:
          $ref: '#/components/schemas/ApiPurchaseInvoiceFileListReadDto'
          description: List of files attached to the purchase invoice
        supplier:
          $ref: '#/components/schemas/ApiSupplierListReadDto'
          description: Supplier information
        purchasingAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Purchasing account information
        correctiveInvoice:
          $ref: '#/components/schemas/ApiPurchaseInvoiceListReadDto'
          description: Corrective invoice information if this invoice corrects another
        billCode:
          type: string
          description: Bill code reference
          example: BILL-2024-001
        receivedDate:
          type: string
          format: date
          description: Date when the purchase invoice was received
          example: '2024-08-07'
        irpfType:
          $ref: '#/components/schemas/ApiIRPFTypeEnum'
          description: Type of IRPF for the customer. See ApiIRPFTypeEnum enum for values.
          example: GENERAL
      required:
        - id
    ApiPurchaseTaxesListReadDto:
      type: object
      description: Purchase tax information for invoice calculations
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        netAmountTotal:
          type: number
          description: Total net amount
          example: 1000
        netAmountTotalCompanyCurrency:
          type: number
          description: Total net amount in company currency
          example: 1000
        vatPercentage:
          type: number
          description: VAT percentage
          example: 21
        vatAmountTotal:
          type: number
          description: Total VAT amount
          example: 210
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency
          example: 210
        surchargePercentage:
          type: number
          description: Surcharge percentage
          example: 5
        surchargeAmountTotal:
          type: number
          description: Total surcharge amount
          example: 50
        surchargeAmountTotalCompanyCurrency:
          type: number
          description: Total surcharge amount in company currency
          example: 50
        grossAmountTotal:
          type: number
          description: Total gross amount
          example: 1260
        grossAmountTotalCompanyCurrency:
          type: number
          description: Total gross amount in company currency
          example: 1260
        withholdingAmountTotal:
          type: number
          description: Total withholding amount
          example: 15
        withholdingAmountTotalCompanyCurrency:
          type: number
          description: Total withholding amount in company currency
          example: 15
        discountsAmountTotal:
          type: number
          description: Total discounts amount
          example: 100
      required:
        - id
    ApiFDICodesEnum:
      type: string
      description: Defines the FDI codes.
      enum:
        - A
        - D
        - E
        - F
        - I
        - 'N'
        - P
      example: A
    ApiPaymentMethodWriteDto:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: Unique code for the payment method.
          example: 10
        description:
          type: string
          description: Description of the payment method.
          example: Bank transfer
          maxLength: 100
          minLength: 0
        document:
          type: string
          description: Document code for the payment method.
          example: DOC01
          maxLength: 10
          minLength: 0
        firstTerm:
          type: integer
          format: int32
          description: Days to the first term.
          example: 30
          minimum: 0
        terms:
          type: integer
          format: int32
          description: Number of terms.
          example: 3
          minimum: 0
        daysTerms:
          type: integer
          format: int32
          description: Number of days for terms.
          example: 90
          minimum: 0
        remittance:
          type: boolean
          description: Indicates whether remittance is required.
          example: true
        addToCustomerBase:
          type: boolean
          description: Indicates if the method adds to the customer base.
          example: true
        notCountedAsPaymentForecast:
          type: boolean
          description: Indicates if payment is not counted as forecast.
          example: false
        serveFullPrePaid:
          type: boolean
          description: Indicates if the service is fully prepaid.
          example: false
        paymentAccount:
          type: integer
          format: int32
          description: Payment account identifier.
          example: 410
        discountAccount:
          type: integer
          format: int32
          description: Discount account identifier.
          example: 411
        customerAccount:
          type: integer
          format: int32
          description: Customer account identifier.
          example: 430
        saleAccount:
          type: integer
          format: int32
          description: Sale account identifier.
          example: 700
        billCode:
          type: string
          description: Code for the bill.
          example: BILL01
          maxLength: 10
          minLength: 0
        fdiCode:
          $ref: '#/components/schemas/ApiFDICodesEnum'
          description: >-
            FDI code for the payment method. See ApiFDICodes for all possible
            values.
          example: TRANSFER
        facturaECode:
          $ref: '#/components/schemas/ApiFacturaECodeEnum'
          description: >-
            FacturaE code for the payment method. See ApiFacturaECodeEnum for
            all available values.
          example: TRANSFERENCIA
        observations:
          type: string
          description: Additional observations about the payment method.
          example: Requires confirmation
        prestashopModule:
          type: string
          description: Name of the Prestashop module associated.
          example: ps_bankwire
          maxLength: 50
          minLength: 0
        languages:
          type: object
          additionalProperties:
            type: string
          description: Map of localized languages for the payment method.
        icon:
          type: string
          description: Icon associated with the payment method.
          example: icon-bank.png
          maxLength: 100
          minLength: 0
      required:
        - addToCustomerBase
        - code
        - description
        - icon
        - notCountedAsPaymentForecast
        - remittance
        - serveFullPrePaid
    ApiPaymentMethodReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: integer
          format: int32
        description:
          type: string
        document:
          type: string
        firstTerm:
          type: integer
          format: int32
        terms:
          type: integer
          format: int32
        daysTerms:
          type: integer
          format: int32
        remittance:
          type: boolean
        addToCustomerBase:
          type: boolean
        notCountedAsPaymentForecast:
          type: boolean
        serveFullPrePaid:
          type: boolean
        paymentAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
        discountAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
        customerAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
        saleAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
        billCode:
          type: string
        fdiCode:
          type: string
        facturaECode:
          $ref: '#/components/schemas/ApiFacturaECodeEnum'
        observations:
          type: string
        prestashopModule:
          type: string
        languages:
          type: object
          additionalProperties:
            type: string
        icon:
          type: string
      required:
        - code
        - description
        - id
    ApiBaseLineBatchOutboundWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier for this outbound batch line.
          example: 21
        batch:
          type: integer
          format: int32
          description: Batch ID or code for outbound batch.
          example: 102
        quantity:
          type: number
          description: Quantity for this outbound batch.
          example: 40
        packages:
          type: integer
          format: int32
          description: Number of packages assigned to this outbound batch.
          example: 3
    ApiBaseLineSerialNumberWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier for this serial number line.
          example: 8
        serialNumber:
          type: integer
          format: int32
          description: ID of the serial number.
          example: 202
    ApiCorrectiveReasonEnum:
      type: string
      enum:
        - INVOICE_NUMBER
        - INVOICE_SERIES
        - EXPEDITION_DATE
        - ISSUER_NAME
        - RECEIVER_NAME
        - ISSUER_TAX_ID
        - RECIPIENT_TAX_ID
        - ISSUING_ADDRESS
        - RECEIVING_ADDRESS
        - OPERATION_DETAIL
        - TAX_PERCENTAGE
        - TAX_FEE
        - DATE_PERIOD
        - INVOICE_TYPE
        - LEGAL_LITERALS
        - TAX_BASE
        - CALCULATION_PASSED_ON_FEES
        - CALCULATION_WITHHELD_FEES
        - MODIFIED_TAX_BASE_RETURN_PACKAGING
        - MODIFIED_TAX_BASE_DISCOUNTS
        - MODIFIED_TAX_BASE_RESOLUTION
        - MODIFIED_TAX_BASE_UNPAID_FEES_BANKRUPTCY
        - MODIFIED_TAX_BASE_UNPAID_FEES_BAD_DEBT
    ApiDeliveryNoteLineDetailWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier for this line detail.
          example: 200
        sizeRangeDetail:
          type: integer
          format: int32
          description: Identifier for the size range detail.
          example: 15
        width:
          type: integer
          format: int32
          description: Width identifier.
          example: 12
        quantityPerPackage:
          type: number
          description: Quantity per package for this detail.
          example: 9.3
    ApiDeliveryNoteLineWriteDto:
      type: object
      description: >-
        Data for creating or updating a delivery note line with article details,
        pricing, commissions, batches and serial numbers
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the line.
          example: 1001
        articleCombination:
          type: integer
          format: int32
          description: Identifier of the related article combination.
          example: 200
        sizeRange:
          type: integer
          format: int32
          description: Identifier of the size range associated with the article.
          example: 15
        assortment:
          type: integer
          format: int32
          description: Identifier of the assortment to which the article belongs.
          example: 8
        lineNumber:
          type: integer
          format: int32
          description: Sequential number of the line within the document.
          example: 1
        articleDescription:
          type: string
          description: Description of the article in the line.
          example: Cotton T-shirt - Blue
        packages:
          type: integer
          format: int32
          description: Number of packages for this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity of items per package.
          example: 12
        price:
          type: number
          description: Unit price of the article.
          example: 19.99
        lineObservations:
          type: string
          description: Additional observations or comments about this line.
          example: Special discount applied.
        details:
          type: array
          description: >-
            Gets the list of line details. See ApiBaseLineDetailWriteDto for
            structure.
          items:
            $ref: '#/components/schemas/ApiDeliveryNoteLineDetailWriteDto'
        packaging:
          type: integer
          format: int32
          description: Packaging article identifier
          example: 1001
        assortedPackages:
          type: boolean
          description: Indicates if packages are assorted
          example: true
        discount:
          type: number
          description: Discount percentage applied to this line
          example: 10.5
        rsp:
          type: number
          description: Recommended selling price
          example: 25.99
        reference:
          type: string
          description: Reference code for the line
          example: REF-2024-001
          maxLength: 50
          minLength: 0
        picture:
          type: string
          description: Picture filename
          example: product_image_001.jpg
          maxLength: 36
          minLength: 0
        warehouse:
          type: integer
          format: int32
          description: Warehouse identifier
          example: 3
        noAccumulateWarehouse:
          type: boolean
          description: Indicates if warehouse accumulation is disabled
          example: false
        brand:
          type: integer
          format: int32
          description: Brand identifier
          example: 5
        returnReason:
          type: integer
          format: int32
          description: Return reason identifier if applicable
          example: 1
        received:
          type: boolean
          description: Indicates if the line has been received
          example: true
        accepted:
          type: boolean
          description: Indicates if the line has been accepted
          example: true
        freeDescription1:
          type: string
          description: First free description field
          example: Special handling required
          maxLength: 50
          minLength: 0
        freeDescription2:
          type: string
          description: Second free description field
          example: Custom packaging
          maxLength: 50
          minLength: 0
        freeDescription3:
          type: string
          description: Third free description field
          example: Priority delivery
          maxLength: 50
          minLength: 0
        freeDescription4:
          type: string
          description: Fourth free description field
          example: Gift wrap
          maxLength: 50
          minLength: 0
        freeDescription5:
          type: string
          description: Fifth free description field
          example: Express shipping
          maxLength: 50
          minLength: 0
        customCommission:
          type: boolean
          description: Indicates if custom commission is applied
          example: false
        representative1:
          type: integer
          format: int32
          description: First representative identifier
          example: 2
        commissionType1:
          type: string
          description: First commission type
          example: PERCENTAGE
        commission1:
          type: number
          description: First commission value
          example: 5
        representative2:
          type: integer
          format: int32
          description: Second representative identifier
          example: 3
        commissionType2:
          type: string
          description: Second commission type
          example: PERCENTAGE
        commission2:
          type: number
          description: Second commission value
          example: 3
        representative3:
          type: integer
          format: int32
          description: Third representative identifier
          example: 4
        commissionType3:
          type: string
          description: Third commission type
          example: FIXED
        commission3:
          type: number
          description: Third commission value
          example: 25
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for the article
          example: GENERAL
        vatPercentage:
          type: number
          description: VAT percentage applied to this line
          example: 21
        surchargePercentage:
          type: number
          description: Surcharge percentage applied to this line
          example: 5.2
        grossAmount:
          type: number
          description: Gross amount before discounts
          example: 1000
        grossAmountCompanyCurrency:
          type: number
          description: Gross amount in company currency
          example: 1000
        netAmount:
          type: number
          description: Net amount after discounts
          example: 900
        netAmountCompanyCurrency:
          type: number
          description: Net amount in company currency
          example: 900
        totalLine:
          type: number
          description: Total line amount
          example: 1089
        totalLineCompanyCurrency:
          type: number
          description: Total line amount in company currency
          example: 1089
        batches:
          type: array
          description: >-
            Gets the list of outbound batch items. See
            ApiBaseLineBatchOutboundWriteDto for structure.
          items:
            $ref: '#/components/schemas/ApiBaseLineBatchOutboundWriteDto'
        serialNumbers:
          type: array
          description: >-
            Gets the list of serial number items. See
            ApiBaseLineSerialNumberWriteDto for structure.
          items:
            $ref: '#/components/schemas/ApiBaseLineSerialNumberWriteDto'
        concept:
          type: string
          description: Concept description for the line
          example: Product delivery
        disbursement:
          type: boolean
          description: Indicates if this line involves disbursement
          example: false
    ApiEdiInvoiceTypeEnum:
      type: string
      enum:
        - COMMERCIAL_INVOICE
        - CREDIT_NOTE
        - CHARGE_NOTE
        - SUMMARY_INVOICE
        - PROFORMA_INVOICE
        - AUTO_INVOICE
    ApiInvoiceDeliveryNoteWriteDto:
      type: object
      description: >-
        Data for creating or updating the relation between an invoice and its
        delivery notes, including their lines.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the invoice-delivery note relation.
          example: 2123
        lines:
          $ref: '#/components/schemas/ApiDeliveryNoteLineWriteDto'
          description: Lines associated with the delivery note for the invoice.
        billingSeries:
          type: integer
          format: int32
          description: Identifier for the billing series related to the invoice.
          example: 7
        warehouse:
          type: integer
          format: int32
          description: Warehouse identifier related to the invoice.
          example: 3
        vatOperationType:
          type: integer
          format: int32
          description: VAT operation type identifier for the invoice.
          example: 2
    ApiInvoicePosPaymentTypeWriteDto:
      type: object
      description: List of point-of-sale payment types associated with the invoice
      properties:
        id:
          type: integer
          format: int32
          description: >-
            Identifier of the POS payment type entry. Leave null when creating a
            new entry.
          example: 1001
        invoice:
          type: integer
          format: int32
          description: Invoice identifier
          example: 100
        paymentType:
          $ref: '#/components/schemas/ApiPosPaymentTypeEnum'
          description: Payment type
          example: CASH
        amount:
          type: number
          description: Amount
          example: 1000
    ApiInvoiceWriteDto:
      type: object
      description: >-
        Data for creating or updating an invoice with all related information
        including receipts, delivery notes and taxes
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the invoice.
          example: 1001
        valueDate:
          type: string
          format: date
          description: Value date of the invoice.
          example: '2024-05-15'
        locked:
          type: boolean
          description: Indicates if the invoice is locked for modifications.
          example: false
        periodId:
          type: integer
          format: int32
          description: >-
            Unique identifier of the accounting period. If not set, system will
            determine based on document date.
          example: 1
        accounted:
          type: boolean
          description: Indicates if the invoice has been accounted.
          example: true
        packages:
          type: integer
          format: int32
          description: Total number of packages associated with the invoice.
          example: 5
        observations:
          type: string
          description: General observations for the invoice.
          example: Deliver before noon.
        billingObservations:
          type: string
          description: Internal billing observations for the invoice.
          example: Special rate applied.
        paymentMethod:
          type: integer
          format: int32
          description: Payment method identifier.
          example: 3
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days.
          example: 30
        daysTerm:
          type: integer
          format: int32
          description: Subsequent payment term in days.
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms.
          example: 3
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Type of proximity for the invoice.
          example: LOCAL
        tags:
          type: array
          description: Tags related to the invoice.
          example:
            - urgent
            - international
          items:
            type: string
        accountingAccount:
          type: integer
          format: int32
          description: Accounting account code for the invoice.
          example: 43000001
        status:
          $ref: '#/components/schemas/ApiStatusInvoiceEnum'
          description: Status of the invoice.
          example: ISSUED
        reference:
          type: string
          description: Reference number or string for the invoice.
          example: INV-2024-0123
        customerVatType:
          type: integer
          format: int32
          description: Customer VAT type identifier.
          example: 1
        billingSeries:
          type: integer
          format: int32
          description: Billing series identifier.
          example: 7
        shippingTerm:
          type: integer
          format: int32
          description: Shipping term identifier.
          example: 2
        currency:
          type: integer
          format: int32
          description: Currency identifier.
          example: 1
        change:
          type: number
          description: Exchange rate for currency conversion.
          example: 1.1
        discount1:
          type: number
          description: First discount percentage applied to the invoice.
          example: 10
        discount2:
          type: number
          description: Second discount percentage applied to the invoice.
          example: 5
        discount3:
          type: number
          description: Third discount percentage applied to the invoice.
          example: 2
        discount4:
          type: number
          description: Fourth discount percentage applied to the invoice.
          example: 1
        discountPp:
          type: number
          description: Prompt payment discount percentage.
          example: 3
        withholding:
          type: number
          description: Withholding percentage applied to the invoice.
          example: 15
        number:
          type: integer
          description: Invoice document number.
          example: 10022
        documentDate:
          type: string
          format: date
          description: Document date for the invoice.
          example: '2024-05-01'
        expirationDate:
          type: string
          format: date
          description: Expiration date of the invoice.
          example: '2024-06-01'
        manual:
          type: boolean
          description: Indicates if the invoice was created manually.
          example: false
        receipts:
          $ref: '#/components/schemas/ApiReceiptWriteDto'
          description: List of receipts associated with the invoice
        deliveryNotes:
          $ref: '#/components/schemas/ApiInvoiceDeliveryNoteWriteDto'
          description: List of delivery notes associated with the invoice
        taxes:
          $ref: '#/components/schemas/ApiTaxesWriteDto'
          description: List of taxes applied to the invoice
        invoicePosPaymentTypes:
          $ref: '#/components/schemas/ApiInvoicePosPaymentTypeWriteDto'
          description: List of point-of-sale payment types associated with the invoice
        salesAccount:
          type: integer
          format: int32
          description: Sales account identifier for the invoice
          example: 7001
        manualReceipts:
          type: boolean
          description: Indicates if receipts are created manually
          example: false
        grossWeight:
          type: number
          description: Total gross weight of the shipment
          example: 125.5
        netWeight:
          type: number
          description: Total net weight of the shipment
          example: 120
        volume:
          type: number
          description: Total volume of the shipment
          example: 2.35
        creditLetter:
          type: string
          description: Credit letter reference
          example: CL-2024-001
        agentDuty:
          type: string
          description: Agent duty information
          example: Agent duty paid
        transportType:
          type: string
          description: Type of transport used
          example: Road transport
        ediInvoiceType:
          $ref: '#/components/schemas/ApiEdiInvoiceTypeEnum'
          description: EDI invoice type for electronic data interchange
          example: COMMERCIAL_INVOICE
        electronicInvoiceSent:
          type: string
          description: Status of electronic invoice transmission
          example: SENT
        deliveryTerms:
          type: string
          description: Delivery terms and conditions
          example: FOB destination
        intrastatNatureTransaction:
          type: string
          description: Intrastat nature of transaction code
          example: 11
        intrastatShippingTerm:
          type: string
          description: Intrastat shipping term code
          example: FOB
        intrastatPort:
          type: string
          description: Intrastat port of entry/exit
          example: ES004
        returnReason:
          type: string
          description: Reason for return if applicable
          example: Product defect
        paidCommissions:
          type: boolean
          description: Indicates if commissions have been paid
          example: true
        manualExpiration:
          type: boolean
          description: Indicates if expiration date is set manually
          example: false
        iban:
          type: string
          description: International Bank Account Number
          example: ES9121000418450200051332
        correctiveInvoice:
          type: integer
          format: int32
          description: Corrective invoice identifier if this is a correction
          example: 1050
        customerAddress:
          type: integer
          format: int32
          description: Customer address identifier
          example: 15
        percentageIrpf:
          type: number
          description: IRPF (Personal Income Tax) percentage
          example: 15
        invoiceEditObservations:
          type: string
          description: Invoice editing observations
          example: Invoice reviewed and approved
        shippingVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for shipping costs
          example: GENERAL
        shippingAmount:
          type: number
          description: Shipping amount
          example: 25.5
        shippingVatPercentage:
          type: number
          description: VAT percentage applied to shipping
          example: 21
        shippingSurchargePercentage:
          type: number
          description: Surcharge percentage applied to shipping
          example: 5.2
        approved:
          type: boolean
          description: Indicates if the invoice has been approved
          example: true
        quote:
          type: integer
          format: int32
          description: Quote identifier associated with the invoice
          example: 2001
        rateCode:
          type: integer
          format: int32
          description: Rate code applied to the invoice
          example: 101
        administrativeCenterAccountingOffice:
          type: string
          description: Administrative center accounting office code
          example: ACC001
        administrativeCenterManagingBody:
          type: string
          description: Administrative center managing body code
          example: MAN001
        administrativeCenterProcessingUnit:
          type: string
          description: Administrative center processing unit code
          example: PRO001
        administrativeCenterProposingBody:
          type: string
          description: Administrative center proposing body code
          example: PROP001
        correctiveReason:
          $ref: '#/components/schemas/ApiCorrectiveReasonEnum'
          description: Reason for correction if this is a corrective invoice
          example: INVOICE_NUMBER
        externalCode:
          type: string
          description: >-
            External identifier of the invoice, typically used to reference the
            invoice in external systems.
          example: EXT-INV-2024-00123
    ApiPosPaymentTypeEnum:
      type: string
      description: Enumeration of point-of-sale payment types
      enum:
        - CASH
        - CARD
        - OTHER
      example: CARD
    ApiReceiptExpensesTypeEnum:
      type: string
      enum:
        - CATEGORY1
        - CATEGORY2
        - CATEGORY3
        - CATEGORY4
        - CATEGORY5
    ApiReceiptExpensesWriteDto:
      type: object
      description: Receipt expenses information for payment receipts
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the receipt expense
          example: 1
        header:
          type: integer
          format: int32
          description: Header identifier
          example: 100
        description:
          type: string
          description: Description of the expense
          example: Bank commission
        percentage:
          type: number
          description: Percentage of the expense
          example: 2.5
        amount:
          type: number
          description: Amount of the expense
          example: 25
        totalAmount:
          type: number
          description: Total amount of the expense
          example: 25
        type:
          $ref: '#/components/schemas/ApiReceiptExpensesTypeEnum'
          description: Type of receipt expense
          example: COMMISSION
    ApiReceiptWriteDto:
      type: object
      description: Receipt information for creating payment receipts
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the receipt
          example: 1
        invoice:
          type: integer
          format: int32
          description: Invoice identifier
          example: 100
        billingSeries:
          type: integer
          format: int32
          description: Billing series identifier
          example: 5
        paymentMethod:
          type: integer
          format: int32
          description: Payment method identifier
          example: 3
        customerAddress:
          type: integer
          format: int32
          description: Customer address identifier
          example: 10
        representative:
          type: integer
          format: int32
          description: Representative identifier
          example: 2
        currency:
          type: integer
          format: int32
          description: Currency identifier
          example: 1
        invoiceNumber:
          type: integer
          format: int32
          description: Invoice number
          example: 1001
        receiptNumber:
          type: integer
          format: int32
          description: Receipt number
          example: 5001
        invoiceDate:
          type: string
          format: date
          description: Invoice date
          example: '2024-01-15'
        receiptDate:
          type: string
          format: date
          description: Receipt date
          example: '2024-01-20'
        expirationDate:
          type: string
          format: date
          description: Expiration date
          example: '2024-02-15'
        actualDate:
          type: string
          format: date
          description: Actual date
          example: '2024-01-20'
        printed:
          type: boolean
          description: Flag indicating if the receipt is printed
          example: true
        accounted:
          type: boolean
          description: Flag indicating if the receipt is accounted
          example: true
        reclaimed:
          type: boolean
          description: Flag indicating if the receipt is reclaimed
          example: false
        reclaimedDate:
          type: string
          format: date
          description: Date when the receipt was reclaimed
          example: '2024-01-25'
        currencyChangeValue:
          type: number
          description: Currency exchange rate
          example: 1
        daysUntilExpirationDate:
          type: integer
          format: int32
          description: Days until expiration date
          example: 30
        iban:
          type: string
          description: IBAN for payments
          example: ES9121000418450200051332
          maxLength: 50
          minLength: 0
        totalWithoutExpenses:
          type: number
          description: Total amount without expenses
          example: 1250
        totalWithoutExpensesCompanyCurrency:
          type: number
          description: Total amount without expenses in company currency
          example: 1250
        collectedAmount:
          type: number
          description: Collected amount
          example: 1250
        collectedAmountCompanyCurrency:
          type: number
          description: Collected amount in company currency
          example: 1250
        expenses:
          type: number
          description: Expenses amount
          example: 25.5
        pendingAmount:
          type: number
          description: Pending amount
          example: 0
        pendingAmountCompanyCurrency:
          type: number
          description: Pending amount in company currency
          example: 0
        payments:
          type: integer
          format: int32
          description: Number of payments
          example: 1
        remittable:
          type: boolean
          description: Flag indicating if the receipt is remittable
          example: true
        ignorePending:
          type: boolean
          description: Flag indicating if pending amounts should be ignored
          example: false
        uncollectable:
          type: boolean
          description: Flag indicating if the receipt is uncollectable
          example: false
        promissoryNoteBank:
          type: string
          description: Promissory note bank
          example: Banco Santander
          maxLength: 50
          minLength: 0
        promissoryNoteNumber:
          type: string
          description: Promissory note number
          example: PN-2024-001
          maxLength: 50
          minLength: 0
        observations:
          type: string
          description: Observations about the receipt
          example: Payment received
        unpaidDate:
          type: string
          format: date
          description: Date when the receipt became unpaid
          example: '2024-02-15'
        unpaidReason:
          type: integer
          format: int32
          description: Reason for unpaid status
          example: 1
        receiptExpenses:
          $ref: '#/components/schemas/ApiReceiptExpensesWriteDto'
          description: List of receipt expenses
        addExpenses:
          type: boolean
          description: Flag indicating if expenses should be added
          example: true
    ApiTaxesWriteDto:
      type: object
      description: Tax information for writing invoice taxes
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the tax entry
          example: 1
        invoice:
          type: integer
          format: int32
          description: Invoice identifier
          example: 100
        netAmountTotal:
          type: number
          description: Total net amount
          example: 1000
        netAmountTotalCompanyCurrency:
          type: number
          description: Total net amount in company currency
          example: 1000
        vatPercentage:
          type: number
          description: VAT percentage
          example: 21
        vatAmountTotal:
          type: number
          description: Total VAT amount
          example: 210
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency
          example: 210
        surchargePercentage:
          type: number
          description: Surcharge percentage
          example: 5
        surchargeAmountTotal:
          type: number
          description: Total surcharge amount
          example: 50
        surchargeAmountTotalCompanyCurrency:
          type: number
          description: Total surcharge amount in company currency
          example: 50
    ApiCommissionInvoiceListReadDto:
      type: object
      description: Commission invoice information for representatives
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        representative:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Representative information
        commissionType:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission
          example: PERCENTAGE
        percentage:
          type: number
          description: Commission percentage
          example: 5
        total:
          type: number
          description: Total commission amount
          example: 250
        totalCompanyCurrency:
          type: number
          description: Total commission amount in company currency
          example: 250
        counter:
          type: integer
          description: Counter for commission tracking
          example: 10
      required:
        - id
    ApiDeliveryNoteLineDetailReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        widthId:
          type: integer
          format: int32
          description: Width identifier.
          example: 200
        widthCode:
          type: string
          description: Width code.
          example: W-35
        quantitiesPerSize:
          type: array
          description: >-
            Quantities per size. For structure see
            ApiBaseLineDetailSizeReadDto.java
          items:
            $ref: '#/components/schemas/ApiDeliveryNoteLineDetailSizeReadDto'
      required:
        - id
    ApiDeliveryNoteLineDetailSizeReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        sizeRangeDetailId:
          type: integer
          format: int32
          description: Size detail identifier.
          example: 15
        sizeRangeDetailSize:
          type: string
          description: Size code within the range.
          example: M
        sizeRangeSizeOrder:
          type: integer
          format: int32
          description: Order value of the size in the range.
          example: 2
        quantityPerPackage:
          type: number
          description: Quantity per package for this size.
          example: 8
        quantityDetail:
          type: number
          description: Total quantity for this size.
          example: 24
        availability:
          type: number
          description: Available quantity for this size.
          example: 10
      required:
        - id
        - sizeRangeDetailId
        - sizeRangeDetailSize
    ApiDeliveryNoteLineReadDto:
      type: object
      description: >-
        Delivery note line information including article details, pricing,
        commissions, batches and order references
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        lineNumber:
          type: integer
          format: int32
          description: Line number within the document.
          example: 1
        articleCombination:
          $ref: '#/components/schemas/ApiArticleCombinationListReadDto'
          description: >-
            Article combination info. See ApiArticleCombinationListReadDto.java
            for the structure.
        attributesDescription:
          type: string
          description: Additional attributes description for the line.
          example: 'Color: Red, Size: L'
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: >-
            Size range information. See ApiSizeRangeListReadDto.java for the
            structure.
        assortment:
          $ref: '#/components/schemas/ApiAssortmentListReadDto'
          description: >-
            Assortment information. See ApiAssortmentListReadDto.java for the
            structure.
        articleDescription:
          type: string
          description: Description of the article.
          example: Cotton T-Shirt
        packages:
          type: integer
          format: int32
          description: Number of packages in this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity per package for this line.
          example: 5
        quantityLine:
          type: number
          description: Total quantity for this line.
          example: 15
        price:
          type: number
          description: Unit price for this article line.
          example: 12.95
        lineObservations:
          type: string
          description: Observations for this document line.
          example: Deliver before 9 AM
        details:
          type: array
          description: >-
            List of line details. See ApiBaseLineDetailReadDto.java for the
            structure.
          items:
            $ref: '#/components/schemas/ApiDeliveryNoteLineDetailReadDto'
        packaging:
          $ref: '#/components/schemas/ApiArticleListReadDto'
          description: Packaging article information
        assortedPackages:
          type: boolean
          description: Indicates if packages are assorted
          example: true
        discount:
          type: number
          description: Discount percentage applied to this line
          example: 10.5
        rsp:
          type: number
          description: Recommended selling price
          example: 25.99
        reference:
          type: string
          description: Reference code for the line
          example: REF-2024-001
        status:
          $ref: '#/components/schemas/ApiDeliveryNoteStatusEnum'
          description: Status of the delivery note line
          example: INVOICED
        picture:
          type: string
          description: Picture filename
          example: product_image_001.jpg
        pictureToken:
          type: string
          description: Picture access token
          example: abc123def456
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Warehouse information
        noAccumulateWarehouse:
          type: boolean
          description: Indicates if warehouse accumulation is disabled
          example: false
        brand:
          $ref: '#/components/schemas/ApiBrandListReadDto'
          description: Brand information
        returnReason:
          $ref: '#/components/schemas/ApiReturnReasonListReadDto'
          description: Return reason information
        received:
          type: boolean
          description: Indicates if the line has been received
          example: true
        accepted:
          type: boolean
          description: Indicates if the line has been accepted
          example: true
        freeDescription1:
          type: string
          description: First free description field
          example: Special handling required
        freeDescription2:
          type: string
          description: Second free description field
          example: Custom packaging
        freeDescription3:
          type: string
          description: Third free description field
          example: Priority delivery
        freeDescription4:
          type: string
          description: Fourth free description field
          example: Gift wrap
        freeDescription5:
          type: string
          description: Fifth free description field
          example: Express shipping
        customCommission:
          type: boolean
          description: Indicates if custom commission is applied
          example: false
        representative1:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: First representative information
        commissionType1:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: First commission type
          example: PERCENTAGE
        commission1:
          type: number
          description: First commission value
          example: 5
        representative2:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Second representative information
        commissionType2:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Second commission type
          example: PERCENTAGE
        commission2:
          type: number
          description: Second commission value
          example: 3
        representative3:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Third representative information
        commissionType3:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Third commission type
          example: FIXED
        commission3:
          type: number
          description: Third commission value
          example: 25
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for the article
          example: GENERAL
        vatPercentage:
          type: number
          description: VAT percentage applied to this line
          example: 21
        surchargePercentage:
          type: number
          description: Surcharge percentage applied to this line
          example: 5.2
        grossAmount:
          type: number
          description: Gross amount before discounts
          example: 1000
        grossAmountCompanyCurrency:
          type: number
          description: Gross amount in company currency
          example: 1000
        netAmount:
          type: number
          description: Net amount after discounts
          example: 900
        netAmountCompanyCurrency:
          type: number
          description: Net amount in company currency
          example: 900
        totalLine:
          type: number
          description: Total line amount
          example: 1089
        totalLineCompanyCurrency:
          type: number
          description: Total line amount in company currency
          example: 1089
        orderId:
          type: integer
          format: int32
          description: Related order identifier
          example: 1501
        orderNumber:
          type: integer
          description: Related order number
          example: 10025
        invoiceId:
          type: integer
          format: int32
          description: Related invoice identifier
          example: 2001
        invoiceNumber:
          type: integer
          description: Related invoice number
          example: 10030
        availability:
          type: number
          description: Product availability quantity
          example: 85.5
        invoiceDocumentDate:
          type: string
          format: date
          description: Related invoice document date
          example: '2024-08-05'
        invoiceBillingSeriesCode:
          type: string
          description: Related invoice billing series code
          example: A
        customerId:
          type: integer
          format: int32
          description: Customer identifier
          example: 1001
        customerName:
          type: string
          description: Customer name
          example: ABC Company S.A.
        batches:
          $ref: '#/components/schemas/ApiBaseLineBatchReadDto'
          description: List of batches for this line
        serialNumbers:
          $ref: '#/components/schemas/ApiBaseLineSerialNumberReadDto'
          description: List of serial numbers for this line
        purchaseDeliveryNoteLine:
          $ref: '#/components/schemas/ApiPurchaseDeliveryNoteLineReadDto'
          description: Purchase delivery note line information
        concept:
          type: string
          description: Concept description for the line
          example: Product delivery
        deliveryNoteReturnedQuantity:
          type: number
          description: Quantity returned from delivery note
          example: 2.5
        orderServedQuantity:
          type: number
          description: Quantity served from order
          example: 15
        returnedQuantity:
          type: number
          description: Total returned quantity
          example: 5
        disbursement:
          type: boolean
          description: Indicates if this line involves disbursement
          example: false
      required:
        - articleCombination
        - id
        - lineNumber
    ApiDeliveryNoteReadDto:
      type: object
      description: Delivery note information for shipping documents
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1001
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2024-08-07'
        quantityTotal:
          type: number
          description: Total quantity for all document lines.
          example: 200.5
        observations:
          type: string
          description: Free text field for any observations related to the document.
          example: Customer requested urgent delivery
        lines:
          type: array
          description: >-
            List of detail lines for the document. For structure see:
            ApiBaseLineReadDto.java
          items:
            $ref: '#/components/schemas/ApiDeliveryNoteLineReadDto'
        change:
          type: number
          description: Change applied to the invoice or document
          example: 0.5
        discount1:
          type: number
          description: First discount percentage
          example: 5
        discount2:
          type: number
          description: Second discount percentage
          example: 2
        discountAmountTotal:
          type: number
          description: Total discount amount
          example: 100
        discountAmountTotalCompanyCurrency:
          type: number
          description: Total discount amount in company currency
          example: 95
        discountPp:
          type: number
          description: Prompt payment discount percentage
          example: 3
        discountPpAmountTotal:
          type: number
          description: Total prompt payment discount amount
          example: 15
        discountPpAmountTotalCompanyCurrency:
          type: number
          description: Total prompt payment discount amount in company currency
          example: 14
        grossAmountTotal:
          type: number
          description: Gross total amount
          example: 1200
        grossAmountTotalCompanyCurrency:
          type: number
          description: Gross total amount in company currency
          example: 1150
        netAmountTotal:
          type: number
          description: Net total amount
          example: 1100
        netAmountTotalCompanyCurrency:
          type: number
          description: Net total amount in company currency
          example: 1080
        vatAmountTotal:
          type: number
          description: Total VAT amount
          example: 230
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency
          example: 225
        surchargeAmountTotal:
          type: number
          description: Total surcharge amount
          example: 20
        surchargeAmountTotalCompanyCurrency:
          type: number
          description: Total surcharge amount in company currency
          example: 18
        withholding:
          type: number
          description: Withholding percentage
          example: 2
        withholdingAmountTotal:
          type: number
          description: Total withholding amount
          example: 22
        withholdingAmountTotalCompanyCurrency:
          type: number
          description: Total withholding amount in company currency
          example: 21
        total:
          type: number
          description: Total document amount
          example: 1300
        totalCompanyCurrency:
          type: number
          description: Total document amount in company currency
          example: 1280
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount
          example: 50
        disbursementAmountTotalCompanyCurrency:
          type: number
          description: Total disbursement amount in company currency
          example: 48
        billingSeries:
          $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
          description: Billing series information
        valueDate:
          type: string
          format: date
          description: Value date
          example: '2024-01-20'
        customerAddress:
          $ref: '#/components/schemas/ApiCustomerAddressViewReadDto'
          description: Customer address information
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Warehouse information
        reference:
          type: string
          description: Reference number
          example: ALB-2024-001
        rateCode:
          $ref: '#/components/schemas/ApiRateCodeListReadDto'
          description: Exchange rate code information
        agency:
          $ref: '#/components/schemas/ApiAgencyListReadDto'
          description: Agency information
        locked:
          type: boolean
          description: Flag indicating if the document is locked
          example: false
        paymentMethod:
          $ref: '#/components/schemas/ApiPaymentMethodListReadDto'
          description: Payment method information
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days
          example: 30
        daysTerm:
          type: integer
          format: int32
          description: Payment term in days
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms
          example: 3
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Type of proximity
          example: LOCAL
        discount3:
          type: number
          description: Third discount percentage
          example: 3
        discount4:
          type: number
          description: Fourth discount percentage
          example: 2
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: Currency information
        iban:
          type: string
          description: IBAN for payments
          example: ES9121000418450200051332
        customerVatType:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
          description: Customer VAT type information
        phytosanitaryAuthorizedPerson:
          $ref: '#/components/schemas/ApiPhytosanitaryAuthorizedPersonListReadDto'
          description: Phytosanitary authorized person information
        representative1:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Primary representative information
        commissionType1:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for primary representative
          example: PERCENTAGE
        commission1:
          type: number
          description: Commission amount for primary representative
          example: 5
        representative2:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Secondary representative information
        commissionType2:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for secondary representative
          example: FIXED
        commission2:
          type: number
          description: Commission amount for secondary representative
          example: 100
        representative3:
          $ref: '#/components/schemas/ApiRepresentativeListReadDto'
          description: Tertiary representative information
        commissionType3:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Type of commission for tertiary representative
          example: PERCENTAGE
        commission3:
          type: number
          description: Commission amount for tertiary representative
          example: 2.5
        noAccumulateRisk:
          type: boolean
          description: Flag indicating no accumulation risk
          example: false
        packages:
          type: integer
          format: int32
          description: Number of packages
          example: 5
        grossWeight:
          type: number
          description: Gross weight in kilograms
          example: 25.5
        netWeight:
          type: number
          description: Net weight in kilograms
          example: 23
        volume:
          type: number
          description: Volume in cubic meters
          example: 0.5
        billingObservations:
          type: string
          description: Billing observations
          example: Handle with care
        shippingTerm:
          $ref: '#/components/schemas/ApiShippingTermListReadDto'
          description: Shipping terms information
        shippingAmount:
          type: number
          description: Shipping amount
          example: 25.5
        shippingVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for shipping
          example: GENERAL
        shippingVatPercentage:
          type: number
          description: VAT percentage for shipping
          example: 21
        shippingSurchargePercentage:
          type: number
          description: Surcharge percentage for shipping
          example: 5
        tags:
          type: array
          description: Tags associated with the delivery note
          example:
            - urgent
            - fragile
          items:
            type: string
        invoiceEditObservations:
          type: string
          description: Observations for invoice editing
          example: Special handling required
        collectedAmount:
          type: number
          description: Collected amount
          example: 1500
        collectedAmountCompanyCurrency:
          type: number
          description: Collected amount in company currency
          example: 1500
      required:
        - billingSeries
        - currency
        - customerVatType
        - documentDate
        - id
        - number
        - paymentMethod
        - warehouse
    ApiDeliveryNoteStatusEnum:
      type: string
      description: Defines the statuses of a delivery note.
      enum:
        - INVOICED
      example: INVOICED
    ApiInvoiceListReadDto:
      type: object
      description: >-
        Information for listing invoices, extending the base invoice list read
        DTO with additional fields.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        billingSeriesCode:
          type: string
          description: Billing series code associated with the invoice.
          example: A
        number:
          type: integer
          description: Invoice number.
          example: 10023
        documentDate:
          type: string
          format: date
          description: Document date of the invoice.
          example: '2024-04-20'
        valueDate:
          type: string
          format: date
          description: Value date of the invoice.
          example: '2024-04-22'
        commercialName:
          type: string
          description: Commercial name of the customer.
          example: Company ABC S.A.
        grossAmountTotal:
          type: number
          description: Total gross amount of the invoice.
          example: 800
        grossAmountTotalCompanyCurrency:
          type: number
          description: Total gross amount in company currency.
          example: 820
        discount1AmountTotal:
          type: number
          description: Total amount of first discount applied.
          example: 10
        discount1AmountTotalCompanyCurrency:
          type: number
          description: Total amount of first discount in company currency.
          example: 10.25
        discount2AmountTotal:
          type: number
          description: Total amount of second discount applied.
          example: 5
        discount2AmountTotalCompanyCurrency:
          type: number
          description: Total amount of second discount in company currency.
          example: 5.1
        discountPpAmountTotal:
          type: number
          description: Total amount of prompt payment discount.
          example: 3
        discountPpAmountTotalCompanyCurrency:
          type: number
          description: Total amount of prompt payment discount in company currency.
          example: 3.06
        discountAmountTotal:
          type: number
          description: Total amount of all discounts.
          example: 18
        discountAmountTotalCompanyCurrency:
          type: number
          description: Total amount of all discounts in company currency.
          example: 18.41
        netAmountTotal:
          type: number
          description: Total net amount (after discounts, before VAT) of the invoice.
          example: 700
        netAmountTotalCompanyCurrency:
          type: number
          description: Total net amount in company currency.
          example: 715
        vatAmountTotal:
          type: number
          description: Total VAT amount of the invoice.
          example: 147
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency.
          example: 150
        total:
          type: number
          description: Total amount of the invoice (final amount).
          example: 847
        totalCompanyCurrency:
          type: number
          description: Total amount of the invoice in company currency.
          example: 865
        paymentMethodDescription:
          type: string
          description: Description of payment method.
          example: Bank transfer
        currencyNomenclature:
          type: string
          description: Nomenclature of the currency.
          example: EUR
        documentType:
          type: string
          description: Type of the document.
          example: INVOICE
        quantityTotal:
          type: number
          description: Total quantity associated with the invoice.
          example: 25
        tags:
          type: array
          description: Tags associated with the invoice.
          example:
            - urgent
            - priority
          items:
            type: string
        status:
          $ref: '#/components/schemas/ApiStatusInvoiceEnum'
          description: Invoice status.
          example: ISSUED
        collectedAmount:
          type: number
          description: Total amount collected for the invoice.
          example: 400
        collectedAmountCompanyCurrency:
          type: number
          description: Total amount collected in company currency.
          example: 420
        currencySignificantDecimalsDocuments:
          type: integer
          format: int32
          description: >-
            Number of significant decimals for documents in the invoice
            currency.
          example: 2
        currencyIntermediateDecimalsDocuments:
          type: integer
          format: int32
          description: >-
            Number of intermediate decimals for documents in the invoice
            currency.
          example: 2
        currencyDecimalsCalculatePrices:
          type: integer
          format: int32
          description: Number of decimals for calculating prices.
          example: 4
        currencyDecimalsCalculateCosts:
          type: integer
          format: int32
          description: Number of decimals for calculating costs.
          example: 4
        reference:
          type: string
          description: Reference number or code for the invoice.
          example: INV-2024-1001
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount of the invoice.
          example: 50
        disbursementAmountTotalCompanyCurrency:
          type: number
          description: Total disbursement amount of the invoice in company currency.
          example: 50
        expirationDate:
          type: string
          format: date
          description: Expiration date of the invoice.
          example: '2024-05-29'
        withholdingAmountTotal:
          type: number
          description: Total withholding amount applied to the invoice.
          example: 30
        manual:
          type: boolean
          description: Indicates if the invoice was generated manually.
          example: false
        amountReconciliation:
          type: number
        amountReconciliationCompanyCurrency:
          type: number
        billingSeriesInvoiceDraft:
          type: boolean
          description: Indicates if the invoice is a draft of the billing series.
          example: false
        invoiceNumber:
          type: string
          description: Formatted invoice number.
          example: F-2024-000152
        customerCode:
          type: string
          description: Code of the customer associated with the invoice.
          example: CUST001
        customerBusinessName:
          type: string
          description: Business name of the customer.
          example: Clavei S.A.
        customerName:
          type: string
          description: Name of the customer contact.
          example: John Doe
        iban:
          type: string
          description: IBAN associated with the invoice.
          example: ES4721000418401234567891
        referenceDocumentNumber:
          type: string
          description: Reference document number linked to the invoice.
          example: REF-2024-0177
        hasReceipt:
          type: boolean
          description: Indicates if the invoice has an associated receipt.
          example: true
        customerEmail:
          type: string
          description: Customer email address.
          example: customer@example.com
        customerCountry:
          type: string
          description: Country of the customer.
          example: Spain
        customerStateDescription:
          type: string
          description: State or province description of the customer.
          example: Alicante
        customerAddressId:
          type: integer
          format: int32
          description: Identifier of the customer's address.
          example: 7
        representatives:
          type: string
          description: Names of representatives associated with the invoice.
          example: Ana Torres, Juan Pérez
        salesAccountCode:
          type: string
          description: Sales account code associated with the invoice.
          example: 700
        quoteNumber:
          type: integer
          description: Related quote number if exists.
          example: 15034
        quoteId:
          type: integer
          format: int32
          description: Unique identifier for the related quote.
          example: 320
        discount3AmountTotal:
          type: number
          description: Total amount of third discount.
          example: 12
        discount3AmountTotalCompanyCurrency:
          type: number
          description: Total amount of third discount in company currency.
          example: 12.47
        discount4AmountTotal:
          type: number
          description: Total amount of fourth discount.
          example: 10
        discount4AmountTotalCompanyCurrency:
          type: number
          description: Total amount of fourth discount in company currency.
          example: 10.39
        externalCode:
          type: string
          description: >-
            External identifier of the invoice, typically used to reference the
            invoice in external systems.
          example: EXT-INV-2024-00123
      required:
        - id
    ApiInvoicePosPaymentTypeListReadDto:
      type: object
      description: List of point-of-sale payment types associated with the invoice
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        paymentType:
          $ref: '#/components/schemas/ApiPosPaymentTypeEnum'
          description: Payment type
          example: CASH
        amount:
          type: number
          description: Amount
          example: 1000
      required:
        - id
    ApiInvoiceReadDto:
      type: object
      description: >-
        Complete invoice information including taxes, receipts, delivery notes
        and additional invoice details
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        observations:
          type: string
          description: General observations
          example: Special handling required
        number:
          type: integer
          description: Invoice number
          example: 1001
        documentDate:
          type: string
          format: date
          description: Document date
          example: '2024-01-15'
        quantityTotal:
          type: number
          description: Total quantity
          example: 10
        billingSeries:
          $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
          description: Billing series information
        locked:
          type: boolean
          description: Flag indicating if the invoice is locked
          example: false
        accounted:
          type: boolean
          description: Flag indicating if the invoice is accounted
          example: true
        grossAmountTotal:
          type: number
          description: Total gross amount
          example: 1000
        grossAmountTotalCompanyCurrency:
          type: number
          description: Total gross amount in company currency
          example: 1000
        discount1AmountTotal:
          type: number
          description: Total amount of first discount
          example: 150
        discount1AmountTotalCompanyCurrency:
          type: number
          description: Total amount of first discount in company currency
          example: 150
        discount2AmountTotal:
          type: number
          description: Total amount of second discount
          example: 75
        discount2AmountTotalCompanyCurrency:
          type: number
          description: Total amount of second discount in company currency
          example: 75
        discountPp:
          type: number
          description: PP discount percentage
          example: 5
        discountPpAmountTotalCompanyCurrency:
          type: number
          description: PP discount amount in company currency
          example: 50
        netAmountTotal:
          type: number
          description: Total net amount
          example: 900
        netAmountTotalCompanyCurrency:
          type: number
          description: Total net amount in company currency
          example: 900
        vatAmountTotal:
          type: number
          description: Total VAT amount
          example: 189
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency
          example: 189
        total:
          type: number
          description: Total amount
          example: 1114.5
        totalCompanyCurrency:
          type: number
          description: Total amount in company currency
          example: 1114.5
        paymentMethod:
          $ref: '#/components/schemas/ApiPaymentMethodListReadDto'
          description: Payment method information
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days
          example: 30
        daysTerm:
          type: integer
          format: int32
          description: Payment term in days
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms
          example: 3
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Type of proximity
          example: LOCAL
        discount1:
          type: number
          description: First discount percentage
          example: 10
        discount2:
          type: number
          description: Second discount percentage
          example: 5
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: Currency information
        change:
          type: number
          description: Exchange rate
          example: 1
        iban:
          type: string
          description: IBAN for payments
          example: ES9121000418450200051332
        withholding:
          type: number
          description: Withholding percentage
          example: 15
        customerVatType:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
          description: Customer VAT type information
        billingObservations:
          type: string
          description: Billing observations
          example: Handle with care
        paidCommissions:
          type: boolean
          description: Flag indicating if commissions are paid
          example: true
        packages:
          type: integer
          format: int32
          description: Number of packages
          example: 5
        tags:
          type: array
          description: Tags associated with the invoice
          example:
            - urgent
            - priority
          items:
            type: string
        status:
          $ref: '#/components/schemas/ApiStatusInvoiceEnum'
          description: Status of the invoice
          example: PAID
        reference:
          type: string
          description: Reference number
          example: FAC-2024-001
        valueDate:
          type: string
          format: date
          description: Value date
          example: '2024-01-20'
        shippingTerm:
          $ref: '#/components/schemas/ApiShippingTermListReadDto'
          description: Shipping terms information
        irpfAmountTotal:
          type: number
          description: Total IRPF amount
          example: 15
        withholdingAmountTotal:
          type: number
          description: Total withholding amount
          example: 15
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount
          example: 25.5
        disbursementAmountTotalCompanyCurrency:
          type: number
          description: Total disbursement amount in company currency
          example: 25.5
        collectedAmount:
          type: number
          description: Collected amount
          example: 1114.5
        collectedAmountCompanyCurrency:
          type: number
          description: Collected amount in company currency
          example: 1114.5
        expirationDate:
          type: string
          format: date
          description: Expiration date
          example: '2024-02-15'
        manual:
          type: boolean
          description: Flag indicating if the invoice is manual
          example: false
        amountReconciliation:
          type: number
          description: Amount for reconciliation
          example: 0
        amountReconciliationCompanyCurrency:
          type: number
          description: Amount for reconciliation in company currency
          example: 0
        taxes:
          $ref: '#/components/schemas/ApiTaxesListReadDto'
          description: List of taxes applied to the invoice
        invoicePosPaymentTypes:
          $ref: '#/components/schemas/ApiInvoicePosPaymentTypeListReadDto'
          description: List of point-of-sale payment types associated with the invoice
        receipts:
          $ref: '#/components/schemas/ApiInvoiceReceiptReadDto'
          description: List of receipts associated with the invoice
        deliveryNotes:
          $ref: '#/components/schemas/ApiDeliveryNoteReadDto'
          description: List of delivery notes associated with the invoice
        customerAddress:
          $ref: '#/components/schemas/ApiCustomerAddressViewReadDto'
          description: Customer address information
        rateCode:
          $ref: '#/components/schemas/ApiRateCodeListReadDto'
          description: Rate code information
        discount3:
          type: number
          description: Third discount percentage
          example: 2
        discount4:
          type: number
          description: Fourth discount percentage
          example: 1
        discount3AmountTotal:
          type: number
          description: Total amount of third discount
          example: 20
        discount3AmountTotalCompanyCurrency:
          type: number
          description: Total amount of third discount in company currency
          example: 20
        discount4AmountTotal:
          type: number
          description: Total amount of fourth discount
          example: 10
        discount4AmountTotalCompanyCurrency:
          type: number
          description: Total amount of fourth discount in company currency
          example: 10
        discountPpAmountTotal:
          type: number
          description: Total amount of prompt payment discount
          example: 30
        percentageIrpf:
          type: number
          description: IRPF (Personal Income Tax) percentage
          example: 15
        shippingAmount:
          type: number
          description: Shipping amount
          example: 25.5
        shippingAmountCompanyCurrency:
          type: number
          description: Shipping amount in company currency
          example: 25.5
        manualExpiration:
          type: boolean
          description: Indicates if expiration date is set manually
          example: false
        commissions:
          $ref: '#/components/schemas/ApiCommissionInvoiceListReadDto'
          description: List of commissions associated with the invoice
        ediInvoiceType:
          $ref: '#/components/schemas/ApiEdiInvoiceTypeEnum'
          description: EDI invoice type for electronic data interchange
          example: COMMERCIAL_INVOICE
        electronicInvoiceSent:
          type: string
          description: Status of electronic invoice transmission
          example: SENT
        deliveryTerms:
          type: string
          description: Delivery terms and conditions
          example: FOB destination
        intrastatNatureTransaction:
          type: string
          description: Intrastat nature of transaction code
          example: 11
        intrastatShippingTerm:
          type: string
          description: Intrastat shipping term code
          example: FOB
        intrastatPort:
          type: string
          description: Intrastat port of entry/exit
          example: ES004
        returnReason:
          type: string
          description: Reason for return if applicable
          example: Product defect
        correctiveInvoice:
          $ref: '#/components/schemas/ApiInvoiceListReadDto'
          description: Corrective invoice information if this invoice corrects another
        manualReceipts:
          type: boolean
          description: Indicates if receipts are created manually
          example: false
        quoteNumber:
          type: integer
          description: Quote number if invoice is generated from a quote
          example: 2001
        quoteId:
          type: integer
          format: int32
          description: Quote identifier if invoice is generated from a quote
          example: 2001
        templateSaleInvoiceNumber:
          type: integer
          description: Template sale invoice number if applicable
          example: 3001
        templateSaleInvoiceId:
          type: integer
          format: int32
          description: Template sale invoice identifier if applicable
          example: 3001
        salesAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Sales account information
        invoiceEditObservations:
          type: string
          description: Invoice editing observations
          example: Invoice reviewed and approved
        grossWeight:
          type: number
          description: Total gross weight of the shipment
          example: 125.5
        netWeight:
          type: number
          description: Total net weight of the shipment
          example: 120
        volume:
          type: number
          description: Total volume of the shipment
          example: 2.35
        transportType:
          type: string
          description: Type of transport used
          example: Road transport
        agentDuty:
          type: string
          description: Agent duty information
          example: Agent duty paid
        creditLetter:
          type: string
          description: Credit letter reference
          example: CL-2024-001
        administrativeCenterAccountingOffice:
          type: string
          description: Administrative center accounting office code
          example: ACC001
        administrativeCenterManagingBody:
          type: string
          description: Administrative center managing body code
          example: MAN001
        administrativeCenterProcessingUnit:
          type: string
          description: Administrative center processing unit code
          example: PRO001
        administrativeCenterProposingBody:
          type: string
          description: Administrative center proposing body code
          example: PROP001
        correctiveReason:
          $ref: '#/components/schemas/ApiCorrectiveReasonEnum'
          description: Reason for correction if this is a corrective invoice
          example: INVOICE_NUMBER
        externalCode:
          type: string
          description: >-
            External identifier of the invoice, typically used to reference the
            invoice in external systems.
          example: EXT-INV-2024-00123
      required:
        - id
    ApiInvoiceReceiptReadDto:
      type: object
      description: >-
        Read-only information about an invoice receipt, including collection
        details and payment status
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        receiptCollectionLines:
          $ref: '#/components/schemas/ApiInvoiceReceiptCollectionLineReadDto'
          description: List of collection lines associated with the receipt
        receiptNumber:
          type: integer
          format: int32
          description: Receipt number identifier
          example: 1001
        expirationDate:
          type: string
          format: date
          description: Expiration date for the receipt payment
          example: '2024-12-31'
        total:
          type: number
          description: Total amount of the receipt in original currency
          example: 1500.75
        totalCompanyCurrency:
          type: number
          description: Total amount of the receipt in company currency
          example: 1500.75
        collectedAmount:
          type: number
          description: Amount already collected from the receipt
          example: 750
        collectedAmountCompanyCurrency:
          type: number
          description: Amount already collected from the receipt in company currency
          example: 750
        pendingAmount:
          type: number
          description: Remaining amount pending collection
          example: 750.75
        pendingAmountCompanyCurrency:
          type: number
          description: Remaining amount pending collection in company currency
          example: 750.75
        remittable:
          type: boolean
          description: Indicates if the receipt can be remitted
          example: true
        situation:
          $ref: '#/components/schemas/ApiSituationEnum'
          description: Current situation status of the receipt
          example: PE
      required:
        - id
    ApiPhytosanitaryAuthorizedPersonListReadDto:
      type: object
      description: Phytosanitary authorized person information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        identificationNumber:
          type: string
          description: Authorized person's identification number.
          example: 12345678A
        name:
          type: string
          description: Authorized person's full name.
          example: John Doe
        certificateExpirationDate:
          type: string
          format: date
          description: Date of certificate expiration (yyyy-MM-dd).
          example: '2025-12-31'
        ropoCode:
          type: string
      required:
        - id
    ApiReturnReasonListReadDto:
      type: object
      description: Return reason information for delivery notes
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Unique code for the return reason
          example: DAMAGED
        description:
          type: string
          description: Description of the return reason
          example: Product Damaged
      required:
        - code
        - id
    ApiSituationEnum:
      type: string
      enum:
        - CO
        - IM
        - CP
        - VE
        - IN
        - PR
        - RE
        - PE
    ApiTaxesListReadDto:
      type: object
      description: Tax information for invoice calculations
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        netAmountTotal:
          type: number
          description: Total net amount
          example: 1000
        netAmountTotalCompanyCurrency:
          type: number
          description: Total net amount in company currency
          example: 1000
        vatPercentage:
          type: number
          description: VAT percentage
          example: 21
        vatAmountTotal:
          type: number
          description: Total VAT amount
          example: 210
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency
          example: 210
        surchargePercentage:
          type: number
          description: Surcharge percentage
          example: 5
        surchargeAmountTotal:
          type: number
          description: Total surcharge amount
          example: 50
        surchargeAmountTotalCompanyCurrency:
          type: number
          description: Total surcharge amount in company currency
          example: 50
        grossAmountTotal:
          type: number
          description: Total gross amount
          example: 1260
        grossAmountTotalCompanyCurrency:
          type: number
          description: Total gross amount in company currency
          example: 1260
        discountsAmountTotal:
          type: number
          description: Total discounts amount
          example: 100
        withholdingAmountTotal:
          type: number
          description: Total withholding amount
          example: 15
        withholdingAmountTotalCompanyCurrency:
          type: number
          description: Total withholding amount in company currency
          example: 15
        withholdingPercentage:
          type: number
          description: Withholding percentage
          example: 1.5
      required:
        - id
    AccountingEntryOriginEnum:
      type: string
      description: Origin information of the accounting entry
      enum:
        - AMORTIZATION
        - BALANCE
        - RECEIPT
        - PAYMENT
        - POS_INVOICE
        - DELIVERY_NOTE
        - PAYROLL
        - SAGE
        - BANK
    ApiEntryDetailWriteDto:
      type: object
      description: >-
        DTO used to create or update the details of an accounting entry,
        including line number, account, amounts, and additional metadata.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entry detail (only required for updates)
          example: 1001
        entry:
          type: integer
          format: int32
          description: Identifier of the related accounting entry
          example: 5001
        lineNumber:
          type: integer
          format: int32
          description: Line number within the accounting entry
          example: 1
        concept:
          type: integer
          format: int32
          description: Concept identifier
          example: 200
        conceptDescription:
          type: string
          description: Description of the concept
          example: Purchase of office supplies
          maxLength: 150
          minLength: 0
        extension:
          type: string
          description: Extension or additional reference information
          example: EXT-REF-01
          maxLength: 100
          minLength: 0
        document:
          type: string
          description: Reference document number
          example: INV-2024-099
          maxLength: 50
          minLength: 0
        account:
          type: integer
          format: int32
          description: Identifier of the accounting account
          example: 6000
        credit:
          type: number
          description: Credit amount of the line
          example: 1200
        debit:
          type: number
          description: Debit amount of the line
          example: 1200
        reconciliation:
          type: integer
          format: int32
          description: >-
            Reconciliation status of the line (0 = none, 1-5 = different
            reconciliation levels)
          example: 0
          maximum: 5
          minimum: 0
        projectId:
          type: integer
          format: int32
          description: Identifier of the associated project
          example: 45
        currencyAmount:
          type: number
          description: Amount in foreign currency
          example: 1000
        currencyDebit:
          type: number
          description: Debit amount in foreign currency
          example: 500
        currencyCredit:
          type: number
          description: Credit amount in foreign currency
          example: 500
        tags:
          type: array
          description: List of tags or labels associated with the entry detail
          example:
            - adjustment
            - VAT
          items:
            type: string
    ApiEntryFileWriteDto:
      type: object
      description: DTO used to attach files to an accounting entry.
      properties:
        id:
          type: integer
          format: int32
        token:
          type: string
          maxLength: 36
          minLength: 0
        fileName:
          type: string
          maxLength: 255
          minLength: 0
        fileExtension:
          type: string
          maxLength: 10
          minLength: 0
        fileSize:
          type: integer
          format: int64
      required:
        - fileExtension
        - fileName
        - token
    ApiEntryWriteDto:
      type: object
      description: >-
        DTO used to create or update an accounting entry, including journal,
        currency, amounts, details, VAT records, and associated documents.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entry (only required for updates)
          example: 10123
        code:
          type: integer
          format: int32
          description: Code of the accounting entry
          example: 5001
        journal:
          type: integer
          format: int32
          description: Identifier of the journal where the entry is recorded
          example: 3
        entryDate:
          type: string
          format: date
          description: Date of the accounting entry
          example: '2024-05-15'
        valueDate:
          type: string
          format: date
          description: Value date of the accounting entry
          example: '2024-05-16'
        currency:
          type: integer
          format: int32
          description: Identifier of the currency used in the entry
          example: 1
        currencyChange:
          type: number
          description: Exchange rate applied for the currency
          example: 1.123456789
        document:
          type: string
          description: Reference document number
          example: DOC-2024-015
          maxLength: 36
          minLength: 0
        originalDocument:
          type: string
          description: Original document reference
          example: INV-2024-077
          maxLength: 36
          minLength: 0
        observations:
          type: string
          description: Additional observations or comments for the entry
          example: Manual adjustment for reconciliation
        debit:
          type: number
          description: Total debit amount of the entry
          example: 1500
        credit:
          type: number
          description: Total credit amount of the entry
          example: 1500
        consolidated:
          type: boolean
          description: Indicates if the entry is consolidated
          example: false
        origin:
          $ref: '#/components/schemas/AccountingEntryOriginEnum'
          description: Origin information of the accounting entry
        vatRecord:
          type: integer
          format: int32
          description: Identifier of the VAT record associated with the entry
          example: 25
        paymentId:
          type: integer
          format: int32
          description: Identifier of the related payment
          example: 5678
        exported:
          type: boolean
          description: Indicates if the entry has been exported
          example: true
        controlCode:
          type: integer
          format: int32
          description: Control code for internal use
          example: 445
        lines:
          $ref: '#/components/schemas/ApiEntryDetailWriteDto'
          description: List of entry detail lines
        files:
          $ref: '#/components/schemas/ApiEntryFileWriteDto'
          description: List of files attached to the entry
        receiptCollection:
          type: integer
          format: int32
          description: Identifier of the receipt collection associated with the entry
          example: 321
        purchaseReceiptCollection:
          type: integer
          format: int32
          description: >-
            Identifier of the purchase receipt collection associated with the
            entry
          example: 654
        remittanceReceipt:
          type: integer
          format: int32
          description: Identifier of the remittance receipt associated with the entry
          example: 789
        closingType:
          type: string
          description: Type of closing applied to the entry
          example: YEAR_END
          maxLength: 20
          minLength: 0
    ApiConceptListReadDto:
      type: object
      description: Concept information associated with the line
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Code of the concept
          example: CON001
        description:
          type: string
          description: Description of the concept
          example: Sales revenue
      required:
        - id
    ApiEntryClosingTypeEnum:
      type: string
      enum:
        - OPENING
        - CLOSING
        - OPERATING_CLOSING
    ApiEntryDetailReadDto:
      type: object
      description: >-
        Detailed information of an accounting entry line, including concept,
        account, amounts, reconciliation and additional metadata.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        lineNumber:
          type: integer
          format: int32
          description: Line number within the accounting entry
          example: 1
        concept:
          $ref: '#/components/schemas/ApiConceptListReadDto'
          description: Concept information associated with the line
        conceptDescription:
          type: string
          description: Description of the concept
          example: Purchase of office supplies
        extension:
          type: string
          description: Extension or additional reference information
          example: EXT-REF-01
        document:
          type: string
          description: Reference document number
          example: INV-2024-099
        account:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Accounting account associated with the line
        debit:
          type: number
          description: Debit amount of the line
          example: 1200
        credit:
          type: number
          description: Credit amount of the line
          example: 1200
        reconciliation:
          type: integer
          format: int32
          description: >-
            Reconciliation status of the line (0 = none, 1-5 = different
            reconciliation levels)
          example: 0
        projectId:
          type: integer
          format: int32
          description: Identifier of the associated project
          example: 45
        currencyAmount:
          type: number
          description: Amount in foreign currency
          example: 1000
        currencyDebit:
          type: number
          description: Debit amount in foreign currency
          example: 500
        currencyCredit:
          type: number
          description: Credit amount in foreign currency
          example: 500
        tags:
          type: array
          description: List of tags or labels associated with the entry detail
          example:
            - adjustment
            - VAT
          items:
            type: string
      required:
        - id
    ApiEntryFileListReadDto:
      type: object
      description: >-
        List of files attached to an accounting entry, including metadata
        inherited from the base file entity list.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        token:
          type: string
          description: File token (unique identifier).
          example: 729eda1d03b34634b8e3c81a8b2d0974
        url:
          type: string
          description: URL to access or download the file.
          example: https://apihost.com/file/729eda1d03b34634b8e3c81a8b2d0974
        fileName:
          type: string
          description: File name (with extension).
          example: invoice_2023.pdf
        fileExtension:
          type: string
          description: File extension.
          example: pdf
        fileSize:
          type: integer
          format: int64
          description: File size in bytes.
          example: 1048576
        modifiedOn:
          type: string
          format: date-time
          description: Date and time the file was last modified (ISO8601).
          example: '2024-08-07T18:10:55'
      required:
        - fileExtension
        - fileName
        - id
        - modifiedOn
        - token
        - url
    ApiEntryReadDto:
      type: object
      description: >-
        Complete accounting entry information including journal, currency,
        amounts, details, VAT records, and associated documents.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: integer
          format: int32
          description: Unique identifier code of the entry
          example: 10123
        periodId:
          type: integer
          format: int32
          description: Identifier of the accounting period
          example: 2024
        journal:
          $ref: '#/components/schemas/ApiJournalListReadDto'
          description: Journal information where the entry is recorded
        entryDate:
          type: string
          format: date
          description: Date of the accounting entry
          example: '2024-05-15'
        valueDate:
          type: string
          format: date
          description: Value date of the accounting entry
          example: '2024-05-16'
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: Currency of the accounting entry
        currencyChange:
          type: number
          description: Exchange rate applied for the currency
          example: 1.12
        document:
          type: string
          description: Reference document number
          example: DOC-2024-015
        originalDocument:
          type: string
          description: Original document reference
          example: INV-2024-077
        observations:
          type: string
          description: Additional observations or comments for the entry
          example: Manual adjustment for reconciliation
        debit:
          type: number
          description: Total debit amount of the entry
          example: 1500
        credit:
          type: number
          description: Total credit amount of the entry
          example: 1500
        consolidated:
          type: boolean
          description: Indicates if the entry is consolidated
          example: true
        origin:
          $ref: '#/components/schemas/AccountingEntryOriginEnum'
          description: Origin information of the accounting entry
        vatRecord:
          $ref: '#/components/schemas/ApiVatRecordListReadDto'
          description: VAT record associated with the entry
        paymentId:
          type: integer
          format: int32
          description: Identifier of the related payment
          example: 5678
        exported:
          type: boolean
          description: Indicates if the entry has been exported
          example: false
        controlCode:
          type: integer
          format: int32
          description: Control code for internal use
          example: 445
        lines:
          $ref: '#/components/schemas/ApiEntryDetailReadDto'
          description: List of entry detail lines
        files:
          $ref: '#/components/schemas/ApiEntryFileListReadDto'
          description: List of files attached to the entry
        receiptCollection:
          $ref: '#/components/schemas/ApiReceiptCollectionListReadDto'
          description: Receipt collection associated with the entry
        purchaseReceiptCollection:
          $ref: '#/components/schemas/ApiPurchaseReceiptCollectionListReadDto'
          description: Purchase receipt collection associated with the entry
        remittanceReceipt:
          $ref: '#/components/schemas/ApiReceiptCollectionListReadDto'
          description: Remittance receipt associated with the entry
        closingType:
          $ref: '#/components/schemas/ApiEntryClosingTypeEnum'
          description: Type of closing applied to the entry
          example: YEAR_END
      required:
        - id
    ApiJournalListReadDto:
      type: object
      description: >-
        Basic information of an accounting journal, including code and
        description.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Unique code of the accounting journal
          example: SALES
        description:
          type: string
          description: Description of the accounting journal
          example: Sales Journal
      required:
        - code
        - description
        - id
    ApiPurchaseReceiptCollectionListReadDto:
      type: object
      description: Purchase receipt collection associated with the entry
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        orderNumber:
          type: integer
          format: int32
          description: Order number of the collection line.
          example: 1
        collectionDate:
          type: string
          format: date
          description: Date of the collection.
          example: '2024-03-15'
        country:
          type: string
          description: Country associated with the collection.
          example: Spain
        accountCode:
          type: string
          description: Account code associated with the collection.
          example: 572000003
        observations:
          type: string
          description: Observations or notes for the collection.
          example: First payment received via bank transfer.
        amount:
          type: number
          description: Amount collected.
          example: 1000.5
        accounted:
          type: boolean
          description: Indicates if the amount is already accounted.
          example: true
        bankName:
          type: string
          description: Name of the bank where the collection was processed.
          example: Bank of Spain
        supplierCode:
          type: string
        supplierBusinessName:
          type: string
        supplierName:
          type: string
      required:
        - id
    ApiReceiptCollectionListReadDto:
      type: object
      description: >-
        Detailed information about a receipt collection, including customer
        information and collection details.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        orderNumber:
          type: integer
          format: int32
          description: Order number of the collection line.
          example: 1
        collectionDate:
          type: string
          format: date
          description: Date of the collection.
          example: '2024-03-15'
        country:
          type: string
          description: Country associated with the collection.
          example: Spain
        accountCode:
          type: string
          description: Account code associated with the collection.
          example: 572000003
        observations:
          type: string
          description: Observations or notes for the collection.
          example: First payment received via bank transfer.
        amount:
          type: number
          description: Amount collected.
          example: 1000.5
        accounted:
          type: boolean
          description: Indicates if the amount is already accounted.
          example: true
        bankName:
          type: string
          description: Name of the bank where the collection was processed.
          example: Bank of Spain
        customerCode:
          type: string
          description: Unique customer code.
          example: CUST001
        customerBusinessName:
          type: string
          description: Business name of the customer.
          example: Clavei S.A.
        customerName:
          type: string
          description: Contact name of the customer.
          example: Ana Martínez
      required:
        - id
    ApiVatRecordListReadDto:
      type: object
      description: >-
        Basic information of a VAT record, including VAT type, billing series,
        operation type, dates and amounts.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        vatType:
          type: string
          description: Type of VAT applied
          example: GENERAL
        billingSeriesCode:
          type: string
          description: Code of the billing series associated with the record
          example: BS001
        billingSeriesDescription:
          type: string
          description: Description of the billing series
          example: Standard Billing Series
        code:
          type: integer
          format: int32
          description: Unique identifier code of the VAT record
          example: 12345
        vatOperationTypeCode:
          type: string
          description: Code of the VAT operation type
          example: E01
        vatOperationTypeDescription:
          type: string
          description: Description of the VAT operation type
          example: Intra-community acquisition of goods
        description:
          type: string
          description: Description of the VAT record
          example: Purchase of office supplies with general VAT
        cif:
          type: string
          description: Tax identification number (CIF/NIF) associated with the record
          example: B12345678
        invoiceDate:
          type: string
          format: date
          description: Date of the invoice related to the VAT record
          example: '2024-05-15'
        accountingDate:
          type: string
          format: date
          description: Date of the accounting record
          example: '2024-05-16'
        totalAmount:
          type: number
          description: Total amount of the VAT record
          example: 1500
        invoiceDescription:
          type: string
          description: Invoice description associated with the VAT record
          example: Purchase of raw materials
      required:
        - id
    ApiDeliveryNoteWriteDto:
      type: object
      description: >-
        Data for creating or updating a delivery note with customer information,
        pricing details and shipping terms
      properties:
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1050
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2025-08-07'
        quantityTotal:
          type: number
          description: Total quantity of all document lines.
          example: 120.5
        observations:
          type: string
          description: Free text for header observations.
          example: Deliver to warehouse B
        lines:
          type: array
          description: List of document lines. For structure, see ApiBaseLineWriteDto.java
          items:
            $ref: '#/components/schemas/ApiDeliveryNoteLineWriteDto'
        id:
          type: integer
          format: int32
          description: Unique identifier of the delivery note
          example: 1001
        billingSeries:
          type: integer
          format: int32
          description: Billing series identifier
          example: 5
        valueDate:
          type: string
          format: date
          description: Value date for the delivery note
          example: '2024-08-08'
        customerAddress:
          type: integer
          format: int32
          description: Customer address identifier
          example: 15
        warehouse:
          type: integer
          format: int32
          description: Warehouse identifier
          example: 3
        reference:
          type: string
          description: Reference number for the delivery note
          example: DN-2024-001
          maxLength: 50
          minLength: 0
        rateCode:
          type: integer
          format: int32
          description: Rate code identifier
          example: 101
        agency:
          type: integer
          format: int32
          description: Agency identifier for shipping
          example: 10
        locked:
          type: boolean
          description: Indicates if the delivery note is locked for modifications
          example: false
        paymentMethod:
          type: integer
          format: int32
          description: Payment method identifier
          example: 3
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days
          example: 30
        daysTerm:
          type: integer
          format: int32
          description: Subsequent payment term in days
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms
          example: 3
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Type of proximity for the delivery
          example: LOCAL
        discount1:
          type: number
          description: First discount percentage
          example: 10
        discount2:
          type: number
          description: Second discount percentage
          example: 5
        discount3:
          type: number
          description: Third discount percentage
          example: 2
        discount4:
          type: number
          description: Fourth discount percentage
          example: 1
        discountPp:
          type: number
          description: Prompt payment discount percentage
          example: 3
        withholding:
          type: number
          description: Withholding percentage
          example: 15
        currency:
          type: integer
          format: int32
          description: Currency identifier
          example: 1
        change:
          type: number
          description: Exchange rate for currency conversion
          example: 1
        iban:
          type: string
          description: International Bank Account Number
          example: ES9121000418450200051332
          maxLength: 50
          minLength: 0
        customerVatType:
          type: integer
          format: int32
          description: Customer VAT type identifier
          example: 1
        representative1:
          type: integer
          format: int32
          description: First representative identifier
          example: 2
        commissionType1:
          type: string
          description: First commission type
          example: PERCENTAGE
        commission1:
          type: number
          description: First commission value
          example: 5
        representative2:
          type: integer
          format: int32
          description: Second representative identifier
          example: 3
        commissionType2:
          type: string
          description: Second commission type
          example: PERCENTAGE
        commission2:
          type: number
          description: Second commission value
          example: 3
        representative3:
          type: integer
          format: int32
          description: Third representative identifier
          example: 4
        commissionType3:
          type: string
          description: Third commission type
          example: FIXED
        commission3:
          type: number
          description: Third commission value
          example: 25
        noAccumulateRisk:
          type: boolean
          description: Indicates if risk accumulation is disabled
          example: false
        packages:
          type: integer
          format: int32
          description: Total number of packages
          example: 5
        grossWeight:
          type: number
          description: Total gross weight
          example: 125.5
        netWeight:
          type: number
          description: Total net weight
          example: 120
        volume:
          type: number
          description: Total volume
          example: 2.35
        billingObservations:
          type: string
          description: Billing observations
          example: Handle with care
        shippingTerm:
          type: integer
          format: int32
          description: Shipping term identifier
          example: 2
        shippingAmount:
          type: number
          description: Shipping amount
          example: 25.5
        shippingVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeEnum'
          description: VAT type for shipping costs
          example: GENERAL
        shippingVatPercentage:
          type: number
          description: VAT percentage applied to shipping
          example: 21
        shippingSurchargePercentage:
          type: number
          description: Surcharge percentage applied to shipping
          example: 5.2
        phytosanitaryAuthorizedPerson:
          type: integer
          format: int32
          description: Phytosanitary authorized person identifier
          example: 1
        tags:
          type: array
          description: Tags associated with the delivery note
          example:
            - urgent
            - fragile
          items:
            type: string
        invoiceEditObservations:
          type: string
          description: Invoice editing observations
          example: Delivery note reviewed and approved
        salesAccount:
          type: integer
          format: int32
          description: Sales account identifier
          example: 7001
    ApiCustomerAddressWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Address identifier.
          example: 5123
        customer:
          type: integer
          format: int32
          description: Customer identifier (reference).
          example: 10001
        code:
          type: integer
          format: int32
          description: Unique address code within customer.
          example: 1
        name:
          type: string
          description: Address name or label.
          example: Headquarters
          maxLength: 100
          minLength: 0
        address:
          type: string
          description: Street address line.
          example: Main Street, 22
          maxLength: 100
          minLength: 0
        country:
          type: integer
          format: int32
          description: Country identifier (reference).
          example: 34
        state:
          type: integer
          format: int32
          description: State identifier (reference).
          example: 3
        representative1:
          type: integer
          format: int32
          description: Representative-1 identifier (reference person).
          example: 10
        representative1commission:
          type: number
          description: Commission for representative 1.
          example: 3
        representative1commissionType:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Commission type for representative 1.
          example: SALES
        representative2:
          type: integer
          format: int32
          description: Representative-2 identifier (reference person).
          example: 11
        representative2commission:
          type: number
          description: Commission for representative 2.
          example: 2
        representative2commissionType:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Commission type for representative 2.
          example: SALES
        representative3:
          type: integer
          format: int32
          description: Representative-3 identifier (reference person).
          example: 12
        representative3commission:
          type: number
          description: Commission for representative 3.
          example: 1.5
        representative3commissionType:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Commission type for representative 3.
          example: SALES
        representative4:
          type: integer
          format: int32
          description: Representative-4 identifier (reference person).
          example: 13
        representative4commission:
          type: number
          description: Commission for representative 4.
          example: 1
        representative4commissionType:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Commission type for representative 4.
          example: SALES
        representative5:
          type: integer
          format: int32
          description: Representative-5 identifier (reference person).
          example: 14
        representative5commission:
          type: number
          description: Commission for representative 5.
          example: 0.5
        representative5commissionType:
          $ref: '#/components/schemas/ApiCommissionTypeEnum'
          description: Commission type for representative 5.
          example: SALES
        city:
          type: string
          description: City for the address.
          example: Alicante
          maxLength: 100
          minLength: 0
        postalCode:
          type: string
          description: Postal code.
          example: '03001'
          maxLength: 10
          minLength: 0
        firstPhoneNumber:
          type: string
          description: First contact phone number.
          example: '+34965123456'
          maxLength: 50
          minLength: 0
        secondPhoneNumber:
          type: string
          description: Second contact phone number.
          example: '+34965111111'
          maxLength: 50
          minLength: 0
        buyerEDI:
          type: string
          description: EDI code of the buyer.
          example: EDI_BUY_123
          maxLength: 50
          minLength: 0
        warehouseEDI:
          type: string
          description: EDI code of the warehouse.
          example: EDI_WARE_001
          maxLength: 50
          minLength: 0
        observations:
          type: string
          description: Observations for this address.
          example: Main customer delivery address
        agency:
          type: integer
          format: int32
          description: Identifier for transportation agency.
          example: 5
        shippingTerm:
          type: integer
          format: int32
          description: Identifier for shipping terms.
          example: 2
        isActive:
          type: boolean
          description: Active flag.
          example: true
        defaultAddress:
          type: boolean
          description: If true, address is marked as the default one.
          example: true
        email:
          type: string
          description: Contact email for this address.
          example: direccion@acme.es
          maxLength: 100
          minLength: 0
        noProgressiveDiscounts:
          type: boolean
          description: If true, no progressive discounts applied for this address.
          example: false
        billingSeries:
          type: integer
          format: int32
          description: Billing series identifier.
          example: 101
        billingSeriesCorrective:
          type: integer
          format: int32
          description: Billing series for corrective invoices.
          example: 102
        updateAllDelegations:
          type: boolean
          description: If true, all delegations for customer will be updated.
          example: false
    ApiCustomerFileWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
        token:
          type: string
          maxLength: 36
          minLength: 0
        fileName:
          type: string
          maxLength: 255
          minLength: 0
        fileExtension:
          type: string
          maxLength: 10
          minLength: 0
        fileSize:
          type: integer
          format: int64
      required:
        - fileExtension
        - fileName
        - token
    ApiCustomerObservationWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
        title:
          type: string
          maxLength: 50
          minLength: 0
        description:
          type: string
      required:
        - description
        - title
    ApiCustomerWriteDto:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: Customer numeric code. Unique per company.
          example: 10001
        activity:
          type: integer
          format: int32
          description: >-
            Identifier for main activity. See
            ApiCustomerActivityListReadDto.java for structure.
          example: 5
        brand:
          type: integer
          format: int32
          description: >-
            Identifier for the associated brand. See ApiBrandListReadDto.java
            for structure.
          example: 2
        vat:
          type: integer
          format: int32
          description: >-
            Identifier for VAT type. See ApiCustomerVatTypeListReadDto.java for
            structure.
          example: 1
        initialSeason:
          type: integer
          format: int32
          description: >-
            Identifier for initial season. See ApiSeasonListReadDto.java for
            structure.
          example: 4
        country:
          type: integer
          format: int32
          description: Country identifier. See ApiCountryListReadDto.java for structure.
          example: 34
        state:
          type: integer
          format: int32
          description: State identifier. See ApiStateListReadDto.java for structure.
          example: 3
        cif:
          type: string
          description: Tax identification code (CIF/NIF).
          example: B12345678
          maxLength: 20
          minLength: 0
        name:
          type: string
          description: Legal name of the customer.
          example: Acme S.A.
          maxLength: 100
          minLength: 0
        postalCode:
          type: string
          description: Postal code.
          example: '03001'
          maxLength: 10
          minLength: 0
        city:
          type: string
          description: Customer city.
          example: Alicante
          maxLength: 100
          minLength: 0
        address:
          type: string
          description: Postal address.
          example: Av. de la Estación, 5
          maxLength: 100
          minLength: 0
        firstPhoneNumber:
          type: string
          description: First phone number.
          example: '+34600111222'
          maxLength: 20
          minLength: 0
        secondPhoneNumber:
          type: string
          description: Second phone number.
          example: '+34600333444'
          maxLength: 20
          minLength: 0
        email:
          type: string
          description: Contact email address.
          example: info@acme.es
          maxLength: 250
          minLength: 0
        idKey:
          $ref: '#/components/schemas/ApiTaxIdentificationCodeEnum'
          description: Type of tax identification key. See ApiTaxIdentificationCode enum.
          example: NIF
        commercialName:
          type: string
          description: Commercial name of the customer.
          example: Acme España
          maxLength: 100
          minLength: 0
        ownSupplier:
          type: string
          description: Own supplier code.
          example: SUPPL001
          maxLength: 20
          minLength: 0
        isActive:
          type: boolean
          description: True if the customer is active.
          example: true
        creationDate:
          type: string
          format: date
          description: 'Date of customer creation. Format: yyyy-MM-dd'
          example: '2020-01-01'
        inactiveDate:
          type: string
          format: date
          description: 'Date when customer became inactive. Format: yyyy-MM-dd'
          example: '2023-08-07'
        invoiceGrouping:
          $ref: '#/components/schemas/ApiInvoiceGroupingEnum'
          description: Invoice grouping strategy. See ApiInvoiceGrouping enum for values.
          example: DAILY
        isSingleDeliveryNotePerOrder:
          type: boolean
          description: True if a single delivery note per order is required.
          example: false
        showPVPR:
          type: boolean
          description: True if PVP rates are shown for the customer.
          example: true
        evaluateDeliveryNote:
          type: boolean
          description: True if delivery notes must be evaluated.
          example: false
        servicePriority:
          type: integer
          format: int32
          description: Priority in services assigned to the customer (0-100).
          example: 1
          maximum: 100
          minimum: 0
        ordersCopies:
          type: integer
          format: int32
          description: Number of order copies to print.
          example: 1
        deliveryNoteCopies:
          type: integer
          format: int32
          description: Number of delivery note copies to print.
          example: 1
        packingCopies:
          type: integer
          format: int32
          description: Number of packing list copies to print.
          example: 1
        invoicesCopies:
          type: integer
          format: int32
          description: Number of invoice copies to print.
          example: 1
        activeB2b:
          type: boolean
          description: True if the customer is allowed B2B access.
          example: true
        b2bUser:
          type: string
          description: B2B access username.
          example: acmeusr
        ropoCode:
          type: string
          description: ROPO inscription code.
          example: ROPO-2020-CR-001
        ropoExpireDate:
          type: string
          format: date
          description: 'ROPO expiration date. Format: yyyy-MM-dd'
          example: '2025-12-31'
        productSupplier:
          type: boolean
          description: True if the customer is a product supplier.
          example: false
        commercialRoute:
          type: string
          description: Commercial route.
          example: EAST-01
          maxLength: 10
          minLength: 0
        manager:
          type: string
          description: Manager responsible for the customer (login or id).
          example: jdoe
        customerAddresses:
          type: array
          description: >-
            List of addresses for the customer. See
            ApiCustomerAddressWriteDto.java for structure.
          items:
            $ref: '#/components/schemas/ApiCustomerAddressWriteDto'
        geographicalLocation:
          $ref: '#/components/schemas/ApiGeographicalLocationEnum'
          description: Geographical location. See ApiGeographicalLocation enum for values.
          example: EUROPE
        language:
          type: integer
          format: int32
          description: >-
            Identifier for main language. See ApiLanguageListReadDto.java for
            structure.
          example: 1
        paymentMethod:
          type: integer
          format: int32
          description: >-
            Identifier for payment method. See ApiPaymentMethodListReadDto.java
            for structure.
          example: 2
        isPaymentMethodRequired:
          type: boolean
          description: True if payment method is required.
          example: true
        firstTerm:
          type: integer
          format: int32
          description: First payment term in days.
          example: 30
          minimum: 0
        terms:
          type: integer
          format: int32
          description: Number of payment terms.
          example: 1
          minimum: 0
        daysTerms:
          type: integer
          format: int32
          description: Days per payment term.
          example: 30
          minimum: 0
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Customer proximity type. See ApiProximityType enum.
          example: LOCAL
        discount1:
          type: number
          description: First discount rate (percentage).
          example: 5
        discount2:
          type: number
          description: Second discount rate (percentage).
          example: 2
        discount3:
          type: number
          description: Third discount rate (percentage).
          example: 1.5
        discount4:
          type: number
          description: Fourth discount rate (percentage).
          example: 0
        discountPp:
          type: number
          description: Cash discount rate (percentage).
          example: 1
        withholding:
          type: number
          description: Withholding tax rate (percentage).
          example: 19
        paymentDay1:
          type: integer
          format: int32
          description: Day of first payment.
          example: 10
        paymentDay2:
          type: integer
          format: int32
          description: Day of second payment.
          example: 20
        paymentDay3:
          type: integer
          format: int32
          description: Day of third payment.
          example: 30
        weekday:
          $ref: '#/components/schemas/ApiWeekDayEnum'
          description: Weekday for payment. See ApiWeekDayEnum enum.
          example: MONDAY
        paymentMethodObservation:
          type: integer
          format: int32
          description: Identifier for payment method observation.
          example: 9
        paymentMethodObservationDescription:
          type: string
          description: Payment method observation description.
          example: Special payment terms
        account:
          type: string
          description: Customer's bank account number.
          example: ES9820385778983000760236
          maxLength: 50
          minLength: 0
        swift:
          type: string
          description: SWIFT code.
          example: CAIXESBBXXX
          maxLength: 20
          minLength: 0
        bic:
          type: string
          description: BIC code.
          example: CAIXESBBXXX
          maxLength: 20
          minLength: 0
        sepaDate:
          type: string
          format: date
          description: 'Date when SEPA signed. Format: yyyy-MM-dd'
          example: '2022-06-17'
        currency:
          type: integer
          format: int32
          description: >-
            Identifier for the currency. See ApiCurrencyListReadDto.java for
            structure.
          example: 1
        rateCode:
          type: integer
          format: int32
          description: >-
            Identifier for the rate code. See ApiRateCodeListReadDto.java for
            structure.
          example: 1
        accountingAccount:
          type: integer
          format: int32
          description: >-
            Accounting account identifier. See ApiChartAccountListReadDto.java
            for structure.
          example: 101
        salesAccount:
          type: integer
          format: int32
          description: >-
            Sales account identifier. See ApiChartAccountListReadDto.java for
            structure.
          example: 102
        web:
          type: string
          description: Customer web site.
          example: https://www.acme.es
        picture:
          type: string
          description: Picture or logo for the customer.
          example: https://www.acme.es/logo.png
        bankName:
          type: string
          description: Bank name for the customer.
          example: Santander
        contactPerson:
          type: string
          description: Contact person for the customer.
          example: Juan Pérez
        observations:
          type: array
          description: >-
            Observations for the customer. See
            ApiCustomerObservationWriteDto.java for structure.
          items:
            $ref: '#/components/schemas/ApiCustomerObservationWriteDto'
        files:
          type: array
          description: >-
            Associated file records for the customer. See
            ApiCustomerFileWriteDto.java for structure.
          items:
            $ref: '#/components/schemas/ApiCustomerFileWriteDto'
        incomeTaxRate:
          type: number
          description: Income tax rate applied to this customer (percentage).
          example: 19
        sameBillingAndShippingAddress:
          type: boolean
          description: True if billing and shipping address are the same.
          example: true
        irpfType:
          $ref: '#/components/schemas/ApiIRPFTypeEnum'
          description: IRPF type for the customer (enum).
          example: GENERAL
        tags:
          type: array
          description: List of customer tags.
          example:
            - VIP
            - EXPORT
          items:
            type: string
        administrativeCenterAccountingOffice:
          type: string
          description: Administration center - accounting office.
          example: CC AA Madrid
        administrativeCenterManagingBody:
          type: string
          description: Administration center - managing body.
          example: Dirección Territorial
        administrativeCenterProcessingUnit:
          type: string
          description: Administration center - processing unit.
          example: P-1236
        administrativeCenterProposingBody:
          type: string
          description: Administration center - proposing body.
          example: Oficina Central
        vatOperationType:
          type: integer
          format: int32
          description: >-
            Identifier for the vat operation type. See
            ApiVatOperationTypeListReadDto.java for structure.
          example: 1
      required:
        - name
    ApiInvoiceGroupingEnum:
      type: string
      description: Defines the invoice grouping options.
      enum:
        - DELIVERY_NOTES
        - ADDRESSES
      example: DELIVERY_NOTES
    ApiTaxIdentificationCodeEnum:
      type: string
      enum:
        - NIF
        - NIF_IVA
        - PASSPORT
        - OFFICIAL_IDENTIFICATION_DOCUMENT
        - TAX_RESIDENCE_CERTIFICATE
        - OTHER_DOCUMENT_PROBATIONARY
        - NOT_REGISTERED
    ApiCustomerActivityListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Activity code.
          example: COM-01
        description:
          type: string
          description: Description of the activity.
          example: Wholesale Commerce
      required:
        - code
        - description
        - id
    ApiCustomerAddressListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: integer
          format: int32
          description: Address code (unique within the customer).
          example: 101
        customerCode:
          type: string
          description: Customer code as string.
          example: C10001
        customerName:
          type: string
          description: Customer name.
          example: Acme S.A.
        customerId:
          type: integer
          format: int32
          description: Customer identifier (reference).
          example: 10001
        customerVatTypeId:
          type: integer
          format: int32
          description: VAT Type Id for the customer.
          example: 1
        customerCommercialName:
          type: string
          description: Customer's commercial name.
          example: Acme España
        customerEmail:
          type: string
          description: Email address of the customer.
          example: info@acme.es
        name:
          type: string
          description: Name or label for the address.
          example: Headquarters
        city:
          type: string
          description: City where the address is located.
          example: Alicante
        stateId:
          type: string
          description: State identifier (string or code).
          example: A
        state:
          type: string
          description: State for the address.
          example: Valencia
        stateDescription:
          type: string
          description: State description.
          example: A full state description
        postalCode:
          type: string
          description: Postal code for the address.
          example: '03001'
        countryId:
          type: string
          description: Country identifier (string or code).
          example: ES
        country:
          type: string
          description: Country name or code.
          example: Spain
        countryDescription:
          type: string
          description: Country description.
          example: España (Spain)
        address:
          type: string
          description: Street or detailed address.
          example: Main Street, 22
        firstPhoneNumber:
          type: string
          description: First contact phone.
          example: '+34965123456'
        cif:
          type: string
          description: CIF/NIF of the address (if available).
          example: B12345678
        representative1:
          type: string
          description: First representative (string, name/code).
          example: John Smith
        representative2:
          type: string
          description: Second representative.
          example: Mary Brown
        representative3:
          type: string
          description: Third representative.
          example: Walter Doe
        representative4:
          type: string
          description: Fourth representative.
          example: Ana White
        representative5:
          type: string
          description: Fifth representative.
          example: Lucas Black
        representative1Id:
          type: integer
          format: int32
          description: First representative ID.
          example: 14
        representative2Id:
          type: integer
          format: int32
          description: Second representative ID.
          example: 15
        representative3Id:
          type: integer
          format: int32
          description: Third representative ID.
          example: 16
        representative4Id:
          type: integer
          format: int32
          description: Fourth representative ID.
          example: 17
        representative5Id:
          type: integer
          format: int32
          description: Fifth representative ID.
          example: 18
        activity:
          type: string
          description: Activity linked to the address.
          example: Wholesale
        brand:
          $ref: '#/components/schemas/ApiBrandListReadDto'
          description: Brand object. See ApiBrandListReadDto.java for structure.
        customerIsActive:
          type: boolean
          description: True if the customer is active.
          example: true
        isActive:
          type: boolean
          description: True if this address is active.
          example: true
        classificationObservation:
          $ref: '#/components/schemas/ApiObservationListReadDto'
          description: >-
            Observation (classification). See ApiObservationListReadDto.java for
            structure.
        hasUnpaidReceipts:
          type: boolean
          description: True if customer has unpaid receipts for this address.
          example: false
        defaultAddress:
          type: boolean
          description: True if this address is the default for the customer.
          example: false
        shippingTermId:
          type: integer
          format: int32
          description: Shipping term identifier.
          example: 1
      required:
        - code
        - id
    ApiCustomerReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Customer unique identifier.
          example: 1201
        activity:
          $ref: '#/components/schemas/ApiCustomerActivityListReadDto'
          description: >-
            Customer main activity. See ApiCustomerActivityListReadDto.java for
            structure.
        brand:
          $ref: '#/components/schemas/ApiBrandListReadDto'
          description: >-
            Assigned commercial brand. See ApiBrandListReadDto.java for
            structure.
        vat:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
          description: >-
            VAT type for the customer. See ApiCustomerVatTypeListReadDto.java
            for structure.
        initialSeason:
          $ref: '#/components/schemas/ApiSeasonListReadDto'
          description: >-
            Starting season for the customer. See ApiSeasonListReadDto.java for
            structure.
        country:
          $ref: '#/components/schemas/ApiCountryListReadDto'
          description: Country information. See ApiCountryListReadDto.java for structure.
        state:
          $ref: '#/components/schemas/ApiStateListReadDto'
          description: State information. See ApiStateListReadDto.java for structure.
        cif:
          type: string
          description: Tax identification code (CIF/NIF).
          example: B12345678
        name:
          type: string
          description: Legal name of the customer.
          example: Acme S.A.
        postalCode:
          type: string
          description: Postal code.
          example: '03001'
        city:
          type: string
          description: Customer city.
          example: Alicante
        firstPhoneNumber:
          type: string
          description: First phone number.
          example: '+34600111222'
        secondPhoneNumber:
          type: string
          description: Second phone number.
          example: '+34600333444'
        address:
          type: string
          description: Postal address of the customer.
          example: Av. de la Estación, 5
        email:
          type: string
          description: Customer email address.
          example: info@acme.es
        code:
          type: integer
          format: int32
          description: Customer numeric code. Unique per company.
          example: 10001
        idKey:
          $ref: '#/components/schemas/ApiTaxIdentificationCodeEnum'
          description: >-
            Tax identification key for the customer. See
            ApiTaxIdentificationCode enum.
          example: NIF
        commercialName:
          type: string
          description: Commercial name.
          example: Acme España
        creationDate:
          type: string
          format: date
          description: 'Date of customer creation. Format: yyyy-MM-dd'
          example: '2020-01-01'
        inactiveDate:
          type: string
          format: date
          description: 'Date when customer became inactive. Format: yyyy-MM-dd'
          example: '2023-08-07'
        ownSupplier:
          type: string
          description: Supplier code for own-company suppliers.
          example: SUPPL001
        invoiceGrouping:
          $ref: '#/components/schemas/ApiInvoiceGroupingEnum'
          description: Grouping of invoices. See ApiInvoiceGrouping enum for values.
          example: DAILY
        isSingleDeliveryNotePerOrder:
          type: boolean
          description: True if a single delivery note per order is required.
          example: false
        showPVPR:
          type: boolean
          description: True if PVP rates are shown for the customer.
          example: true
        evaluateDeliveryNote:
          type: boolean
          description: True if delivery notes must be evaluated for this customer.
          example: false
        servicePriority:
          type: integer
          format: int32
          description: Priority for services assigned to the customer.
          example: 1
        ordersCopies:
          type: integer
          format: int32
          description: Number of order copies to print.
          example: 1
        deliveryNoteCopies:
          type: integer
          format: int32
          description: Number of delivery note copies to print.
          example: 1
        packingCopies:
          type: integer
          format: int32
          description: Number of packing list copies to print.
          example: 1
        invoicesCopies:
          type: integer
          format: int32
          description: Number of invoice copies to print.
          example: 1
        activeB2b:
          type: boolean
          description: True if the customer has active B2B access.
          example: true
        b2bUser:
          type: string
          description: B2B access username.
          example: acmeusr
        ropoCode:
          type: string
          description: ROPO inscription code.
          example: ROPO-2020-CR-001
        ropoExpireDate:
          type: string
          format: date
          description: 'ROPO expiration date. Format: yyyy-MM-dd'
          example: '2025-12-31'
        productSupplier:
          type: boolean
          description: True if the customer is also a product supplier.
          example: false
        manager:
          $ref: '#/components/schemas/ApiUsersReadDto'
          description: >-
            Manager assigned to the customer. See ApiUsersReadDto.java for
            structure.
        unitsSold:
          type: number
          description: Total units sold.
          example: 12000.5
        unitsSend:
          type: number
          description: Total units sent.
          example: 12500
        pendingSend:
          type: number
          description: Number of units pending to send.
          example: 200
        billed:
          type: number
          description: Total billed amount.
          example: 15400.2
        amountDue:
          type: number
          description: Total outstanding amount due.
          example: 1500
        unpaid:
          type: number
          description: Amount of unpaid bills.
          example: 500
        customerAddresses:
          type: array
          description: >-
            List of customer addresses. See ApiCustomerAddressListReadDto.java
            for structure.
          items:
            $ref: '#/components/schemas/ApiCustomerAddressListReadDto'
        geographicalLocation:
          $ref: '#/components/schemas/ApiGeographicalLocationEnum'
          description: Geographical location. See ApiGeographicalLocation enum for values.
          example: EUROPE
        language:
          $ref: '#/components/schemas/ApiLanguageListReadDto'
          description: Language object. See ApiLanguageListReadDto.java for structure.
        isActive:
          type: boolean
          description: True if the customer is active.
          example: true
        paymentMethod:
          $ref: '#/components/schemas/ApiPaymentMethodListReadDto'
          description: >-
            Customer payment method. See ApiPaymentMethodListReadDto.java for
            structure.
        firstTerm:
          type: integer
          format: int32
          description: First payment term (days).
          example: 30
        terms:
          type: integer
          format: int32
          description: Number of payment terms.
          example: 1
        daysTerms:
          type: integer
          format: int32
          description: Number of days per payment term.
          example: 30
        proximityType:
          $ref: '#/components/schemas/ApiProximityTypeEnum'
          description: Customer proximity type. See ApiProximityType enum.
          example: LOCAL
        discount1:
          type: number
          description: First discount rate (percentage).
          example: 5
        discount2:
          type: number
          description: Second discount rate (percentage).
          example: 2
        discount3:
          type: number
          description: Third discount rate (percentage).
          example: 1.5
        discount4:
          type: number
          description: Fourth discount rate (percentage).
          example: 0
        discountPp:
          type: number
          description: Cash discount rate (percentage).
          example: 1
        withholding:
          type: number
          description: Withholding tax rate (percentage).
          example: 0
        noProgressiveDiscounts:
          type: boolean
          description: No progressive discounts applied.
          example: false
        paymentDay1:
          type: integer
          format: int32
          description: Day of first payment.
          example: 10
        paymentDay2:
          type: integer
          format: int32
          description: Day of second payment.
          example: 20
        paymentDay3:
          type: integer
          format: int32
          description: Day of third payment.
          example: 30
        weekday:
          $ref: '#/components/schemas/ApiWeekDayEnum'
          description: Week day for payment. See ApiWeekDayEnum enum.
          example: MONDAY
        account:
          type: string
          description: Customer account number.
          example: ES9820385778983000760236
        swift:
          type: string
          description: SWIFT code.
          example: CAIXESBBXXX
        bic:
          type: string
          description: BIC code.
          example: CAIXESBBXXX
        sepaDate:
          type: string
          format: date
          description: 'Date when SEPA signed. Format: yyyy-MM-dd'
          example: '2022-06-17'
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: Currency object. See ApiCurrencyListReadDto.java for structure.
        rateCode:
          $ref: '#/components/schemas/ApiRateCodeListReadDto'
          description: >-
            Customer rate code object. See ApiRateCodeListReadDto.java for
            structure.
        accountingAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: >-
            Accounting account object. See ApiChartAccountListReadDto.java for
            structure.
        salesAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: >-
            Sales account object. See ApiChartAccountListReadDto.java for
            structure.
        bankName:
          type: string
          description: Name of the customer's bank.
          example: Santander
        contactPerson:
          type: string
          description: Main contact person.
          example: Juan Pérez
        web:
          type: string
          description: Web URL.
          example: https://www.acme.es
        modifiedOn:
          type: string
          format: date-time
          description: 'When information was last updated. Format: yyyy-MM-dd''T''HH:mm:ss'
          example: '2024-08-07T12:30:00'
        picture:
          type: string
          description: Picture or logo (URL or base64).
          example: https://www.acme.es/logo.png
        pictureToken:
          type: string
          description: Authentication token for the picture file.
          example: xyz-token-241235
        observations:
          type: array
          description: >-
            List of customer observations. See
            ApiCustomerObservationListReadDto.java for structure.
          items:
            $ref: '#/components/schemas/ApiCustomerObservationListReadDto'
        files:
          type: array
          description: >-
            List of files associated to the customer. See
            ApiCustomerFileListReadDto.java for structure.
          items:
            $ref: '#/components/schemas/ApiCustomerFileListReadDto'
        incomeTaxRate:
          type: number
          description: Percentage of income tax for the customer.
          example: 19
        sameBillingAndShippingAddress:
          type: boolean
          description: True if billing and shipping address are the same.
          example: true
        irpfType:
          $ref: '#/components/schemas/ApiIRPFTypeEnum'
          description: Type of IRPF for the customer. See ApiIRPFTypeEnum enum for values.
          example: GENERAL
        tags:
          type: array
          description: Tags assigned to the customer.
          example:
            - VIP
            - EXPORT
          items:
            type: string
        administrativeCenterAccountingOffice:
          type: string
          description: Administration center - accounting office.
          example: CC AA Madrid
        administrativeCenterManagingBody:
          type: string
          description: Administration center - managing body.
          example: Dirección Territorial
        administrativeCenterProcessingUnit:
          type: string
          description: Administration center - processing unit.
          example: P-1236
        administrativeCenterProposingBody:
          type: string
          description: Administration center - proposing body.
          example: Oficina Central
        vatOperationType:
          $ref: '#/components/schemas/ApiVatOperationTypeListReadDto'
          description: >-
            Vat operation type object. See ApiVatOperationTypeListReadDto.java
            for structure.
      required:
        - id
    ApiUsersReadDto:
      type: object
      description: User information for API responses
      properties:
        id:
          type: string
          description: Unique identifier of the user
          example: 123
        name:
          type: string
          description: Full name of the user
          example: John Doe
        email:
          type: string
          description: Email address of the user
          example: john.doe@example.com
      required:
        - id
    ApiVatOperationTypeListReadDto:
      type: object
      description: >-
        Basic information of a VAT operation type, including code, description,
        and its inclusion in specific tax models.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Unique code of the VAT operation type
          example: E01
        description:
          type: string
          description: Description of the VAT operation type
          example: Intra-community acquisition of goods
        model347:
          type: boolean
          description: Indicates if the operation type is included in model 347
          example: true
        model349:
          type: boolean
          description: Indicates if the operation type is included in model 349
          example: false
      required:
        - code
        - description
        - id
    ApiCurrencyWriteDto:
      type: object
      properties:
        code:
          type: string
          maxLength: 5
          minLength: 0
        description:
          type: string
          maxLength: 50
          minLength: 0
        account:
          type: integer
          format: int32
        nomenclature:
          type: string
          maxLength: 5
          minLength: 0
        changeValue:
          type: number
        isoCode:
          $ref: '#/components/schemas/ApiCurrencyISOEnum'
        significantDecimalsDocuments:
          type: integer
          format: int32
        intermediateDecimalsDocuments:
          type: integer
          format: int32
        decimalsCalculatePrices:
          type: integer
          format: int32
        decimalsCalculateCosts:
          type: integer
          format: int32
      required:
        - code
        - description
    ApiCurrencyExchangesListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        changeDate:
          type: string
          format: date
        changeValue:
          type: number
      required:
        - changeDate
        - changeValue
        - id
    ApiCurrencyReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          maxLength: 5
          minLength: 0
        description:
          type: string
          maxLength: 50
          minLength: 0
        account:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
        nomenclature:
          type: string
          maxLength: 5
          minLength: 0
        changeValue:
          type: number
        isoCode:
          $ref: '#/components/schemas/ApiCurrencyISOEnum'
        significantDecimalsDocuments:
          type: integer
          format: int32
          maximum: 6
          minimum: 0
        intermediateDecimalsDocuments:
          type: integer
          format: int32
          maximum: 6
          minimum: 0
        decimalsCalculatePrices:
          type: integer
          format: int32
          maximum: 6
          minimum: 0
        decimalsCalculateCosts:
          type: integer
          format: int32
          maximum: 6
          minimum: 0
        currencyExchanges:
          type: array
          items:
            $ref: '#/components/schemas/ApiCurrencyExchangesListReadDto'
      required:
        - code
        - description
        - id
    ApiAlpha3CountryCodeEnum:
      type: string
      description: Defines the ISO Alpha-3 country codes.
      enum:
        - AFG
        - ALA
        - ALB
        - DZA
        - ASM
        - AND
        - AGO
        - AIA
        - ATA
        - ATG
        - ARG
        - ARM
        - ABW
        - AUS
        - AUT
        - AZE
        - BHS
        - BHR
        - BGD
        - BRB
        - BLS
        - BLZ
        - BEN
        - BMU
        - BTN
        - BOL
        - BES
        - BIH
        - BWA
        - BVT
        - BRA
        - IOT
        - BRN
        - BGR
        - BFA
        - BDI
        - CPV
        - KHM
        - CMR
        - CAN
        - CYM
        - CAF
        - TCD
        - CHL
        - CHN
        - CXR
        - CCK
        - COL
        - COM
        - COG
        - COD
        - COK
        - CRI
        - HRV
        - CUB
        - CUW
        - CYP
        - CZE
        - CIV
        - DNK
        - DJI
        - DMA
        - DOM
        - ECU
        - EGY
        - SLV
        - GNQ
        - ERI
        - EST
        - SWZ
        - ETH
        - FLK
        - FRO
        - FJI
        - FIN
        - FRA
        - GUF
        - PYF
        - ATF
        - GAB
        - GMB
        - GEO
        - DEU
        - GHA
        - GIB
        - GRC
        - GRL
        - GRD
        - GLP
        - GUM
        - GTM
        - GGY
        - GIN
        - GNB
        - GUY
        - HTI
        - HMD
        - VAT
        - HND
        - HKG
        - HUN
        - ISL
        - IND
        - IDN
        - IRN
        - IRQ
        - IRL
        - IMN
        - ISR
        - ITA
        - JAM
        - JPN
        - JEY
        - JOR
        - KAZ
        - KEN
        - KIR
        - PRK
        - KOR
        - KWT
        - KGZ
        - LAO
        - LVA
        - LBN
        - LSO
        - LBR
        - LBY
        - LIE
        - LTU
        - LUX
        - MAC
        - MDG
        - MWI
        - MYS
        - MDV
        - MLI
        - MLT
        - MHL
        - MTQ
        - MRT
        - MUS
        - MYT
        - MEX
        - FSM
        - MDA
        - MCO
        - MNG
        - MNE
        - MSR
        - MAR
        - MOZ
        - MMR
        - NAM
        - NRU
        - NPL
        - NLD
        - NCL
        - NZL
        - NIC
        - NER
        - NGA
        - NIU
        - NFK
        - MKD
        - MNP
        - NOR
        - OMN
        - PAK
        - PLW
        - PSE
        - PAN
        - PNG
        - PRY
        - PER
        - PHL
        - PCN
        - POL
        - PRT
        - PRI
        - QAT
        - ROU
        - RUS
        - RWA
        - REU
        - BLM
        - SHN
        - KNA
        - LCA
        - MAF
        - SPM
        - VCT
        - WSM
        - SMR
        - STP
        - SAU
        - SEN
        - SRB
        - SYC
        - SLE
        - SGP
        - SXM
        - SVK
        - SVN
        - SLB
        - SOM
        - ZAF
        - SGS
        - SSD
        - ESP
        - LKA
        - SDN
        - SUR
        - SJM
        - SWE
        - CHE
        - SYR
        - TWN
        - TJK
        - TZA
        - THA
        - TLS
        - TGO
        - TKL
        - TON
        - TTO
        - TUN
        - TUR
        - TKM
        - TCA
        - TUV
        - UGA
        - UKR
        - ARE
        - GBR
        - UMI
        - USA
        - URY
        - UZB
        - VUT
        - VEN
        - VNM
        - VGB
        - VIR
        - WLF
        - ESH
        - YEM
        - ZMB
        - ZWE
      example: USA
    ApiCountryWriteDto:
      type: object
      properties:
        code:
          type: string
          maxLength: 20
          minLength: 0
        language:
          type: integer
          format: int32
        currency:
          type: integer
          format: int32
        agency:
          type: integer
          format: int32
        geographicalLocation:
          $ref: '#/components/schemas/ApiGeographicalLocationEnum'
        description:
          type: string
          maxLength: 100
          minLength: 0
        prefix:
          type: string
        internationalCode:
          type: string
        accountingAccount:
          type: integer
          format: int32
        intrastatCode:
          type: string
          maxLength: 5
          minLength: 0
        intrastatUnits:
          type: string
          maxLength: 10
          minLength: 0
        intrastatPercentage:
          type: number
        observations:
          type: string
        isoCode:
          $ref: '#/components/schemas/ApiAlpha2CountryCodeEnum'
        alpha3IsoCode:
          $ref: '#/components/schemas/ApiAlpha3CountryCodeEnum'
        fdiCode:
          $ref: '#/components/schemas/ApiFDICodesEnum'
        sepaZone:
          type: boolean
        includeAddressInSepa:
          type: boolean
        creditSurety:
          type: string
          maxLength: 5
          minLength: 0
        languages:
          type: object
          additionalProperties:
            type: string
        customerVatType:
          type: integer
          format: int32
      required:
        - code
        - description
        - geographicalLocation
    ApiCountryReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Country code (usually ISO numeric or custom).
          example: 724
        language:
          $ref: '#/components/schemas/ApiLanguageListReadDto'
          description: >-
            Official language object. See ApiLanguageListReadDto.java for
            structure.
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: >-
            Reference currency object for this country. See
            ApiCurrencyListReadDto.java for structure.
        agency:
          $ref: '#/components/schemas/ApiAgencyListReadDto'
          description: >-
            Associated agency information. See ApiAgencyListReadDto.java for
            structure.
        geographicalLocation:
          $ref: '#/components/schemas/ApiGeographicalLocationEnum'
          description: >-
            Geographical location of the country. See ApiGeographicalLocation
            enum for possible values.
          example: EUROPE
        description:
          type: string
          description: Country name or description.
          example: Spain
        prefix:
          type: string
          description: Phone prefix of the country.
          example: '+34'
        internationalCode:
          type: string
          description: International country code.
          example: ES
        accountingAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: >-
            Accounting account for this country. See
            ApiChartAccountListReadDto.java for structure.
        intrastatCode:
          type: string
          description: Intrastat commodity code for international trade.
          example: 1000
        intrastatUnits:
          type: string
          description: Unit of measurement for Intrastat declarations.
          example: KG
        intrastatPercentage:
          type: number
          description: Percentage used for Intrastat reporting.
          example: 1.5
        observations:
          type: string
          description: Additional observations or notes about the country.
          example: Is a member of EU since 1986.
        isoCode:
          $ref: '#/components/schemas/ApiAlpha2CountryCodeEnum'
          description: ISO Alpha-2 country code.
          example: ES
        alpha3IsoCode:
          $ref: '#/components/schemas/ApiAlpha3CountryCodeEnum'
          description: ISO Alpha-3 country code.
          example: ESP
        fdiCode:
          type: string
          description: FDI country code.
          example: ES
        sepaZone:
          type: boolean
          description: True if country participates in SEPA zone.
          example: true
        includeAddressInSepa:
          type: boolean
          description: If true, country address is included for SEPA operations.
          example: false
        creditSurety:
          type: string
          description: Credit surety information for the country.
          example: Credit insurance with national provider
        languages:
          type: object
          additionalProperties:
            type: string
          description: >-
            Map of language keys and their description for this country.
            Example: {"es": "Español", "en": "English"}
        customerVatType:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
          description: >-
            Customer VAT type for this country. See
            ApiCustomerVatTypeListReadDto.java for structure.
      required:
        - code
        - description
        - geographicalLocation
        - id
    ApiReceiptCollectionLineWriteDto:
      type: object
      description: List of collection lines associated with the receipt.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the receipt collection line.
          example: 1
        header:
          type: integer
          format: int32
          description: Header identifier to which the collection line belongs.
          example: 10
        receipt:
          type: integer
          format: int32
          description: >-
            Identifier of the receipt. Should refer to the first receipt of the
            invoice.
          example: 100
        ignorePending:
          type: boolean
          description: >-
            Indicates whether to ignore pending amounts when processing the
            collection.
          example: false
        collectionAmount:
          type: number
          description: Amount collected and assigned to the invoice line.
          example: 250.75
      required:
        - collectionAmount
    ApiReceiptCollectionWriteDto:
      type: object
      description: >-
        Data for creating or updating a receipt collection, including customer
        and lines of the collection.
      properties:
        currency:
          type: integer
          format: int32
          description: Currency identifier, refer to the invoice currency.
          example: 1
        periodId:
          type: integer
          format: int32
          description: >-
            Unique identifier of the accounting period. If not set, system will
            determine based on document date.
          example: 1
        account:
          type: integer
          format: int32
          description: Account identifier associated with the collection. [Pending removal]
          example: 3
        concept:
          type: integer
          format: int32
          description: Concept identifier for the collection. [Pending removal]
          example: 5
        collectionDate:
          type: string
          format: date
          description: Date on which the collection is performed.
          example: '2024-03-15'
        country:
          type: string
          description: Country of the payment origin.
          example: Spain
        accountCode:
          type: string
          description: Account code of the collection.
          example: 572000003
        observations:
          type: string
          description: Observations or notes for the receipt collection.
          example: Advance payment by bank transfer.
        amount:
          type: number
          description: Total amount of the collection.
          example: 1500.75
        accounted:
          type: boolean
          description: Indicates if the collection is already accounted.
          example: false
        bankName:
          type: string
          description: Name of the bank where the receipt is collected.
          example: Bank of Spain
        documentNumber:
          type: string
          description: Document number associated with the receipt.
          example: RCPT-20240001
        iban:
          type: string
          description: IBAN associated with the bank account for the receipt.
          example: ES9121000418450200051332
        bicSwift:
          type: string
          description: SWIFT/BIC code of the bank.
          example: CAIXESBBXXX
        accountingDate:
          type: string
          format: date
          description: Reference date for accounting the collection.
          example: '2024-03-16'
        change:
          type: number
          description: Exchange rate used for currency conversion.
          example: 1.05
        companyCurrency:
          type: integer
          format: int32
          description: Company currency identifier.
          example: 2
        companyAmount:
          type: number
          description: Collected amount in company currency.
          example: 1575.79
        invoiceReference:
          type: integer
          description: Reference to the associated invoice.
          example: 10001
        orderNumber:
          type: integer
        extension:
          type: string
        bank:
          type: integer
          format: int32
        invoice:
          type: integer
          format: int32
        collectedAmountTotal:
          type: number
        lines:
          $ref: '#/components/schemas/ApiReceiptCollectionLineWriteDto'
          description: List of collection lines associated with the receipt.
        customer:
          type: integer
          format: int32
          description: >-
            Customer identifier associated with the receipt collection, refer to
            the invoice customer.
          example: 101
        quote:
          type: integer
          format: int32
    ApiBankListReadDto:
      type: object
      description: Bank information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Unique code for the bank.
          example: ES1234
        name:
          type: string
          description: Bank name.
          example: CLAVEI BANK
        iban:
          type: string
          description: IBAN account code.
          example: ES9820385778983000760236
        swift:
          type: string
          description: SWIFT/BIC code.
          example: BSABESBBXXX
        inactive:
          type: boolean
          description: Indicates if the bank is inactive.
          example: false
        riskGranted:
          type: number
          description: Granted risk limit for the bank.
          example: 25000
        riskConsumed:
          type: number
          description: Consumed risk for the bank.
          example: 13000.55
        accountingAccount:
          type: string
          description: Accounting account reference.
          example: 5720001234
        policyAccount:
          type: string
          description: Policy account reference.
          example: 5720009999
        picture:
          type: string
          description: URL or name of the main picture.
          example: bank_logo.png
        pictureToken:
          type: string
          description: Security token for picture.
          example: 1f8e3ac9d89d
        defaultBank:
          type: boolean
          description: Indicates if this is the default bank.
          example: true
        balance:
          type: number
          description: Bank balance value.
          example: 15400.8
        income:
          type: number
          description: Bank income amount.
          example: 9671.22
        expenses:
          type: number
          description: Bank expenses amount.
          example: 5400.13
        synchronizable:
          type: boolean
          description: Indicates if the bank is synchronizable.
          example: false
        showSummary:
          type: boolean
          description: Indicates if the summary should be shown.
          example: true
        token:
          type: string
          description: Token value related to the bank.
          example: token-885b
      required:
        - code
        - id
        - name
    ApiCustomerAutocompleteDto:
      type: object
      description: Customer information for the receipt collection.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: integer
          format: int32
          description: Customer numeric code. Unique per company.
          example: 10001
        name:
          type: string
          description: Legal name of the customer.
          example: Acme S.A.
        commercialName:
          type: string
          description: Commercial name of the customer.
          example: Acme España
        isActive:
          type: boolean
          description: True if the customer is active.
          example: true
        inactiveDate:
          type: string
          format: date
          description: 'Date when the customer became inactive. Format: yyyy-MM-dd'
          example: '2024-08-07'
        currencyIdDelegationZero:
          type: integer
          format: int32
          description: Currency ID to use for delegation zero (root).
          example: 1
      required:
        - code
        - commercialName
        - id
    ApiReceiptCollectionLineReadDto:
      type: object
      description: List of collection lines for this receipt.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        receiptId:
          type: integer
          format: int32
          description: Receipt identifier.
          example: 8954
        billingSeriesCode:
          type: string
          description: Billing series code for this receipt.
          example: A
        invoiceNumber:
          type: integer
          format: int32
          description: Invoice number associated to this receipt.
          example: 10025
        receiptNumber:
          type: string
          description: Internal receipt number (if any).
          example: RC-2024-0054
        invoiceDate:
          type: string
          format: date
          description: Invoice emission date (yyyy-MM-dd).
          example: '2024-08-07'
        expirationDate:
          type: string
          format: date
          description: Expiration date for the collection (yyyy-MM-dd).
          example: '2024-09-15'
        total:
          type: number
          description: Total invoice amount in local currency.
          example: 351.77
        totalCompanyCurrency:
          type: number
          description: Total invoice amount in company currency.
          example: 351.77
        collectedAmount:
          type: number
          description: Collected amount in invoice currency.
          example: 100
        collectedAmountCompanyCurrency:
          type: number
          description: Collected amount in company currency.
          example: 100
        pendingAmount:
          type: number
          description: Pending amount in invoice currency.
          example: 251.77
        pendingAmountCompanyCurrency:
          type: number
          description: Pending amount in company currency.
          example: 251.77
        collectionAmount:
          type: number
          description: Collection amount for this receipt.
          example: 251.77
        ignorePending:
          type: boolean
          description: True if this receipt ignores pending quantities for calculation.
          example: false
        selected:
          type: boolean
          description: True if this receipt is marked as selected for processing.
          example: false
        situation:
          type: string
          description: Situation code or status for the receipt.
          example: PE
      required:
        - id
    ApiReceiptCollectionReadDto:
      type: object
      description: >-
        Detailed read-only information of a receipt collection, including
        associated lines and customer information.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        account:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Chart account information
        concept:
          $ref: '#/components/schemas/ApiConceptListReadDto'
          description: Concept information
        orderNumber:
          type: integer
          description: Order number
          example: 1001
        collectionDate:
          type: string
          format: date
          description: Collection date
          example: '2024-01-15'
        accounted:
          type: boolean
          description: Flag indicating if the collection is accounted
          example: true
        observations:
          type: string
          description: Observations about the collection
          example: Payment received
        extension:
          type: string
          description: File extension
          example: pdf
        collectedAmountTotal:
          type: number
          description: Total collected amount
          example: 1500
        collectedAmountTotalCompanyCurrency:
          type: number
          description: Total collected amount in company currency
          example: 1500
        pendingAmountTotal:
          type: number
          description: Total pending amount
          example: 0
        pendingAmountTotalCompanyCurrency:
          type: number
          description: Total pending amount in company currency
          example: 0
        receiptAmountTotal:
          type: number
          description: Total receipt amount
          example: 1500
        receiptAmountTotalCompanyCurrency:
          type: number
          description: Total receipt amount in company currency
          example: 1500
        receiptsNumber:
          type: integer
          format: int32
          description: Number of receipts
          example: 3
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: Currency information
        bank:
          $ref: '#/components/schemas/ApiBankListReadDto'
          description: Bank information
        amountReconciliation:
          type: number
          description: Amount for reconciliation
          example: 0
        amountReconciliationCompanyCurrency:
          type: number
          description: Amount for reconciliation in company currency
          example: 0
        lines:
          $ref: '#/components/schemas/ApiReceiptCollectionLineReadDto'
          description: List of collection lines for this receipt.
        customer:
          $ref: '#/components/schemas/ApiCustomerAutocompleteDto'
          description: Customer information for the receipt collection.
        quoteNumber:
          type: integer
          description: Quote number related to this receipt collection.
          example: 1001
        quoteId:
          type: integer
          format: int32
      required:
        - id
    ApiBillingSeriesWriteDto:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ApiBillingSeriesDocumentTypeEnum'
          description: >-
            Type of the billing series. See ApiBillingSeriesTypeEnum for
            possible values.
          example: INVOICE
        code:
          type: string
          description: Billing series code.
          example: SER25
          maxLength: 5
          minLength: 0
        description:
          type: string
          description: Description of the billing series.
          example: Export invoice series
          maxLength: 50
          minLength: 0
        cif:
          type: string
          description: Tax Identification Code (CIF) for the billing series.
          example: B42512345
          maxLength: 20
          minLength: 0
        purchaseAccount:
          type: integer
          format: int32
          description: Purchase account identifier.
          example: 400865
        observations:
          type: string
          description: Additional observations about the billing series.
          example: Used for export invoices
        deposit:
          type: boolean
          description: Indicates if the series is a deposit.
          example: false
        corrective:
          type: boolean
          description: Indicates if the series is corrective.
          example: true
        correctiveBillingSeries:
          type: integer
          format: int32
          description: Associated corrective billing series identifier.
          example: 7
        lastInvoiceNumber:
          type: integer
          description: Last invoice number issued in the series.
          example: 2000
      required:
        - code
        - description
        - type
    ApiBillingSeriesReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        type:
          $ref: '#/components/schemas/ApiBillingSeriesDocumentTypeEnum'
          description: >-
            Type of the billing series. See ApiBillingSeriesTypeEnum for
            possible values.
          example: INVOICE
        code:
          type: string
          description: Billing series code.
          example: SER2025
        description:
          type: string
          description: Description of the billing series.
          example: Main invoice series
        cif:
          type: string
          description: Tax Identification Code (CIF) for the billing series.
          example: B42512345
        purchaseAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Purchase account details. See ApiChartAccountListReadDto.
        observations:
          type: string
          description: Additional observations.
          example: Used for export invoices
        deposit:
          type: boolean
          description: Indicates if the series is a deposit.
          example: false
        corrective:
          type: boolean
          description: Indicates if the series is corrective.
          example: true
        correctiveBillingSeries:
          $ref: '#/components/schemas/ApiBillingSeriesReadDto'
          description: >-
            Reference to the corrective billing series. See
            ApiBillingSeriesReadDto.
        lastInvoiceNumber:
          type: integer
          description: Last invoice number issued in the series.
          example: 1900
      required:
        - code
        - id
        - type
    ApiBankWriteDto:
      type: object
      properties:
        code:
          type: string
          description: Unique code for the bank.
          example: ES1234
          maxLength: 10
          minLength: 0
        name:
          type: string
          description: Name of the bank.
          example: CLAVEI BANK
          maxLength: 100
          minLength: 0
        iban:
          type: string
          description: Bank account IBAN.
          example: ES9820385778983000760236
          maxLength: 50
          minLength: 0
        swift:
          type: string
          description: SWIFT/BIC code.
          example: BSABESBBXXX
          maxLength: 20
          minLength: 0
        inactive:
          type: boolean
          description: Indicates if the bank is inactive.
          example: false
        observations:
          type: string
          description: Observations about the bank.
          example: Main office 2025
        riskGranted:
          type: number
          description: Granted risk limit for the bank.
          example: 25000
        riskConsumed:
          type: number
          description: Consumed risk for the bank.
          example: 13000.55
        riskAvailable:
          type: number
          description: Available risk for the bank.
          example: 12000
        accountingAccount:
          type: integer
          format: int32
          description: Identifier for the accounting account.
          example: 5720001001
        remittancePresenterSuffix:
          type: string
          description: Remittance presenter suffix.
          example: '0001'
          maxLength: 5
          minLength: 0
        reportPrtryInsteadCd:
          type: boolean
          description: Indicates if Prtry should be reported instead of Cd.
          example: false
        skipBicorbeiTags:
          type: boolean
          description: Indicates if BIC/ORBEI tags will be skipped.
          example: false
        skipIndividualData:
          type: boolean
          description: Indicates if individual data will be skipped.
          example: false
        billsPayableAccount:
          type: integer
          format: int32
          description: Bills payable account identifier.
          example: 400001
        policyAccount:
          type: integer
          format: int32
          description: Policy account identifier.
          example: 800002
        payerCustomerCode:
          type: string
          description: Payer customer code.
          example: 1002A
          maxLength: 20
          minLength: 0
        internalReference:
          type: string
          description: Internal bank reference.
          example: BANKREF123
          maxLength: 20
          minLength: 0
        mnemo:
          type: string
          description: Mnemonic code for the bank.
          example: MNEMO
          maxLength: 10
          minLength: 0
        sepaTxtWithoutInstructionIdentification:
          type: boolean
          description: >-
            Indicates if SEPA TXT will be created without instruction
            identification.
          example: false
        confirmingFormat:
          $ref: '#/components/schemas/ApiConfirmingFormatEnum'
          description: Format for confirming operations. See ApiConfirmingFormat enum.
          example: NORMA_58
        lastPromissoryNoteNumber:
          type: integer
          format: int32
          description: Last promissory note number.
          example: 145
        remittanceGenerationCsb34:
          type: boolean
          description: Indicates if CSB34 remittance generation is enabled.
          example: false
        confirmingEmailTransfer:
          type: boolean
          description: Indicates if confirming email transfer is enabled.
          example: true
        picture:
          type: string
          description: URL or file name of the bank's picture.
          example: bank_logo.png
        synchronizable:
          type: boolean
          description: Indicates if the bank is synchronizable.
          example: false
        showSummary:
          type: boolean
          description: Indicates if the summary should be shown.
          example: true
      required:
        - code
        - name
    ApiConfirmingFormatEnum:
      type: string
      description: Defines the confirming formats available.
      enum:
        - BANKINTER
        - BBVA
        - BBVA_EUROCONFIRMING
        - CAIXABANK
        - CAIXA_GALICIA
        - CAJAMAR
        - SABADELL
        - SANTANDER
        - SANTANDER_5_4
      example: BANKINTER
    ApiBankReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Unique code for the bank.
          example: ES1234
        name:
          type: string
          description: Name of the bank.
          example: CLAVEI BANK
        iban:
          type: string
          description: IBAN of the bank account.
          example: ES9820385778983000760236
        swift:
          type: string
          description: SWIFT/BIC code.
          example: BSABESBBXXX
        inactive:
          type: boolean
          description: Indicates if the bank is inactive.
          example: false
        observations:
          type: string
          description: Observations about the bank.
          example: Merges with main branch yearly
        riskGranted:
          type: number
          description: Granted risk limit for the bank.
          example: 25000
        riskConsumed:
          type: number
          description: Consumed risk for the bank.
          example: 13000.55
        riskAvailable:
          type: number
          description: Available risk for the bank.
          example: 12000
        accountingAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Accounting account details. See ApiChartAccountListReadDto.
        remittancePresenterSuffix:
          type: string
          description: Suffix for the remittance presenter.
          example: '0001'
        reportPrtryInsteadCd:
          type: boolean
          description: Indicates if Prtry should be reported instead of Cd.
          example: false
        skipBicorbeiTags:
          type: boolean
          description: Indicates if BIC/ORBEI tags will be skipped.
          example: false
        skipIndividualData:
          type: boolean
          description: Indicates if individual data will be skipped.
          example: false
        billsPayableAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Bills payable account details. See ApiChartAccountListReadDto.
        policyAccount:
          $ref: '#/components/schemas/ApiChartAccountListReadDto'
          description: Policy account details. See ApiChartAccountListReadDto.
        payerCustomerCode:
          type: string
          description: Customer code of the payer.
          example: 1002A
        internalReference:
          type: string
          description: Internal bank reference.
          example: BANKREF123
        mnemo:
          type: string
          description: Mnemonic code for the bank.
          example: MNEMO
        sepaTxtWithoutInstructionIdentification:
          type: boolean
          description: >-
            Indicates if SEPA TXT will be created without instruction
            identification.
          example: false
        confirmingFormat:
          $ref: '#/components/schemas/ApiConfirmingFormatEnum'
          description: Format for confirming operations. See ApiConfirmingFormat enum.
          example: NORMA_58
        lastPromissoryNoteNumber:
          type: integer
          format: int32
          description: Last promissory note number.
          example: 145
        remittanceGenerationCsb34:
          type: boolean
          description: Indicates if CSB34 remittance generation is enabled.
          example: false
        confirmingEmailTransfer:
          type: boolean
          description: Indicates if confirming email transfer is enabled.
          example: true
        picture:
          type: string
          description: URL or file name of the bank's picture.
          example: bank_logo.png
        pictureToken:
          type: string
          description: Token related to the bank's picture.
          example: token-1f8e
        balance:
          type: number
          description: Bank balance.
          example: 15400.8
        income:
          type: number
          description: Bank income amount.
          example: 9671.22
        expenses:
          type: number
          description: Bank expenses amount.
          example: 5400.13
        synchronizable:
          type: boolean
          description: Indicates if the bank is synchronizable.
          example: false
        showSummary:
          type: boolean
          description: Indicates if the summary should be shown.
          example: true
      required:
        - code
        - id
        - name
    ApiCondition:
      type: object
      description: Condition for filtering data in API requests
      properties:
        field:
          type: string
          description: Field name to apply the condition to
          example: name
        value:
          type: object
          description: Value to compare against the field
          example: Example Value
        type:
          $ref: '#/components/schemas/ApiRelationalOperatorEnum'
          description: Relational operator for the condition
          example: EQ
        endValue:
          type: object
          description: End value for range conditions
          example: 100
        innerConditions:
          type: array
          description: Nested conditions for complex queries
          items:
            $ref: '#/components/schemas/ApiCondition'
        conditionType:
          $ref: '#/components/schemas/ApiConditionTypeEnum'
          description: Type of condition for combining multiple conditions
          example: AND
        empty:
          type: boolean
          description: Indicates if the condition is empty
          example: false
        compareFields:
          type: boolean
          description: Indicates if comparing between fields
          example: false
    ApiConditionTypeEnum:
      type: string
      description: Condition types for combining multiple filters
      enum:
        - AND
        - OR
      example: AND
    ApiRelationalOperatorEnum:
      type: string
      description: Relational operators for conditions
      enum:
        - BETWEEN
        - EQ
        - LT
        - LTE
        - GT
        - GTE
        - NE
        - LIKE
        - START
        - FINISH
        - IN
        - NIN
        - NLIKE
        - LENGTH
      example: EQ
    ApiSearchCriteriaDto:
      type: object
      description: Search criteria for API requests
      properties:
        condition:
          $ref: '#/components/schemas/ApiCondition'
          description: Condition to filter results
        sortCriteria:
          type: array
          description: List of sorting criteria to apply
          items:
            $ref: '#/components/schemas/ApiSortDto'
        pageNumber:
          type: integer
          format: int32
          description: Page number to retrieve (0-based)
          example: 0
        pageSize:
          type: integer
          format: int32
          description: Number of items per page
          example: 20
      required:
        - pageNumber
        - pageSize
    ApiSortDirectionEnum:
      type: string
      description: Defines the sort directions.
      enum:
        - ASC
        - DESC
      example: ASC
    ApiSortDto:
      type: object
      description: Sorting criteria for API requests
      properties:
        sortField:
          type: string
          description: Field name to sort by
          example: name
        sortDirection:
          $ref: '#/components/schemas/ApiSortDirectionEnum'
          description: Sort direction (ascending or descending)
          example: ASC
    ApiPageDtoApiWarehouseListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiWarehouseListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiMovementSourceEnum:
      type: string
      enum:
        - ORDER
        - INVENTORY
        - DELIVERY_NOTE
        - PRODUCTION_ORDER
        - PURCHASE_ORDER
        - PURCHASE_DELIVERY_NOTE
        - STOCK_REGULARIZATION
        - STOCK_TRANSFER
    ApiPageDtoApiWarehouseMovementListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiWarehouseMovementListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiWarehouseMovementListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        warehouseId:
          type: integer
          format: int32
        articleCombinationId:
          type: integer
          format: int32
        sizeRangeDetailId:
          type: integer
          format: int32
        widthId:
          type: integer
          format: int32
        assortmentId:
          type: integer
          format: int32
        jobId:
          type: integer
          format: int32
        batchId:
          type: integer
          format: int32
        source:
          $ref: '#/components/schemas/ApiMovementSourceEnum'
        lineId:
          type: integer
          format: int32
        headerId:
          type: integer
          format: int32
        movementDate:
          type: string
          format: date
        expirationDate:
          type: string
          format: date
        documentNumber:
          type: integer
        type:
          $ref: '#/components/schemas/ApiWarehouseMovementTypeEnum'
        quantity:
          type: number
        productionQuantity:
          type: number
        averageCostAmount:
          type: number
        warehouseCode:
          type: string
        articleCode:
          type: string
        articleDescription:
          type: string
        attribute1Code:
          type: string
        attribute2Code:
          type: string
        attribute3Code:
          type: string
        attribute4Code:
          type: string
        attribute5Code:
          type: string
        attribute1Description:
          type: string
        attribute2Description:
          type: string
        attribute3Description:
          type: string
        attribute4Description:
          type: string
        attribute5Description:
          type: string
        additionalInfo:
          type: string
        billingSeriesCode:
          type: string
      required:
        - id
    ApiWarehouseMovementTypeEnum:
      type: string
      enum:
        - SALES
        - PURCHASE
        - PRODUCTION_OUTBOUND
        - INVENTORY
        - REGULARIZATION
        - NEEDS
        - AVAILABLE
        - RETURN
        - TRANSFER_INBOUND
        - TRANSFER_OUTBOUND
        - OUTBOUND
        - DIRECT_OUTBOUND
        - INBOUND
        - DIRECT_INBOUND
        - PRODUCED
        - CANCELLED
        - PROVIDER_CANCELLED
        - DIRECT_PRODUCED
        - RESERVED
        - STOCK
        - IN_PRODUCTION
    ApiPageDtoApiWarehouseAccumulateListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiWarehouseAccumulateListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiWarehouseAccumulateListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        warehouseId:
          type: integer
          format: int32
        articleCombinationId:
          type: integer
          format: int32
        sizeRangeDetailId:
          type: integer
          format: int32
        widthId:
          type: integer
          format: int32
        assortmentId:
          type: integer
          format: int32
        batchId:
          type: integer
          format: int32
        expirationDate:
          type: string
          format: date
        stockQuantity:
          type: number
        purchasePrice:
          type: number
        warehouseCode:
          type: string
        articleCode:
          type: string
        articleDescription:
          type: string
        attribute1Code:
          type: string
        attribute2Code:
          type: string
        attribute3Code:
          type: string
        attribute4Code:
          type: string
        attribute5Code:
          type: string
        attribute1Description:
          type: string
        attribute2Description:
          type: string
        attribute3Description:
          type: string
        attribute4Description:
          type: string
        attribute5Description:
          type: string
      required:
        - id
    ApiPageDtoApiVatListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiVatListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiVatListReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        customerVatType:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
          description: >-
            Customer VAT type details. See ApiCustomerVatTypeListReadDto for
            details.
        articleVatType:
          $ref: '#/components/schemas/ApiArticleVatTypeListReadDto'
          description: >-
            Article VAT type details. See ApiArticleVatTypeListReadDto for
            details.
        vatPercentage:
          type: number
          description: VAT percentage applied to the transaction.
          example: 21
        rePercentage:
          type: number
          description: Surcharge percentage applied in addition to VAT.
          example: 5.2
        sellVatAccount:
          type: string
          description: Account code used for sales VAT registration.
          example: 4770000000
        sellRechargeAccount:
          type: string
          description: Account code used for sales surcharge registration.
          example: 4771000000
        buyVatAccount:
          type: string
          description: Account code used for purchases VAT registration.
          example: 4720000000
        buyRechargeAccount:
          type: string
          description: Account code used for purchases surcharge registration.
          example: 4721000000
      required:
        - articleVatType
        - customerVatType
        - id
    ApiPageDtoApiTemplateSaleInvoiceListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiTemplateSaleInvoiceListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiTemplateSaleInvoiceListReadDto:
      type: object
      description: Template sale invoice list information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        billingSeriesCode:
          type: string
          description: Billing series code
          example: FAC
        documentDate:
          type: string
          format: date
          description: Document date
          example: '2024-01-15'
        customerCode:
          type: string
          description: Customer code
          example: CUST001
        customerName:
          type: string
          description: Customer name
          example: John Doe
        customerEmail:
          type: string
          description: Customer email address
          example: john.doe@example.com
        commercialName:
          type: string
          description: Commercial name
          example: Doe Enterprises
        grossAmountTotal:
          type: number
          description: Total gross amount
          example: 1000
        grossAmountTotalCompanyCurrency:
          type: number
          description: Total gross amount in company currency
          example: 1000
        discountPpAmountTotal:
          type: number
          description: Total discount amount (PP)
          example: 50
        discountPpAmountTotalCompanyCurrency:
          type: number
          description: Total discount amount (PP) in company currency
          example: 50
        discountAmountTotal:
          type: number
          description: Total discount amount
          example: 100
        discountAmountTotalCompanyCurrency:
          type: number
          description: Total discount amount in company currency
          example: 100
        netAmountTotal:
          type: number
          description: Total net amount
          example: 900
        netAmountTotalCompanyCurrency:
          type: number
          description: Total net amount in company currency
          example: 900
        vatAmountTotal:
          type: number
          description: Total VAT amount
          example: 189
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency
          example: 189
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount
          example: 25.5
        total:
          type: number
          description: Total amount
          example: 1114.5
        totalCompanyCurrency:
          type: number
          description: Total amount in company currency
          example: 1114.5
        customerCountry:
          type: string
          description: Customer country
          example: Spain
        customerStateDescription:
          type: string
          description: Customer state description
          example: Madrid
        valueDate:
          type: string
          format: date
          description: Value date
          example: '2024-01-20'
        paymentMethodDescription:
          type: string
          description: Payment method description
          example: Bank Transfer
        currencyNomenclature:
          type: string
          description: Currency nomenclature
          example: EUR
        currencySignificantDecimalsDocuments:
          type: integer
          format: int32
          description: Currency significant decimals for documents
          example: 2
        currencyIntermediateDecimalsDocuments:
          type: integer
          format: int32
          description: Currency intermediate decimals for documents
          example: 2
        currencyDecimalsCalculatePrices:
          type: integer
          format: int32
          description: Currency decimals for calculating prices
          example: 4
        currencyDecimalsCalculateCosts:
          type: integer
          format: int32
          description: Currency decimals for calculating costs
          example: 4
        documentType:
          type: string
          description: Document type
          example: INVOICE
        iban:
          type: string
          description: IBAN for payments
          example: ES9121000418450200051332
        customerAddressId:
          type: integer
          format: int32
          description: Customer address identifier
          example: 1
        representatives:
          type: string
          description: Representatives information
          example: John Smith, Jane Doe
        quantityTotal:
          type: number
          description: Total quantity
          example: 10
        status:
          $ref: '#/components/schemas/ApiTemplateSaleInvoiceStatusEnum'
          description: Template sale invoice status
          example: ACTIVE
        collectedAmount:
          type: number
          description: Collected amount
          example: 1114.5
        collectedAmountCompanyCurrency:
          type: number
          description: Collected amount in company currency
          example: 1114.5
        salesAccountCode:
          type: string
          description: Sales account code
          example: 700
        reference:
          type: string
          description: Reference number
          example: TEMP-2024-001
        validityDate:
          type: string
          format: date
          description: Validity date
          example: '2024-12-31'
        tags:
          type: array
          description: Tags associated with the template
          example:
            - recurring
            - monthly
          items:
            type: string
        active:
          type: boolean
          description: Flag indicating if the template is active
          example: true
        automaticGeneration:
          type: boolean
          description: Flag indicating if generation is automatic
          example: true
        automaticSending:
          type: boolean
          description: Flag indicating if sending is automatic
          example: false
        startDate:
          type: string
          format: date
          description: Start date for the template
          example: '2024-01-01'
        endDate:
          type: string
          format: date
          description: End date for the template
          example: '2024-12-31'
        nextInvoice:
          type: string
          format: date
          description: Next invoice date
          example: '2024-02-01'
        periodicInvoice:
          $ref: '#/components/schemas/ApiPeriodicInvoiceEnum'
          description: Periodic invoice type
          example: MONTHLY
      required:
        - id
    ApiPageDtoApiSupplierListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiSupplierListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiStockTransferLineDetailWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier for this line detail.
          example: 200
        sizeRangeDetail:
          type: integer
          format: int32
          description: Identifier for the size range detail.
          example: 15
        width:
          type: integer
          format: int32
          description: Width identifier.
          example: 12
        quantityPerPackage:
          type: number
          description: Quantity per package for this detail.
          example: 9.3
    ApiStockTransferLineWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the line.
          example: 1001
        articleCombination:
          type: integer
          format: int32
          description: Gets the article combination identifier
          example: 5312
        sizeRange:
          type: integer
          format: int32
          description: Identifier of the size range associated with the article.
          example: 15
        assortment:
          type: integer
          format: int32
          description: Identifier of the assortment to which the article belongs.
          example: 8
        lineNumber:
          type: integer
          format: int32
          description: Sequential number of the line within the document.
          example: 1
        articleDescription:
          type: string
          description: Description of the article in the line.
          example: Cotton T-shirt - Blue
        packages:
          type: integer
          format: int32
          description: Number of packages for this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity of items per package.
          example: 12
        price:
          type: number
          description: Unit price of the article.
          example: 19.99
        lineObservations:
          type: string
          description: Additional observations or comments about this line.
          example: Special discount applied.
        details:
          type: array
          description: >-
            Gets the list of line details. See ApiBaseLineDetailWriteDto for
            structure.
          items:
            $ref: '#/components/schemas/ApiStockTransferLineDetailWriteDto'
        totalLine:
          type: number
        batchList:
          type: array
          description: >-
            Returns the list of batch objects for inbound operations. See
            ApiBaseLineBatchInboundWriteDto for structure.
          items:
            $ref: '#/components/schemas/ApiBaseLineBatchInboundWriteDto'
        serialNumberList:
          type: array
          description: >-
            Returns the list of serial number objects for inbound operations.
            See ApiBaseLineSerialNumberInboundWriteDto for structure.
          items:
            $ref: '#/components/schemas/ApiBaseLineSerialNumberInboundWriteDto'
    ApiStockTransferWriteDto:
      type: object
      description: Stock transfer information for creating transfers
      properties:
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1050
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2025-08-07'
        quantityTotal:
          type: number
          description: Total quantity of all document lines.
          example: 120.5
        observations:
          type: string
          description: Free text for header observations.
          example: Deliver to warehouse B
        lines:
          type: array
          description: List of document lines. For structure, see ApiBaseLineWriteDto.java
          items:
            $ref: '#/components/schemas/ApiStockTransferLineWriteDto'
        id:
          type: integer
          format: int32
          description: Unique identifier of the stock transfer
          example: 1
        sourceWarehouse:
          type: integer
          format: int32
          description: Source warehouse identifier
          example: 5
        destinationWarehouse:
          type: integer
          format: int32
          description: Destination warehouse identifier
          example: 10
        valuationType:
          $ref: '#/components/schemas/ApiValuationTypeEnum'
          description: Type of valuation method used for transfer
          example: FIFO
        doTransfer:
          type: boolean
          description: Flag indicating if the transfer should be executed
          example: true
    ApiValuationTypeEnum:
      type: string
      enum:
        - AVERAGE_COST_PRICE
        - GROSS_PRICE_CURRENT_COST
        - NET_PRICE_CURRENT_COST
    ApiStockTransferLineDetailReadDto:
      type: object
      description: Stock transfer line detail information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        widthId:
          type: integer
          format: int32
          description: Width identifier.
          example: 200
        widthCode:
          type: string
          description: Width code.
          example: W-35
        quantitiesPerSize:
          type: array
          description: >-
            Quantities per size. For structure see
            ApiBaseLineDetailSizeReadDto.java
          items:
            $ref: '#/components/schemas/ApiStockTransferLineDetailSizeReadDto'
        sizeOrder:
          type: integer
          format: int32
          description: Order of the size in the detail
          example: 1
      required:
        - id
    ApiStockTransferLineDetailSizeReadDto:
      type: object
      description: Stock transfer line detail size information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        sizeRangeDetailId:
          type: integer
          format: int32
          description: Size detail identifier.
          example: 15
        sizeRangeDetailSize:
          type: string
          description: Size code within the range.
          example: M
        sizeRangeSizeOrder:
          type: integer
          format: int32
          description: Order value of the size in the range.
          example: 2
        quantityPerPackage:
          type: number
          description: Quantity per package for this size.
          example: 8
        quantityDetail:
          type: number
          description: Total quantity for this size.
          example: 24
        availability:
          type: number
          description: Available quantity for this size.
          example: 10
        sizeOrder:
          type: integer
          format: int32
          description: Order of the size in the detail
          example: 1
      required:
        - id
        - sizeRangeDetailId
        - sizeRangeDetailSize
    ApiStockTransferLineReadDto:
      type: object
      description: Stock transfer line information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        lineNumber:
          type: integer
          format: int32
          description: Line number within the document.
          example: 1
        articleCombination:
          $ref: '#/components/schemas/ApiArticleCombinationListReadDto'
          description: >-
            Article combination info. See ApiArticleCombinationListReadDto.java
            for the structure.
        attributesDescription:
          type: string
          description: Additional attributes description for the line.
          example: 'Color: Red, Size: L'
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: >-
            Size range information. See ApiSizeRangeListReadDto.java for the
            structure.
        assortment:
          $ref: '#/components/schemas/ApiAssortmentListReadDto'
          description: >-
            Assortment information. See ApiAssortmentListReadDto.java for the
            structure.
        articleDescription:
          type: string
          description: Description of the article.
          example: Cotton T-Shirt
        packages:
          type: integer
          format: int32
          description: Number of packages in this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity per package for this line.
          example: 5
        quantityLine:
          type: number
          description: Total quantity for this line.
          example: 15
        price:
          type: number
          description: Unit price for this article line.
          example: 12.95
        lineObservations:
          type: string
          description: Observations for this document line.
          example: Deliver before 9 AM
        details:
          type: array
          description: >-
            List of line details. See ApiBaseLineDetailReadDto.java for the
            structure.
          items:
            $ref: '#/components/schemas/ApiStockTransferLineDetailReadDto'
        articleCombinationDescription:
          type: string
          description: Description of the article combination
          example: Product X - Size L
        totalLine:
          type: number
          description: Total amount for the line
          example: 100
        batches:
          $ref: '#/components/schemas/ApiBaseLineBatchReadDto'
          description: List of batches for the line
        serialNumbers:
          $ref: '#/components/schemas/ApiBaseLineSerialNumberReadDto'
          description: List of serial numbers for the line
      required:
        - articleCombination
        - id
        - lineNumber
    ApiStockTransferReadDto:
      type: object
      description: Stock transfer information for warehouse management
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1001
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2024-08-07'
        quantityTotal:
          type: number
          description: Total quantity for all document lines.
          example: 200.5
        observations:
          type: string
          description: Free text field for any observations related to the document.
          example: Customer requested urgent delivery
        lines:
          type: array
          description: >-
            List of detail lines for the document. For structure see:
            ApiBaseLineReadDto.java
          items:
            $ref: '#/components/schemas/ApiStockTransferLineReadDto'
        stockTransferedDate:
          type: string
          format: date
          description: Date when the stock transfer was completed
          example: '2024-01-16'
        stockTransfered:
          type: boolean
          description: Flag indicating if the stock transfer has been completed
          example: true
        sourceWarehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Source warehouse information
        destinationWarehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Destination warehouse information
        valuationType:
          $ref: '#/components/schemas/ApiValuationTypeEnum'
          description: Type of valuation method used for transfer
          example: FIFO
      required:
        - documentDate
        - id
        - number
    ApiPageDtoApiStockTransferListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiStockTransferListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiStockTransferListReadDto:
      type: object
      description: Stock transfer list information for warehouse management
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        number:
          type: integer
          format: int32
          description: Transfer number
          example: TR-2024-001
        documentDate:
          type: string
          format: date
          description: Document date
          example: '2024-01-15'
        stockTransferedDate:
          type: string
          format: date
          description: Date when the stock transfer was completed
          example: '2024-01-16'
        stockTransfered:
          type: boolean
          description: Flag indicating if the stock transfer has been completed
          example: true
        sourceWarehouse:
          type: string
          description: Source warehouse name
          example: Main Warehouse
        destinationWarehouse:
          type: string
          description: Destination warehouse name
          example: Secondary Warehouse
        observations:
          type: string
          description: Observations about the transfer
          example: Regular stock movement
        quantityTotal:
          type: number
          description: Total quantity transferred
          example: 50
      required:
        - id
    ApiAccumulateIntoEnum:
      type: string
      enum:
        - STOCK
        - PURCHASES
        - SALES
        - CANCELLED
        - IN_BOUNDS
        - DIRECT_IN_BOUNDS
        - OUT_BOUNDS
        - DIRECT_OUT_BOUNDS
        - IN_PRODUCCTION
        - PRODUCED
        - AVAILABLE
        - NEEDS
        - SUPPLIER_CANCELLATIONS
        - PRODUCTION_OUT_BOUNDS
        - PRODUCTION_RESERVED
        - RETURN
    ApiStockRegularizationLineDetailWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier for this line detail.
          example: 200
        sizeRangeDetail:
          type: integer
          format: int32
          description: Identifier for the size range detail.
          example: 15
        width:
          type: integer
          format: int32
          description: Width identifier.
          example: 12
        quantityPerPackage:
          type: number
          description: Quantity per package for this detail.
          example: 9.3
        quantityAccumulated:
          type: number
        quantityReal:
          type: number
    ApiStockRegularizationLineWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the line.
          example: 1001
        articleCombination:
          type: integer
          format: int32
          description: Gets the article combination identifier
          example: 5312
        sizeRange:
          type: integer
          format: int32
          description: Identifier of the size range associated with the article.
          example: 15
        assortment:
          type: integer
          format: int32
          description: Identifier of the assortment to which the article belongs.
          example: 8
        lineNumber:
          type: integer
          format: int32
          description: Sequential number of the line within the document.
          example: 1
        articleDescription:
          type: string
          description: Description of the article in the line.
          example: Cotton T-shirt - Blue
        packages:
          type: integer
          format: int32
          description: Number of packages for this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity of items per package.
          example: 12
        price:
          type: number
          description: Unit price of the article.
          example: 19.99
        lineObservations:
          type: string
          description: Additional observations or comments about this line.
          example: Special discount applied.
        details:
          type: array
          description: >-
            Gets the list of line details. See ApiBaseLineDetailWriteDto for
            structure.
          items:
            $ref: '#/components/schemas/ApiStockRegularizationLineDetailWriteDto'
        totalLine:
          type: number
        totalQuantityAccumulated:
          type: number
        totalQuantityReal:
          type: number
        accumulateInto:
          $ref: '#/components/schemas/ApiAccumulateIntoEnum'
        batchList:
          type: array
          description: >-
            Returns the list of batch objects for inbound operations. See
            ApiBaseLineBatchInboundWriteDto for structure.
          items:
            $ref: '#/components/schemas/ApiBaseLineBatchInboundWriteDto'
        serialNumberList:
          type: array
          description: >-
            Returns the list of serial number objects for inbound operations.
            See ApiBaseLineSerialNumberInboundWriteDto for structure.
          items:
            $ref: '#/components/schemas/ApiBaseLineSerialNumberInboundWriteDto'
      required:
        - accumulateInto
    ApiStockRegularizationWriteDto:
      type: object
      description: Stock regularization information for creating regularizations
      properties:
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1050
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2025-08-07'
        quantityTotal:
          type: number
          description: Total quantity of all document lines.
          example: 120.5
        observations:
          type: string
          description: Free text for header observations.
          example: Deliver to warehouse B
        lines:
          type: array
          description: List of document lines. For structure, see ApiBaseLineWriteDto.java
          items:
            $ref: '#/components/schemas/ApiStockRegularizationLineWriteDto'
        id:
          type: integer
          format: int32
          description: Unique identifier of the stock regularization
          example: 1
        warehouse:
          type: integer
          format: int32
          description: Warehouse identifier
          example: 5
        valuationType:
          $ref: '#/components/schemas/ApiValuationTypeEnum'
          description: Type of valuation method used for regularization
          example: FIFO
        doRegularization:
          type: boolean
          description: Flag indicating if the regularization should be executed
          example: true
    ApiStockRegularizationLineDetailReadDto:
      type: object
      description: Stock regularization line detail information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        widthId:
          type: integer
          format: int32
          description: Width identifier.
          example: 200
        widthCode:
          type: string
          description: Width code.
          example: W-35
        quantitiesPerSize:
          type: array
          description: >-
            Quantities per size. For structure see
            ApiBaseLineDetailSizeReadDto.java
          items:
            $ref: '#/components/schemas/ApiStockRegularizationLineDetailSizeReadDto'
        sizeOrder:
          type: integer
          format: int32
          description: Order of the size in the detail
          example: 1
      required:
        - id
    ApiStockRegularizationLineDetailSizeReadDto:
      type: object
      description: Stock regularization line detail size information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        sizeRangeDetailId:
          type: integer
          format: int32
          description: Size detail identifier.
          example: 15
        sizeRangeDetailSize:
          type: string
          description: Size code within the range.
          example: M
        sizeRangeSizeOrder:
          type: integer
          format: int32
          description: Order value of the size in the range.
          example: 2
        quantityPerPackage:
          type: number
          description: Quantity per package for this size.
          example: 8
        quantityDetail:
          type: number
          description: Total quantity for this size.
          example: 24
        availability:
          type: number
          description: Available quantity for this size.
          example: 10
        sizeOrder:
          type: integer
          format: int32
          description: Order of the size in the detail
          example: 1
        quantityReal:
          type: number
          description: Real quantity for this size
          example: 10
        quantityAccumulated:
          type: number
          description: Accumulated quantity for this size
          example: 8
      required:
        - id
        - sizeRangeDetailId
        - sizeRangeDetailSize
    ApiStockRegularizationLineReadDto:
      type: object
      description: Stock regularization line information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        lineNumber:
          type: integer
          format: int32
          description: Line number within the document.
          example: 1
        articleCombination:
          $ref: '#/components/schemas/ApiArticleCombinationListReadDto'
          description: >-
            Article combination info. See ApiArticleCombinationListReadDto.java
            for the structure.
        attributesDescription:
          type: string
          description: Additional attributes description for the line.
          example: 'Color: Red, Size: L'
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: >-
            Size range information. See ApiSizeRangeListReadDto.java for the
            structure.
        assortment:
          $ref: '#/components/schemas/ApiAssortmentListReadDto'
          description: >-
            Assortment information. See ApiAssortmentListReadDto.java for the
            structure.
        articleDescription:
          type: string
          description: Description of the article.
          example: Cotton T-Shirt
        packages:
          type: integer
          format: int32
          description: Number of packages in this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity per package for this line.
          example: 5
        quantityLine:
          type: number
          description: Total quantity for this line.
          example: 15
        price:
          type: number
          description: Unit price for this article line.
          example: 12.95
        lineObservations:
          type: string
          description: Observations for this document line.
          example: Deliver before 9 AM
        details:
          type: array
          description: >-
            List of line details. See ApiBaseLineDetailReadDto.java for the
            structure.
          items:
            $ref: '#/components/schemas/ApiStockRegularizationLineDetailReadDto'
        articleCombinationDescription:
          type: string
          description: Description of the article combination
          example: Product X - Size L
        totalQuantityReal:
          type: number
          description: Total real quantity for regularization
          example: 50
        totalQuantityAccumulated:
          type: number
          description: Total accumulated quantity
          example: 45
        accumulateInto:
          $ref: '#/components/schemas/ApiAccumulateIntoEnum'
          description: Type of accumulation
          example: WAREHOUSE
        totalLine:
          type: number
          description: Total amount for the line
          example: 100
        batches:
          $ref: '#/components/schemas/ApiBaseLineBatchReadDto'
          description: List of batches for the line
        serialNumbers:
          $ref: '#/components/schemas/ApiBaseLineSerialNumberReadDto'
          description: List of serial numbers for the line
      required:
        - articleCombination
        - id
        - lineNumber
    ApiStockRegularizationReadDto:
      type: object
      description: Stock regularization information for warehouse management
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1001
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2024-08-07'
        quantityTotal:
          type: number
          description: Total quantity for all document lines.
          example: 200.5
        observations:
          type: string
          description: Free text field for any observations related to the document.
          example: Customer requested urgent delivery
        lines:
          type: array
          description: >-
            List of detail lines for the document. For structure see:
            ApiBaseLineReadDto.java
          items:
            $ref: '#/components/schemas/ApiStockRegularizationLineReadDto'
        stockRegularizatedDate:
          type: string
          format: date
          description: Date when the stock regularization was completed
          example: '2024-01-16'
        stockRegularizated:
          type: boolean
          description: Flag indicating if the stock regularization has been completed
          example: true
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Warehouse information
        valuationType:
          $ref: '#/components/schemas/ApiValuationTypeEnum'
          description: Type of valuation method used for regularization
          example: FIFO
      required:
        - documentDate
        - id
        - number
    ApiPageDtoApiStockRegularizationListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiStockRegularizationListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiStockRegularizationListReadDto:
      type: object
      description: Stock regularization list information for warehouse management
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        number:
          type: integer
          format: int32
          description: Regularization number
          example: REG-2024-001
        documentDate:
          type: string
          format: date
          description: Document date
          example: '2024-01-15'
        stockRegularizatedDate:
          type: string
          format: date
          description: Date when the stock regularization was completed
          example: '2024-01-16'
        stockRegularizated:
          type: boolean
          description: Flag indicating if the stock regularization has been completed
          example: true
        warehouse:
          type: string
          description: Warehouse name
          example: Main Warehouse
        observations:
          type: string
          description: Observations about the regularization
          example: Annual stock adjustment
        quantityTotal:
          type: number
          description: Total quantity regularized
          example: 15
      required:
        - id
    ApiPageDtoApiStateListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiStateListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPageDtoApiArticleListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiArticleListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPageDtoApiRateListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiRateListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPageDtoApiQuoteListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiQuoteListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiQuoteListReadDto:
      type: object
      description: Quote list information for sales proposals
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        billingSeriesCode:
          type: string
          description: Billing series code
          example: Q
        number:
          type: integer
          format: int32
          description: Quote number
          example: 1001
        documentDate:
          type: string
          format: date
          description: Document date
          example: '2024-01-15'
        customerCode:
          type: string
          description: Customer code
          example: CUST001
        customerName:
          type: string
          description: Customer name
          example: John Doe
        customerEmail:
          type: string
          description: Customer email address
          example: john.doe@example.com
        commercialName:
          type: string
          description: Commercial name
          example: Doe Enterprises
        grossAmountTotal:
          type: number
          description: Total gross amount
          example: 1000
        grossAmountTotalCompanyCurrency:
          type: number
          description: Total gross amount in company currency
          example: 1000
        discountPpAmountTotal:
          type: number
          description: Total discount amount (PP)
          example: 50
        discountPpAmountTotalCompanyCurrency:
          type: number
          description: Total discount amount (PP) in company currency
          example: 50
        discountAmountTotal:
          type: number
          description: Total discount amount
          example: 100
        discountAmountTotalCompanyCurrency:
          type: number
          description: Total discount amount in company currency
          example: 100
        netAmountTotal:
          type: number
          description: Total net amount
          example: 900
        netAmountTotalCompanyCurrency:
          type: number
          description: Total net amount in company currency
          example: 900
        vatAmountTotal:
          type: number
          description: Total VAT amount
          example: 189
        vatAmountTotalCompanyCurrency:
          type: number
          description: Total VAT amount in company currency
          example: 189
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount
          example: 25.5
        total:
          type: number
          description: Total amount
          example: 1114.5
        totalCompanyCurrency:
          type: number
          description: Total amount in company currency
          example: 1114.5
        customerCountry:
          type: string
          description: Customer country
          example: Spain
        customerStateDescription:
          type: string
          description: Customer state description
          example: Madrid
        valueDate:
          type: string
          format: date
          description: Value date
          example: '2024-01-20'
        paymentMethodDescription:
          type: string
          description: Payment method description
          example: Bank Transfer
        currencyNomenclature:
          type: string
          description: Currency nomenclature
          example: EUR
        currencySignificantDecimalsDocuments:
          type: integer
          format: int32
          description: Currency significant decimals for documents
          example: 2
        currencyIntermediateDecimalsDocuments:
          type: integer
          format: int32
          description: Currency intermediate decimals for documents
          example: 2
        currencyDecimalsCalculatePrices:
          type: integer
          format: int32
          description: Currency decimals for calculating prices
          example: 4
        currencyDecimalsCalculateCosts:
          type: integer
          format: int32
          description: Currency decimals for calculating costs
          example: 4
        documentType:
          type: string
          description: Document type
          example: QUOTE
        iban:
          type: string
          description: IBAN for payments
          example: ES9121000418450200051332
        customerAddressId:
          type: integer
          format: int32
          description: Customer address identifier
          example: 1
        representatives:
          type: string
          description: Representatives information
          example: John Smith, Jane Doe
        quantityTotal:
          type: number
          description: Total quantity
          example: 10
        status:
          $ref: '#/components/schemas/ApiQuoteStatusEnum'
          description: Status of the quote
          example: DRAFT
        collectedAmount:
          type: number
          description: Collected amount
          example: 1114.5
        collectedAmountCompanyCurrency:
          type: number
          description: Collected amount in company currency
          example: 1114.5
        salesAccountCode:
          type: string
          description: Sales account code
          example: 700
        reference:
          type: string
          description: Reference number
          example: Q-2024-001
        validityDate:
          type: string
          format: date
          description: Validity date
          example: '2024-12-31'
        invoices:
          $ref: '#/components/schemas/ApiLastInfoResponseDto'
          description: List of related invoices
        tags:
          type: array
          description: Tags associated with the quote
          example:
            - urgent
            - priority
          items:
            type: string
        proformaInvoice:
          type: boolean
          description: Proforma invoice
          example: false
      required:
        - id
    ApiPageDtoApiPurchaseDeliveryNoteListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiPurchaseDeliveryNoteListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPurchaseDeliveryNoteListReadDto:
      type: object
      description: Purchase delivery note list information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        billingSeries:
          type: string
          description: Billing series code
          example: ALB
        number:
          type: integer
          format: int32
          description: Document number
          example: 1001
        supplier:
          type: string
          description: Supplier name
          example: ABC Supplies Ltd
        supplierCommercialName:
          type: string
          description: Supplier commercial name
          example: ABC Supplies
        supplierEmail:
          type: string
          description: Supplier email address
          example: contact@abcsupplies.com
        supplierPhone:
          type: string
          description: Supplier phone number
          example: +34 91 123 4567
        quantityTotal:
          type: number
          description: Total quantity
          example: 25
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount
          example: 50
        total:
          type: number
          description: Total amount
          example: 1250
        paymentMethod:
          type: string
          description: Payment method code
          example: TRANSFER
        paymentMethodDescription:
          type: string
          description: Payment method description
          example: Bank Transfer
        warehouse:
          type: string
          description: Warehouse name
          example: Main Warehouse
        invoiceNumbers:
          type: string
          description: Related invoice numbers
          example: FAC-2024-001, FAC-2024-002
        purchaseOrderNumbers:
          type: string
          description: Related purchase order numbers
          example: PO-2024-001
        documentDate:
          type: string
          format: date
          description: Document date
          example: '2024-01-15'
        locked:
          type: boolean
          description: Flag indicating if the document is locked
          example: false
        currencyNomenclature:
          type: string
          description: Currency nomenclature
          example: EUR
        tags:
          type: array
          description: Tags associated with the document
          example:
            - urgent
            - priority
          items:
            type: string
        invoiced:
          type: boolean
          description: Flag indicating if the document is invoiced
          example: true
        reference:
          type: string
          description: Reference number
          example: ALB-2024-001
        purchasingAccountCode:
          type: string
          description: Purchasing account code
          example: 600
        invoiceEditObservations:
          type: string
          description: Observations for invoice editing
          example: Special handling required
      required:
        - id
    ApiPageDtoApiPurchaseInvoiceListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiPurchaseInvoiceListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPageDtoApiPaymentMethodListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiPaymentMethodListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPageDtoApiItemSaleRateListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiItemSaleRateListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiSendRequestDto:
      type: object
      description: >-
        Request data for sending invoices via email with recipient details and
        invoice identifiers
      properties:
        to:
          type: string
          description: Primary recipient email address
          example: customer@example.com
        cc:
          type: string
          description: Carbon copy recipient email addresses
          example: manager@example.com
        subject:
          type: string
          description: Email subject line
          example: 'Invoice #1001 - Payment Due'
        ids:
          type: array
          description: List of additional identifiers
          example:
            - 10
            - 20
            - 30
          items:
            type: integer
            format: int32
      required:
        - to
    ApiPageDtoApiInvoiceListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiInvoiceListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiInventoryLineDetailWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Internal identifier for this line detail.
          example: 200
        sizeRangeDetail:
          type: integer
          format: int32
          description: Identifier for the size range detail.
          example: 15
        width:
          type: integer
          format: int32
          description: Width identifier.
          example: 12
        quantityPerPackage:
          type: number
          description: Quantity per package for this detail.
          example: 9.3
    ApiInventoryLineWriteDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the line.
          example: 1001
        articleCombination:
          type: integer
          format: int32
          description: Gets the article combination identifier
          example: 5312
        sizeRange:
          type: integer
          format: int32
          description: Identifier of the size range associated with the article.
          example: 15
        assortment:
          type: integer
          format: int32
          description: Identifier of the assortment to which the article belongs.
          example: 8
        lineNumber:
          type: integer
          format: int32
          description: Sequential number of the line within the document.
          example: 1
        articleDescription:
          type: string
          description: Description of the article in the line.
          example: Cotton T-shirt - Blue
        packages:
          type: integer
          format: int32
          description: Number of packages for this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity of items per package.
          example: 12
        price:
          type: number
          description: Unit price of the article.
          example: 19.99
        lineObservations:
          type: string
          description: Additional observations or comments about this line.
          example: Special discount applied.
        details:
          type: array
          description: >-
            Gets the list of line details. See ApiBaseLineDetailWriteDto for
            structure.
          items:
            $ref: '#/components/schemas/ApiInventoryLineDetailWriteDto'
        totalLine:
          type: number
        batchList:
          type: array
          description: >-
            Returns the list of batch objects for inbound operations. See
            ApiBaseLineBatchInboundWriteDto for structure.
          items:
            $ref: '#/components/schemas/ApiBaseLineBatchInboundWriteDto'
        serialNumberList:
          type: array
          description: >-
            Returns the list of serial number objects for inbound operations.
            See ApiBaseLineSerialNumberInboundWriteDto for structure.
          items:
            $ref: '#/components/schemas/ApiBaseLineSerialNumberInboundWriteDto'
    ApiInventoryWriteDto:
      type: object
      properties:
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1050
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2025-08-07'
        quantityTotal:
          type: number
          description: Total quantity of all document lines.
          example: 120.5
        observations:
          type: string
          description: Free text for header observations.
          example: Deliver to warehouse B
        lines:
          type: array
          description: List of document lines. For structure, see ApiBaseLineWriteDto.java
          items:
            $ref: '#/components/schemas/ApiInventoryLineWriteDto'
        warehouse:
          type: integer
          format: int32
        valuationType:
          $ref: '#/components/schemas/ApiValuationTypeEnum'
        doInventory:
          type: boolean
    ApiInventoryLineDetailReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        widthId:
          type: integer
          format: int32
          description: Width identifier.
          example: 200
        widthCode:
          type: string
          description: Width code.
          example: W-35
        quantitiesPerSize:
          type: array
          description: >-
            Quantities per size. For structure see
            ApiBaseLineDetailSizeReadDto.java
          items:
            $ref: '#/components/schemas/ApiInventoryLineDetailSizeReadDto'
        sizeOrder:
          type: integer
          format: int32
      required:
        - id
    ApiInventoryLineDetailSizeReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        sizeRangeDetailId:
          type: integer
          format: int32
          description: Size detail identifier.
          example: 15
        sizeRangeDetailSize:
          type: string
          description: Size code within the range.
          example: M
        sizeRangeSizeOrder:
          type: integer
          format: int32
          description: Order value of the size in the range.
          example: 2
        quantityPerPackage:
          type: number
          description: Quantity per package for this size.
          example: 8
        quantityDetail:
          type: number
          description: Total quantity for this size.
          example: 24
        availability:
          type: number
          description: Available quantity for this size.
          example: 10
        sizeOrder:
          type: integer
          format: int32
        stockDetail:
          type: number
      required:
        - id
        - sizeRangeDetailId
        - sizeRangeDetailSize
    ApiInventoryLineReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        lineNumber:
          type: integer
          format: int32
          description: Line number within the document.
          example: 1
        articleCombination:
          $ref: '#/components/schemas/ApiArticleCombinationListReadDto'
          description: >-
            Article combination info. See ApiArticleCombinationListReadDto.java
            for the structure.
        attributesDescription:
          type: string
          description: Additional attributes description for the line.
          example: 'Color: Red, Size: L'
        sizeRange:
          $ref: '#/components/schemas/ApiSizeRangeListReadDto'
          description: >-
            Size range information. See ApiSizeRangeListReadDto.java for the
            structure.
        assortment:
          $ref: '#/components/schemas/ApiAssortmentListReadDto'
          description: >-
            Assortment information. See ApiAssortmentListReadDto.java for the
            structure.
        articleDescription:
          type: string
          description: Description of the article.
          example: Cotton T-Shirt
        packages:
          type: integer
          format: int32
          description: Number of packages in this line.
          example: 3
        quantityPerPackage:
          type: number
          description: Quantity per package for this line.
          example: 5
        quantityLine:
          type: number
          description: Total quantity for this line.
          example: 15
        price:
          type: number
          description: Unit price for this article line.
          example: 12.95
        lineObservations:
          type: string
          description: Observations for this document line.
          example: Deliver before 9 AM
        details:
          type: array
          description: >-
            List of line details. See ApiBaseLineDetailReadDto.java for the
            structure.
          items:
            $ref: '#/components/schemas/ApiInventoryLineDetailReadDto'
        articleCombinationDescription:
          type: string
        totalLine:
          type: number
        unitWarehouse:
          type: string
        stockLine:
          type: number
        batches:
          type: array
          items:
            $ref: '#/components/schemas/ApiBaseLineBatchReadDto'
        serialNumbers:
          type: array
          items:
            $ref: '#/components/schemas/ApiBaseLineSerialNumberReadDto'
      required:
        - articleCombination
        - id
        - lineNumber
    ApiInventoryReadDto:
      type: object
      description: Inventory information for warehouse management
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        number:
          type: integer
          description: Unique serial number of the document header.
          example: 1001
        documentDate:
          type: string
          format: date
          description: Date of the document in ISO format (yyyy-MM-dd).
          example: '2024-08-07'
        quantityTotal:
          type: number
          description: Total quantity for all document lines.
          example: 200.5
        observations:
          type: string
          description: Free text field for any observations related to the document.
          example: Customer requested urgent delivery
        lines:
          type: array
          description: >-
            List of detail lines for the document. For structure see:
            ApiBaseLineReadDto.java
          items:
            $ref: '#/components/schemas/ApiInventoryLineReadDto'
        inventoriedDate:
          type: string
          format: date
          description: Date when the inventory was performed
          example: '2024-01-15'
        inventoried:
          type: boolean
          description: Flag indicating if the inventory has been completed
          example: true
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Warehouse information where the inventory is located
        valuationType:
          $ref: '#/components/schemas/ApiValuationTypeEnum'
          description: Type of valuation method used for inventory
          example: FIFO
      required:
        - documentDate
        - id
        - number
    ApiInventoryListReadDto:
      type: object
      description: Inventory list information for warehouse management
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        number:
          type: integer
          format: int32
          description: Inventory number
          example: INV-2024-001
        documentDate:
          type: string
          format: date
          description: Document date
          example: '2024-01-15'
        inventoriedDate:
          type: string
          format: date
          description: Date when the inventory was performed
          example: '2024-01-15'
        inventoried:
          type: boolean
          description: Flag indicating if the inventory has been completed
          example: true
        warehouse:
          type: string
          description: Warehouse name
          example: Main Warehouse
        observations:
          type: string
          description: Observations about the inventory
          example: Annual stock count
        valuationType:
          $ref: '#/components/schemas/ApiValuationTypeEnum'
          description: Type of valuation method used for inventory
          example: FIFO
      required:
        - id
    ApiPageDtoApiInventoryListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiInventoryListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiEntryListReadDto:
      type: object
      description: >-
        Basic information for listing accounting entries, including identifiers,
        dates, and amounts.
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: integer
          format: int32
          description: Unique identifier code of the entry
          example: 10123
        periodId:
          type: integer
          format: int32
          description: Identifier of the accounting period
          example: 2024
        entryDate:
          type: string
          format: date
          description: Date of the accounting entry
          example: '2024-05-15'
        debit:
          type: number
          description: Total debit amount of the entry
          example: 1500
        credit:
          type: number
          description: Total credit amount of the entry
          example: 1500
      required:
        - id
    ApiPageDtoApiEntryListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiEntryListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiDeliveryNoteListReadDto:
      type: object
      description: >-
        Delivery note list information with customer details, amounts, and
        shipping information
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        billingSeries:
          type: string
          description: Billing series code
          example: A
        number:
          type: integer
          format: int32
          description: Delivery note number
          example: 1001
        documentDate:
          type: string
          format: date
          description: Document date
          example: '2024-08-07'
        valueDate:
          type: string
          format: date
          description: Value date
          example: '2024-08-08'
        customerCode:
          type: string
          description: Customer code
          example: CUST001
        customerName:
          type: string
          description: Customer name
          example: ABC Company S.A.
        customerEmail:
          type: string
          description: Customer email address
          example: contact@abccompany.com
        customerAddressCode:
          type: string
          description: Customer address code
          example: ADDR001
        customerAddressName:
          type: string
          description: Customer address name
          example: Main Office
        address:
          type: string
          description: Street address
          example: 123
        city:
          type: string
          description: City
          example: Madrid
        country:
          type: string
          description: Country
          example: Spain
        state:
          type: string
          description: State or province
          example: Madrid
        quantityTotal:
          type: number
          description: Total quantity of items
          example: 25.5
        grossAmountTotal:
          type: number
          description: Total gross amount
          example: 1000
        discountsAmountTotal:
          type: number
          description: Total discount amount
          example: 100
        netAmountTotal:
          type: number
          description: Total net amount
          example: 900
        taxesAmountTotal:
          type: number
          description: Total tax amount
          example: 189
        disbursementAmountTotal:
          type: number
          description: Total disbursement amount
          example: 25.5
        total:
          type: number
          description: Total delivery note amount
          example: 1114.5
        agency:
          type: string
          description: Shipping agency
          example: Express Logistics
        shippingTerm:
          type: string
          description: Shipping terms
          example: FOB destination
        representative1Name:
          type: string
          description: Primary representative name
          example: John Smith
        orders:
          type: string
          description: Related order numbers
          example: ORD-2024-001, ORD-2024-002
        paymentMethodCode:
          type: string
          description: Payment method code
          example: BANK_TRANSFER
        paymentMethodDescription:
          type: string
          description: Payment method description
          example: Bank Transfer
        currencyCode:
          type: string
          description: Currency code
          example: EUR
        currencyNomenclature:
          type: string
          description: Currency nomenclature
          example: Euro
        change:
          type: number
          description: Exchange rate
          example: 1
        customerVatTypeDescription:
          type: string
          description: Customer VAT type description
          example: General VAT
        warehouseDescription:
          type: string
          description: Warehouse description
          example: Main Warehouse
        grossWeight:
          type: number
          description: Total gross weight
          example: 125.5
        netWeight:
          type: number
          description: Total net weight
          example: 120
        volume:
          type: number
          description: Total volume
          example: 2.35
        lineIds:
          type: array
          description: List of line identifiers
          example:
            - 1
            - 2
            - 3
          items:
            type: integer
            format: int32
        invoices:
          type: string
          description: Related invoice numbers
          example: INV-2024-001, INV-2024-002
        orderNumbers:
          type: string
          description: Related order numbers
          example: ORD-2024-001, ORD-2024-002
        tags:
          type: array
          description: Tags associated with the delivery note
          example:
            - urgent
            - fragile
          items:
            type: string
        invoiced:
          type: boolean
          description: Indicates if the delivery note has been invoiced
          example: false
        collectedAmount:
          type: number
          description: Amount collected
          example: 500
        collectedAmountCompanyCurrency:
          type: number
          description: Amount collected in company currency
          example: 500
        valued:
          type: boolean
          description: Indicates if the delivery note is valued
          example: true
        reference:
          type: string
          description: Reference number
          example: DN-2024-001
        salesAccountCode:
          type: string
          description: Sales account code
          example: 7000001
      required:
        - billingSeries
        - change
        - currencyCode
        - customerAddressCode
        - customerCode
        - documentDate
        - id
        - number
        - warehouseDescription
    ApiPageDtoApiDeliveryNoteListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiDeliveryNoteListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPageDtoApiCustomerListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiCustomerListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPageDtoApiCurrencyListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiCurrencyListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPageDtoApiCountryListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiCountryListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPageDtoApiReceiptCollectionListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiReceiptCollectionListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPageDtoApiBillingSeriesListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiPageDtoApiBankListReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiBankListReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiArticlePreviewReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        baseCombinationId:
          type: integer
          format: int32
          description: ID of the base combination
          example: 1234
        active:
          type: boolean
          description: Indicates if the article is active
          example: true
        code:
          type: string
          description: Code of the article
          example: ART123
        description:
          type: string
          description: Description of the article
          example: Red cotton shirt
        combinationCodes:
          type: array
          description: List of combination codes
          example:
            - COMBO-1
            - COMBO-2
          items:
            type: string
        salePrice:
          type: number
          description: Sale price of the article
          example: 29.99
        stockQuantity:
          type: number
          description: Stock quantity available
          example: 150
        creationDate:
          type: string
          format: date
          description: Date when the article was created
          example: '2025-01-15'
        inactiveDate:
          type: string
          format: date
          description: Date when the article became inactive
          example: '2025-12-31'
        ean:
          type: string
          description: EAN code of the article
          example: 8412345678901
        unitCode:
          type: string
          description: Unit code for measurement
          example: UN
        vatType:
          type: string
          description: Sale VAT type
          example: GENERAL
        purchaseVatType:
          type: string
          description: Purchase VAT type
          example: REDUCED
        supplierCommercialName:
          type: string
          description: Supplier commercial name
          example: Proveedor S.A.
        purchasePrice:
          type: number
          description: Purchase price of the article
          example: 15.5
        pendingDeliveryQuantity:
          type: number
          description: Pending delivery quantity
          example: 10
        pendingReceiptQuantity:
          type: number
          description: Pending receipt quantity
          example: 5
        purchasingAccountCode:
          type: string
          description: Purchasing account code
          example: 600000
        salesAccountCode:
          type: string
          description: Sales account code
          example: 700000
        tags:
          type: array
          description: List of tags associated with the article
          example:
            - NEW
            - OFFER
          items:
            type: string
        baseCombinationPictureUrl:
          type: string
          description: URL of the base combination picture
          example: https://example.com/image.jpg
        baseCombinationPictureToken:
          type: string
          description: Token of the base combination picture
          example: image.jpg
      required:
        - code
        - id
    ApiPageDtoApiArticlePreviewReadDto:
      type: object
      description: Paginated response wrapper for API data
      properties:
        data:
          type: array
          description: List of data items for the current page
          items:
            $ref: '#/components/schemas/ApiArticlePreviewReadDto'
        page:
          type: integer
          format: int32
          description: Current page number (0-based)
          example: 0
        total:
          type: integer
          format: int32
          description: Total number of items across all pages
          example: 150
        pages:
          type: integer
          format: int64
          description: Last page number (0-based)
          example: 14
        size:
          type: integer
          format: int32
          description: Number of items per page
          example: 10
      required:
        - data
        - page
        - pages
        - size
        - total
    ApiFieldTypeEnum:
      type: string
      enum:
        - STRING
        - INTEGER
        - BOOLEAN
        - DATETIME
        - DATE
        - TIME
        - DECIMAL
    ApiOptionWithValueDto:
      type: object
      description: Option configuration with its value and metadata
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the option
          example: 1
        name:
          type: string
          description: Name of the option
          example: theme
        type:
          $ref: '#/components/schemas/ApiFieldTypeEnum'
          description: Type of the option field
          example: STRING
        defaultValue:
          type: string
          description: Default value for the option
          example: light
        idCompanyOption:
          type: integer
          format: int32
          description: Company option identifier
          example: 5
        idUserParam:
          type: integer
          format: int32
          description: User parameter identifier
          example: 10
        value:
          type: string
          description: Current value of the option
          example: dark
    ApiOptionDto:
      type: object
      description: Configuration options for the application
      properties:
        optionsValues:
          type: object
          additionalProperties:
            type: object
          description: Map of option keys and their corresponding values
          example:
            theme: dark
            language: en
    ApiChartAccountBasicReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Code of the chart account
          example: 1000
        description:
          type: string
          description: Description of the chart account
          example: Cash account
      required:
        - id
    ApiCompanyInfoReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        code:
          type: string
          description: Unique code of the company.
          example: C100
        commercialName:
          type: string
          description: Commercial name of the company.
          example: Clavei
        cif:
          type: string
          description: Tax Identification Code (CIF) of the company.
          example: B12345678
        name:
          type: string
          description: Full legal name of the company.
          example: Clavei S.L.
        address:
          type: string
          description: Address of the company.
          example: Avda. Salamanca 7
        country:
          $ref: '#/components/schemas/ApiCountryListReadDto'
          description: Country details. See ApiCountryListReadDto.java
        state:
          $ref: '#/components/schemas/ApiStateListReadDto'
          description: State/Province details. See ApiStateListReadDto.java
        postalCode:
          type: string
          description: Postal code.
          example: '03203'
        city:
          type: string
          description: City where the company is located.
          example: Elche
        phone1:
          type: string
          description: Primary contact phone number.
          example: +34 966 610 442
        phone2:
          type: string
          description: Secondary contact phone number.
          example: +34 966 610 443
        email:
          type: string
          description: Contact email address.
          example: info@clavei.es
        website:
          type: string
          description: Company website.
          example: https://www.clavei.es
        commercialRegistry:
          type: string
          description: Company commercial registry information.
          example: Volume 1234, Sheet 56, Inscription 1
        observations:
          type: string
          description: Any additional observations about the company.
          example: Leading software provider in Alicante
        logo:
          type: string
          description: URL or file name for the company logo image.
          example: logo.png
        logoToken:
          type: string
          description: Token associated with the company logo.
          example: token-1a2b3c
        activeB2B:
          type: boolean
          description: Indicates whether B2B is active for the company.
          example: true
        backgroundImage:
          type: string
          description: URL or file name of the company background image.
          example: background.jpg
        backgroundImageToken:
          type: string
          description: Token for the background image.
          example: token-bg
        blockchainAccount:
          type: string
          description: Blockchain account of the company.
          example: '0x342acbd88491ca'
        blockchainPrivateKey:
          type: string
          description: Private key for the blockchain account.
          example: PRIVKEY123
        ropoCode:
          type: string
          description: ROPO code of the company.
          example: ROPOCODE456
        customerVatType:
          $ref: '#/components/schemas/ApiCustomerVatTypeListReadDto'
          description: VAT type for customers. See ApiCustomerVatTypeListReadDto.java
        paymentMethod:
          $ref: '#/components/schemas/ApiPaymentMethodListReadDto'
          description: Preferred payment method. See ApiPaymentMethodListReadDto.java
        unitType:
          $ref: '#/components/schemas/ApiUnitTypeListReadDto'
          description: Default unit type for the company. See ApiUnitTypeListReadDto.java
        warehouse:
          $ref: '#/components/schemas/ApiWarehouseListReadDto'
          description: Default warehouse for the company. See ApiWarehouseListReadDto.java
        rateCode:
          $ref: '#/components/schemas/ApiRateCodeListReadDto'
          description: Rate code information. See ApiRateCodeListReadDto.java
        salesAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Sales account information. See ApiChartAccountBasicReadDto.java
        purchasingAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Purchasing account information. See ApiChartAccountBasicReadDto.java
        bank:
          $ref: '#/components/schemas/ApiBankListReadDto'
          description: Bank information. See ApiBankListReadDto.java
        billingSeriesSale:
          $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
          description: Billing series for sales. See ApiBillingSeriesListReadDto.java
        billingSeriesSaleTicket:
          $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
          description: >-
            Billing series for sale tickets. See
            ApiBillingSeriesListReadDto.java
        billingSeriesPurchase:
          $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
          description: Billing series for purchases. See ApiBillingSeriesListReadDto.java
        billingSeriesPurchaseTicket:
          $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
          description: >-
            Billing series for purchase tickets. See
            ApiBillingSeriesListReadDto.java
        billingSeriesInvoiceDraft:
          $ref: '#/components/schemas/ApiBillingSeriesListReadDto'
          description: >-
            Billing series for invoice drafts. See
            ApiBillingSeriesListReadDto.java
        currency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: Default currency for the company. See ApiCurrencyListReadDto.java
        shippingTerm:
          $ref: '#/components/schemas/ApiShippingTermListReadDto'
          description: >-
            Default shipping term for the company. See
            ApiShippingTermListReadDto.java
        secondaryCurrency:
          $ref: '#/components/schemas/ApiCurrencyListReadDto'
          description: Secondary currency for the company. See ApiCurrencyListReadDto.java
        customersAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Chart account for customers.
          example: 430000
        suppliersAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Chart account for suppliers.
          example: 400000
        creditorVatAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Creditor VAT account.
          example: 477000
        debtorVatAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Debtor VAT account.
          example: 475000
        supInternalOpAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Supplier internal operations account.
          example: 600100
        supRecAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Supplier received account.
          example: 600200
        supAssetsAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Supplier assets account.
          example: 213000
        supServicesAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Supplier services account.
          example: 621000
        supImportsAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Supplier imports account.
          example: 600300
        supIrpfLeasesAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Supplier IRPF leases account.
          example: 622000
        supIrpfProfessionalAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Supplier IRPF professional services account.
          example: 623000
        supIrpfAgroAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Supplier IRPF agricultural account.
          example: 624000
        outInternalOpAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Outgoing internal operations account.
          example: 700100
        outRecAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Outgoing received account.
          example: 700200
        outAssetsAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Outgoing assets account.
          example: 213100
        outServicesAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Outgoing services account.
          example: 621100
        outImportsAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Outgoing imports account.
          example: 700300
        outReverseChargeAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Outgoing reverse charge account.
          example: 477100
        outWithholdingAccount:
          $ref: '#/components/schemas/ApiChartAccountBasicReadDto'
          description: Outgoing withholding account.
          example: 475100
        salesConcept:
          $ref: '#/components/schemas/ApiConceptListReadDto'
          description: Sales concept. See ApiConceptListReadDto.java
          example: SALE_GENERAL
        purchasingConcept:
          $ref: '#/components/schemas/ApiConceptListReadDto'
          description: Purchasing concept. See ApiConceptListReadDto.java
          example: PURCHASE_GENERAL
        igic:
          type: boolean
          description: Indicates if IGIC is applicable.
          example: false
        companyType:
          $ref: '#/components/schemas/ApiCompanyTypeEnum'
          description: Type of company. See ApiCompanyTypeEnum.java
          example: LIMITED
        ticketbaiTaxAuthority:
          $ref: '#/components/schemas/ApiTaxAuthorityEnum'
          description: Tax authority for TicketBAI. See TicketAuthorityEnum.java
          example: DIPUTACION_GIPUZKOA
        underEquivalenceSurchargeRegime:
          type: boolean
          description: Indicates if the company is under the equivalence surcharge regime.
          example: true
        numericFormatStyle:
          $ref: '#/components/schemas/ApiNumericFormatStyleEnum'
          description: Numeric format style. See ApiNumericFormatStyleEnum.java
          example: EUROPEAN
        ticketbaiActive:
          type: boolean
          description: Indicates if TicketBAI is active.
          example: true
        ticketbaiConditionDate:
          type: string
          format: date
          description: Date when TicketBAI condition starts.
          example: '2025-01-01'
        ticketbaiConditionName:
          type: string
          description: Name associated with TicketBAI condition.
          example: Clavei S.L.
        ticketbaiConditionVatId:
          type: string
          description: VAT ID associated with TicketBAI condition.
          example: B12345678
        ticketbaiConditionAddress:
          type: string
          description: Address associated with TicketBAI condition.
          example: Avda. Salamanca 7, Elche
        defaultInvoiceDescription:
          type: string
          description: Default description for invoices.
          example: Software development services
        ticketbaiTest:
          type: boolean
          description: Indicates if TicketBAI is in test mode.
          example: false
        vatOperationType:
          $ref: '#/components/schemas/ApiVatOperationTypeListReadDto'
          description: VAT operation type. See ApiVatOperationTypeListReadDto.java
          example: GENERAL
        verifactuActive:
          type: boolean
          description: Indicates if Verifactu is active.
          example: true
        verifactuTest:
          type: boolean
          description: Indicates if Verifactu is in test mode.
          example: false
        verifactuStartDate:
          type: string
          format: date
          description: Start date for Verifactu.
          example: '2025-06-01'
        verifactuEndDate:
          type: string
          format: date
          description: End date for Verifactu.
          example: '2025-12-31'
        receiptConcept:
          $ref: '#/components/schemas/ApiConceptListReadDto'
          description: Concept for receipts. See ApiConceptListReadDto.java
          example: RECEIPT_GENERAL
        purchaseReceiptConcept:
          $ref: '#/components/schemas/ApiConceptListReadDto'
          description: Concept for purchase receipts. See ApiConceptListReadDto.java
          example: PURCHASE_RECEIPT
        modeVerifactu:
          type: boolean
          description: Indicates if Verifactu is in special mode.
          example: false
        verifactuExemptCause:
          $ref: '#/components/schemas/ApiVerifactuExemptCauseEnum'
          description: Exempt cause for Verifactu. See ApiVerifactuExemptCauseEnum.java
          example: NON_OBLIGATED
        verifactuExemptDate:
          type: string
          format: date
          description: Date of Verifactu exemption.
          example: '2025-07-01'
        openingConcept:
          $ref: '#/components/schemas/ApiConceptListReadDto'
          description: Concept for opening operations. See ApiConceptListReadDto.java
          example: OPENING
        closingConcept:
          $ref: '#/components/schemas/ApiConceptListReadDto'
          description: Concept for closing operations. See ApiConceptListReadDto.java
          example: CLOSING
        operatingClosingConcept:
          $ref: '#/components/schemas/ApiConceptListReadDto'
          description: >-
            Concept for operating closing operations. See
            ApiConceptListReadDto.java
          example: OPERATING_CLOSING
      required:
        - code
        - commercialName
        - country
        - id
        - name
    ApiCompanyReadDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of the entity
          example: 1
        name:
          type: string
          description: Company name.
          example: CLAVEi
        cif:
          type: string
          description: Company tax identification code.
          example: B12345678
        emailAddress:
          type: string
          description: Main company email address.
          example: info@clavei.es
        emailHost:
          type: string
          description: SMTP email host.
          example: smtp.clavei.es
        emailPort:
          type: integer
          format: int32
          description: SMTP email server port.
          example: 587
        emailUsername:
          type: string
          description: SMTP username for outgoing email.
          example: user@clavei.es
        emailPasswordKey:
          type: string
          description: Encrypted key for the email password.
          example: ENCRYPTED_KEY_123
        emailReplyToAddress:
          type: string
          description: Reply-to email address used in communications.
          example: support@clavei.es
        emailSignature:
          type: string
          description: Email signature in HTML or plain text.
        emailEnableTls:
          type: boolean
          description: If true, TLS is enabled for outgoing emails.
          example: true
        createdBy:
          type: string
          description: User who created the record.
          example: admin
        modifiedBy:
          type: string
          description: User who last modified the record.
          example: johndoe
        createdOn:
          type: string
          format: date-time
          description: 'Timestamp when the record was created. Format: yyyy-MM-dd''T''HH:mm:ss'
          example: '2024-01-03T08:15:45'
        modifiedOn:
          type: string
          format: date-time
          description: >-
            Timestamp when the record was last modified. Format:
            yyyy-MM-dd'T'HH:mm:ss
          example: '2024-08-07T17:35:00'
        additionalInfo:
          $ref: '#/components/schemas/ApiCompanyInfoReadDto'
          description: >-
            Additional information of the company. See
            ApiCompanyInfoReadDto.java for structure.
        posModuleActive:
          type: boolean
          description: Indicates if the POS module is active for the company.
          example: true
        posModuleTrial:
          type: boolean
          description: Indicates if the POS module is in trial mode for the company.
          example: false
      required:
        - id
    ApiCompanyTypeEnum:
      type: string
      description: Defines the types of companies.
      enum:
        - LEGAL_PERSON
        - NATURAL_PERSON
      example: LEGAL_PERSON
    ApiNumericFormatStyleEnum:
      type: string
      description: Defines numeric format styles.
      enum:
        - US_WITH_GROUPING
        - EU_WITH_GROUPING
        - US_NO_GROUPING
        - EU_NO_GROUPING
      example: US_WITH_GROUPING
    ApiTaxAuthorityEnum:
      type: string
      description: Defines the tax authorities.
      enum:
        - ALAVA
        - VIZCAYA
        - GUIPUZCOA
      example: ALAVA
    ApiVerifactuExemptCauseEnum:
      type: string
      description: Defines the Verifactu exempt causes.
      enum:
        - SII
        - TICKETBAI
        - OUTSIDE_SPAIN
        - NAVARRA
        - NOT_APPLICABLE
        - OTHER
        - TRANSITORY
      example: SII
