My App
Getting Started

Core Concepts

Five things to understand before you dive in.

Flow is built on five simple ideas. Once you get these, everything else clicks.

1. Accounts

An account is anywhere your money lives. You can have as many as you want — bank accounts, wallets, credit cards, crypto holdings, savings jars.

Every account has a balance, a type, and a currency.

The five account types:

TypeWhat it is
cashPhysical money — your wallet, cash on hand
bankA bank account — checking, current, etc.
creditA credit card — balance here means you owe that amount
savingsA savings account or goal
cryptoAny cryptocurrency holding

2. Transactions

A transaction is any movement of money. There are three kinds:

TypeWhat it means
incomeMoney coming in — salary, freelance payment, gift
expenseMoney going out — rent, groceries, subscriptions
transferMoney moving between your own accounts — e.g. bank → savings

3. Categories

Categories let you group transactions by what they're for — Rent, Groceries, Salary, etc. You create your own, so they match your actual life.

Each category is typed as either income or expense. A "Salary" category only appears when recording income. A "Rent" category only appears for expenses.

4. Tags

Tags are free-form labels you attach to transactions. Unlike categories (which are structured), tags are flexible — use them to group things categories can't capture.

Example: Category = Food & Drink, Tags = bali-trip, work-lunch

5. Amounts are stored as integers

Amounts in Flow are stored as the smallest unit of the currency — no decimal points internally.

  • For IDR: 50000 = Rp 50,000 (IDR has no sub-units)
  • For USD: 599 = $5.99 (cents)
  • For BTC: amounts are stored as satoshis

You'll never see raw numbers like this in the app — Flow always displays amounts formatted correctly for your currency. This is just good to know if you're ever building on top of the API.

The occurred_at date

Every transaction has two dates:

  • occurred_at — when the transaction actually happened in real life (the date on your receipt, the day your salary landed)
  • created_at — when you recorded it in Flow

These can be different. If you find a receipt from last Tuesday, record the transaction with last Tuesday's date. Your analytics will be accurate.

On this page