> ## 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 Taxas de um Pacote

> Use este endpoint para calcular e recuperar as taxas associadas a um pacote específico para uma determinada transação.



## OpenAPI

````yaml pt/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:
        - Calculation API
      summary: Calcular Taxas de um Pacote
      description: >-
        Use este endpoint para calcular e recuperar as taxas associadas a um
        pacote específico para uma determinada transação.
      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: Fee test
                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 o recurso foi criado com sucesso e a operação foi
            concluída conforme esperado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalculateResponse'
              examples:
                fullCalculation:
                  summary: Cálculo completo com taxas
                  value:
                    segmentId: 019c96a0-0b4e-7079-8be0-ab6bdccf975f
                    ledgerId: 019c96a0-0ac0-7de9-9f53-9cf842a2ee5a
                    transaction:
                      route: 019c96a0-10a0-72d2-9fb0-2b7de8093182
                      pending: false
                      description: Fee Example
                      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: >-
        O token de autorização no formato 'Bearer <token>'.


        **Importante:** Este header é obrigatório se o seu ambiente possui o
        Access Manager habilitado. Para mais informações, consulte a
        documentação do [Access Manager](/pt/access-manager).
      required: false
      schema:
        type: string
    ContentType:
      name: Content-Type
      in: header
      description: O tipo de mídia do recurso. Deve ser `application/json`.
      required: true
      schema:
        type: string
        example: application/json
    XOrganizationId:
      name: X-Organization-Id
      in: header
      description: O identificador único da Organização associada à requisição.
      required: true
      schema:
        type: string
        example: 019c96a0-0a98-7287-9a31-786e0809c769
  schemas:
    CreateCalculationRequest:
      type: object
      properties:
        segmentId:
          type: string
          description: >-
            Identificador único do Segmento ao qual este Pacote de Taxas está
            vinculado no Midaz Ledger.
        ledgerId:
          type: string
          description: >-
            Identificador único do Ledger ao qual este Pacote de Taxas está
            vinculado no Midaz Ledger.
        transaction:
          $ref: '#/components/schemas/Transactions'
      required:
        - ledgerId
    CalculateResponse:
      type: object
      description: >-
        Resultado do cálculo de taxas. Contém os identificadores do Ledger e do
        Segmento junto com a transação enriquecida com as taxas calculadas.
      properties:
        segmentId:
          type: string
          description: >-
            Identificador único do Segmento ao qual este Pacote de Taxas está
            vinculado no Midaz Ledger.
        ledgerId:
          type: string
          description: >-
            Identificador único do Ledger ao qual este Pacote de Taxas está
            vinculado no Midaz Ledger.
        transaction:
          $ref: '#/components/schemas/Transactions'
      required:
        - ledgerId
        - transaction
    Error:
      type: object
      properties:
        code:
          type: string
          description: Um identificador único e estável para o erro.
        title:
          type: string
          description: Um resumo breve do problema.
        message:
          type: string
          description: Orientação detalhada para resolver o erro.
      required:
        - code
        - title
        - message
      description: A mensagem de erro da resposta.
    Transactions:
      type: object
      description: Informações sobre a transação à qual a taxa se aplica.
      properties:
        chartOfAccountsGroupName:
          type: string
          description: >-
            O nome do grupo do plano de contas que categoriza esta transação sob
            um grupo específico.
        route:
          type: string
          description: >-
            A rota contábil principal da transação, representando a natureza e o
            propósito geral do evento transacional. Utilizada para categorizar e
            agrupar operações relacionadas no livro razão. Mesma informação do
            campo `transactionRoute` no pacote.
        transactionRoute:
          type: string
          description: >-
            Campo alternativo para `route`. A rota contábil principal da
            transação. Pode ser utilizado `route` ou `transactionRoute`.
        pending:
          type: boolean
          description: Indica se a transação está pendente.
        description:
          type: string
          description: Uma descrição para a transação.
        metadata:
          type: object
          description: >-
            Um objeto contendo pares chave-valor para adicionar como metadados,
            onde o campo `name` é a chave e o campo `value` é o valor. Por
            exemplo, para adicionar um Centro de Custo, use `costCenter:
            BR_11101997`.
          additionalProperties:
            type: string
        send:
          type: object
          description: Informações sobre a transação que será enviada.
          properties:
            asset:
              type: string
              description: O código que identifica o ativo que será enviado.
            value:
              type: string
              description: >-
                O valor que será enviado. **Importante:** Use ponto (`.`) como
                separador decimal — vírgulas não são aceitas.
            source:
              type: object
              properties:
                from:
                  type: array
                  items:
                    $ref: '#/components/schemas/Operations'
                remaining:
                  type: string
                  description: >-
                    O valor ou porcentagem restante que será distribuído entre
                    as contas de origem. **Importante:** Use ponto (`.`) como
                    separador decimal — vírgulas não são aceitas.
              description: >-
                A lista de contas que serão utilizadas como origem (operações de
                DÉBITO).
              required:
                - from
            distribute:
              type: object
              properties:
                to:
                  type: array
                  items:
                    $ref: '#/components/schemas/Operations'
                remaining:
                  type: string
                  description: >-
                    O valor ou porcentagem restante que será distribuído entre
                    as contas de destino. **Importante:** Use ponto (`.`) como
                    separador decimal — vírgulas não são aceitas.
              description: Uma lista das contas para as quais o valor será transferido.
              required:
                - to
          required:
            - asset
            - value
            - source
            - distribute
      required:
        - route
        - send
    Operations:
      type: object
      properties:
        accountAlias:
          type: string
          description: O alias da conta utilizada na operação.
        amount:
          type: object
          properties:
            asset:
              type: string
              description: O nome do ativo utilizado na operação.
            value:
              type: string
              description: >-
                O valor que será enviado. **Importante:** Use ponto (`.`) como
                separador decimal — vírgulas não são aceitas.
          required:
            - asset
            - value
          description: Informações sobre o valor que será utilizado na operação.
        share:
          type: object
          properties:
            percentage:
              type: string
              description: A porcentagem que será compartilhada.
            percentageOfPercentage:
              type: string
              description: A porcentagem da porcentagem que será compartilhada.
            route:
              type: string
              description: >-
                A rota contábil principal que define a natureza da transação.
                Ajuda a agrupar operações relacionadas no ledger.
            metadata:
              type: object
              description: >-
                Um objeto contendo pares chave-valor para adicionar como
                metadados, onde o campo `name` é a chave e o campo `value` é o
                valor. Por exemplo, para adicionar um Centro de Custo, use
                `costCenter: BR_11101997`.
              additionalProperties:
                type: string
          description: >-
            Se diferentes contas fazem parte da operação, este objeto conterá as
            informações sobre a porcentagem utilizada para cada conta.
          required: null
        remaining:
          type: string
          description: >-
            O valor ou porcentagem restante que será enviado para uma conta.
            **Importante:** Use ponto (`.`) como separador decimal — vírgulas
            não são aceitas.
        rate:
          type: object
          description: >-
            Informações de taxa para a operação (utilizado para conversões de
            moeda ou operações baseadas em taxa).
        description:
          type: string
          description: Uma descrição para a operação.
        route:
          type: string
          description: >-
            A rota contábil principal que define a natureza da transação. Ajuda
            a agrupar operações relacionadas no ledger.
        metadata:
          type: object
          description: >-
            Um objeto contendo pares chave-valor para adicionar como metadados,
            onde o campo `name` é a chave e o campo `value` é o valor. Por
            exemplo, para adicionar um Centro de Custo, use `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.

````