---
title: "Cartão de crédito vale a pena? Cashback × anuidade"
method: POST
path: "/api/v1/calc/cartao-credito-cashback-anuidade"
tags: ["calc", "financas"]
---

# Cartão de crédito vale a pena? Cashback × anuidade

`POST /api/v1/calc/cartao-credito-cashback-anuidade`

## Request

- Base URL: `https://api.calculas.com.br`
- URL: `https://api.calculas.com.br/api/v1/calc/cartao-credito-cashback-anuidade`
- Auth: HTTP bearer

Compara o cashback gerado pelo gasto anual com o custo da anuidade do cartão. Calcula ponto de equilíbrio (gasto mínimo para anuidade compensar) e cashback líquido efetivo.

## Request body

- object
  - `gastoMensalCents` integer: Gasto mensal médio no cartão em centavos (modo agregado — usado quando gastosPorCategoria é vazio). Ex: R$ 3.000 → 300000. Padrão: R$ 3.000
  - `cashbackPct` number: Percentual de cashback oferecido pelo cartão (0 a 20). No modo categorizado, é o fallback para categorias sem % específico. Ex: 1.5 = 1,5% de cashback. Padrão: 1,0%
  - `anuidadeAnualCents` integer: Anuidade cobrada pelo cartão por ano em centavos. Ex: R$ 240 → 24000. Padrão: R$ 240
  - `isencaoAnuidade` boolean: Se verdadeiro (true), a anuidade é isenta (ex: cliente XP com saldo investido). Se falso (false), a anuidade é cobrada normalmente. Padrão: false
  - `gastosPorCategoria` object[]: Gastos mensais agrupados por categoria (alimentacao, transporte, saude, lazer, moradia, etc.). Quando NÃO-vazio, substitui o gastoMensalCents agregado: o cashback é calculado categoria a categoria, aceitando % diferenciado via cashbackPorCategoria. Cada item: { categoria, valorCents, descricao? }. Padrão []. Use quando o cartão diferencia cashback por categoria (ex: combustível 5%, restaurante 3%, demais 1%).
    - `categoria` 'moradia' | 'alimentacao' | 'transporte' | 'saude' | 'educacao' | 'lazer' | 'vestuario' | 'seguros' | 'servicos_profissionais' | '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.
  - `currentDate` string, date-time: ISO-8601 com offset. Default: tempo do servidor. Use pra reprodutibilidade / cache semantico.

## Response `200`

OK

- object
  - `ok` true, required
  - `data` object, required: Resultado dependente da calc — ver schema individual
  - `meta` object

## Other responses

- `422`: Input invalido (Zod parse falhou)
- `500`: Engine error

---

[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)
