fobs stm statements

fobs stm statements <action> [target] [options]
ActionDescription
listList uploaded statements
show <id>Show one statement
download <id>Download the original uploaded file
extracted <id>Show parsed transactions + metadata
rename <id> <name>Rename a statement (file_name)
update <id>Update period dates, balances, or review status
archive <id>Hide from default list (reversible)
unarchive <id>Restore archived statement
retry <id>Re-run processing from read_file
delete-transactions <id>Drop linked transactions only
delete <id>Hard delete (fails if linked transactions exist)

statements list

fobs stm statements list                                # active only
fobs stm statements list --account acc123
fobs stm statements list --period-from 2026-04-01 --period-to 2026-06-30
fobs stm statements list --file-type pdf
fobs stm statements list --parser-type hdfc_savings__xlsx
fobs stm statements list --step uploaded                # pipeline stage
fobs stm statements list --period-source extracted
fobs stm statements list --period-missing               # likely-failed parses
fobs stm statements list --archived archived            # all | active (default) | archived
fobs stm statements list --fields id,file_name,step,error,opening_balance,closing_balance
fobs stm statements list --totals                       # count + by-file-type + total size

# Export — auto-paginates up to 15000 rows
fobs stm statements list --format csv --output stmts.csv
fobs stm statements list --format json --output stmts.json

Flags

FlagDefaultDescription
--account <id>Filter to one account
--period-from <YYYY-MM-DD>Period overlap filter — start
--period-to <YYYY-MM-DD>Period overlap filter — end
--file-type <ext>csv, pdf, xlsx, xls
--parser-type <slug>Exact parser identifier (e.g. hdfc_savings__xlsx)
--step <step>Filter by pipeline stage (see below)
--period-source <src>extracted, computed, user_entered, user_updated, unknown
--period-missingShorthand for statements where period_start failed to extract
--archived <mode>activeactive, archived, or all
--fields <list>default columnsComma-separated field names
--totalsPrint count, breakdown by file_type, total bytes
--page <n> / --limit <n>1 / 100Table paging only
--format <fmt> / --output <path>table / stdoutExport to CSV / JSON file

Default Columns

ID, FILE, ACCOUNT, PERIOD START, PERIOD END, SIZE, PARSER, STEP.

Available Fields

id, file_name, mime_type, file_type, file_size, parser_type, step, error, account, account_id, account_name, is_archived, created_at, period_start, period_end, opening_balance, closing_balance, data_source, review.

Pipeline Steps

uploaded, read_file, identify_statement, parse_statement, detect_account, create_transactions, complete. See Statement Object for what each step means.

Notes

  • Sort: Fixed created_at DESC server-side.
  • Period filter is an overlap filter — it matches statements whose period intersects the range, not statements wholly inside it.
  • --period-missing is a quick way to find parses that failed to extract a period (typically broken or unknown formats).
  • Balancesopening_balance / closing_balance are raw milli-units like transactions: divided by 1000 in table view, preserved as-is in CSV/JSON.
  • file_size — rendered as B / KB / MB in the table; CSV/JSON keep raw bytes.
  • Records with missing PERIOD START / PERIOD END typically failed to parse — inspect with show --json.

statements show <id>

fobs stm statements show stmt789                        # metadata only
fobs stm statements show stmt789 --json                  # includes parsed_data + raw_data

statements download <id>

Streams the original uploaded file. The output filename defaults to the server-provided Content-Disposition filename in the current directory.

fobs stm statements download stmt789
fobs stm statements download stmt789 --output ~/Downloads/jan.pdf
fobs stm statements download stmt789 --force            # overwrite existing
fobs stm statements download stmt789 --print-url        # print URL, don't download

statements extracted <id>

Shows what the parser produced (parsed transactions + metadata). Useful for debugging parser output without ingesting another copy.

fobs stm statements extracted stmt789
fobs stm statements extracted stmt789 --limit 100       # show more transactions
fobs stm statements extracted stmt789 --raw             # dump raw_data instead
fobs stm statements extracted stmt789 --json            # full parsed_data as JSON

Mutations

fobs stm statements rename stmt789 "HDFC Savings - Jan 2026.pdf"

fobs stm statements update stmt789 --period-start 2026-01-01 --period-end 2026-01-31
fobs stm statements update stmt789 --opening 5000.50 --closing 4825.75
fobs stm statements update stmt789 --review-done true

fobs stm statements archive stmt789                     # reversible soft-hide
fobs stm statements unarchive stmt789
fobs stm statements retry stmt789                       # re-run pipeline from read_file
fobs stm statements delete-transactions stmt789         # drop linked transactions only
fobs stm statements delete stmt789                      # hard delete; errors if linked txns
fobs stm statements delete stmt789 -y                   # skip confirmation

Listing Transactions From One Statement

To list the transactions extracted from a specific statement, filter the transactions list:

fobs stm transactions list --statement stmt789