Reserves funds atomically before a deal is executed, keeps documented partner funding strictly separate from partner-executed exchanges, and records every movement in a double-entry ledger — settlement, reconciliation and audit, end to end.
Platform
Six modules, one ledger. Everything a bureau de change and its partners touch, from a customer's first request to a reconciled bank statement.
Liquidity & exchange
Real-time position per currency, reserved funds, and exchange requests from quote to execution.
Partner funding & referrals
Documented, permitted funding (Workflow A) kept strictly separate from partner-executed exchanges and referral fees (Workflow B).
Ledger & settlements
Double-entry accounting with per-currency trial balances, and settlement tracking through to completion.
Bank reconciliation
Match statements against the ledger and surface exactly what is still outstanding.
Compliance & regulatory register
KYC holds, compliance cases, and a regulatory review register that tracks unresolved questions.
Approvals & audit trail
Maker-checker approvals and an immutable, hash-chained audit log of every change.
Workflow
A shortfall doesn't get papered over — it waits, visibly, until funding is confirmed and compliance has cleared it.
Reserve
A request against low liquidity reserves funds atomically — the shortfall is visible immediately, not discovered later.
Confirm
Partner funding is proposed, reviewed by compliance, and only counted once it has actually arrived — never assumed.
Execute & settle
The exchange executes, posts to the double-entry ledger, and tracks through to settlement and bank reconciliation.
Control & audit
Sensitive actions need a second approver. Every record change is written to a hash-chained audit log that can be verified end to end. Trial balances are checked per currency, so an out-of-balance ledger is caught, not discovered months later.
$ php artisan bureau:verify
SQLite integrity_check: ok
Trial balance TZS: debits = credits — balanced
Trial balance USD: debits = credits — balanced
Audit hash chain: intact
All integrity checks passed.