> ## 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 restituição de INSS

> Calcula a restituição de contribuições de INSS: corrige as parcelas pagas por índice e juros e retorna os valores atualizados por parcela e os totais. Informe as parcelas (`installments`) e as regras de correção (`correction_differences_index_id`, `interest_differences`). Quando `agreement` é `true`, a resposta também traz as parcelas do acordo em `agreementInstallments`.



## OpenAPI

````yaml /openapi/legado.json post /api/calculadoras/inss
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://docs.jusfy.com.br/fundamentos/migracao-do-legado).


    A política de versionamento e depreciação está na [política de
    versionamento](https://docs.jusfy.com.br/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/inss:
    post:
      tags:
        - Calculadoras
      summary: Calcula a restituição de INSS
      description: >-
        Calcula a restituição de contribuições de INSS: corrige as parcelas
        pagas por índice e juros e retorna os valores atualizados por parcela e
        os totais. Informe as parcelas (`installments`) e as regras de correção
        (`correction_differences_index_id`, `interest_differences`). Quando
        `agreement` é `true`, a resposta também traz as parcelas do acordo em
        `agreementInstallments`.
      operationId: CalculatorsController_inss[0]
      parameters: []
      requestBody:
        required: true
        description: Payload da calculadora de INSS.
        content:
          application/json:
            schema:
              type: object
              description: >-
                Payload do cálculo de restituição de INSS. Informe as parcelas
                pagas e as regras de correção; a resposta traz os valores
                corrigidos por parcela e os totais. Quando `agreement` é `true`,
                a resposta inclui também as parcelas do acordo.
              required:
                - double_refund
                - installments
                - correction_differences_index_id
              properties:
                double_refund:
                  type: boolean
                  description: >-
                    Se `true`, dobra o valor de cada parcela antes de corrigir
                    (restituição em dobro).
                installments:
                  type: array
                  description: >-
                    Parcelas pagas a restituir. Deve conter **pelo menos um**
                    item.
                  items:
                    type: object
                    description: Parcela paga a restituir.
                    required:
                      - id
                      - date
                      - amount
                    properties:
                      id:
                        type: number
                        description: Identificador da parcela (inteiro positivo).
                      date:
                        type: string
                        format: date
                        description: Data do pagamento da parcela (`YYYY-MM-DD`).
                      amount:
                        type: number
                        description: Valor pago na parcela.
                correction_differences_index_id:
                  type: number
                  nullable: true
                  description: >-
                    Id de um índice de correção (positivo), ou `null` para não
                    aplicar índice. Obtenha os ids em `GET
                    /api/calculadoras/indices-correcao`.
                interest_differences:
                  type: number
                  description: >-
                    Juros mensais (%) aplicados sobre as diferenças corrigidas.
                    Opcional (`>= 0`).
                agreement:
                  type: boolean
                  description: >-
                    Ativa o cálculo de acordo (`agreementInstallments`).
                    Opcional.
                name:
                  type: string
                  description: Nome do cálculo. Opcional; não afeta o resultado.
                customer:
                  type: object
                  description: Cliente do cálculo. Opcional; não afeta o resultado.
                  required:
                    - id
                    - name
                  properties:
                    id:
                      type: number
                    name:
                      type: string
                    document:
                      type: string
                      nullable: true
            examples:
              inss:
                summary: Restituição com correção e acordo
                value:
                  double_refund: false
                  installments:
                    - id: 1
                      date: '2021-01-10'
                      amount: 1200
                    - id: 2
                      date: '2021-02-10'
                      amount: 1200
                    - id: 3
                      date: '2021-03-10'
                      amount: 1200
                  correction_differences_index_id: 6
                  interest_differences: 1
                  agreement: true
      responses:
        '200':
          description: Resultado do cálculo, com valores por parcela e totais.
          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/inss
                  result:
                    totalCalculatedAmount: 5994.23
                    totalAlreadyPaid: 3600
                    totalAgreementPaid: 11194.38
                    honorary: 361.64
                    hasAgreement: true
                    correctionValue: 3632.74
                    totalInterestPaid: 2361.49
                    totalPaid: 3600
                    refundInstallments:
                      - paymentDate: '2021-01-10'
                        paidAmount: 1200
                        adjustedPaidAmount: 1221.58
                        interests: 806.24
                        number: 0
                        adjustedPercentage: 1.8
                        total: 2027.82
                      - paymentDate: '2021-02-10'
                        paidAmount: 1200
                        adjustedPaidAmount: 1211.16
                        interests: 787.25
                        number: 1
                        adjustedPercentage: 0.93
                        total: 1998.41
                      - paymentDate: '2021-03-10'
                        paidAmount: 1200
                        adjustedPaidAmount: 1200
                        interests: 768
                        number: 2
                        adjustedPercentage: 0
                        total: 1968
                    agreementInstallments:
                      - adjustedPaidAmount: 1221.58
                        number: 1
                        paidAmount: 1200
                        date: '2021-01-10'
                        total: 2421.58
                      - adjustedPaidAmount: 1211.16
                        number: 2
                        paidAmount: 1200
                        date: '2021-02-10'
                        total: 2411.16
                      - adjustedPaidAmount: 1200
                        number: 3
                        paidAmount: 1200
                        date: '2021-03-10'
                        total: 2400
        '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/inss
        '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/inss
        '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/inss
      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.