> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Calcular tarifas para un paquete

> Utiliza este endpoint para calcular y obtener las tarifas asociadas a un paquete específico para una transacción determinada.



## OpenAPI

````yaml es/openapi/v3-current/fees-engine.yaml post /v1/fees
openapi: 3.1.0
info:
  title: Fees Engine
  description: ''
  version: 3.3.0
servers:
  - url: https://fees.sandbox.lerian.net
security: []
tags:
  - name: Fees Engine
paths:
  /v1/fees:
    post:
      tags:
        - API de cálculo
      summary: Calcular tarifas para un paquete
      description: >-
        Utiliza este endpoint para calcular y obtener las tarifas asociadas a un
        paquete específico para una transacción determinada.
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/ContentType'
        - $ref: '#/components/parameters/XOrganizationId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCalculationRequest'
            example:
              segmentId: 019c96a0-0b4e-7079-8be0-ab6bdccf975f
              ledgerId: 019c96a0-0ac0-7de9-9f53-9cf842a2ee5a
              transaction:
                route: 019c96a0-10a0-72d2-9fb0-2b7de8093182
                description: Prueba de tarifas
                pending: false
                send:
                  asset: BRL
                  value: '4000.00'
                  source:
                    from:
                      - accountAlias: customer-brl-1
                        share:
                          percentage: '15'
                      - accountAlias: customer-brl-2
                        share:
                          percentage: '35'
                      - accountAlias: customer-brl-3
                        share:
                          percentage: '40'
                      - accountAlias: customer-brl-4
                        share:
                          percentage: '10'
                  distribute:
                    to:
                      - accountAlias: business-brl-1
                        share:
                          percentage: '25'
                      - accountAlias: business-brl-2
                        share:
                          percentage: '25'
                      - accountAlias: business-brl-3
                        share:
                          percentage: '25'
                      - accountAlias: business-brl-4
                        share:
                          percentage: '25'
      responses:
        '200':
          description: >-
            Indica que el recurso se creó correctamente y que la operación se
            completó según lo esperado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalculateResponse'
              examples:
                fullCalculation:
                  summary: Cálculo completo con tarifas
                  value:
                    segmentId: 019c96a0-0b4e-7079-8be0-ab6bdccf975f
                    ledgerId: 019c96a0-0ac0-7de9-9f53-9cf842a2ee5a
                    transaction:
                      route: 019c96a0-10a0-72d2-9fb0-2b7de8093182
                      pending: false
                      description: Ejemplo de tarifa
                      metadata:
                        packageAppliedID: 01962565-8d57-737b-abfa-84c3a15eeb15
                      send:
                        asset: BRL
                        value: '4175.00'
                        source:
                          from:
                            - accountAlias: customer-brl-1
                              amount:
                                asset: BRL
                                value: '1000.00'
                              route: pixdebit
                              metadata: null
                            - accountAlias: customer-brl-2
                              amount:
                                asset: BRL
                                value: '1000.00'
                              route: pixdebit
                              metadata: null
                            - accountAlias: customer-brl-3
                              amount:
                                asset: BRL
                                value: '1000.00'
                              route: pixdebit
                              metadata: null
                            - accountAlias: customer-brl-4
                              amount:
                                asset: BRL
                                value: '1175.00'
                              route: pixdebit
                              metadata: null
                        distribute:
                          to:
                            - accountAlias: business-brl-1
                              amount:
                                asset: BRL
                                value: '4175.00'
                              route: pixcredit
                              metadata: null
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Error0001:
                  $ref: '#/components/examples/Error0001'
                Error0002:
                  $ref: '#/components/examples/Error0002'
                Error0003:
                  $ref: '#/components/examples/Error0003'
                Error0012:
                  $ref: '#/components/examples/Error0012'
                Error0020:
                  $ref: '#/components/examples/Error0020'
                Error0022:
                  $ref: '#/components/examples/Error0022'
                Error0037:
                  $ref: '#/components/examples/Error0037'
                Error0041:
                  $ref: '#/components/examples/Error0041'
          headers: {}
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Error0004:
                  $ref: '#/components/examples/Error0004'
          headers: {}
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Error0021:
                  $ref: '#/components/examples/Error0021'
          headers: {}
      security: []
components:
  parameters:
    Authorization:
      name: Authorization
      in: header
      description: >-
        El token de autorización en formato 'Bearer <token>'.


        **Importante:** Este encabezado es obligatorio si su entorno tiene
        habilitado Access Manager. Para obtener más información, consulte la
        documentación de [Access Manager](/es/access-manager).
      required: false
      schema:
        type: string
    ContentType:
      name: Content-Type
      in: header
      description: Tipo de medio del recurso. Debe ser `application/json`.
      required: true
      schema:
        type: string
        example: application/json
    XOrganizationId:
      name: X-Organization-Id
      in: header
      description: Identificador único de la organización asociada a la solicitud.
      required: true
      schema:
        type: string
        example: 019c96a0-0a98-7287-9a31-786e0809c769
  schemas:
    CreateCalculationRequest:
      type: object
      properties:
        segmentId:
          type: string
          description: >-
            Identificador único del segmento al que está vinculado este paquete
            de tarifas en el _Ledger_ de Midaz.
        ledgerId:
          type: string
          description: >-
            Identificador único del _Ledger_ al que está vinculado este paquete
            de tarifas en el _Ledger_ de Midaz.
        transaction:
          $ref: '#/components/schemas/Transactions'
      required:
        - ledgerId
    CalculateResponse:
      type: object
      description: >-
        Resultado del cálculo de tarifas. Contiene los identificadores del
        _Ledger_ y del segmento junto con la transacción enriquecida con las
        tarifas calculadas.
      properties:
        segmentId:
          type: string
          description: >-
            Identificador único del segmento al que está vinculado este paquete
            de tarifas en el _Ledger_ de Midaz.
        ledgerId:
          type: string
          description: >-
            Identificador único del _Ledger_ al que está vinculado este paquete
            de tarifas en el _Ledger_ de Midaz.
        transaction:
          $ref: '#/components/schemas/Transactions'
      required:
        - ledgerId
        - transaction
    Error:
      type: object
      properties:
        code:
          type: string
          description: Identificador único y estable del error.
        title:
          type: string
          description: Resumen breve del problema.
        message:
          type: string
          description: Orientación detallada para resolver el error.
      required:
        - code
        - title
        - message
      description: Mensaje de error devuelto en la respuesta.
    Transactions:
      type: object
      description: Información sobre la transacción a la que se aplica la tarifa.
      properties:
        chartOfAccountsGroupName:
          type: string
          description: >-
            Nombre del grupo del plan de cuentas que categoriza esta transacción
            dentro de un grupo específico.
        route:
          type: string
          description: >-
            Ruta contable principal de la transacción, que representa la
            naturaleza y el propósito general del evento transaccional. Se
            utiliza para categorizar y agrupar operaciones relacionadas en el
            libro mayor. Misma información que el campo `transactionRoute` en el
            paquete.
        transactionRoute:
          type: string
          description: >-
            Campo alternativo para `route`. La ruta contable principal de la
            transacción. Se puede usar `route` o `transactionRoute`.
        pending:
          type: boolean
          description: Indica si la transacción está pendiente.
        description:
          type: string
          description: Descripción de la transacción.
        metadata:
          type: object
          description: >-
            Objeto que contiene pares clave-valor para agregar como metadatos,
            donde el campo `name` es la clave y el campo `value` es el valor.
            Por ejemplo, para añadir un centro de costos, usa `costCenter:
            BR_11101997`.
          additionalProperties:
            type: string
        send:
          type: object
          description: Información sobre la transacción que se enviará.
          properties:
            asset:
              type: string
              description: Código que identifica el activo que se enviará.
            value:
              type: string
              description: >-
                Monto que se enviará. **Importante:** usa un punto (`.`) como
                separador decimal; las comas no se aceptan.
            source:
              type: object
              properties:
                from:
                  type: array
                  items:
                    $ref: '#/components/schemas/Operations'
                remaining:
                  type: string
                  description: >-
                    Monto o porcentaje restante que se distribuirá entre las
                    cuentas de origen. **Importante:** usa un punto (`.`) como
                    separador decimal; las comas no se aceptan.
              description: >-
                Lista de cuentas que se utilizarán como origen (operaciones de
                DÉBITO).
              required:
                - from
            distribute:
              type: object
              properties:
                to:
                  type: array
                  items:
                    $ref: '#/components/schemas/Operations'
                remaining:
                  type: string
                  description: >-
                    Monto o porcentaje restante que se distribuirá entre las
                    cuentas de destino. **Importante:** usa un punto (`.`) como
                    separador decimal; las comas no se aceptan.
              description: Lista de las cuentas a las que se transferirá el monto.
              required:
                - to
          required:
            - asset
            - value
            - source
            - distribute
      required:
        - route
        - send
    Operations:
      type: object
      properties:
        accountAlias:
          type: string
          description: Alias de la cuenta utilizada en la operación.
        amount:
          type: object
          properties:
            asset:
              type: string
              description: Nombre del activo utilizado en la operación.
            value:
              type: string
              description: >-
                Monto que se enviará. **Importante:** usa un punto (`.`) como
                separador decimal; las comas no se aceptan.
          required:
            - asset
            - value
          description: Información sobre el monto que se utilizará en la operación.
        share:
          type: object
          properties:
            percentage:
              type: string
              description: Porcentaje que se compartirá.
            percentageOfPercentage:
              type: string
              description: Porcentaje del porcentaje que se compartirá.
            route:
              type: string
              description: >-
                La ruta contable principal que define la naturaleza de la
                transacción. Ayuda a agrupar operaciones relacionadas en el
                _Ledger_.
            metadata:
              type: object
              description: >-
                Objeto que contiene pares clave-valor para agregar como
                metadatos, donde el campo `name` es la clave y el campo `value`
                es el valor. Por ejemplo, para añadir un centro de costos, usa
                `costCenter: BR_11101997`.
              additionalProperties:
                type: string
          description: >-
            Si en la operación intervienen distintas cuentas, este objeto
            contendrá la información sobre el porcentaje utilizado para cada
            una.
          required: null
        remaining:
          type: string
          description: >-
            El monto o porcentaje restante que se enviará a una cuenta.
            **Importante:** usa un punto (`.`) como separador decimal; las comas
            no se aceptan.
        rate:
          type: object
          description: >-
            Información de tasa para la operación (usada para conversiones de
            moneda u operaciones basadas en tasas).
        description:
          type: string
          description: Descripción de la operación.
        route:
          type: string
          description: >-
            La ruta contable principal que define la naturaleza de la
            transacción. Ayuda a agrupar operaciones relacionadas en el
            _Ledger_.
        metadata:
          type: object
          description: >-
            Objeto que contiene pares clave-valor para agregar como metadatos,
            donde el campo `name` es la clave y el campo `value` es el valor.
            Por ejemplo, para añadir un centro de costos, usa `costCenter:
            BR_11101997`.
          additionalProperties:
            type: string
      required:
        - accountAlias
  examples:
    Error0001:
      summary: Unexpected fields in the request
      value:
        code: FEE-0001
        title: Unexpected fields in the request
        message: >-
          The request body contains more fields than expected. Please send only
          the allowed fields as per the documentation. The unexpected fields are
          listed in the fields object.
    Error0002:
      summary: Missing fields in request
      value:
        code: FEE-0002
        title: Missing fields in request
        message: >-
          Your request is missing one or more required fields. Please refer to
          the documentation to ensure all necessary fields are included in your
          request.
    Error0003:
      summary: Bad request
      value:
        code: FEE-0003
        title: Bad request
        message: >-
          The server could not understand the request due to malformed syntax.
          Please check the listed fields and try again.
    Error0012:
      summary: Entity not found
      value:
        code: FEE-0012
        title: Entity not found
        message: >-
          No entity was found for the given ID. Please make sure to use the
          correct ID for the entity you are trying to manage.
    Error0020:
      summary: Missing header
      value:
        code: FEE-0020
        title: Missing header
        message: >-
          Headers parameters is required. Please check the following header
          parameters %v and ensure they are passing the values correctly.
    Error0022:
      summary: Failed to calculate fee
      value:
        code: FEE-0022
        title: Failed to calculate fee
        message: Error to make the calculation of a fee about a transaction.
    Error0037:
      summary: Error to distribute values
      value:
        code: FEE-0037
        title: Error to distribute values
        message: >-
          Error to try distribute the values of send object. Please check the
          data passed.
    Error0041:
      summary: Unmarshalling error
      value:
        code: FEE-0041
        title: Unmarshalling error
        message: 'Invalid value for field ''%s'': expected type ''%s'', but got ''%s''.'
    Error0004:
      summary: Internal Server Error
      value:
        code: FEE-0004
        title: Internal Server Error
        message: >-
          The server encountered an unexpected error. Please try again later or
          contact support.
    Error0021:
      summary: Invalid transaction type
      value:
        code: FEE-0021
        title: Invalid transaction type
        message: >-
          Only one transaction type ('amount', 'share', or 'remaining') must be
          specified in the '%v' field for each entry. Please review your input
          and try again.

````