Fluxo e Sequência da API
Esta página descreve a sequência exata de chamadas de API para integrar o Ozzie do zero. Foi projetada para que qualquer desenvolvedor ou agente LLM possa lê-la e imediatamente entender a ordem correta das operações, o que cada chamada requer, o que ela desbloqueia e como recuperar de erros.
O Ozzie suporta dois fluxos: Fluxo A (criar usuário primeiro, depois usar o UUID do Ozzie) e Fluxo B (pular a criação — use external:{seu_id} diretamente em qualquer endpoint e o Ozzie cria o usuário automaticamente no primeiro uso). A sequência abaixo mostra o Fluxo A. Para o Fluxo B, veja Integração com ID Externo.
Fluxo de Integração Completo
┌─────────────────────────────────────────────────────────────────────┐
│ SEQUÊNCIA DE INTEGRAÇÃO OZZIE │
└─────────────────────────────────────────────────────────────────────┘
[1] POST /v1/users
│
│ Cria o registro do usuário. Retorna user_id (UUID).
▼
[2] POST /v1/users/{user_id}/financial-intake
│
│ Armazena renda mensal, despesas e objetivo financeiro.
│ Obrigatório antes de gerar um plano.
▼
[3] POST /v1/users/{user_id}/plan/generate
│
│ Gera um plano personalizado de poupança/dívida usando
│ o snapshot de intake financeiro mais recente.
▼
[4] POST /v1/users/{user_id}/goals
│
│ Define objetivos financeiros específicos (ex: "Economizar
│ R$5.000 para fundo de emergência até dez 2025").
▼
[5] POST /v1/users/{user_id}/transactions
│
│ Envia despesas/receitas (texto, imagem, PDF, CSV).
│ O Ozzie usa GPT-4o para analisá-las e categorizá-las.
▼
[6] GET /v1/users/{user_id}/money-moves
│
│ Busca recomendações personalizadas de gastos
│ com base no plano e nas transações recentes.
▼
[7] POST /v1/users/{user_id}/chat
│
│ Envia uma mensagem ao assistente financeiro do Ozzie.
│ Consciente do contexto: usa plano, metas e transações.
▼
FIM (repita os passos 5–7 para uso contínuo)
Referência Passo a Passo
Passo 1 — Criar Usuário
Endpoint: POST /v1/users
Desbloqueia: Todos os endpoints subsequentes para este usuário.
Exemplo de Requisição:
POST https://api.ozzieapp.com/v1/users
Authorization: Bearer czJjbGllbnQ6czJzZWNyZXQ=
Content-Type: application/json
{
"external_user_id": "usr_8821",
"name": "Maria Santos",
"email": "maria@example.com",
"phone": "+5511999999999",
"language": "pt"
}
Salve o campo id (ozz_usr_...). Este é o user_id usado em todas as chamadas subsequentes.
Passo 2 — Enviar Intake Financeiro
Endpoint: POST /v1/users/{user_id}/financial-intake
Desbloqueia: Geração do plano (Passo 3). O endpoint de plano retornará INTAKE_REQUIRED até que este seja chamado.
POST https://api.ozzieapp.com/v1/users/ozz_usr_.../financial-intake
Authorization: Bearer czJjbGllbnQ6czJzZWNyZXQ=
Content-Type: application/json
{
"monthly_income": 5000,
"monthly_expenses": 3200,
"financial_goal": "savings",
"next_pay_date": "2025-05-15"
}
Passo 3 — Gerar Plano
Endpoint: POST /v1/users/{user_id}/plan/generate
Requer: Intake financeiro deve existir (Passo 2).
POST https://api.ozzieapp.com/v1/users/ozz_usr_.../plan/generate
Authorization: Bearer czJjbGllbnQ6czJzZWNyZXQ=
Content-Type: application/json
{}
Passo 4 — Definir Metas
Endpoint: POST /v1/users/{user_id}/goals
POST https://api.ozzieapp.com/v1/users/ozz_usr_.../goals
Authorization: Bearer czJjbGllbnQ6czJzZWNyZXQ=
Content-Type: application/json
{
"name": "Fundo de Emergência",
"target_amount": 5000,
"currency": "BRL",
"target_date": "2025-12-31"
}
Passo 5 — Registrar Transações
Endpoint: POST /v1/users/{user_id}/transactions
POST https://api.ozzieapp.com/v1/users/ozz_usr_.../transactions
Authorization: Bearer czJjbGllbnQ6czJzZWNyZXQ=
Content-Type: application/json
{
"type": "text",
"content": "Gastei R$45 no supermercado e R$12 na condução",
"language": "pt"
}
Passo 6 — Buscar Money Moves
Endpoint: GET /v1/users/{user_id}/money-moves
Requer: Plano deve existir (Passo 3).
GET https://api.ozzieapp.com/v1/users/ozz_usr_.../money-moves
Authorization: Bearer czJjbGllbnQ6czJzZWNyZXQ=