Overview

Friday · 18 Aug 2026 · 14:25 UTC

Dana Levi
Finance officer
DL
Live

Every figure below already exists in the backend today. This screen is the one thing the cashier never had: a single place to stand.

Deposits today
$285,320.50
32 transactions · 4 awaiting confirm
Payouts today
$152,130.00
18 paid · 3 in the approval queue
Net flow
$133,190.50
▲ 12.4% vs. yesterday
Client balances
$2,450,890.75
1,259 funded accounts
Needs a human
7
Oldest waiting 3h 12m

Money flow

last 7 days
In Out
SatSunMonTueWedThuToday

Waiting on you

Clear the desk
Wires to confirm
Oldest 3h 12m · $41,200 total
4
Payouts needing a 2nd approval
You gave the 1st on one of them
3
Provider events to review
1 failed webhook · retry available
1
Ledger drift
Reconciled 06:00 · books agree
0

Latest Transactions

Open transactions
TimeClientTypeMethodAmountStatusRemarksBy
14:22Daniel JohnsonDepositWire+ $12,000.00ConfirmedStatement matchedDana Levi
14:05Robert BrownPayoutBank transfer− $3,400.002nd approvalSame-day requestMaya Cohen
13:48Christopher DavisDepositCard+ $1,250.00Awaiting provider
13:30Matthew WilsonAdjustmentManual− $150.00PostedSpread correctionDana Levi
13:11Joshua MillerDepositUSDT · TRC20+ $5,000.00Txid submitted1 confirmation left
Live

The CRM client list, re-cut for money: balance, equity, credit and verification first — trading detail stays in the CRM.

ClientBalanceEquityCreditKYCStatus
Daniel Johnson
104580 · GB
$12,450.75$12,450.75$0.00 ApprovedActive
Michael Smith
104581 · US
$8,500.00$8,315.20$500.00 ApprovedActive
James Williams
104582 · CA
$0.00$0.00$0.00 Docs missingInactive
Robert Brown
104583 · AU
$24,850.30$24,650.10$0.00 ApprovedActive
Matthew Wilson
104586 · US
$6,200.00$6,150.35$0.00 ApprovedRisk review
Andrew Taylor
104587 · GB
$0.00$0.00$0.00 ApprovedBlocked
Joshua Miller
104588 · SG
$9,100.20$9,050.20$0.00 ApprovedActive
Showing 1–7 of 1,259 clients
123126
Wire live Card & crypto built, dark

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.

Bank wire
$214,900
Live 4 awaiting confirmation
Card
$56,420
Needs a provider
Crypto · USDT
$14,000
Needs an address pool
RefClientMethodAmountStatusAgeAction
WIRE-8F42K9Daniel JohnsonBank wire $12,000.00Client says sent3h 12m
WIRE-2C77M1Robert BrownBank wire $25,000.00Client says sent1h 40m
WIRE-9A03T5Michael SmithBank wire $3,200.00Awaiting transfer22m
PSP-5D19QXChristopher DavisCard · checkout $1,250.00Awaiting provider6m
CRY-77B2LKJoshua MillerUSDT · TRC20 $5,000.00Txid submitted14m
WIRE-4K88ZZMatthew WilsonBank wire $900.00Confirmedyesterday
Confirming a wire is the only step that moves money. Every confirmation is written to the money audit with your name, IP and the reference code.
Live

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.

3
In review
2
Needs 2nd approval
1
On hold
2
Paying out
18
Completed today
ClientAmountDestination1st approvalReservedAction
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
The second approver must be a different person than the first — the button is locked, not hidden, so the rule is visible.
Live

Every money row in one register: deposits, payouts, credit and adjustments, with the ledger entry behind each one.

Deposits
IDTimeClientTypeMethodAmountBalanceStatusRemarks
TX-99241
LT-4471
14:22Daniel JohnsonDepositWire+ $12,000.00$24,450.75CompletedStatement matched
TX-99240
hold
14:05Robert BrownPayoutBank− $3,400.00$21,450.302nd approvalSame-day request
TX-99239
LT-4469
13:30Matthew WilsonAdjustmentManual− $150.00$6,050.00PostedSpread correction
TX-99238
LT-4468
12:58Michael SmithCreditWelcome credit+ $100.00$8,600.00PostedFirst deposit
TX-99237
LT-4466
12:14Christopher DavisDepositCard+ $2,000.00$17,750.45Completed
TX-99236
released
11:40Andrew TaylorPayoutBank− $1,000.00$0.00RejectedName mismatch
Showing today · 32 deposits, 18 payouts, 4 adjustments
123
Not built

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.

Daniel Johnson · Live USD · $12,450.75
Daniel Johnson · Live EUR · €2,180.00
$ 2,000.00
Mid-market at execution · 0.9174
Client asked to fund the EUR account from USD
Both legs post to the ledger in one entry — the books can never see half a transfer.

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.
Banks live Card & crypto dark

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

Live
Main EUR / USD
DE00 1234 •••• · SWIFT ABCDEF
Published
GBP collections
GB44 •••• 8891
Hidden
Add a bank account
Shown to clients on the deposit screen

Card provider

Waiting on a contract
Webhook endpoint minted Ready
Signature scheme HMAC-SHA256
Checkout URLNot set
Webhook secretNot set
Provider signedCommercial decision
The card layer is provider-agnostic: whichever PSP is signed only needs a thin mapping onto the envelope already defined.

Crypto addresses

Pool is empty
USDT · TRC20
0 addresses loaded · reusable, no keys held here
Load addresses
USDT · ERC20
Not enabled
Off

Provider events

Replay history
EventTypeResult
evt_8f21payment.succeededProcessed2m
evt_8f19payment.failedRecorded18m
evt_8f04payment.succeededFailed · retry
Not built

A card rail eventually brings disputes. This is what the desk would need on the day the first one lands — nothing here exists yet.

Open disputes
2
$3,250 at stake
Evidence due
1
In 3 days
Win rate · 90d
No history yet

Dispute queue

illustrative
CaseClientAmountReasonStageDue
CB-0012C. Davis$2,000.00Not receivedEvidence21 Aug
CB-0011M. Smith$1,250.00UnrecognisedSubmitted

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.
Types & codes live Engine not built

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

Live
Welcome credit
100% up to $500 · awarded on first deposit
Active
Reload credit 25%
On deposits over $1,000
Active
Loan credit
Repayable · reduces withdrawable balance until cleared
Active
Deposit credit
Matches an incoming deposit · counts as tradable margin
Active
Ledger / Trezor credit
Credited against a hardware-wallet transfer, pending on-chain confirmation
Active
Loyalty tier 2
Manual award only
Paused

Promo codes

Live
%
SUMMER26
Welcome credit · 41 redemptions
Live
%
RETURN10
Reload credit 25% · 7 redemptions
Live
%
IB-KAPLAN
Partner code · expired 01 Aug
Expired

How each type behaves

the three new ones differ in what the client actually owns
Credit typeClient can trade itClient can withdraw itComes 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
These three columns are the whole reason credit needs an engine — none of them can be expressed as a balance edit.

The engine that is missing

Not built
Award

Today 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.

Condition

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.

Release or claw back

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.

Accounts exist, no screen

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.

Bank clearing
$214,900
Wires received, not yet swept
Provider clearing
$56,420
Card money the PSP still owes us
Crypto settlement
$14,000
USDT received, not converted
Provider fees · MTD
$1,842
2.1% of card volume
Credit outstanding
$38,500
Granted to clients, not yet cleared

House accounts

the other side of every client entryOpen in ledger
AccountWhat sits hereBalanceLast movement
bank_clearing:USD Wires confirmed, not yet swept to the operating account $214,900.0014:22
psp_clearing:USD Card deposits credited to clients, cash still at the provider $56,420.0013:48
crypto_settlement:USD USDT received on chain, awaiting conversion $14,000.0013:11
house_expense:psp_fees Provider fees, booked per payment as it lands − $1,842.3013:48
house_credit:USD Credit granted that has not been repaid or cleared $38,500.0012:58
payout_inflight:USD Reserved for payouts approved but not yet paid $9,700.0014:05
Counter accounts run negative by convention — every client credit has a house debit facing it, which is what makes the books balance.

Where the money is

by rail
At the bank
Available same day
73%
At the provider
Lands on the settlement cycle
19%
On chain
Needs conversion before it is usable
5%
Reserved for payouts
Committed, cannot be spent twice
3%
A fifth of the desk's money is not actually in the bank yet. That is normal for cards — it only becomes a problem if nobody is watching the settlement clock.
Not built

Closing 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
PeriodGrossFeesNet dueExpectedState
14–15 Aug$31,200.00− $655.20$30,544.8016 AugReached the bank
16–17 Aug$24,100.00− $506.10$23,593.9019 AugOn the way
18 Aug$1,120.00− $23.52$1,096.4820 AugStill open
The row that matters is the one that never turns green — money the provider reported and the bank never received.

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.
Running in shadow

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.

Drift vs. balances
$0.00
Reconciled today 06:00
Entries today
108
54 transfers, both legs
Shadow week
6 / 7
Clean days before cutover

Recent entries

every row has two legs and always sums to zero
EntryDebitCreditAmountSource
LT-4471bank_clearing:USDwallet:104580$12,000.00Wire confirm
LT-4470wallet:104583payout_inflight:USD$3,400.00Payout hold
LT-4469wallet:104586house_adjust:USD$150.00Adjustment
LT-4468house_credit:USDwallet:104581$100.00Credit
LT-4466psp_clearing:USDwallet:104585$2,000.00Card deposit

Chain integrity

Intact

Each entry carries the hash of the one before it, so a silent edit anywhere in the history breaks the chain from that point on.

Last 12 hours verified · 0 breaks
Daily reconciliation
Accounts checked
1,259
Mismatches
0
Orphaned holds
0
Next run
Tomorrow 06:00
Live

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 month
$4.21Min$2.66Mout

First-time deposits

this month
184new depositors · avg $1,340
Wire
Median $2,100
96
Card
Median $420
71
Crypto
Median $980
17

Scheduled to your inbox

Manage schedules
Daily cashier close
Every day 23:00 · finance@ · CSV + PDF
On
Weekly net flow by rail
Mondays 07:00 · management@
On
Live

Who touched money, when, from where. Written on every money action and never editable — this is the record a regulator or a partner asks for.

WhenOperatorActionSubjectAmountOrigin
14:22:07Dana LeviConfirmed wire depositWIRE-8F42K9$12,000.0088.11.4.20 · Chrome
14:05:41Maya CohenGave 1st approvalWD-3391$3,400.0088.11.4.31 · Chrome
13:30:12Dana LeviPosted adjustmentTX-99239$150.0088.11.4.20 · Chrome
13:02:55SystemReconciliation passedRECON-0818scheduler
11:40:03Maya CohenRejected payoutWD-3388$1,000.0088.11.4.31 · Chrome
09:14:22Ben FoxChanged bank account visibilityBANK-0288.11.4.9 · Safari
Append-only. Rows cannot be edited or deleted from anywhere in the product, including here.
Live

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.

Money rules

Transaction handling
Which roles decide which transaction type, per business unit
Deposit & payout limits
Minimums, maximums and per-day caps
Void a transaction
Reverse a posted row · always leaves an audit trail
Account tags
Labels used across the trading book

Who may do what

Confirm a deposit
Finance officer, CRM admin, owner
3 roles
First payout approval
Any operator with the payout right
5 roles
Second payout approval
Finance officer, CRM admin, owner only
3 roles
Post an adjustment
Separate right from approving deposits
2 roles

Switches that are still off

Your call
Card deposits
Built and reviewed · needs a signed provider
Off
Crypto deposits
Built · needs an address pool loaded
Off
Ledger as source of truth
Shadow week ends after 7 clean days
Day 6 of 7
Client ownership enforcement
Locks every client money call to its own account
Off