Stripe Connect
Connect Stripe for marketplace-style automatic payouts to vendors and card-on-file auto-charge for winning bidders.
When you need it
- Multi-vendor marketplace — automatically split payments and pay out vendors when an auction sells
- Card-on-file auto-charge — auto-charge the winner's saved card on auction close (alternative to wallet auto-charge)
- Disbursing wallet withdrawals — execute payouts to bank or debit card via Stripe Payouts API
Configure
Auctions → Settings → Integrations → Stripe Connect
| Field | Option key | Notes |
|---|---|---|
| Stripe secret key | wkafw_stripe_secret_key | sk_live_... or sk_test_... |
| Stripe webhook secret | wkafw_stripe_webhook_secret | for verifying webhook signatures |
| Mode | live / test | matches the key |
| Auto-charge winner | wkafw_auto_charge_winner | Stripe takes priority over wallet if both enabled |
Vendor onboarding
For multi-vendor stores:
- Vendor visits My Account → Stripe Connect (or their multi-vendor dashboard's payout section)
- Clicks Connect with Stripe
- OAuth redirect to Stripe's hosted onboarding
- Vendor completes KYC (name, address, bank, ID)
- Stripe approves; vendor returned to your site
stripe_account_idsaved to vendor's user meta
Payment splits
When an auction sells in a multi-vendor setup:
Customer pays $100 (auction win)
↓
Stripe charges customer's card
↓
Funds split:
├── Vendor's Stripe account: $90 (or per commission rate)
├── Platform's Stripe account: $10 (commission)
└── Stripe fees: ~$3.20 (paid from platform's portion)
↓
Stripe auto-payouts to vendor's bank on rolling schedule
The plugin uses Stripe's destination charge API — funds settle directly into the vendor's connected account. No manual transfer needed.
Card-on-file auto-charge
Alternative to wallet auto-charge:
- Customer adds a card on first checkout
- Stripe stores it (PCI-compliant) as a "setup_intent"
- On auction win, plugin charges the saved card automatically
- Customer can opt out at checkout
| Setting | Default |
|---|---|
| Stripe auto-charge enabled | no |
| Customer opt-in required | yes (default) |
Webhooks
Configure your Stripe webhook endpoint to: https://yoursite.com/wp-json/wkafw/v1/stripe/webhook
Events the plugin handles:
payment_intent.succeeded— confirms a chargepayment_intent.payment_failed— handles declined cardsaccount.updated— vendor onboarding status changespayout.paid— confirms vendor payoutpayout.failed— flags failed payouts for admin reviewcharge.refunded— syncs refund state
The webhook handler verifies signatures using wkafw_stripe_webhook_secret.
Disbursing withdrawals
When approving a withdrawal request:
- Admin clicks Approve in Wallet → Withdrawal queue
- Plugin calls the Stripe Payouts API
- Funds are dispatched to the customer's connected bank
- When Stripe confirms the payout, the request is marked paid
- Customer's wallet is debited
This requires the customer to have a connected Stripe account (for personal payouts) or you to pay via Stripe Payouts to their bank account directly.
Test mode
Use Stripe test keys for development:
| Test card | Number |
|---|---|
| Successful charge | 4242 4242 4242 4242 |
| Declined card | 4000 0000 0000 0002 |
| Requires authentication | 4000 0025 0000 3155 |
Security
- Keys are stored in WordPress options (use a secret-vault plugin if your database is shared)
- Webhook signatures are verified
- All requests use HTTPS
- PCI scope is minimal — card data never touches your server
Common questions
"Does this replace WooCommerce Stripe gateway?"
No — it complements it. Use the standard WC Stripe gateway for normal checkout payments. The plugin's Stripe Connect handles auction-specific flows: multi-vendor splits, card-on-file auto-charge, payouts.
"What countries does Stripe Connect support?"
Stripe Connect supports 35+ countries. Your platform (your site) and your vendors can be in any of those — Stripe handles cross-border splits.
"What happens if a vendor's Stripe account is rejected during KYC?"
Stripe sends an account.updated webhook with the rejection details. The plugin shows a notice to the vendor. They can fix and re-submit through the same OAuth flow.
