Overview
Friday · 18 Aug 2026 · 14:25 UTC
Every figure below already exists in the backend today. This screen is the one thing the cashier never had: a single place to stand.
Money flow
last 7 daysWaiting on you
Clear the deskLatest Transactions
Open transactions| Time | Client | Type | Method | Amount | Status | Remarks | By |
|---|---|---|---|---|---|---|---|
| 14:22 | Daniel Johnson | Deposit | Wire | + $12,000.00 | Confirmed | Statement matched | Dana Levi |
| 14:05 | Robert Brown | Payout | Bank transfer | − $3,400.00 | 2nd approval | Same-day request | Maya Cohen |
| 13:48 | Christopher Davis | Deposit | Card | + $1,250.00 | Awaiting provider | — | — |
| 13:30 | Matthew Wilson | Adjustment | Manual | − $150.00 | Posted | Spread correction | Dana Levi |
| 13:11 | Joshua Miller | Deposit | USDT · TRC20 | + $5,000.00 | Txid submitted | 1 confirmation left | — |
The CRM client list, re-cut for money: balance, equity, credit and verification first — trading detail stays in the CRM.
| Client | Balance | Equity | Credit | KYC | Status |
|---|---|---|---|---|---|
Daniel Johnson 104580 · GB |
$12,450.75 | $12,450.75 | $0.00 | Approved | Active |
Michael Smith 104581 · US |
$8,500.00 | $8,315.20 | $500.00 | Approved | Active |
James Williams 104582 · CA |
$0.00 | $0.00 | $0.00 | Docs missing | Inactive |
Robert Brown 104583 · AU |
$24,850.30 | $24,650.10 | $0.00 | Approved | Active |
Matthew Wilson 104586 · US |
$6,200.00 | $6,150.35 | $0.00 | Approved | Risk review |
Andrew Taylor 104587 · GB |
$0.00 | $0.00 | $0.00 | Approved | Blocked |
Joshua Miller 104588 · SG |
$9,100.20 | $9,050.20 | $0.00 | Approved | Active |
All three rails share one payment-intent lifecycle. Card and crypto are complete in the backend and switch on with a flag and a signed provider.
| Ref | Client | Method | Amount | Status | Age | Action |
|---|---|---|---|---|---|---|
| WIRE-8F42K9 | Daniel Johnson | Bank wire | $12,000.00 | Client says sent | 3h 12m | |
| WIRE-2C77M1 | Robert Brown | Bank wire | $25,000.00 | Client says sent | 1h 40m | |
| WIRE-9A03T5 | Michael Smith | Bank wire | $3,200.00 | Awaiting transfer | 22m | |
| PSP-5D19QX | Christopher Davis | Card · checkout | $1,250.00 | Awaiting provider | 6m | |
| CRY-77B2LK | Joshua Miller | USDT · TRC20 | $5,000.00 | Txid submitted | 14m | |
| WIRE-4K88ZZ | Matthew Wilson | Bank wire | $900.00 | Confirmed | yesterday |
Four-eyes payouts: two different operators must approve, the money is reserved from the moment the client files, and nobody can approve their own request.
| Client | Amount | Destination | 1st approval | Reserved | Action |
|---|---|---|---|---|---|
Robert Brown 104583 · filed 2h ago |
$3,400.00 | Bank transfer DE89 •••• 3241 |
Maya Cohen · 1h ago | Held | |
Joshua Miller 104588 · filed 4h ago |
$1,900.00 | USDT · TRC20 TQ5x •••• 9f2a |
Dana Levi · 3h ago | Held | |
Michael Smith 104581 · filed 20m ago |
$800.00 | Bank transfer GB12 •••• 7788 |
None yet | Held |
Every money row in one register: deposits, payouts, credit and adjustments, with the ledger entry behind each one.
| ID | Time | Client | Type | Method | Amount | Balance | Status | Remarks |
|---|---|---|---|---|---|---|---|---|
TX-99241 LT-4471 | 14:22 | Daniel Johnson | Deposit | Wire | + $12,000.00 | $24,450.75 | Completed | Statement matched |
TX-99240 hold | 14:05 | Robert Brown | Payout | Bank | − $3,400.00 | $21,450.30 | 2nd approval | Same-day request |
TX-99239 LT-4469 | 13:30 | Matthew Wilson | Adjustment | Manual | − $150.00 | $6,050.00 | Posted | Spread correction |
TX-99238 LT-4468 | 12:58 | Michael Smith | Credit | Welcome credit | + $100.00 | $8,600.00 | Posted | First deposit |
TX-99237 LT-4466 | 12:14 | Christopher Davis | Deposit | Card | + $2,000.00 | $17,750.45 | Completed | — |
TX-99236 released | 11:40 | Andrew Taylor | Payout | Bank | − $1,000.00 | $0.00 | Rejected | Name mismatch |
Nothing behind this screen yet. It moves money between two accounts of the same client, or between a client and a house account, without touching a payment rail.
What it would take
- A transfer kind in the ledger. The double-entry engine already exists, so this is a new transfer type, not a new engine.
- An FX decision from you. Same-currency transfers are trivial; cross-currency needs a rate source and a spread policy.
- A permission slug. Moving money between accounts is not the same right as approving a deposit.
- Limits. Whether a transfer can pull an account below its margin requirement is a risk rule, not a cashier rule.
The rails themselves, gathered from four places in Settings. Turning a rail on is a decision, so each one shows exactly what it is still missing.
Bank accounts
LiveCard provider
Waiting on a contractCrypto addresses
Pool is emptyProvider events
Replay history| Event | Type | Result | |
|---|---|---|---|
| evt_8f21 | payment.succeeded | Processed | 2m |
| evt_8f19 | payment.failed | Recorded | 18m |
| evt_8f04 | payment.succeeded | Failed · retry |
A card rail eventually brings disputes. This is what the desk would need on the day the first one lands — nothing here exists yet.
Dispute queue
illustrative| Case | Client | Amount | Reason | Stage | Due |
|---|---|---|---|---|---|
| CB-0012 | C. Davis | $2,000.00 | Not received | Evidence | 21 Aug |
| CB-0011 | M. Smith | $1,250.00 | Unrecognised | Submitted | — |
What it would take
- A signed PSP first. Disputes arrive as provider events, so this cannot exist before the card rail does.
- A reversal path in the ledger. Money already credited must be clawed back as its own entry, never by editing the original.
- An evidence locker. KYC documents, the deposit trail and the login history, bundled per case.
- A deadline clock. Card schemes give a fixed window; missing it loses the case by default.
Credit types and promo codes already exist as settings. What does not exist is the thing that awards credit, tracks the condition attached to it, and releases or claws it back.
Credit types
LivePromo codes
LiveHow each type behaves
the three new ones differ in what the client actually owns| Credit type | Client can trade it | Client can withdraw it | Comes back |
|---|---|---|---|
| Loan credit | Yes | No, until repaid | Repaid from profit or on demand |
| Deposit credit | Yes | Only after its condition | Clawed back on early withdrawal |
| Ledger / Trezor credit | Yes | On confirmation | Reversed if the transfer never confirms |
The engine that is missing
Not builtToday credit is a manual adjustment. An engine would award on a trigger — first deposit, a code, a tier, a hardware-wallet transfer — and post it as its own transaction kind.
Most credit carries a condition: a wagering target, a repayment, or an on-chain confirmation. Nothing tracks any of them today, which is why every credit here is effectively unconditional.
When the condition is met the credit becomes withdrawable; when the client withdraws early, or a transfer fails to confirm, it is removed. Both are ledger entries, not balance edits.
The broker's own money, not the clients'. Every account below is already a real account in the ledger — this is the view nobody can see yet.
House accounts
the other side of every client entryOpen in ledger| Account | What sits here | Balance | Last movement |
|---|---|---|---|
| bank_clearing:USD | Wires confirmed, not yet swept to the operating account | $214,900.00 | 14:22 |
| psp_clearing:USD | Card deposits credited to clients, cash still at the provider | $56,420.00 | 13:48 |
| crypto_settlement:USD | USDT received on chain, awaiting conversion | $14,000.00 | 13:11 |
| house_expense:psp_fees | Provider fees, booked per payment as it lands | − $1,842.30 | 13:48 |
| house_credit:USD | Credit granted that has not been repaid or cleared | $38,500.00 | 12:58 |
| payout_inflight:USD | Reserved for payouts approved but not yet paid | $9,700.00 | 14:05 |
Where the money is
by railClosing the loop: proving that the money the provider says it sent is the money that actually reached the bank. Nothing here exists yet.
Expected settlements
illustrative| Period | Gross | Fees | Net due | Expected | State |
|---|---|---|---|---|---|
| 14–15 Aug | $31,200.00 | − $655.20 | $30,544.80 | 16 Aug | Reached the bank |
| 16–17 Aug | $24,100.00 | − $506.10 | $23,593.90 | 19 Aug | On the way |
| 18 Aug | $1,120.00 | − $23.52 | $1,096.48 | 20 Aug | Still open |
What it would take
- A signed provider. Settlement reports come from the PSP; there is nothing to reconcile against until one exists.
- Bank statement import. Today nobody tells the system that a wire landed — a person reads the statement and clicks confirm.
- An auto-match rule. Provider payout ↔ bank credit ↔ the clearing account, matched by amount and date, with the leftovers queued for a human.
- An alert with teeth. A settlement that is late by more than one cycle should reach a person outside the app, not sit as a pill on a screen.
The double-entry ledger is live and mirroring every money movement, but it has no screen — this is what the operator would see. It becomes the source of truth once the shadow week ends clean.
Recent entries
every row has two legs and always sums to zero| Entry | Debit | Credit | Amount | Source |
|---|---|---|---|---|
| LT-4471 | bank_clearing:USD | wallet:104580 | $12,000.00 | Wire confirm |
| LT-4470 | wallet:104583 | payout_inflight:USD | $3,400.00 | Payout hold |
| LT-4469 | wallet:104586 | house_adjust:USD | $150.00 | Adjustment |
| LT-4468 | house_credit:USD | wallet:104581 | $100.00 | Credit |
| LT-4466 | psp_clearing:USD | wallet:104585 | $2,000.00 | Card deposit |
Chain integrity
IntactEach entry carries the hash of the one before it, so a silent edit anywhere in the history breaks the chain from that point on.
- Accounts checked
- 1,259
- Mismatches
- 0
- Orphaned holds
- 0
- Next run
- Tomorrow 06:00
The finance reports that already exist, pulled next to the desk that needs them instead of living two clicks away under Reports.
Deposits vs. payouts
this monthFirst-time deposits
this monthScheduled to your inbox
Manage schedulesWho touched money, when, from where. Written on every money action and never editable — this is the record a regulator or a partner asks for.
| When | Operator | Action | Subject | Amount | Origin |
|---|---|---|---|---|---|
| 14:22:07 | Dana Levi | Confirmed wire deposit | WIRE-8F42K9 | $12,000.00 | 88.11.4.20 · Chrome |
| 14:05:41 | Maya Cohen | Gave 1st approval | WD-3391 | $3,400.00 | 88.11.4.31 · Chrome |
| 13:30:12 | Dana Levi | Posted adjustment | TX-99239 | $150.00 | 88.11.4.20 · Chrome |
| 13:02:55 | System | Reconciliation passed | RECON-0818 | — | scheduler |
| 11:40:03 | Maya Cohen | Rejected payout | WD-3388 | $1,000.00 | 88.11.4.31 · Chrome |
| 09:14:22 | Ben Fox | Changed bank account visibility | BANK-02 | — | 88.11.4.9 · Safari |
The eleven cashier rows that sit under the general Settings hub today. They belong to the desk that uses them, not to a list shared with email templates and mobile config.