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

QR Pay

Two modes — show your QR to receive (?mode=mine), or scan another's to pay (?mode=scan). Both at /wallet-central/qr/.

QR Pay — full layout at /wallet-central/qr/

What Customers See

Mode: Mine (receive)

┌────────────────────────────────────────────┐
│  H1: My QR                                 │
│  Sub: Share to receive wallet              │
├────────────────────────────────────────────┤
│   ┌─────────────────────┐                  │
│   │     Gradient card   │                  │
│   │     ┌─────────┐     │                  │
│   │     │  QR    │      │                  │
│   │     │ image   │      │                  │
│   │     └─────────┘     │                  │
│   │     Wallet ID:      │                  │
│   │     WK-0000-••••-1234                  │
│   └─────────────────────┘                  │
├────────────────────────────────────────────┤
│  [ Download ] [ Share ] [ Set amount ]    │
├────────────────────────────────────────────┤
│  How it works                              │
│  1. Open the QR mode in your wallet         │
│  2. Show this code to the sender            │
│  3. Money lands instantly when they scan   │
└────────────────────────────────────────────┘

Mode: Scan (pay)

┌────────────────────────────────────────────┐
│  H1: Scan to pay                           │
│  Sub: Point camera at a wallet QR          │
├────────────────────────────────────────────┤
│  Dark scan frame                           │
│  with reticle + animated scan-line         │
├────────────────────────────────────────────┤
│  Or [ Upload QR image ]                    │
├────────────────────────────────────────────┤
│  After scan:                               │
│   Recipient: Alice ([email protected])     │
│   Amount    [ ₹__ ]  (or locked from QR)   │
│   Note      [_________________]            │
│   [ Send ]                                 │
└────────────────────────────────────────────┘

Receive Mode Actions

Download

PNG generated client-side. Customer can save as image, print, attach to a quote.

Share

Native device share sheet (WhatsApp / iMessage / Email). Falls back to "Copy link" if device doesn't support sharing files.

Set amount

Optional. Locks the QR to a specific amount — sender's scanner pre-fills + locks editing. Useful for "Pay ₹250 for product X" use cases.

Scan Mode Camera

html5-qrcode library requires:

  • HTTPS
  • Camera permission (granted on first prompt)

If camera denied → "Upload QR image" file input as fallback. Library decodes the image client-side.

OTP for Large Amounts

If admin set an OTP threshold (e.g. 5000), any scan-pay above that triggers an OTP confirmation step — same flow as Wallet Transfer.

KYC Gate

If admin requires KYC for QR pay, the scan mode shows a locked card. Receive mode is unaffected (no risk in being received).

Mobile Notes

BrowserBehaviour
iOS Safari 16+works fully
iOS in-app browsers (Instagram, FB)camera often denied → file fallback kicks in
Android Chromeworks
Embedded WebViewsneeds camera permission grant from native code

Common Scenarios

Customer prints QR for an event

Receive mode → Download → high-res PNG → printable.

Refresh QR after suspecting leak

Receive mode → "Refresh" button → new nonce → old QR images become invalid.

Pay a vendor at a pop-up stall

Scan mode → camera permission → point → submit. Done in seconds.

When Something Goes Wrong

ProblemFix
Camera deniedHTTPS required; iOS in-app forces fallback; use the upload option
Scan resolves but pay failsNonce expired (24h) — receiver regenerates QR
Pay button does nothingJS error; check console; confirm scanner script loaded
OTP screen on small amountsOTP threshold too low; raise it in admin settings
For developers — payload + hooks

Payload format

wkwp:<wallet_id>:<nonce>:<sig>
PartNotes
wallet_idmasked synthetic ID (e.g. WK00001234) — not the WP user_id
noncerandom 12 chars, expires in 24h (rotating)
sigHMAC-SHA256 of wallet_id:nonce with site secret

Hooks

HookTypeWhen
wkwp_central_qr_default_modefilterper-user default mode
wkwp_central_qr_payloadfiltermutate encoded payload
wkwp_central_qr_scan_decodefilterpost-decode hook
wkwp_central_qr_pay_completedactionscan-pay success

Related

  • QR Code Payments (engine)
  • Send Money
  • KYC Flow
Prev
Send Money
Next
Payment Requests