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 or custom code, set the user meta from that source'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)
  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, etc.× 100 (cents)
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=usd
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