> ## 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/planejamento previdenciário acima do teto

> Calcula o excedente de contribuição ao INSS quando a soma dos salários-de-contribuição de vínculos concomitantes ultrapassa o teto previdenciário, atualizado pelo índice escolhido (correção monetária) e juros simples. Tudo num payload único: os parâmetros do cálculo (`aboveCeilingParams`: modo, índice, juros, data de referência e janela de prescrição opcional) e o histórico de contribuições inline (`contributions`, pelo menos **um** item, cada um com competência, salário nominal e tipo de vínculo).

O `mode` define a leitura do resultado: `REFUND` (restituição ao segurado) ou `PLANNING` (planejamento/complementação). O cálculo é estimativo e não substitui a análise do advogado.



## OpenAPI

````yaml /openapi/legado.json post /api/calculadoras/previdenciaria-acima-teto
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/previdenciaria-acima-teto:
    post:
      tags:
        - Calculadoras
      summary: Calcula a restituição/planejamento previdenciário acima do teto
      description: >-
        Calcula o excedente de contribuição ao INSS quando a soma dos
        salários-de-contribuição de vínculos concomitantes ultrapassa o teto
        previdenciário, atualizado pelo índice escolhido (correção monetária) e
        juros simples. Tudo num payload único: os parâmetros do cálculo
        (`aboveCeilingParams`: modo, índice, juros, data de referência e janela
        de prescrição opcional) e o histórico de contribuições inline
        (`contributions`, pelo menos **um** item, cada um com competência,
        salário nominal e tipo de vínculo).


        O `mode` define a leitura do resultado: `REFUND` (restituição ao
        segurado) ou `PLANNING` (planejamento/complementação). O cálculo é
        estimativo e não substitui a análise do advogado.
      operationId: CalculatorsController_previdenciariaAcimaTeto[0]
      parameters: []
      requestBody:
        required: true
        description: Payload da calculadora previdenciária acima do teto.
        content:
          application/json:
            schema:
              type: object
              required:
                - aboveCeilingParams
                - contributions
              properties:
                aboveCeilingParams:
                  type: object
                  description: Parâmetros do cálculo acima do teto.
                  required:
                    - indexName
                    - interestRateMonthly
                    - referenceDate
                  properties:
                    mode:
                      type: string
                      enum:
                        - REFUND
                        - PLANNING
                      default: REFUND
                      description: '`REFUND` (restituição) ou `PLANNING` (planejamento).'
                    indexName:
                      type: string
                      description: 'Código Bacen do índice de correção (ex.: `SELIC`).'
                    interestRateMonthly:
                      type: number
                      minimum: 0
                      maximum: 1
                      description: 'Juros simples ao mês, 0..1 (ex.: `0.01` = 1% a.m.).'
                    referenceDate:
                      type: string
                      format: date
                      description: Data de referência da correção (YYYY-MM-DD).
                    startDate:
                      type: string
                      format: date
                      description: Início da janela de prescrição (opcional).
                    endDate:
                      type: string
                      format: date
                      description: Fim da janela de prescrição (opcional).
                contributions:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    description: Contribuição (salário-de-contribuição) de uma competência.
                    required:
                      - accrualPeriod
                      - salary
                      - employmentLinkType
                    properties:
                      accrualPeriod:
                        type: string
                        format: date
                        description: Competência da contribuição (YYYY-MM-DD).
                      salary:
                        type: number
                        minimum: 0
                        exclusiveMinimum: true
                        description: >-
                          Salário-de-contribuição nominal do vínculo no mês (>
                          0).
                      employmentLinkType:
                        type: string
                        enum:
                          - REGULAR
                          - SCHOOL_TEACHER
                          - RURAL_WORKER
                          - SPECIAL_25
                          - SPECIAL_20
                          - SPECIAL_15
                          - INDIVIDUAL_CONTRIBUTOR
                        description: Tipo do vínculo — define a alíquota INSS aplicada.
                      isThirteenthSalary:
                        type: boolean
                        default: false
                        description: '`true` para 13º salário.'
                      id:
                        type: string
                        description: Opcional — rastreabilidade no output.
                      employmentLinkId:
                        type: string
                        description: Opcional — rastreabilidade no output.
                  description: Histórico de contribuições (pelo menos 1).
            examples:
              aboveCeiling:
                summary: >-
                  Dois vínculos concomitantes acima do teto (competência
                  01/2025)
                value:
                  aboveCeilingParams:
                    mode: REFUND
                    indexName: SELIC
                    interestRateMonthly: 0.01
                    referenceDate: '2025-01-01'
                  contributions:
                    - accrualPeriod: '2025-01-01'
                      salary: 6000
                      employmentLinkType: REGULAR
                    - accrualPeriod: '2025-01-01'
                      salary: 5000
                      employmentLinkType: REGULAR
      responses:
        '200':
          description: >-
            Resultado do cálculo, com os totais (nominal, corrigido, juros e
            final) e o detalhamento por competência (`aboveCeilingItems`).
          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/previdenciaria-acima-teto
                  result:
                    id: ac_MJq8V5zK2nRdT4pLx3Fy9
                    type: ABOVE_CEILING_REFUND
                    subtype: REFUND
                    regime: post-reform
                    value: 207.56
                    eligibilityDate: '2025-01-01'
                    calculationDetails:
                      aboveCeilingItems:
                        - accrualPeriod: '2025-01-01'
                          competenceType: MONTHLY
                          contributionIds:
                            - c_1
                            - c_2
                          ceiling: 8157.41
                          inssByLink:
                            - employmentLinkId: link_1
                              salary: 6000
                              inssPaid: 649.6
                            - employmentLinkId: link_2
                              salary: 5000
                              inssPaid: 509.6
                          totalInssPaid: 1159.19
                          inssDueOnCeiling: 951.63
                          excedenteContribuicao: 207.56
                          salaryTotal: 11000
                          excedenteNominal: 2842.59
                          monthsElapsed: 0
                          cumulativeIndexFactor: 1
                          valorCorrigido: 207.56
                          interestAmount: 0
                          valorFinal: 207.56
                      aboveCeilingParams:
                        mode: REFUND
                        indexName: SELIC
                        interestRateMonthly: 0.01
                        referenceDate: '2025-01-01'
                        ceilingSource: getCeiling
                        indexFactorSource: IndexFactor.seed
                        skippedCount: 0
                        missingFactorMonths: []
                      aboveCeilingTotals:
                        totalNominal: 207.56
                        totalCorrigido: 207.56
                        totalJuros: 0
                        totalFinal: 207.56
                    legalBasis: >-
                      Lei 8.213/91 art. 28 §5º (teto); CTN art. 168
                      (prescrição).
                    notes:
                      - >-
                        Valor estimado de restituição/reembolso ao segurado: R$
                        207,56.
                      - >-
                        Correção monetária: SELIC (fatores históricos do seed).
                        Juros simples: 1% a.m.
                      - 'Janela: toda a vida contributiva.'
                      - 'Data de referência: 01/2025.'
                      - Resultado estimativo.
                      - Leitura automática do CNIS pode exigir conferência.
                      - Não substitui análise do advogado.
        '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/previdenciaria-acima-teto
        '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/previdenciaria-acima-teto
        '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/previdenciaria-acima-teto
      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.