My Wallet
/my-account/my_wallet/ — customer-facing wallet endpoint. Top up, transfer, view ledger, partial-pay at checkout.

What the page shows
| Section | Purpose |
|---|---|
| Balance card | Current available balance, big and prominent |
| Add to Wallet | Top-up form — enter amount, click Add to Cart |
| Transactions | Filterable ledger of all wallet movements |
| Wallet Transfer (if enabled) | Send to another customer by email |
The page is wrapped in the auction plugin's .wkafw-wallet-skin styling so it matches the rest of your auction UI.
Adding funds (top-up)
- Enter amount in the Add to Wallet input
- Click Add to Cart — adds a special wallet-top-up product to cart
- Proceed to Checkout — pay via any WooCommerce gateway
- After successful payment, your wallet balance updates automatically
| Constraint | Default | Where to change it |
|---|---|---|
| Min top-up | 1 | Settings → Payments → Wallet |
| Max top-up | 10,000 | Settings → Payments → Wallet |
| Top-up product | Auto-created hidden product | Settings → Payments → Wallet → Top-up product |
Multiple currencies
Wallets are single-currency per customer (matches your WooCommerce store currency). If you need multi-currency, run separate stores or use a multi-currency plugin.
Transactions ledger
Filterable list, latest first.
| Column | Source |
|---|---|
| Date | transaction_date |
| Reference | top-up order ID, transfer ID, withdrawal ID, or system note |
| Amount | currency-formatted |
| Type | cr (credit) / dr (debit) |
| Note | admin-supplied or auto-generated |
| Status | completed / pending / failed |
Filter by:
- Type (credits / debits / all)
- Date range
- Note text search
Pagination: configurable per wkafw_wallet_ledger_per_page (default 25).
Transaction types
| Type | Sign | Source |
|---|---|---|
| Top-up | + (credit) | Customer pays via gateway |
| Transfer in | + (credit) | Another customer sent money |
| Auction win debit | − (debit) | Won auction auto-charged |
| Fee charge | − (debit) | Platform fee debited |
| Manual credit | + (credit) | Admin top-up / refund |
| Manual debit | − (debit) | Admin debit (rare) |
| Withdrawal | − (debit) | Approved payout |
| Withdrawal reversal | + (credit) | Rejected withdrawal returned |
| Transfer out | − (debit) | Sent to another customer |
Wallet Transfer
If enabled in Settings → Payments → Wallet, customers can send money peer-to-peer.
Flow
- Click Wallet Transfer in the page header
- Enter recipient's email — autocomplete suggests known users
- Enter amount
- Enter optional note
- Click Send
- OTP verification — system sends a one-time code (email or SMS) to the sender
- Enter OTP → confirm
- Funds move atomically — sender debited, recipient credited
| Setting | Default |
|---|---|
| OTP required | yes |
| OTP method | email (configurable to SMS via Twilio) |
| OTP validity | 5 minutes |
| Max transfer per day | (configurable; default unlimited) |
| Min transfer | 1 |
| Transfer fee | 0 (configurable) |
Security
Every transfer is logged to the Audit Log with sender + recipient + amount + IP + timestamp. Reversals require admin approval.
Paying with wallet at checkout
When the user has wallet balance ≥ cart total, Wallet appears as a payment method on checkout.
| Cart total | Wallet balance | Behavior |
|---|---|---|
| $100 | $200 | Pay full $100 from wallet (sole payment method) |
| $100 | $50 | Two options: top up first, OR partial-pay $50 wallet + $50 gateway |
Partial pay
If partial pay is enabled in Settings → Payments → Wallet:
- Customer ticks Use wallet balance at checkout
- Wallet drains to zero (or up to cart total)
- Remainder paid via gateway
- Order combines both payment sources
Partial pay = two transactions
Partial-paid orders show two ledger entries: one wallet debit + one gateway charge. Refunds work in reverse — refunded amount goes back to whichever source was charged.
Auto-charge
If auto-charge winner is enabled and the customer has balance, won auctions auto-debit on close — no checkout flow needed.
Withdrawal
To withdraw wallet balance to bank / PayPal:
My Account → Withdrawal → full reference.
Notifications
| Trigger | |
|---|---|
| Top-up successful | "Wallet credited" |
| Transfer received | "Money received from {sender}" |
| Transfer sent | "You sent money to {recipient}" |
| Wallet debited (auction win) | "Auction win charged to wallet" |
| Withdrawal requested | "Withdrawal under review" |
| Withdrawal approved | "Withdrawal sent" |
| Withdrawal rejected | "Withdrawal could not be processed" |
Templates editable in WooCommerce → Settings → Emails.
Privacy
The page shows only the logged-in user's own ledger. Even admins viewing the admin wallet page see the same data, but in read-write mode.
GDPR exporter includes the full ledger.
Common questions
"Why doesn't Wallet appear at checkout?"
Either: (a) balance < cart total and partial-pay is disabled, or (b) the wallet gateway isn't enabled in WooCommerce → Settings → Payments. The plugin auto-injects it but a custom checkout layout may suppress it.
"Can I see my full top-up history including failed attempts?"
Yes — switch the filter to All instead of just completed. Failed top-ups show with status = failed.
"My balance shows wrong"
Run Tools → Database → Recompute totals — admin-only, but it re-aggregates the ledger and refreshes the cached balance.
