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

SMS Notifications

SMS messaging via Twilio. Used today for transfer + QR-pay OTPs. Optional for confirmation messages.

Setting up?

Twilio credentials + per-event SMS toggles live under Notifications Settings → SMS / Twilio section.

What It Does

ForMeans
CustomerGets a real-time SMS for OTPs (more secure than email-only). Optional confirmations after big actions
AdminTwilio integration is plug-and-play. SMS failures never break the underlying flow — email fallback always works

Provider

Twilio is the default and only first-class integration. Build a custom provider via filter for MSG91, Plivo, Vonage, etc.

Setup

Wallet → Settings → Notifications → SMS / Twilio

FieldNotes
Enableglobal toggle
Account SIDfrom Twilio console
Auth Tokenfrom Twilio console
From-numberE.164 format (e.g. +15551234567); must be a verified Twilio number
Country code defaultE.164 prefix to add when customer's phone is missing it
Test recipientoptional — sends every SMS here when test mode is on

What Triggers an SMS

EventDefaultRecipient
Transfer OTPONsender
Transfer receivedOFFrecipient
Withdrawal approvedOFFcustomer
Withdrawal paidOFFcustomer
QR pay OTP (when amount > threshold)ONsender

Each toggle independent.

Customer Phone Numbers

Plugin reads phone from:

  1. The wallet plugin's own phone meta (set during registration if you've added the field)
  2. WooCommerce billing phone (fallback)

If neither is set → SMS skipped silently. Email-only flows still work.

Templates

Each event has an editable template with placeholders:

PlaceholderSource
{OTP}one-time code
{AMOUNT}currency-formatted
{BALANCE}post-event balance
{SENDER}sender display name
{RECIPIENT}recipient display name
{SITE}site title
{METHOD}payout method name
{REF}transaction reference
{ETA}hold-period text

Default OTP template:

Your {SITE} wallet OTP is {OTP}. Valid 10 min. Do not share.

Non-Fatal Failures

Twilio downtime is treated as non-blocking:

  • Transfer OTP failure to send via SMS → email OTP still goes out → transfer flow proceeds
  • Confirmation SMS failure is logged, not raised
  • Customer never sees a Twilio error

Means transfers never break because of SMS issues.

Test Mode

Set the test recipient in settings → every outbound SMS reroutes to that number instead of the real customer. Useful for QA.

Cost Tracking

The plugin doesn't track Twilio cost. Use Twilio's own usage dashboard.

Common Scenarios

Customer OTP didn't arrive

  1. Check the customer's phone number is set
  2. Verify Twilio creds + From-number is verified
  3. Check Twilio console → Logs → look for the destination number
  4. Email OTP should still arrive — if neither, check WC mailer

Block SMS to specific countries

Twilio has Geo Permissions per account — disable countries you don't want billed for. Plugin returns Twilio's 21408 error for unauthorised geos.

Different SMS provider

Implement the provider interface and register via filter. See dev section.

When Something Goes Wrong

ProblemFix
OTP not receivedPhone meta missing; Twilio creds wrong; from-number not verified; check Twilio console
21408 Twilio errorGeo permission for that country not enabled in Twilio
21610 recipient unsubscribedCustomer texted STOP — they must text START to opt back in
SMS arriving but blankTemplate placeholder unresolved; check spelling
Webhook signature failsRe-copy the auth token; rotate if compromised
For developers — hooks + custom provider

Hooks

HookTypeWhen
wkwp_sms_providerfilterswap the SMS provider class
wkwp_sms_template_<event>filtermutate the template
wkwp_sms_recipients_<event>filtermutate the To list
wkwp_sms_sendfiltermutate the final body before send
wkwp_sms_sentactionafter API success
wkwp_sms_failedactionafter API failure

Custom provider

Implement the WKWP_SMS_Provider interface (single send() method) and register:

add_filter( 'wkwp_sms_provider', function() {
    return 'My_MSG91_Provider';
} );

Webhook delivery status

Twilio can POST status callbacks to /wp-json/wkwc_wallet/v1/twilio_webhook. Subscribe in your Twilio console → status callbacks. Plugin updates internal SMS row when status tracking is enabled.

Rate limit

Built-in: max 1 SMS per minute per recipient per event. Filterable.

Related

  • Wallet Transfer
  • Email Notifications
  • QR Code Payments
Prev
Email Notifications