How to let customers pay with a wallet in WooCommerce
WooCommerce does not include a customer wallet with deposits and stored balances, so you need a wallet extension or custom payment-gateway development. A plugin is the practical route because it handles top-ups, balance checks, checkout deductions, refunds and transaction records.
- 01Choose the wallet type
- 02Assess the manual route
- 03Install a wallet extension
- 04Configure deposits and checkout
- 05Set partial payments and refunds
- 06Test the failure cases
What you need
- A WooCommerce store with a working payment gateway
- Administrator access to WordPress
- HTTPS and a test customer account
- A decision on whether partial wallet payments are allowed
Choose the wallet type
First decide whether you mean a stored-value account wallet or a digital wallet such as Apple Pay or Google Pay. A stored-value wallet lets customers deposit money into their account and spend that balance later. Apple Pay and Google Pay are payment methods supplied by a compatible gateway, not customer balances held in WooCommerce.
Also decide whether customers can pay only when the wallet covers the whole order, or whether they can combine wallet funds with a card or another gateway.
Assess the manual route
WooCommerce core does not provide deposits, customer wallet balances or wallet withdrawals. A developer can build a small extension using WooCommerce's payment gateway API, but it must store a transaction ledger, add funds only after a confirmed top-up, check the live balance at checkout, deduct funds once, handle refunds and prevent two browser sessions from spending the same balance.
This route is reasonable for a simple internal-credit system with a developer maintaining it. Do not put wallet deductions in a theme's functions.php; theme changes and checkout updates can remove or bypass important payment logic. For withdrawals, partial payments, expiry rules, transaction history and subscription renewals, custom development becomes much more work.
Install a wallet extension
For most stores, install a wallet extension rather than building the payment system yourself. Upload its ZIP file in Plugins → Add New → Upload Plugin, install it, activate it and open the wallet settings. Official wallet extensions commonly add a customer wallet page, top-up flow and a wallet payment gateway.
The WordPress WooCommerce Wallet System Plugin is a suitable fast route when you need deposits, transfers, withdrawals, transaction history and payment from the stored balance.
Configure deposits and checkout
Enable wallet top-ups and select which existing WooCommerce gateways may fund them. Set any minimum or maximum top-up amount, daily limits, maximum wallet balance and the order status that confirms a top-up. A common safe choice is to credit the wallet only after the payment gateway confirms the order, rather than when the order is merely created.
Enable the wallet payment method in the extension's settings or in WooCommerce → Settings → Payments. Set the customer-facing title and decide whether the wallet should appear only when the balance covers the complete order.
Set partial payments and refunds
If customers may combine wallet funds with another payment method, enable partial payments and decide how much can be applied. Check whether the wallet amount can cover tax and shipping, because extensions differ. Some reserve a partial amount when the order is placed and deduct it when the order is paid; others deduct at checkout.
Review the refund behaviour before going live. A proper wallet setup should return the wallet-funded portion to the customer's wallet, record the transaction and avoid refunding more than was originally taken. Configure withdrawal approval separately if customers can cash out.
Test the failure cases
Use a test customer to add funds, pay an order using the full balance, pay another order with a partial balance, cancel an order, refund it and attempt checkout with an insufficient balance. Test the classic checkout and the Checkout block if your site uses both, since extensions may need separate compatibility support.
If the wallet option is missing, check that the customer is logged in, the wallet payment method is enabled, the available balance is greater than zero and the balance covers the order when full-payment-only mode is active. Also check currency settings, checkout caching and conflicts with other checkout or currency plugins. Support threads repeatedly identify zero or insufficient balance as the reason the option does not appear.
Let WordPress WooCommerce Wallet System Plugin do it
Adds customer wallet deposits, transfers, withdrawals, and balance payments; choose it for stored-value checkout and wallet management.
Tools that do this job
All of these solve the task above. They are listed as we have covered them.
Adds customer wallet deposits, transfers, withdrawals, and balance payments; choose it for stored-value checkout and wallet management.
Lets customers deposit funds, track balances, and pay from a store wallet; ideal for repeat purchases and faster checkout.
Sources
- woocommerce.com /document/woocommerce-square/payment-settings/enabling-digit…
- woocommerce.com /document/configuring-woocommerce-settings/?utm_source=opena…
- woocommerce.com /document/wallet-for-woocommerce/?utm_source=openai
- woocommerce.com /document/elite-balance/checkout-and-wallet-payments/?utm_so…
- wordpress.org /support/topic/third-payment-options-are-not-showing-on-the-…
Questions
- Can WooCommerce accept wallet payments without a plugin?
- No, not as a stored customer balance. WooCommerce provides payment-gateway APIs, but it does not include wallet deposits, balances, ledger entries or withdrawals. You can commission a custom extension that adds those functions, but a wallet plugin is usually safer and faster because it also has to handle refunds, duplicate checkout requests, partial payments and transaction history.
- Why is the wallet payment option missing at checkout?
- The wallet option is usually hidden because the customer is logged out, the wallet balance is zero or insufficient, the payment method is disabled, or the wallet is restricted by currency, product, role or order rules. Check the customer's available balance rather than only the headline balance, then test without caching and with other checkout extensions temporarily disabled.
- Can customers use part of their wallet balance and pay the rest by card?
- Yes, but only if the wallet extension supports partial payments and that setting is enabled. The extension may apply a chosen amount or the maximum permitted amount, then leave the remainder for another WooCommerce gateway. Confirm how it treats shipping and tax, and check whether wallet funds are reserved at order placement or deducted immediately.
- When should a top-up be added to the customer's wallet?
- Add the top-up after the payment gateway confirms the top-up order, not merely when the order is created. The wallet extension should also record the transaction and prevent the same order from crediting the account twice. Configure the confirmation order status in the wallet settings, then test failed, cancelled and refunded top-ups before launch.