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

Stripe Payout

Pay out approved wallet withdrawals to a customer's Stripe Connected Account.

Setting up?

Skip to Payout Settings → Stripe for the step-by-step keys + Connect onboarding walkthrough.

What It Does

ForMeans
CustomerPicks "Stripe" as the withdrawal method, completes Stripe onboarding once. Future withdrawals land in their bank via Stripe Connect
AdminApprove → plugin calls Stripe Transfers API → instant payout

Stripe Automatic Payouts settings — secret/publishable keys, mode toggle

What You Need

  • A Stripe account with Connect enabled
  • Your Connect platform application live
  • API secret keys (test + live)

Setup

1. Plugin settings

Wallet → Settings → Payout → Stripe

FieldNotes
Enabletoggle exposure on the withdrawal method radio
Modetest for staging / live for production
Test Secret Keysk_test_...
Live Secret Keysk_live_...
Currencybase currency for payouts
Description prefixshown on the Stripe transfer description
Auto-fetch onboarding linkwhen ON, generates Stripe onboarding URL automatically when needed

2. Customer Connect Account

The plugin needs the customer's acct_xxx ID to know where to send.

Option A — Plugin-managed onboarding (recommended)

Enable "Auto-fetch onboarding link". When a customer requests their first Stripe withdrawal:

  1. Plugin creates an Express Connect account
  2. Saves the account ID to the customer's profile
  3. Generates a Stripe-hosted onboarding URL
  4. Redirects customer to complete onboarding

Once done, future withdrawals just work.

Option B — Bring-your-own integration

If you already collect Stripe Connect account IDs via another plugin (Dokan / WCFM Connect / custom), set the user meta from that plugin's hook. Wallet plugin reads from the same key.

How Approval Works

When admin clicks Approve on a Stripe-method withdrawal:

  1. Plugin reads the customer's connected account ID
  2. Converts amount to smallest currency unit (cents / paise)
  3. Calls Stripe Transfers API
  4. Stripe returns the transfer ID (tr_xxx)
  5. Status flips pending → paid (Stripe transfers are instant)
  6. Customer's bank gets the money on Stripe's standard payout schedule (T+2 to T+7 depending on country)

Test vs Live Keys

ModeUse forConnected accounts
testdev / stagingStripe test connected accounts (acct_test_...)
liveproductionreal acct_xxx IDs

Each Stripe environment has its own connected accounts — IDs are not portable.

Currency Handling

Plugin auto-converts to Stripe's smallest currency unit:

CurrencyMultiplier
USD, EUR, GBP, INR, etc.× 100 (cents / paise)
JPY, KRW, VND× 1 (zero-decimal currencies)
BHD, KWD, OMR× 1000 (three-decimal)

Override via filter for unusual currencies.

Webhooks (optional)

Transfers are immediate so webhooks aren't strictly needed. Optionally subscribe to:

  • transfer.created
  • transfer.failed
  • transfer.reversed

Webhook URL: shown in the plugin settings. Set the webhook signing secret on the same tab.

Reconciliation

SELECT id, amount, fee,
  JSON_EXTRACT(error, '$.stripe_transfer_id') AS transfer_id,
  paid_at
FROM wp_wkwc_wallet_withdrawal
WHERE status = 'paid' AND method = 'stripe'
  AND paid_at >= '2026-04-01';

The transfer ID (tr_xxx) is searchable in the Stripe dashboard.

Common Failures

Stripe errorWhat it meansFix
account_invalidCustomer's Stripe account closed or restrictedReject withdrawal, refund balance
balance_insufficientYour platform's available balance is too lowTop up Stripe balance from dashboard
currency_mismatchConnected account doesn't support the payout currencyCustomer needs to update Stripe profile
transfers_not_allowedConnect onboarding incompleteResend onboarding link

When Something Goes Wrong

ProblemFix
Customer can't pick Stripe at withdrawalMethod enabled in admin settings?
Onboarding link doesn't openStripe API key wrong; check Mode + Secret Key
Webhook signature invalidRe-copy the signing secret; rotate if compromised
Amount off by 100×Custom currency missing from smallest-unit map; filter to add
For developers — hooks

Hooks

HookTypeWhen
wkwp_stripe_payout_request_bodyfiltermutate the form body before send
wkwp_stripe_payout_responseactionafter Stripe API response
wkwp_stripe_smallest_unitfiltercurrency multiplier override
wkwp_stripe_webhook_eventactionwebhook event received

API call shape

POST /v1/transfers
amount=12345
currency=inr
destination=acct_xxx
transfer_group=wallet_withdrawal_<row_id>
description="Wallet withdrawal #<row_id>"

Related

  • Withdrawal
  • PayPal Payout
  • Admin Settings
Prev
PayPal Payout
Next
Refund to Wallet