Skip to main content

Transactions

A transaction is a single financial event β€” an expense, a purchase, or an income entry. Ozzie uses GPT-4o to extract structured transaction data from natural language, images, PDFs, and spreadsheets.

What a transaction contains​

FieldTypeDescription
idUUIDOzzie-assigned identifier
amount_centsintegerAmount in cents (always positive)
currencystringISO 4217 code (e.g. USD, BRL, EUR)
categoryenumSpending category (see below)
descriptionstringShort label extracted by AI (max 60 chars)
transaction_datedateYYYY-MM-DD β€” extracted from input or defaults to today
sourceenumHow the transaction was submitted
ai_confidencefloatAI confidence score from 0.0 to 1.0
created_atdatetimeWhen Ozzie received it

Categories​

Ozzie classifies every transaction into one of 10 categories:

CategoryExamples
foodGroceries, restaurants, coffee, delivery
transportGas, Uber, bus, parking, car maintenance
housingRent, mortgage, home repairs
utilitiesElectricity, internet, water, phone bill
healthDoctor, pharmacy, gym, dental
entertainmentStreaming, movies, games, concerts
educationCourses, books, tuition, school supplies
clothingClothes, shoes, accessories
incomeSalary, freelance, dividends, refunds
otherAnything that doesn't fit the above

Input sources​

Transactions can come from 6 different sources:

SourceChannelInput format
api_textDirect APINatural language string
api_imageDirect APIBase64-encoded image (receipt/statement)
api_pdfDirect APIExtracted text from a PDF
api_spreadsheetDirect APICSV rows as plain text
whatsapp_textWhatsApp webhookMessage text from Evolution API
whatsapp_imageWhatsApp webhookReceipt photo from Evolution API

AI parsing​

When you submit "Spent $45 on groceries at Whole Foods and $5 on coffee", Ozzie returns two transactions β€” not one. GPT-4o extracts every financial event mentioned.

The ai_confidence score tells you how sure the AI was:

ScoreMeaning
0.9 – 1.0High confidence β€” clear amount, category, and date
0.7 – 0.89Good β€” some inference was needed (e.g. currency from context)
0.5 – 0.69Moderate β€” ambiguous input, may want to confirm with user
< 0.5Low β€” could not extract reliably; consider re-prompting

How transactions fuel insights​

Every stored transaction feeds into:

  • Chat context β€” the AI coach knows the user spent $X on food this month
  • Plan tracking β€” actual spend vs budgeted allocations
  • Goal progress β€” did they save/pay-down what the plan said?
  • Spending trends β€” category breakdowns over time (accessible via GET /transactions)

β†’ See Transactions API Reference