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

# Calcula a correção de aluguel em atraso

> Corrige as parcelas em atraso de um contrato de locação: aplica índices de correção monetária e juros por período (incluindo a Taxa Legal da Lei 14.905/2024 via `name: "Taxa legal"` e juros de poupança via `apply_index: true`), soma multa e honorários e devolve o cronograma detalhado por parcela.

`installments` precisa de **pelo menos um** item. Pagamentos são marcados via `paid: true` (parcela quitada) ou `paid: "P"` com valores em `partial_payments` (pagamentos parciais).



## OpenAPI

````yaml /openapi/legado.json post /api/calculadoras/aluguel
openapi: 3.0.0
info:
  title: Calculadoras Jusfy API
  description: >-
    Rotas sem versão (`/api/...`). Continuam funcionando, mas a versão atual

    da API é a v1 (`/api/v1`): para integrações novas, use a v1 e siga o [guia
    de
    migração](https://api.jusfy.dev/calculators/api/reference/fundamentos/migracao-do-legado).


    A política de versionamento e depreciação está na [política de
    versionamento](https://api.jusfy.dev/calculators/api/reference/fundamentos/migracao-do-legado#pol%C3%ADtica-de-versionamento).
  version: legacy
  contact: {}
servers:
  - url: https://api.jusfy.dev/calculators
security: []
tags:
  - name: Calculadoras
    description: >-
      Execução das calculadoras jurídicas e consulta dos índices de correção.
      Cada cálculo recebe um payload, retorna o resultado processado e exige API
      key no header `x-api-key`.
  - name: Consultas
    description: >-
      Consultas de dados (veículos, condutores e documentos). Cada consulta
      recebe o documento, retorna os dados encontrados e exige API key no header
      `x-api-key`. A maioria responde na mesma requisição; o **rastreamento
      veicular** e o **buscador processual** são assíncronos — devolvem `202`
      com um protocolo e entregam o resultado por webhook e/ou pelo `GET` do
      protocolo.
  - name: JusScore
    description: >-
      Consulta de processos judiciais por CPF/CNPJ, com score de risco
      consolidado e a lista detalhada dos processos. É assíncrona: o POST inicia
      a consulta e o GET devolve o resultado quando pronto. Exige API key no
      header `x-api-key`.
  - name: Consumo
    description: >-
      Consumo da própria API key: quantas chamadas cada produto recebeu num
      período, separando as cobradas das não cobradas. Não exige escopo; exige
      API key no header `x-api-key`.
  - name: Health
    description: >-
      Verificações de disponibilidade do serviço (liveness e readiness). Rotas
      abertas, sem autenticação.
paths:
  /api/calculadoras/aluguel:
    post:
      tags:
        - Calculadoras
      summary: Calcula a correção de aluguel em atraso
      description: >-
        Corrige as parcelas em atraso de um contrato de locação: aplica índices
        de correção monetária e juros por período (incluindo a Taxa Legal da Lei
        14.905/2024 via `name: "Taxa legal"` e juros de poupança via
        `apply_index: true`), soma multa e honorários e devolve o cronograma
        detalhado por parcela.


        `installments` precisa de **pelo menos um** item. Pagamentos são
        marcados via `paid: true` (parcela quitada) ou `paid: "P"` com valores
        em `partial_payments` (pagamentos parciais).
      operationId: CalculatorsController_aluguel[0]
      parameters: []
      requestBody:
        required: true
        description: Payload da calculadora de aluguel.
        content:
          application/json:
            schema:
              type: object
              description: >-
                Payload da correção de aluguel em atraso. Informe o contrato
                (valor inicial, data de início), as parcelas em débito, os
                índices de correção e as regras de juros; a resposta traz o
                resumo com valores atualizados, multa, honorários e o cronograma
                detalhado por parcela.
              required:
                - calculation_date
                - monthly_amount
                - contract_start_date
                - fine
                - fine_interests
                - legal_fees
                - indexes
                - interests
                - installments
                - rent_contract_indexes
              properties:
                name:
                  type: string
                  description: Nome do cálculo. Opcional; não afeta o resultado.
                calculation_date:
                  type: string
                  format: date
                  description: Data em que o cálculo é feito (`YYYY-MM-DD`).
                monthly_amount:
                  type: number
                  description: Valor mensal do aluguel no início do contrato.
                contract_start_date:
                  type: string
                  format: date
                  description: Data de início do contrato (`YYYY-MM-DD`).
                late_since_date:
                  type: string
                  format: date
                  description: Data inicial do atraso. Opcional (só para o PDF interno).
                late_until_date:
                  type: string
                  format: date
                  description: Data final do atraso. Opcional (só para o PDF interno).
                fine:
                  type: number
                  description: Multa em percentual sobre o valor devido (`>= 0`).
                fine_interests:
                  type: boolean
                  description: >-
                    Se `true`, a multa incide sobre o valor com juros já
                    aplicados.
                legal_fees:
                  type: number
                  description: >-
                    Honorários — valor absoluto ou percentual, conforme
                    `legal_fees_type`.
                legal_fees_type:
                  type: object
                  description: >-
                    Tipo dos honorários advocatícios: `percentage` (aplica %
                    sobre saldo devedor + multa) ou `fixed` (valor absoluto).
                  nullable: true
                  required:
                    - id
                  properties:
                    id:
                      type: string
                      enum:
                        - percentage
                        - fixed
                indexes:
                  type: array
                  description: >-
                    Índices de correção monetária aplicados às parcelas em cada
                    período.
                  items:
                    type: object
                    description: Atribuição de um índice de correção a um período.
                    required:
                      - index
                      - startDate
                      - endDate
                    properties:
                      index:
                        type: object
                        description: >-
                          Índice de correção monetária. `id: null` desativa a
                          correção no período.
                        required:
                          - id
                          - name
                          - bacen_code
                        properties:
                          id:
                            type: number
                            nullable: true
                            description: ID do índice.
                          name:
                            type: string
                            description: 'Nome do índice (ex.: `IGP-M`).'
                          bacen_code:
                            type: string
                            description: Código Bacen do índice.
                      startDate:
                        type: string
                        format: date
                      endDate:
                        type: string
                        format: date
                interests:
                  type: array
                  description: Regras de juros aplicadas às parcelas.
                  items:
                    type: object
                    description: >-
                      Regra de juros aplicada a um período. Use `name: "Taxa
                      legal"` para aplicar a Taxa Legal (Lei 14.905/2024).
                      `apply_index: true` aplica juros de poupança.
                    required:
                      - type
                      - interest
                      - apply_index
                      - startDate
                      - endDate
                    properties:
                      name:
                        type: string
                        description: Nome opcional do juros.
                      type:
                        type: object
                        description: 'Tipo de juros. `id: 0` = mensal, `id: 1` = anual.'
                        required:
                          - id
                          - name
                        properties:
                          id:
                            description: ID (aceita número ou string).
                            oneOf:
                              - type: number
                              - type: string
                          name:
                            type: string
                      interest:
                        type: number
                        description: Taxa de juros em percentual (`>= 0`).
                      apply_index:
                        type: boolean
                        description: Se `true`, aplica juros de poupança.
                      startDate:
                        type: string
                        format: date
                      endDate:
                        type: string
                        format: date
                installments:
                  type: array
                  description: Parcelas do débito. Deve conter **pelo menos um** item.
                  items:
                    type: object
                    description: >-
                      Parcela do débito. `paid: false` = em aberto, `paid: true`
                      = quitada, `paid: "P"` = pagamentos parciais em
                      `partial_payments`.
                    required:
                      - amount
                      - date
                      - description
                      - description_original
                      - paid
                      - partial_payments
                    properties:
                      amount:
                        type: number
                      date:
                        type: string
                        format: date
                      description:
                        type: string
                      description_original:
                        type: string
                      paid:
                        description: '`true`, `false` ou `"P"`.'
                        oneOf:
                          - type: boolean
                          - type: string
                            enum:
                              - P
                      partial_payments:
                        type: array
                        items:
                          type: object
                          description: Um pagamento parcial da parcela.
                          required:
                            - amount
                            - date
                          properties:
                            amount:
                              type: number
                            date:
                              type: string
                              format: date
                rent_contract_indexes:
                  type: array
                  description: >-
                    Histórico de reajustes do contrato. Opcional (não afeta o
                    cálculo, só é ecoado em `contract_indexes` na resposta).
                  items:
                    type: object
                    description: Um reajuste histórico do contrato.
                    required:
                      - date
                      - monthly_amount
                    properties:
                      date:
                        type: string
                        format: date
                      monthly_amount:
                        type: number
            examples:
              aluguel:
                summary: Correção de aluguel em atraso (IGP-M + Taxa Legal)
                value:
                  name: Aluguel em atraso - exemplo
                  calculation_date: '2024-12-31'
                  monthly_amount: 2000
                  contract_start_date: '2023-01-01'
                  fine: 10
                  fine_interests: false
                  legal_fees: 20
                  legal_fees_type:
                    id: percentage
                  indexes:
                    - index:
                        id: 1
                        name: IGP-M
                        bacen_code: '189'
                      startDate: '2024-01-01'
                      endDate: '2024-12-31'
                  interests:
                    - name: Taxa legal
                      type:
                        id: 0
                        name: a.m.
                      interest: 1
                      apply_index: false
                      startDate: '2024-01-01'
                      endDate: '2024-12-31'
                  installments:
                    - amount: 2000
                      date: '2024-01-05'
                      description: Aluguel de janeiro/2024
                      description_original: Aluguel de janeiro/2024
                      paid: false
                      partial_payments: []
                  rent_contract_indexes: []
      responses:
        '200':
          description: >-
            Resultado da correção, com resumo (multa, honorários e total) e
            cronograma detalhado por parcela.
          content:
            application/json:
              schema:
                type: object
                example:
                  statusCode: 200
                  message: Cálculo concluído com sucesso
                  timestamp: '2026-06-22T18:00:00.000Z'
                  path: /api/calculadoras/aluguel
                  result:
                    summary:
                      total_amount: 2000
                      total_amount_adjusted: 2000
                      total_interests: 50.87
                      total_outstanding_balance: 2050.87
                      total_fines: 200
                      legal_fees: 450.17
                      total: 2701.04
                      has_fine: true
                      has_legal_fees: true
                    calculation_date: 31/12/2024
                    contract_indexes:
                      - _key: 1
                        _date: 01/01/2023
                        _amount: R$ 2.000,00
                    items:
                      - _key: 1
                        _date: 05/01/2024
                        _amount: 2.000,00
                        _amount_adjusted: 2.000,00
                        _outstanding_balance: 2.050,87
                        _subtotal_interests: 50,87
                        amount_adjusted: 2000
                        outstanding_balance: 2050.87
                        subtotal_interests: 50.87
                        indexes:
                          - name: IGP-M
                            startDate: 01/01/2024
                            endDate: 31/12/2024
                            adjustmentUntil: ' (correção até 10/2022)'
                        interests:
                          - rate: 1
                            startDate: 05/01/2024
                            endDate: 31/12/2024
                            type: a.m.
                            apply_index: false
                            name: Taxa legal
                        schedule:
                          - date: '2024-01-01'
                            amount: 2000
                            correction: 0
                            amount_adjusted: 0
                            interest: 0
                            outstanding_balance: 2000
                            _description: Aluguel de janeiro/2024
                            _date: 01/01/2024
                            _amount: 2.000,00
                            _amount_adjusted: ''
                            _correction: ''
                            _interest: ''
                            _outstanding_balance: ''
                          - date: '2024-01-31'
                            amount: 2000
                            correction: 0
                            amount_adjusted: 2000
                            interest: 0
                            outstanding_balance: 2000
                            _description: ''
                            _date: 31/01/2024
                            _amount: 2.000,00
                            _amount_adjusted: R$ 2.000,00
                            _correction: 0,00
                            _interest: ''
                            _outstanding_balance: R$ 2.000,00
                          - date: '2024-12-31'
                            amount: 2000
                            correction: 0
                            amount_adjusted: 2000
                            interest: 50.87
                            outstanding_balance: 2050.87
                            _description: ''
                            _date: 31/12/2024
                            _amount: 2.000,00
                            _amount_adjusted: R$ 2.000,00
                            _correction: 0,00
                            _interest: R$ 50,87
                            _outstanding_balance: R$ 2.050,87
        '401':
          description: >-
            API key ausente ou que não pertence a nenhum cliente (`code:
            invalid_api_key`). A `message` diz qual dos dois.
          content:
            application/json:
              examples:
                missing:
                  summary: Key ausente
                  value:
                    statusCode: 401
                    message: Missing API key
                    code: invalid_api_key
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/calculadoras/trabalhista
                invalid:
                  summary: Key inválida
                  value:
                    statusCode: 401
                    message: Invalid API key
                    code: invalid_api_key
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/calculadoras/trabalhista
        '403':
          description: >-
            Acesso negado. Dois motivos, distinguidos pelo `code`: o cliente não
            está ativo (`inactive_client`), ou a API key não tem o escopo deste
            produto (`insufficient_scope`, com o escopo na `message`). A
            liberação de produtos é feita pela equipe Jusfy.
          content:
            application/json:
              examples:
                inactive_client:
                  summary: Cliente não ativo
                  value:
                    statusCode: 403
                    message: Client is not active
                    code: inactive_client
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/calculadoras/trabalhista
                insufficient_scope:
                  summary: Sem o escopo do produto
                  value:
                    statusCode: 403
                    message: 'Missing scope: <escopo>'
                    code: insufficient_scope
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/calculadoras/trabalhista
        '422':
          description: Payload inválido. `message` indica o campo e o motivo.
          content:
            application/json:
              schema:
                example:
                  statusCode: 422
                  code: payload_rejected
                  message: 'Expected number, received null (property: fine)'
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-06-22T18:00:00.000Z'
                  path: /api/calculadoras/aluguel
        '429':
          description: >-
            Limite de requisições por minuto do cliente neste produto excedido.
            `Retry-After` diz em quantos segundos a janela vira. Toda resposta
            traz `X-RateLimit-Limit`, `X-RateLimit-Remaining` e
            `X-RateLimit-Reset`.
          content:
            application/json:
              schema:
                example:
                  statusCode: 429
                  code: rate_limit_exceeded
                  message: >-
                    Rate limit exceeded for calculadoras.trabalhista:execute: 60
                    requests per minute. Retry in 42s.
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-06-22T18:00:00.000Z'
                  path: /api/calculadoras/trabalhista
        '502':
          description: Erro no motor de cálculo da Jusfy.
          content:
            application/json:
              schema:
                example:
                  statusCode: 502
                  code: upstream_error
                  message: Calculation backend error
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-06-22T18:00:00.000Z'
                  path: /api/calculadoras/aluguel
        '504':
          description: Tempo limite ao falar com o motor de cálculo.
          content:
            application/json:
              schema:
                example:
                  statusCode: 504
                  code: upstream_timeout
                  message: Calculation backend timed out
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-06-22T18:00:00.000Z'
                  path: /api/calculadoras/aluguel
      security:
        - api-key: []
components:
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.