fedhabase by Auni

Statements in. A ledger you can trust out.

fedhabase reads bank and mobile-money statements and returns structured, reconciled transactions — starting with M-Pesa, generalising to East African banks and wallets.

Read

Layout detected, not declared. Consumer and merchant M-Pesa today.

Verify

Every statement reconciles to the cent, or it does not pass.

Understand

Counterparties, categories and recurring obligations. In progress.

Assess

Account-level features for affordability and risk. Planned.

Arithmetic is not a matter of opinion

Most extraction tools hand you rows and leave you to trust them. A statement is self-checking: every balance follows from the one before it, and the provider prints its own totals on the page.

fedhabase walks the balance chain and cross-checks the declared summary before returning anything. A statement whose arithmetic does not hold is flagged, with the rows that broke it.

Parser bugs and edited documents both fail the same check.

Built to be read by machines

One ledger contract

Every provider and layout normalises to the same transaction shape. Amounts are exact decimals, never floats; direction carries the sign.

Refusals you can act on

A document we cannot read is refused with a reason — unknown layout, ambiguous layout, scanned, or does not reconcile. Never a guess.

Asynchronous by design

Submit a statement, get a job. A statement with two thousand rows is an ordinary case, not a timeout.

Layouts are versioned

Providers change templates without notice. Old layouts stay pinned so a statement parsed last year still reproduces.

Submit a statement

Service-to-service, with an API key. Full reference at api.fedhabase.auni.ai.

# Submit — returns a job id immediately
curl -H "X-API-Key: $FEDHA_KEY" \
     -F "file=@statement.pdf" \
     -F "account_id=acct-1" \
     https://api.fedhabase.auni.ai/v1/statements

# Poll, then fetch the ledger
curl -H "X-API-Key: $FEDHA_KEY" \
     https://api.fedhabase.auni.ai/v1/statements/$JOB/ledger