Now in pilot with partner banks

Reconciliation,
automated.

Self-hosted reconciliation across nostro / GL, mobile money, and card-scheme settlements — all in one platform, on your infrastructure.

From $24K / yr $5K 90-day pilot No per-seat fees Calculate yours
Self-hosted — your data stays yours
MFA on every login
Append-only audit log
PCI-DSS storage scope reduction
kilter.yourbank.local/dashboard
Auto-matched today
84%
↑ 9% vs last month
Pending review
23
↓ 41 items cleared
Total matched
GHS 4.2M
Today's settlements
Open items
7
2 approaching SLA
Scheme Ref File source Settlement date Amount (GHS) Status
RRN-0049281 Visa Base II 2026-05-09 2,450.00 Matched
RRN-0049282 MTN MoMo B2W 2026-05-09 870.00 Matched
MT940-28831 SWIFT MT940 2026-05-09 18,200.00 Review
RRN-0049291 Mastercard IPM 2026-05-09 1,120.50 Mismatch
FLEX-2026-441 Flexcube GL 2026-05-09 52,000.00 Matched
Works with the files banks actually send
SWIFT MT940
SWIFT MT950
camt.053
camt.054
Visa Base II
Mastercard IPM
Verve GhIPSS
MTN MoMo
M-Pesa Safaricom
Airtel Money
Telcel Cash
Flexcube XLSX
T24 / Finacle
BYO CSV/XLSX
SWIFT MT940
SWIFT MT950
camt.053
camt.054
Visa Base II
Mastercard IPM
Verve GhIPSS
MTN MoMo
M-Pesa Safaricom
Airtel Money
Telcel Cash
Flexcube XLSX
T24 / Finacle
BYO CSV/XLSX
Built for banks

Pilot-tested,
audit-ready

Real numbers from real ingestion. Every claim verifiable from the codebase or a pilot conversation.

14+
File-format parsers shipped
248
Automated tests · 100% pass
85%
Auto-match at Tier 1 on pilot data
0
Phone-home telemetry endpoints
5
Mobile-money operators pre-seeded
300MB
Single-upload cap · 250 MB card files
1-2min
File ingest — any format, any size
Users on every plan · no per-seat fees

We trialled Kilter against our legacy reconciliation tool for six weeks. What used to be a full-day exercise across two people finished before mid-morning. The audit trail alone made the case for switching.

Treasury Manager
Tier-2 bank, Ghana Pilot partner

The self-hosted posture is what got it through our InfoSec review without weeks of back-and-forth. No phone-home, no SaaS data residency questions. The encryption story for TOTP secrets was already where we needed it.

Head of Information Security
Payments processor, Nigeria Pilot partner

We needed something that handled both our SWIFT statements and the MTN MoMo wallet feeds in the same operator queue. Most tools force you to run two reconciliations. Kilter lets one ops person work both before the morning stand-up.

Operations Lead, Mobile Money
Tier-3 bank, East Africa Pilot partner
Pre-launch security review · April 2026
ISO 20022 native — camt.053 / camt.054
PCI-DSS storage scope reduction by design
Built in Accra · for African banking
Three streams, one platform

Replaces 2–3 separate
reconciliation tools

Same operator UI, same audit log, same role model, same deployment. A team trained on nostro recon can immediately work the mobile-money or cards queue.

Nostro / GL
Pairs SWIFT statements (MT940/950, camt.053/054) and ISO 20022 messages against your core-banking GL extract. 4-tier matching engine — 75–85% auto-match on typical pilot data.
MT940 / MT950 camt.053 / camt.054 Flexcube XLSX T24 / Finacle Oracle DB pull
Mobile Money
Ingests operator B2W / W2B CSV feeds directly. Pre-seeded profiles for the major West African networks. Bind a wallet account in the BYO formats UI and start ingesting the same day.
MTN MoMo M-Pesa Safaricom Airtel Money Telcel Cash GhIPSS
Card Scheme
N-way matching on scheme-ref: auth → clearing → settlement. PCI-DSS storage scope reduction built-in — full PAN never persists, masked at the parser seam.
Visa Base II Mastercard IPM Verve / GhIPSS Switch TSV Masked PAN
The matching engine

Match aggressively,
surface only what's ambiguous

Four tiers applied strongest-first. Operators review exceptions; the engine handles the rest — including tolerance windows, FX rounding, and date drift.

T1
Exact reference match
SWIFT TRN / scheme ref + settlement amount within tolerance
75–85%
typical auto
T2
Amount + date window
Matching settlement amount within ±N days; configurable per account
+8–12%
T3
Partial reference / narrative
Substring or normalised reference match with amount confirmation
+3–6%
T4
Human review queue
Remaining items ranked by confidence — operator confirms or disputes
100%
coverage
Bring-your-own tolerance per account: date window (days), amount delta (absolute or bps), FX spread. Set once in the account profile, applied across all three streams.
75–85%
Auto-matched at Tier 1 in typical pilot data
Leaving operators to focus on genuine exceptions, not routine lookups
1–2 min
per file ingested, any format
50%
close-cycle time reduction target
🔄
Idempotent re-runs
Re-running the engine on already-matched records is safe — it won't flip 'disputed' or 'written_off' items. Operator decisions always win.
Getting started

From file drop to signed certificate
in four steps

01
Drop the file
Upload via the UI, POST to the API, or let the watched-folder scanner auto-ingest from messages/. Any format Kilter knows, or map your own.
02
Engine matches
Four-tier engine runs automatically. 75–85% of transactions matched in seconds. Exceptions ranked by confidence and surfaced to the review queue.
03
Operator decides
Confirm, reject, or dispute in one click. Maker / checker workflow enforced. Every decision logged with timestamp, user, and reason.
04
Sign the certificate
Month-end reconciliation certificate signed by authorised approvers. Frozen snapshot — the figures never silently shift after sign-off.
Security & compliance

Pen-tested, hardened,
audit-ready

Your CISO gets a full security pack at security/. Built for regulated financial institutions from the ground up.

TOTP MFA on every login
Microsoft Authenticator out of the box. Active Directory / LDAPS as optional second layer per user. TOTP replay cache prevents 30-second code reuse.
Non-root, read-only rootfs
Container runs as UID 10001. All Linux capabilities dropped. no-new-privileges enforced. Only mounted volumes and /tmp are writable.
Encrypted at rest
TOTP secrets and SMTP credentials protected with Fernet (AES-128-CBC + HMAC-SHA256). Key lives in your secret manager, never baked into source.
Append-only audit log
Every login, upload, match decision, dispute, and export is logged with UTC timestamp, acting user, and IP. Immutability enforced at the database trigger level.
PCI-DSS storage scope reduction
Full PAN never persists — masked to first6+last4 at the parser seam. No SAD (CVV, track, PIN) accepted. Free-text scanned and redacted on ingest.
Self-hosted. No phone-home.
Runs on your VM or private cloud. No telemetry. No data leaves your infrastructure. You own the encryption key, you own the data.
Security headers on every response: HSTS (preload-eligible after 24 hours), CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy. Rate limit on /login (10 attempts / minute per IP). 300 MB streaming upload cap with chunked-write (covers 250 MB card-switch files).
Pricing

Simple, transparent,
per-account pricing

One account slot covers any stream — nostro, wallet, or card-acquirer. Start with a free pilot; convert on your terms.

Pilot
Free · 60–90 days
Real evaluation
$0
Your data, your VM, your terms. Walk away if we miss the targets.
  • Up to 10 nostro + 10 GL accounts
  • Real (or anonymised) production data
  • All three reconciliation streams
  • Success criteria pinned upfront
  • 50% discount on Year 1 if targets hit
  • 25% discount on Year 2 (design partner)
  • Data deleted on request if you walk
Start a pilot conversation
See full pricing breakdown with GHS / USD toggle

Try it on your own data — today.

Request a demo URL and drop in your own SWIFT, Flexcube, mobile-money, or card-switch file. We'll load it, run the engine, and show you what the first week looks like. Bring two questions and a sceptic.

Contact: timelessnypotech@outlook.com Response within 1 business day
Live demo — match queue
GHS 4,200.00
MT940-0019281
Auto
GHS 870.50
MTN-B2W-2049
Auto
GHS 18,200.00
RRN-0049291
Review
GHS 1,100.00
FLEX-2026-441
Auto
84% matched · 23 items pending · 7 open
FAQ

Common questions

Does Kilter work without internet access?
Yes. Kilter is entirely self-hosted and has no phone-home telemetry. It works fully air-gapped on your VM or private cloud. Font resources are optional and can be proxied or bundled internally.
What database does it use?
SQLite by default (zero-config, WAL mode, hot backup API). MySQL is fully supported via DATABASE_URL env var — suitable for multi-tenant or high-concurrency deployments. See MYSQL.md in the package.
How do I handle a file format we invented ourselves?
Use the BYO CSV/XLSX column-mapping wizard in the UI. Map your columns once, save the profile, bind it to an account. Kilter will parse every future file from that account using that profile.
What if the engine misses a match?
Operators can manually confirm any unmatched item directly from the review queue. The decision is logged with timestamp, user, and reason. Matched-at and matched-by are stamped on the record.
Can I run multiple workers for performance?
Single-worker is strongly recommended (default). The in-process TOTP replay cache isn't shared across workers — multi-worker risks OTP reuse attacks. A Redis-backed store is on the roadmap for high-throughput deployments.
How does Active Directory / LDAP integration work?
Set KILTER_LDAP_URL, KILTER_LDAP_BASE_DN, and optional CA bundle. Then flip individual users from local to ldap in the Users admin page. AD password becomes the first factor; TOTP remains the second. See LDAP.md for the full guide.
Is there an API?
Yes. Cards files are ingested via POST /cards/files. The full FastAPI spec is self-documented at /docs (Swagger UI) and /redoc on your deployed instance.
What's the upgrade path?
git pull && docker compose build --pull && docker compose up -d. Schema is idempotent — init_db() runs on startup and applies any new migrations in-place. No manual migration step.