Dados Financeiros
O Ozzie armazena dados financeiros em dois níveis de granularidade. Entender a diferença é fundamental para construir integrações precisas.
Dois níveis: agregado e granular
Intake Mensal (agregado) Transações (granular)
───────────────────────── ──────────────────────────
monthly_income: R$5.000 2024-01-03 Supermercado R$45
monthly_expenses: R$3.200 2024-01-05 Gasolina R$60
financial_goal: "savings" 2024-01-08 Netflix R$15
2024-01-12 Almoço R$18
...
O intake mensal é o snapshot macro — a "visão geral" que impulsiona a geração do plano. Você o envia uma vez (e atualiza quando a situação do usuário muda). Ele diz ao Ozzie quanto espaço o usuário tem para trabalhar a cada mês.
As transações são o nível micro — eventos individuais de despesas e receitas que constroem um quadro real de gastos ao longo do tempo. Elas são analisadas a partir de linguagem natural, imagens, PDFs ou planilhas usando GPT-4o.
Como eles funcionam juntos
| Papel | Tipo de dado | Usado para |
|---|---|---|
| Geração do plano | Intake mensal | Calcular cronograma, alocações, itens de ação |
| Insight e coaching | Transações | Tendências de gastos, detalhamentos por categoria, detecção de anomalias |
| Rastreamento de metas | Ambos | Progresso = economia/pagamento de dívida real vs. meta do plano |
| Contexto do chat | Ambos | O coach de IA vê ambos ao responder perguntas |
O intake define o plano. As transações revelam a realidade. O Ozzie os compara para gerar feedback significativo.
Imutabilidade e histórico
Os snapshots de intake mensal nunca são sobrescritos. Cada POST /financial-intake cria um novo registro. O snapshot mais recente é sempre usado para cálculos de plano. Isso fornece um histórico completo de como a situação financeira do usuário mudou ao longo do tempo.
Tratamento de moeda
O Ozzie armazena a moeda por transação (código ISO 4217: USD, BRL, EUR, etc.) inferida da entrada pelo GPT-4o. O intake mensal não tem um campo de moeda explícito — presume-se que esteja na moeda local do usuário. Se seu produto atende múltiplas moedas, inclua contexto de moeda na entrada de texto (ex: "gastei R$45 no supermercado").
O que isso significa para sua integração
- Chame
POST /financial-intakeuma vez durante o onboarding, depois atualize quando o perfil de renda ou despesas do usuário mudar significativamente. - Chame
POST /transactionscontinuamente — toda vez que um usuário enviar uma despesa, carregar um recibo ou enviar uma mensagem pelo WhatsApp. - Quanto mais transações, mais ricos os insights de coaching.
→ Veja Referência da API de Intake Financeiro e Referência da API de Transações