---
title: "Decisao Guiada: CLT × PJ — vale a pena trocar?"
method: POST
path: "/api/v1/decisao/clt-vs-pj"
tags: ["decisao"]
---

# Decisao Guiada: CLT × PJ — vale a pena trocar?

`POST /api/v1/decisao/clt-vs-pj`

## Request

- Base URL: `https://api.calculas.com.br`
- URL: `https://api.calculas.com.br/api/v1/decisao/clt-vs-pj`
- Auth: HTTP bearer

Wizard que combina salario-liquido CLT + Simples/LP PJ + INSS facultativo + beneficios e retorna veredicto financeiro (CLT/PJ/TIE) + breakdown completo.

## Request body

- object
  - `salarioBrutoCents` integer, required: Salário bruto mensal CLT em centavos. Ex: R$ 5.000 → 500000.
  - `dependentes` integer: Dependentes para dedução IRRF (R$ 189,59 cada).
  - `beneficiosClt` object[]: Benefícios CLT que a empresa paga ALÉM do salário (entram no lado CLT da comparação), agrupados por categoria: plano_saude, vale_alimentacao, vale_refeicao, vale_transporte, auxilio_creche, previdencia_privada_empresarial, gympass_wellhub, home_office_auxilio, seguro_vida_empresarial, outro. Cada item: { categoria, valorCents, descricao? }. Padrão []. Use "outro" + descrição para casos não cobertos.
    - `categoria` 'plano_saude' | 'vale_alimentacao' | 'vale_refeicao' | 'vale_transporte' | 'auxilio_creche' | 'previdencia_privada_empresarial' | 'gympass_wellhub' | 'home_office_auxilio' | 'seguro_vida_empresarial' | 'outro', required
    - `valorCents` integer, required: Valor em centavos. Ex: R$ 200 → 20000.
    - `descricao` string: Descrição livre do item (opcional, especialmente útil quando categoria = "outro"). Máx. 60 caracteres.
  - `outrosDescontosCltMensais` object[]: v3 — Descontos CLT além de INSS/IRRF: vale_transporte (6% do bruto), plano_saude (coparticipação), sindicato, pensao_alimenticia, consignado, previdencia_privada, faltas_atrasos, outro. Passado direto para calculateSalarioLiquido — sem este input, calc superestimava líquido CLT em 6-15%.
    - `categoria` 'plano_saude' | 'vale_transporte' | 'vale_alimentacao' | 'previdencia_privada' | 'sindicato' | 'consignado' | 'pensao_alimenticia' | 'faltas_atrasos' | 'outro', required
    - `valorCents` integer, required: Valor em centavos. Ex: R$ 200 → 20000.
    - `descricao` string: Descrição livre do item (opcional, especialmente útil quando categoria = "outro"). Máx. 60 caracteres.
  - `faturamentoPjMensalCents` integer, required: Faturamento PJ alvo em centavos/mês — quanto a empresa pagaria como PJ.
  - `regimePj` 'simples_iii' | 'simples_v' | 'lucro_presumido': Regime tributário PJ. simples_iii: serviços com pró-labore alto (Fator R). simples_v: serviços sem folha. lucro_presumido: faturamento alto.
  - `proLaboreMensalCents` integer: Pró-labore mensal em centavos. Default 1 SM 2026 = 155000.
  - `contribuirInssFacultativo` boolean: Contribuir INSS facultativo (11% do SM). Default false.
  - `custoContadorMensalCents` integer: Custo do contador mensal em centavos. Default R$ 200 = 20000.
  - `custosOperacionaisPjMensais` object[]: v3 — Custos operacionais PJ ALÉM do contador: aluguel_espaco, software_assinaturas, utilidades (internet/energia), plano_saude_individual, seguro_vida, equipamento, cursos_capacitacao, marketing, manutencao_equipamentos, outro. Subtrai da distribuição de lucros e do total PJ. Sem este input, calc subestimava custo real PJ em R$ 1k-5k/mês.
    - `categoria` 'aluguel_espaco' | 'mao_de_obra' | 'materia_prima' | 'marketing' | 'software_assinaturas' | 'contador_juridico' | 'utilidades' | 'frete_logistica' | 'manutencao_equipamentos' | 'plano_saude_individual' | 'seguro_vida' | 'equipamento' | 'cursos_capacitacao' | 'outro', required
    - `valorCents` integer, required: Valor em centavos. Ex: R$ 200 → 20000.
    - `descricao` string: Descrição livre do item (opcional, especialmente útil quando categoria = "outro"). Máx. 60 caracteres.
  - `horasUteisDia` number: v3 — Horas úteis/dia (default 8). Usado pra calcular hora bruta/líquida PJ.
  - `diasUteisMes` integer: v3 — Dias úteis/mês (default 22).
  - `diasFeriasAnoClt` integer: v3 — Dias de férias/ano CLT (default 30 — direito constitucional).
  - `diasFeriasAnoPj` integer: v3 — Dias de férias/ano PJ (default 20 — autônomo escolhe, padrão 4 semanas).

## Response `200`

OK

- object
  - `ok` true, required
  - `data` object, required
    - `verdict` 'CLT' | 'PJ' | 'TIE', required
    - `deltaAnualCents` integer, required
    - `cltAnualCents` integer
    - `pjAnualCents` integer
    - `recomendacao` string, required
    - `breakdown` object, required
    - `riscos` string[]
  - `meta` object

## Other responses

- `402`: Tier insuficiente — endpoint requer Pro ou superior
- `422`: Input invalido (Zod) ou regra de negocio (PJ_INVIAVEL, REGIME_INVALIDO)
- `500`: Erro inesperado no engine

---

[API](https://skmtc.dev/calculas/apis/contai-api.md) · [All operations](https://skmtc.dev/calculas/apis/contai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/calculas/apis/contai-api/revisions/26a00749292b?raw)
