Validated finance-data tools

Messy files in.
Validated data out.

A reliability layer that turns messy bank and invoice files into validated structured data for software and automation workflows — with a confidence score and full provenance on every field.

Upload Validate Review Export

Not a converter. A reliability layer.

Deterministic parsing you can trust with financial data — every value scored, traced, and checked.

Validation & confidence

Structural, type and balance checks on every file. Each field gets a heuristic confidence score, never dressed up as certainty.

Provenance

Every output value carries where it came from: source row, parser, mapping, and every transformation applied along the way.

Review workflow

Fields the parser isn't sure about are routed to a human review queue instead of silently guessed. You stay in control of the edge cases.

Structured recovery

Wrong encodings, mixed date formats, broken headers, ambiguous columns — recovered into a clean canonical ledger without dropping rows.

How it works

Four honest steps. Nothing is inferred that can't be shown.

1

Upload

Drop a bank CSV, invoice, or text file. Type is sniffed from content, not the extension. Files stay on your server.

2

Validate

Deterministic parsers map to a canonical schema, run checks, and score each field's confidence.

3

Review

Uncertain fields surface in a review queue. Confirm or correct them; duplicates are flagged, never deleted.

4

Export

Pull clean CSV or JSON through the API or dashboard, with provenance attached for your audit trail.

Built for automation

One endpoint per tool. One envelope for every response — success or rejection.

Request

curl https://apodexa.net/api/v1/normalize_bank_csv \
  -H "Authorization: Bearer $APODEXA_KEY" \
  -F "file=@bank_202405.csv" \
  -F "locale=ja-JP" \
  -F "currency=JPY"

Response envelope

{
  "data": { "rows": 2432 },
  "validation": {
    "passed": true,
    "checks": [ "balance_reconciles", … ]
  },
  "confidence": { "transaction_date": 0.99 },
  "uncertain_fields": [],
  "provenance": { "parser": "normalize_bank" },
  "error": null
}

Amounts are decimal strings plus integer minor units — never floats. Full reference at the dashboard API tab.

Messy files in. Validated data out.

Sign in to process your first file and see every field scored and traced.

Open the dashboard