Skip to content

Importsstatements in, clean rows out

Upload bank and card statements, review the parsed rows and commit them to your ledger as one batch.

Everything you need
for statement imports

Bring statements into your workspace, review the extracted records and preserve the import history behind them.

Multiple input paths

CSV, PDF and Excel imports complement direct API ingestion and manual entry.

Reviewable results

Inspect parsed rows, resolve issues and commit a reviewed batch to your ledger.

Files
images, videos, docs
Analytics
Iceberg, time-series
Vectors
embeddings, RAG

Statement formats

Choose a parser preset for the account and statement format you are importing.

A statement import is a reviewable path into the ledger, with its source evidence and processing history kept in context.

Moneybook product noteImport workflow

Input formats
for your accounts

CSV statements

  • Store images, videos, documents, and more
  • Serve fast from a global CDN
  • Fine-grained access controls
  • Image optimizations and transformations

PDF statements

  • Apache Iceberg open table format
  • Efficient query, partition, and transform
  • Historical and time-series data
  • Optionally expose via Postgres

Excel statements

  • Store and index vector embeddings
  • Multiple distance metrics
  • Metadata filtering and similarity queries
  • RAG systems and AI-powered search

Explicit and consistent
finance APIs

Ingest records directly through the finance API or use statement uploads when that is more convenient.

// Upload an image to the "avatars" bucket
const spaceCat = event.target.files[0]
const { data, error } = await supabase
  .storage
  .from('avatars')
  .upload('space-cat.png', spaceCat)
Explore Moneybook

Keeps evidence together
with workspace access

Imports belong to an account and workspace. Membership permissions apply to their evidence and review operations.

// Moneybook API: use your configured API base URL.
fetch(apiBaseUrl + '/v1/import-batches', {
  headers: {
    'X-Spective-Api-Key': apiKey,
    'X-Spective-Workspace-Id': workspaceId
  }
}).then(response => {
  if (!response.ok) throw new Error('Request failed');
  return response.json();
});
Explore Moneybook

Build in a weekend, scale to millions