Wallet SystemWallet System
Buy Now
View Demo
  • Getting Started

    • Introduction
    • Quick Start
    • Features
    • Installation
    • First-Time Setup
    • Admin Tour
  • Wallet Core

    • Core Wallet
    • Wallet Payment Gateway
    • Recharge / Top-up
    • Wallet Transfer
    • My Wallet Page
    • Shortcodes
  • Earn & Reward

    • Cashback Engine
    • Referral Program
    • Multilevel Referral
    • Daily Login Reward
    • Invite Friends
    • Deposit / Top-up Bonus
  • Spend & Payout

    • Checkout Discount
    • Checkout Restriction
    • Withdrawal
    • PayPal Payout
    • Stripe Payout
    • Refund to Wallet
    • Buy Now Pay Later
  • Identity & Mobile

    • KYC
    • QR Code Payments
  • Wallet Central

    • Overview
    • Endpoint & Routing
    • CTA Discovery
    • Home Dashboard
    • Add Funds
    • Withdraw
    • Withdrawals List
    • Send Money
    • QR Pay
    • Payment Requests
    • Refer & Earn
    • Transactions
    • Settings
    • KYC Flow
    • Architecture
    • Tweaks & Responsive
    • Security
    • Admin Controls
  • Admin Tools

    • Admin Settings (index)
    • Bulk Credit / Debit
    • Analytics Dashboard
  • Settings Tabs

    • General
    • Recharge
    • Checkout
    • Withdrawal
    • Payout (PayPal/Stripe)
    • KYC
    • Cashback
    • Referral
    • Multilevel
    • BNPL
    • QR Pay
    • Notifications
    • Wallet Central
    • Integrations
    • API Keys
  • Notifications

    • Email Notifications
    • SMS Notifications
  • Developer

    • REST API
    • Filters & Hooks
  • Help

    • Troubleshooting
    • FAQ
    • Glossary
Support
Buy Now
View Demo
  • Getting Started

    • Introduction
    • Quick Start
    • Features
    • Installation
    • First-Time Setup
    • Admin Tour
  • Wallet Core

    • Core Wallet
    • Wallet Payment Gateway
    • Recharge / Top-up
    • Wallet Transfer
    • My Wallet Page
    • Shortcodes
  • Earn & Reward

    • Cashback Engine
    • Referral Program
    • Multilevel Referral
    • Daily Login Reward
    • Invite Friends
    • Deposit / Top-up Bonus
  • Spend & Payout

    • Checkout Discount
    • Checkout Restriction
    • Withdrawal
    • PayPal Payout
    • Stripe Payout
    • Refund to Wallet
    • Buy Now Pay Later
  • Identity & Mobile

    • KYC
    • QR Code Payments
  • Wallet Central

    • Overview
    • Endpoint & Routing
    • CTA Discovery
    • Home Dashboard
    • Add Funds
    • Withdraw
    • Withdrawals List
    • Send Money
    • QR Pay
    • Payment Requests
    • Refer & Earn
    • Transactions
    • Settings
    • KYC Flow
    • Architecture
    • Tweaks & Responsive
    • Security
    • Admin Controls
  • Admin Tools

    • Admin Settings (index)
    • Bulk Credit / Debit
    • Analytics Dashboard
  • Settings Tabs

    • General
    • Recharge
    • Checkout
    • Withdrawal
    • Payout (PayPal/Stripe)
    • KYC
    • Cashback
    • Referral
    • Multilevel
    • BNPL
    • QR Pay
    • Notifications
    • Wallet Central
    • Integrations
    • API Keys
  • Notifications

    • Email Notifications
    • SMS Notifications
  • Developer

    • REST API
    • Filters & Hooks
  • Help

    • Troubleshooting
    • FAQ
    • Glossary
Support
  • Getting Started

    • Introduction
    • Quick Start — Wallet Live in 5 Minutes
    • Features
    • Installation
    • First-Time Setup
    • Admin Tour
  • Wallet Core

    • Core Wallet
    • Wallet Payment Gateway
    • Recharge / Top-up
    • Wallet Transfer
    • My Wallet Page
    • Shortcodes
  • Earn & Reward

    • Cashback Engine
    • Referral Program
    • Multilevel Referral
    • Daily Login Reward
    • Invite Friends
    • Deposit / Top-up Bonus
  • Spend & Payout

    • Checkout Discount
    • Checkout Restriction
    • Withdrawal
    • PayPal Payout
    • Stripe Payout
    • Refund to Wallet
    • Buy Now Pay Later (BNPL)
  • Identity & Mobile

    • KYC (Know Your Customer)
    • QR Code Payments
  • Wallet Central

    • Wallet Central Overview
    • Endpoint & Routing
    • CTA Discovery
    • Home Dashboard
    • Add Funds
    • Withdraw
    • Withdrawals List + Detail
    • Send Money
    • QR Pay
    • Payment Requests
    • Refer & Earn
    • Transactions
    • Settings (customer)
    • KYC Flow
    • Architecture
    • Tweaks & Responsive
    • Security
    • Admin Controls
  • Admin Tools

    • Admin Settings
    • Bulk Credit / Debit
    • Analytics Dashboard
  • Settings Tabs

    • General Settings
    • Recharge Settings
    • Checkout Settings
    • Withdrawal Settings
    • Payout Settings (PayPal + Stripe)
    • KYC Settings
    • Cashback Settings
    • Referral Settings
    • Multilevel Settings
    • BNPL Settings
    • QR Pay Settings
    • Notifications Settings
    • Wallet Central Settings
    • Third-Party Integrations
    • API Keys
  • Notifications

    • Email Notifications
    • SMS Notifications
  • Developer

    • REST API
    • Filters & Hooks
  • Help

    • Troubleshooting
    • FAQ
    • Glossary

Troubleshooting

The most common problems and the exact fix.

Quick Index

SymptomJump to
Wallet gateway missing at checkout→ Gateway visibility
Recharge order completed but balance not credited→ Top-up not credited
Withdrawal stuck on pending→ Withdrawal stuck
Cashback not firing→ Cashback not firing
KYC modal won't open→ KYC modal broken
Transfer OTP not received→ OTP not received
BNPL eligible user not getting offer→ BNPL eligibility
REST API returning 401 / 403→ REST auth
Stale balance shown to customer→ Cache stale
Bulk batch stuck on pending→ Bulk stuck

Installation Checks

After activation, confirm:

CheckWhereExpected
Tables createdSHOW TABLES LIKE 'wp_wkw%'At least 11 tables
Recharge product existsProducts → All ProductsRecharge Your Wallet
Gateway registeredWC → Settings → PaymentsWallet row visible
My Wallet endpoint/my-account/my_wallet/renders
Admin menusidebarWebkul Addons → Wallet

If any missing → run WC → Status → Tools → Wallet → Re-run installer.

Wallet Gateway Not Visible at Checkout

Run through this list:

  1. Gateway enabled? WC → Settings → Payments → Wallet toggle ON
  2. Customer logged in? Gateway never shows to guests
  3. Customer balance > 0? Or "Show on zero balance" ON
  4. Excluded product in cart? Per-product _wkwp_exclude_wallet = yes blocks
  5. Sale item + global "disable on sale" ON? Hides gateway
  6. KYC required and not approved? wallet_usage is gated; customer must approve KYC
  7. Theme caches checkout? Test with default theme + cache plugin off
  8. Custom filter returning false? Search code for wkwc_wallet_show_method_on_checkout

See Wallet Payment Gateway.

Top-up Completed But Balance Not Credited

StepCheck
1Order has at least one wkwc_wallet-type line item — open the order, view product types
2Order in completed status (not processing) — only completed triggers credit unless auto-complete is on for mixed carts
3_wkwp_topup_credited = yes order meta? If yes, credit already happened — check ledger for the row
4Recharge product type was changed away from wkwc_wallet? Re-set it
5Custom filter on wkwp_wallet_topup_amount returning 0 / negative? Search code

If still no credit → manually re-trigger by setting order to processing then back to completed (re-fires woocommerce_order_status_completed).

See Recharge / Top-up.

Withdrawal Stuck on Pending

StepCheck
1Admin must approve manually — pending sits until acted on
2KYC required + not approved? Customer can't even submit; if a row exists from before KYC was required, manual action needed
3Hold period set + not yet matured? Row sits as approved until cron wkwp_wallet_withdrawal_payout_cron runs
4Cron not firing? wp cron event list to verify; alarm if wp-cron.php is disabled (DISABLE_WP_CRON)
5Payout API failed? Status would be failed, not pending — check the row's error column

For PayPal / Stripe specifics see PayPal Payout and Stripe Payout.

Cashback Not Firing

StepCheck
1Rule active? Toggled ON in Wallet → Cashback Rules
2Order in completed status (not just processing)
3Min order value met by the order subtotal
4Cart matched the rule's scope (product / category / global)
5Per-customer cap hit?
6_wkwp_cashback_processed = yes order meta already set — credit already given
7Higher-priority rule shadowing this one — engine picks first match by priority

Test with a single global rule and zero min — if cashback fires there, narrow down.

See Cashback Engine.

KYC Modal Does Not Open

StepCheck
1Browser console error? Likely a theme JS conflict
2Native <dialog> polyfill missing on old Safari (< 15.4) — plugin ships its own; verify it's loaded on the page
3KYC pill visible but click does nothing — JS bound after page-load? Check DOMContentLoaded order
4KYC feature toggle off — pill renders but modal hidden
5Theme overriding dialog CSS to display: none !important?

Quick test: open browser console and run document.querySelector('dialog#wkwp-kyc-modal').showModal() — if that opens it, the click handler is the issue.

See KYC.

Transfer OTP Not Received

StepCheck
1Sender's phone meta set? get_user_meta($id, '_wkwp_user_phone', true) — empty means no SMS, only email OTP
2Twilio creds correct? Test from Wallet → Settings → Notifications → SMS → Test send
3Twilio from-number verified? Test number can only message verified destinations on trial accounts
4Twilio geo permission for the destination country enabled?
5Email OTP arriving? If yes → Twilio side issue; if no → SMTP issue
6OTP expired? 10-min window; re-request

See Wallet Transfer, SMS Notifications.

BNPL Eligible User Not Offered Checkout

StepCheck
1BNPL globally enabled? _wkwp_bnpl_enable = yes
2Customer in eligibility set per _wkwp_bnpl_eligibility_mode? Whitelist / role / kyc-approved
3Cart total >= _wkwp_bnpl_min_order_for_bnpl?
4Existing debt + new shortfall <= _wkwp_bnpl_max_debt_per_user?
5wkwp_bnpl_eligible filter returning false?

See Buy Now Pay Later.

REST API 401 or 403

StatusCause
401 invalid_credentialsKey revoked, or wrong secret, or owner user lacks underlying capability
403 forbidden_caller_ipCaller IP not in the key's whitelist
403 kyc_requiredThe endpoint enforces KYC and the owner user lacks approved KYC
429 too_many_requestsRate-limit hit — wait Retry-After seconds

Mint a new API key with the right scope. See REST API.

Stale Balance Shown to Customer

Cache invalidation missed. Fixes:

  1. WC → Status → Tools → Wallet → Clear wk_caching cache — one-click flush
  2. WP-CLI: wp cache flush
  3. Programmatic: WK_Caching::flush_namespace( 'wkwp_wallet' );
  4. If recurring, check that wkwp_wallet_balance_changed action is firing — search code for do_action( 'wkwp_wallet_balance_changed'

Bulk Batch Stuck on Pending

StepCheck
1Cron firing? wp cron event list — look for wkwp_wallet_bulk_queue_process
2DISABLE_WP_CRON set? Switch to a system cron + manually trigger from the Bulk page's "Process now"
3Worker errored on a row? Check the error column of the queue table
4Lock not released? Find wkwp_bulk_lock transient and delete it

See Bulk Credit / Debit.

Decorator Breaks Customer Wallet Page

The modern fintech My Wallet layout is a decorator on the legacy template. If your theme breaks it:

  1. Toggle the layout to layout-classic (decorator bypassed) via the wkwp_my_wallet_layout filter (see Filters & Hooks)
  2. Open a support ticket with theme name + screenshots — we'll patch the decorator selectors

See My Wallet Page.

"Insufficient balance" When Balance Should Be Enough

StepCheck
1Multi-currency mode on? Customer's active currency might have a different balance
2Outstanding BNPL debt counts against balance — auto-deduct grabs new credits
3Hold period on the recharge order? Topups on processing aren't credited until completed
4Float rounding — check the ledger for the actual decimal value, not the display

Withdrawal Says "KYC Required" But KYC Is Approved

Cache miss on KYC gate. Force flush:

WK_Caching::delete( 'wkwp:kyc:gates:' . $user_id, 'wkwp_wallet' );

Or just toggle the customer's KYC status to pending then back to approved from the admin to fire wkwp_kyc_status_changed (the cache-buster).

See KYC.

Wallet Used But Order Total Wrong

Likely: cashback / discount applied AFTER wallet calc, or rounding.

  1. Order edit screen → side meta-box Wallet shows _wkwp_wallet_paid_amount — must equal the wallet line in the ledger
  2. WC's order total accounts for fees + cashback + discount + tax — wallet pays the post-everything cart total
  3. Compare with WC()->cart->get_total() at checkout time (use a debug shortcode)

Logs

Enable per-event debug logs:

define( 'WKWP_DEBUG', true );

Logs land in wp-content/uploads/wc-logs/wkwp-wallet-*.log. Tail with:

tail -f wp-content/uploads/wc-logs/wkwp-wallet-*.log

When to Open a Support Ticket

Open a ticket with the following info:

  • WordPress version + WC version + PHP version
  • Wallet plugin version
  • Site URL (or a screenshot if confidential)
  • The exact error message + steps to reproduce
  • Output of WC → Status → System Status (copy-paste the report)
  • Output of Tools → Site Health → Status (the wallet section)
  • Browser console output if the issue is UI-side
  • Server-side logs if available

Submit at https://webkul.uvdesk.com.

Related

  • FAQ
  • Glossary
  • Filters & Hooks
Next
FAQ