Skip to main content

Changelog

All notable changes to the Ozzie API are documented here.


v2.1.0 β€” May 16, 2026​

Channel API and OTP authentication.

This release introduces the Channel API (channel.ozzieapp.com) as the primary integration point for all consumer apps, along with a complete OTP authentication system for end users.

New: Channel API​

Consumer apps now call channel.ozzieapp.com/v1 exclusively. The Channel API is stateful β€” it owns users, OTP codes, onboarding state, chat history, transactions, goals, and spending alerts. It proxies intelligence requests to the internal layer at api.ozzieapp.com without exposing it to consumers.

New endpoints​

MethodPathDescription
POST/v1/auth/otp/requestRequest a 6-digit OTP code via WhatsApp or email
POST/v1/auth/otp/verifyVerify OTP β€” returns user_id and onboarding_stage
GET/v1/users/:user_id/profileChannel user profile with onboarding_stage and plan_speed
PATCH/v1/users/:user_id/onboarding/completeAdvance onboarding from plan β†’ active
GET/v1/users/:user_id/chat/messagesRetrieve persistent chat history

OTP system​

  • 6-digit codes with a 10-minute TTL, single-use, bcrypt-hashed
  • Auto-detects delivery channel from identifier format (E.164 phone β†’ WhatsApp, email address β†’ email)
  • New error codes: INVALID_CODE (400) and CODE_EXPIRED (400)

User registration updates​

POST /v1/users now accepts phone (E.164) and email fields. Returns 409 CONFLICT if the external_user_id already exists. The external_user_id body field must not include the "external:" prefix.

Database​

Legacy web-app tables have been removed. The active database now consists of channel-api tables (channel_users, otp_codes, chat_messages, transactions, user_goals, money_move_tasks, spending_alerts) and intelligence-api tables (api_clients, api_rate_windows, users, financial_intake_results, financial_plans, personality_questions, money_moves_catalog).


v2.0.0 β€” May 15, 2026​

Platform redesign: stateless intelligence layer.

This release introduces ozzie-openapi as the focused intelligence API. All endpoints are stateless β€” callers provide full context and receive computed intelligence in return.

Breaking changes​

Personality system replaced​

The old POST /plan/personalize endpoint with four types (optimizer, planner, avoider, spender) has been replaced with a personality quiz system with four new types:

Old typeNew type
optimizerHOTSHOT
plannerSTOCKPILER
avoiderINDEPENDENT
spenderGIVER

Personality is now scored from a quiz (GET /v1/personality/questions and POST /v1/personality/score) and passed explicitly to all relevant intelligence calls. You no longer call POST /plan/personalize separately.

Envelope system​

The old free-text envelope strings (e.g., "Dia a Dia", "Estilo de Vida") are replaced with standardized English keys:

Old valueNew key
Contasbills
Dia a Diadaily_living
SaΓΊde & Bem-estarhealth_wellness
Estilo de Vidalifestyle
Pessoaspeople
Seu Futurofuture

Base URL​

New base URL: https://api.ozzieapp.com/v1

Chat endpoint path​

The chat endpoint is now POST /v1/users/{user_id}/chat/completion. The response field reply has been renamed to content. The endpoint is stateless β€” pass conversation history in history.

New endpoints​

  • GET /v1/personality/questions β€” Quiz catalog
  • POST /v1/personality/score β€” Stateless personality scoring (returns type, does not store)
  • POST /v1/money-moves/generate β€” Stateless move generation (accepts personality_type + plan_tier)
  • POST /v1/transactions/parse β€” Stateless AI transaction parsing

New features​

Personality quiz​

A 10-question quiz determines one of four personality types (HOTSHOT, STOCKPILER, GIVER, INDEPENDENT). Your application stores the result and passes it to plan generation, envelope weighting, money move generation, and chat completion.

Envelope weighting by personality​

Flexible envelope allocations are now weighted by personality type. STOCKPILER receives +5% goal allocation before other flexible envelopes are distributed. INDEPENDENT receives equal 25% weight across all four flexible envelopes. See Envelope System for the full weight table.

Plan tier​

Plans now include a plan_tier field (e.g., "20/80", "30/70") indicating the savings-to-spending ratio. Pass this to money move generation.


v1.0.0 β€” May 5, 2025​

Initial public release of the Ozzie API.

Features at launch​

  • Users, financial intake, plan generation, transaction parsing (text, image, PDF, spreadsheet), money moves, chat
  • Multi-language support: en, pt, es
  • Personality-aware plans via POST /plan/personalize (optimizer, planner, avoider, spender)
  • Cursor-based pagination on all list endpoints
  • Rate limiting with Retry-After and X-RateLimit-* headers

No-silent-breaking-changes policy

The Ozzie API never changes field types, removes fields, or alters behavior without a major version bump. All breaking changes receive at least 90 days of deprecation notice and a published migration guide.