Top up your house credit
Put money on your account with a card, and see it land as a balanced ledger posting.
Owned by Member · 7 steps · about 10 minutes
Why this exists
A top-up is the one moment a member deliberately turns money into house credit, and the platform treats it as exactly what it is: the venue taking your cash and recording a liability to you. Two entries, balanced, append-only, and a separate transaction for the processor's fee so the cost of taking the money is never hidden inside the revenue.
The part worth teaching is idempotency. The top-up endpoint accepts an idempotency key, and the key check, the card charge and the ledger postings all happen inside one write transaction. A duplicate request blocks until the first commits and then returns "not applied" without ever reaching the processor. That is why a double-tap on a bad connection cannot charge a card twice — the guarantee is structural, not a disabled button.
Know what prepaid credit is and is not. It is spendable on anything the platform sells and it is spent first, before earned credit and before a VIP tab. It is not cashable out: only earned balance from resale can be paid to a bank account. Money that comes in through this door does not go back out through that one.
Before you start
- A member session.
- An amount inside the configured limits: at least $5 and at most $1000 per top-up.
Practise with
| Persona | Password | Note | |
|---|---|---|---|
| member | member@club.test | member123 | starts with nothing, so the first top-up is easy to see |
| admin | admin@club.test | admin123 | reads the resulting transaction and the trial balance |
Steps 1–5 — Member
their manual →-
1Open your credit page and find the Top up card. Use a quick amount button or type an amount in cents.Expected result An amount field, a card token field, and an Add credit button.Watch out for Amounts are in cents everywhere in this platform. Typing 50 gets you fifty cents, not fifty dollars — and the minimum will reject it.
-
2Submit the top-up. In the demo the token tok_success succeeds and tok_decline is refused.Expected result 201 with the transaction, the companion fee transaction, and your refreshed balances.Watch out for A declined card still records the attempt in the outbound call log. Failure is evidence here, not silence.
-
3Send the same request again with the same idempotency key to see the guard.Expected result 200 with applied false, and no second charge.Watch out for Without a key, a second request is a second genuine top-up. The key is what makes a retry safe.
-
4Read your balances and identify which pot grew.Expected result Prepaid up by the amount; earned and tab untouched.Watch out for Purchasing power went up by the same amount, but they are not the same number. Purchasing power includes a VIP tab's headroom, which is not money.
-
5Find the top-up on your statement and read the running balance around it.Expected result A line for the top-up with the balance after it.Watch out for Nothing on this statement is editable by anyone, including admins. If it is wrong, the fix is a new compensating entry that also appears here.
Steps 6–7 — Admin
their manual →Verifies the posting balances and can make corrective adjustments if it does not.
-
6As an admin, open the transaction and read both sides plus the separate fee posting.Expected result Cash clearing debited, the member's house-credit liability credited, and a second transaction for the processing fee.Watch out for The fee is a real expense posted separately on purpose. Netting it into the top-up would make the member's liability wrong by the fee.
-
7Check the trial balance still nets to zero after the movement.Expected result A balanced trial balance.Watch out for If it ever does not, stop and investigate rather than adjusting to taste. An unbalanced ledger on this platform means a bug, not a rounding difference — the posting rules make imbalance impossible to store.