From financeiro
Conciliação de uma conta ou cartão em um período: compara o que tá lançado no FIN com o que tá num extrato/fatura externo, mostra o que bate, o que só está no FIN, o que só está no extrato, suspeitos de duplicata e divergências de valor. Pessoa decide o que fazer com cada divergência (lançar o que falta, deletar o que sobra, marcar como conferido). Atualiza Status Conciliação.md no fim. Use quando a pessoa pedir "concilia conta X de mês Y" ou "tá batendo o saldo?".
How this skill is triggered — by the user, by Claude, or both
Slash command
/financeiro:conciliar [conta/cartão] [período][conta/cartão] [período]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- Pessoa pediu "concilia conta X de março", "tá batendo o saldo?", "confere se não tá faltando nada"
/financeiro:lancar, /financeiro:extrato, /financeiro:fatura)extrato e fatura via idempotência. Conciliar é um passo SEPARADO de revisão./financeiro:instalar-fin-mcp~/.fin-plugin/config.json existe → leia financeiro_pathFinanceiro/ existemfin://docs/guia nessa sessãoA pessoa tem um extrato ou fatura e quer comparar com o que tá no FIN. Esse é o modo mais completo.
A pessoa quer só revisar o que tá no FIN num período, sem ter um extrato pra comparar. Útil pra "tá tudo certo na [conta] esse mês?". Mostra todas as transações do período pra revisão visual.
A pessoa fala "tá batendo o saldo da conta X?". Você compara:
fin_saldos + transações do período)Se bater, ✓. Se não bater, oferece rodar conciliação completa pra achar a diferença.
Pega $ARGUMENTS ou pergunta:
Qual conta ou cartão? E qual período?
Detecta:
Contas e Cartões.mdPessoa anexa/cola o extrato ou fatura no formato disponível (OFX, CSV, CNAB, texto, PDF — mesma ordem de preferência das outras skills).
Se for fatura de cartão, faz o parse de período REAL do conteúdo (pode divergir do período pedido pela pessoa em ±2 dias por causa de ciclo).
Mesma lógica das skills extrato e fatura. Resultado: lista normalizada de transações com chave de idempotência (FITID ou hash).
fin_buscar_transacoes(
conta_id: <id>,
data_inicio: <início>,
data_fim: <fim>
)
Resultado: lista de transações do FIN. Pra cada uma, calcula a chave de idempotência (FITID se for OFX-importada, hash caso contrário).
Cruza as duas listas. Cada transação cai em uma de 5 categorias:
| Categoria | Definição |
|---|---|
| Bate certinho | Mesma chave em ambos, mesmo valor, mesma data, mesma descrição |
| Bate com leve diferença | Mesma chave OU descrição muito próxima + valor igual + data dentro de ±2 dias |
| Só no FIN | Existe no FIN mas não tem correspondente no externo |
| Só no externo | Existe no externo mas não tem correspondente no FIN |
| Suspeito de duplicata no FIN | Múltiplas transações no FIN matchando a mesma do externo |
Tabela única organizada por categoria:
=== CONCILIAÇÃO: [conta] — Período YYYY-MM-DD a YYYY-MM-DD ===
✓ BATEM CERTINHO (47)
| Data | Valor | Descrição (FIN) | Status |
|------------|----------|-------------------------|--------|
... (lista resumida ou só contagem se muitas)
⚠ BATEM COM LEVE DIFERENÇA (3)
| Data FIN | Data Ext | Valor | Descrição (FIN) | Descrição (Ext) | Diferença |
... (mostra o que diverge)
❌ SÓ NO FIN — não tem no extrato (5)
| Data | Valor | Descrição | Categoria | Ação? |
|------------|----------|------------------------|-------------------|-------|
... (a pessoa decide: deletar do FIN, marcar como OK mesmo assim, ou investigar)
❌ SÓ NO EXTRATO — não tem no FIN (8)
| Data | Valor | Descrição | Ação? |
|------------|----------|------------------------|-------|
... (a pessoa decide: lançar no FIN, ignorar, ou investigar)
🚨 SUSPEITO DE DUPLICATA NO FIN (1)
| Data | Valor | Descrição | Transações no FIN matchando |
... (a pessoa decide qual deletar)
=== RESUMO ===
- 47 ✓ batem
- 3 ⚠ leve diferença
- 5 ❌ só no FIN
- 8 ❌ só no extrato
- 1 🚨 suspeito de duplicata
- Saldo do período: FIN=R$X / Externo=R$Y / Diferença=R$Z
Pra cada categoria de divergência, pergunta como agir.
Possíveis razões:
Pra cada uma das 5 transações que estão só no FIN:
- Manter (foi lançada manual, ok não estar no extrato)
- Deletar do FIN (foi erro)
- Investigar (deixar marcada e voltar depois)
A pessoa responde número por número ou em bloco.
Se "deletar", confirma com fin_deletar_transacao.
Possíveis razões:
Pra cada uma das 8 transações que estão só no extrato:
- Lançar agora no FIN
- Ignorar (não vai ser lançada)
- Investigar
Se "lançar agora", chama as tools de criação correspondentes (fin_criar_despesa / fin_criar_receita / fin_criar_transferencia / fin_fatura_transacoes se for cartão), aplicando categorização via Estabelecimentos.md.
Pra volumes maiores (5+ rows pendentes de lançamento): use fin_criar_transacoes_batch — até 100 rows mix de expense/income/transfer em 1 chamada, com resposta { created, failed } pra você mostrar progresso. Partial success by design (linhas que falham não revertem as anteriores).
Mostra o que diverge (data, valor, descrição) e pergunta:
A linha do FIN tá certa, ou a do extrato tá certa?
Se a do extrato tá certa: oferece editar via fin_editar_transacao.
Se a do FIN tá certa: marca como OK.
Tem 2 transações no FIN matchando a mesma do extrato. São duplicatas? Qual deletar?
A pessoa escolhe.
Status Conciliação.mdQuando a pessoa terminar de resolver tudo (ou pelo menos confirmar o que fica como pendência), atualiza:
## Conciliações
| Conta/Cartão | Período | Status | Data conciliação | FITIDs/hashes lançados |
|--------------|---------|--------|------------------|------------------------|
| [conta] | YYYY-MM-DD a YYYY-MM-DD | Conciliado | YYYY-MM-DD | (FITIDs ou hashes) |
Se sobraram pendências não resolvidas:
## Pendências
- [conta] [período]: N transações só no FIN marcadas pra investigar
- [conta] [período]: M transações só no extrato marcadas pra investigar
✓ Conciliação concluída.
- Conta: [nome real]
- Período: YYYY-MM-DD a YYYY-MM-DD
- N transações conferidas (batem)
- M leves diferenças resolvidas
- K só no FIN: X mantidas, Y deletadas
- L só no extrato: X lançadas, Y ignoradas
- D duplicatas: removidas
- Status: Conciliado
- Pendências: nenhuma (ou: lista)
Mais simples. Pessoa só quer revisar o que tá no FIN num período.
fin_buscar_transacoes(conta_id, data_inicio, data_fim)
Tabela paginada (50 por vez se necessário). Pra cada linha:
Estabelecimentos.md)Mostra essas como "atenção" sem forçar ação.
Vi 3 coisas que merecem atenção:
- R$1.200 em "Mercado" (média costuma ser R$300)
- "Loja Z" apareceu pela 1ª vez
- "Posto X" foi categorizado em "Manutenção" mas costuma ser em "Combustível"
Quer revisar alguma? Ou tá tudo certo?
Tudo conferido? Vou marcar essa conta como conciliada até [data].
Atualiza Status Conciliação.md.
Pra conta específica: fin_saldos (retorna saldo nativo, BRL ou USD, por conta).
Pra patrimônio consolidado em BRL (todas as contas cash+checking): fin_patrimonio — útil quando a pessoa pergunta "quanto eu tenho no total em reais, contando o dólar?". Converte USD→BRL dinamicamente via cotação cached (1h). Retorna também partial: true + warning se o provedor de cotação estiver off.
Quanto tá teu saldo no app do banco agora? (print da tela inicial do app, não a linha de saldo dentro do extrato)
Importante — saldo atual ≠ saldo do dia do extrato:
fin_saldos inclui TUDO que tá lançado, inclusive tx com tx_date no futuro.Comparar saldo do FIN com "saldo do dia" do extrato dá falso positivo de divergência de milhares de reais quando existe um Pix de fim de semana pendente. Sempre usa o saldo atual da tela inicial do app.
Se sim, vai pro Modo 1 ou 2 conforme a pessoa tenha extrato ou não.
Tolerância de rendimento de aplicação automática: vários bancos brasileiros têm aplicação automática diária. O rendimento agregado nem sempre bate 1:1 com o lançamento feito no FIN, especialmente quando o lançamento individual é fração de centavo arredondada. Divergência pequena (alguns reais ou ~0,5% do saldo, o que for menor) concentrada em "Rendimento" é ruído esperado e não trava conciliação — nomeia como "divergência de rendimento residual" e segue. Se a pessoa quer um valor de tolerância fixo, pergunta uma vez e grava em Preferências.md.
Atenção USD: se a diferença aparece só no fin_patrimonio (e não em contas BRL individuais), pode ser variação de cotação entre a leitura anterior e a atual — cotação muda, patrimônio consolidado muda, nenhuma transação faltou. Confirma isso antes de partir pra investigação.
Cartão é diferente de conta corrente. A "conciliação" de cartão é feita por fatura (período fechado), não por mês civil.
Contas e Cartões.mdPessoa diz "quero conciliar agosto, setembro, outubro". Você processa um período de cada vez. No fim, mostra um sumário consolidado.
Tipo: extrato da conta A mostra "TRANSFERENCIA PARA CONTA B R$500", mas no FIN essa transferência não existe.
fin_criar_transferencia da A pra BTipo: o saldo final do extrato + lançamentos do mês não bate com o saldo inicial do extrato seguinte. Isso indica que o FIN tem saldo inicial errado pra essa conta.
Avisa a pessoa: "O saldo inicial dessa conta no FIN parece estar errado por R$X. Quer que eu ajuste?"
Dois caminhos, escolhe um:
fin_ajustar_saldo_conta com amount_cents = saldo desejado. Tool retorna balance_cents_calculado pra você validar. Use quando a diferença é claramente um erro histórico de initial_balance (ex: saldo não estava lá quando criou a conta).fin_criar_receita ou fin_criar_despesa. Use quando faz sentido que apareça em relatórios mensais como movimentação (ex: pessoa achou dinheiro, rendimento não lançado).Status Conciliação.md → toda conciliação concluída vira linha láStatus Conciliação.md em vez de adicionar linha → é histórico, não substituiPT-BR informal, direto. Sem travessão (—). Tabelas claras, divide divergências por categoria, pergunta uma por vez quando precisa decidir, mostra resumo no fim.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub pe-menezes/fin-claude-plugin --plugin financeiro