> ## 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 cobrança

> Calcula as cobranças de billing para um período informado. Avalia todos os pacotes de billing ativos que correspondem ao tipo especificado e retorna payloads de transação prontos para o Midaz. Tudo ou nada — se algum pacote falhar, nenhum resultado é retornado.



## OpenAPI

````yaml pt/openapi/v3-current/fees-engine.yaml post /v1/billing/calculate
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/billing/calculate:
    post:
      tags:
        - Billing Calculation API
      summary: Calcular billing
      description: >-
        Calcula as cobranças de billing para um período informado. Avalia todos
        os pacotes de billing ativos que correspondem ao tipo especificado e
        retorna payloads de transação prontos para o Midaz. Tudo ou nada — se
        algum pacote falhar, nenhum resultado é retornado.
      parameters:
        - $ref: '#/components/parameters/XOrganizationId'
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/ContentType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CalculateBillingRequest'
            examples:
              volumeMonthly:
                summary: Billing mensal por volume
                value:
                  ledgerId: ldg_01HZ...
                  period: 2026-03
                  type: volume
              maintenanceWeekly:
                summary: Billing semanal de manutenção
                value:
                  ledgerId: ldg_01HZ...
                  period: 2026-W13
                  type: maintenance
              bothTypes:
                summary: Calcular todos os tipos de billing
                value:
                  ledgerId: ldg_01HZ...
                  period: 2026-03
      responses:
        '200':
          description: Resultados do cálculo de billing com payloads de transação.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalculateBillingResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Error0019:
                  $ref: '#/components/examples/Error0019'
                Error0020:
                  $ref: '#/components/examples/Error0020'
                Error0041:
                  $ref: '#/components/examples/Error0041'
                Error0053:
                  $ref: '#/components/examples/Error0053'
                Error0063:
                  $ref: '#/components/examples/Error0063'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Error0059:
                  $ref: '#/components/examples/Error0059'
                Error0061:
                  $ref: '#/components/examples/Error0061'
        '422':
          description: >-
            Não processável — o cálculo falhou devido a problemas de dependência
            ou dados.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Error0060:
                  $ref: '#/components/examples/Error0060'
                Error0062:
                  $ref: '#/components/examples/Error0062'
                Error0068:
                  $ref: '#/components/examples/Error0068'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Error0004:
                  $ref: '#/components/examples/Error0004'
      security: []
components:
  parameters:
    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
    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
  schemas:
    CalculateBillingRequest:
      type: object
      properties:
        ledgerId:
          type: string
          description: Identificador único do Ledger para calcular o billing.
        period:
          type: string
          description: >-
            Período de billing. Formatos suportados: `YYYY-MM` (mensal),
            `YYYY-Www` (semanal, ex. `2026-W13`), ou `YYYY-MM-DD` (diário).
        type:
          type: string
          enum:
            - volume
            - maintenance
          description: >-
            Filtrar por tipo de billing. Quando omitido, tanto pacotes de volume
            quanto de manutenção são calculados.
      required:
        - ledgerId
        - period
    CalculateBillingResponse:
      type: object
      properties:
        results:
          type: array
          description: Um resultado por cada pacote de billing ativo processado.
          items:
            type: object
            properties:
              billingPackageId:
                type: string
                description: ID do pacote de billing que gerou este resultado.
              billingPackageLabel:
                type: string
                description: Rótulo do pacote de billing.
              billingType:
                type: string
                enum:
                  - volume
                  - maintenance
                description: Tipo do pacote de billing.
              period:
                type: string
                description: Período de billing usado para este cálculo.
              totalAccounts:
                type: integer
                description: Número total de contas avaliadas.
              totalCharged:
                type: integer
                description: Número de contas cobradas.
              totalSkipped:
                type: integer
                description: Número de contas ignoradas (ex., cota gratuita esgotada).
              totalNetAmount:
                type: string
                description: Valor líquido cobrado após descontos. String decimal.
              transactionPayload:
                type: object
                description: >-
                  Payload de transação pronto para envio ao Midaz via POST
                  /transactions/json. Inclui metadados de auditoria
                  (billingPackageId, billingPeriod, detalhes de preços) no campo
                  metadata.
        summary:
          type: object
          description: Totais consolidados de todos os resultados.
          properties:
            totalResults:
              type: integer
              description: Número de pacotes de billing processados.
            totalVolume:
              type: integer
              description: Número de resultados de volume.
            totalMaintenance:
              type: integer
              description: Número de resultados de manutenção.
            totalNetAmount:
              type: string
              description: Valor líquido total de todos os resultados. String decimal.
    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.
  examples:
    Error0019:
      summary: Invalid header parameter
      value:
        code: FEE-0019
        title: Invalid header parameter
        message: >-
          One or more headers parameters are in an incorrect format. Please
          check the following parameters and ensure they meet the required
          format before trying again.
    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.
    Error0041:
      summary: Unmarshalling error
      value:
        code: FEE-0041
        title: Unmarshalling error
        message: 'Invalid value for field ''%s'': expected type ''%s'', but got ''%s''.'
    Error0053:
      summary: Invalid billing type
      value:
        code: FEE-0053
        title: Invalid billing type
        message: The type field must be `volume` or `maintenance`.
    Error0063:
      summary: Invalid period format
      value:
        code: FEE-0063
        title: Invalid period format
        message: >-
          The period field must follow the format YYYY-MM (monthly), YYYY-Www
          (weekly), or YYYY-MM-DD (daily).
    Error0059:
      summary: Target account not found
      value:
        code: FEE-0059
        title: Target account not found
        message: >-
          One or more accounts referenced in accountTarget could not be found in
          Midaz.
    Error0061:
      summary: No active billing packages
      value:
        code: FEE-0061
        title: No active billing packages
        message: No active billing packages were found for the given ledger and period.
    Error0060:
      summary: Billing calculation failed
      value:
        code: FEE-0060
        title: Billing calculation failed
        message: >-
          An internal error occurred while calculating billing for the given
          period.
    Error0062:
      summary: Segment resolution failed
      value:
        code: FEE-0062
        title: Segment resolution failed
        message: >-
          The system could not resolve the segment referenced in waivedAccounts.
          Verify the segment ID and Midaz connectivity.
    Error0068:
      summary: Midaz query failed
      value:
        code: FEE-0068
        title: Midaz query failed
        message: The system could not query Midaz. Verify connectivity and permissions.
    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.

````