Stripe Payments [PRO]
Stripe provides direct payment processing for Standalone mode marketplaces, supporting cards, Apple Pay, Google Pay, and more.
Overview
Important: Stripe direct integration is only available in Standalone Mode with WP Sell Services Pro.
- For WooCommerce mode, use WooCommerce Stripe extensions
- For EDD mode, use EDD Stripe gateway
- For standalone mode, use this built-in integration
Requirements
- WP Sell Services Pro
- Standalone mode enabled
- Stripe account (free to create)
- SSL certificate (HTTPS required)
- PHP 8.0+
Creating a Stripe Account
- Visit stripe.com
- Click Sign up
- Enter business email and create password
- Complete account setup:
- Activate account
Obtaining API Keys
Test Mode Keys
Use these for testing before going live:
- Log in to Stripe Dashboard
- Toggle Test mode switch (top right)
- Go to Developers → API keys
- Copy Publishable key (starts with
pktest) - Reveal and copy Secret key (starts with
sktest)
Live Mode Keys
After testing, switch to live keys:
- In Stripe Dashboard, toggle Test mode OFF
- Go to Developers → API keys
- Copy Publishable key (starts with
pklive) - Reveal and copy Secret key (starts with
sklive)
Security: Never share your secret key or commit it to version control.
Configuration in WP Sell Services
Enable Standalone Mode
First, ensure standalone mode is active:
- Go to WP Sell Services → Settings → General
- Select E-commerce Platform: Standalone Mode
- Click Save Changes
See Standalone Mode for full setup.
Configure Stripe
- Go to WP Sell Services → Settings → Payments
- Click Stripe tab
- Check Enable Stripe
- Enter credentials:
- Configure options:
- Click Save Changes
Webhook Configuration
Webhooks notify your site when payments complete.
Webhook URL
Copy this URL:
https://yoursite.com/wp-json/wpss/v1/stripe/webhook
Setup Webhook in Stripe
- Go to Stripe Dashboard → Webhooks
- Click Add endpoint
- Paste webhook URL
- Select events to listen for:
- Click Add endpoint
- Copy the Signing secret (starts with
whsec_) - Paste in WP Sell Services → Settings → Payments → Stripe → Webhook Secret
- Click Save Changes
Testing Stripe
Test Card Numbers
Stripe provides test cards for different scenarios:
| Card Number | Scenario | CVC | Expiry |
|---|---|---|---|
| 4242 4242 4242 4242 | Success | Any 3 digits | Any future date |
| 4000 0025 0000 3155 | Requires 3D Secure | Any 3 digits | Any future date |
| 4000 0000 0000 9995 | Decline (insufficient funds) | Any 3 digits | Any future date |
| 4000 0000 0000 0069 | Decline (expired card) | Any 3 digits | Any future date |
Test Checkout
- Add a service to cart
- Go to checkout
- Select Credit Card payment method
- Enter test card:
4242 4242 4242 4242 - Enter any 3-digit CVC (e.g., 123)
- Enter any future expiry (e.g., 12/26)
- Click Place Order
- Order should complete successfully
Checkout Experience
When buyer selects Stripe:
- Card input fields appear inline on checkout page
- Buyer enters card details
- Stripe validates card in real-time
- 3D Secure/SCA authentication if required
- Payment processes securely
- Order created immediately on success
- Buyer redirected to order confirmation
Supported Payment Methods
Credit & Debit Cards
- Visa
- Mastercard
- American Express
- Discover
- Diners Club
- JCB
Digital Wallets (if enabled)
- Apple Pay (automatically shown on Safari/iOS)
- Google Pay (automatically shown on Chrome/Android)
- Payment Request API
Transaction Fees
Stripe charges per transaction:
| Transaction Type | Fee |
|---|---|
| Domestic cards (US) | 2.9% + $0.30 |
| International cards | 3.9% + $0.30 |
| Currency conversion | +1% |
Example:
Service price: $100.00
Stripe fee: $3.20 (2.9% + $0.30)
You receive: $96.80
Refunds
Processing Refunds
- Go to WP Sell Services → Orders
- Open order
- Click Refund
- Select Full Refund or Partial Refund
- Enter amount (for partial)
- Click Process Refund
Refunds appear in buyer’s account in 5-10 business days.
Refund Fees
- Stripe refunds the percentage fee (2.9% or 3.9%)
- Stripe does NOT refund the $0.30 fixed fee
- You lose $0.30 per refunded transaction
Security & Compliance
PCI Compliance
Stripe handles PCI compliance. Your site never stores or processes raw card data.
- Card data goes directly to Stripe’s servers
- Stripe.js securely tokenizes payment information
- Your server only receives secure tokens
3D Secure / SCA
Stripe automatically handles Strong Customer Authentication (SCA) required in Europe:
- Stripe Payment Intents API includes built-in 3DS
- Authentication happens in modal overlay
- No additional configuration needed
Troubleshooting
Payment Fails Silently
Check webhook is configured correctly:
- Go to Stripe Dashboard → Webhooks
- Click on your webhook
- Check Recent deliveries tab
- Verify 200 OK responses
Card Declined
Common reasons:
- Insufficient funds
- Incorrect card details
- Card expired
- Fraud prevention triggered
Enable debug logging:
// Add to wp-config.php
define( 'WPSS_STRIPE_DEBUG', true );
Check logs at wp-content/uploads/wpss-logs/stripe.log
Webhook Not Receiving Events
Verify:
- Webhook URL is correct (
/wp-json/wpss/v1/stripe/webhook) - Webhook secret matches in settings
- Site is accessible (not localhost without tunnel)
- No firewall blocking Stripe IPs
Related Documentation
- Standalone Mode [PRO] – Required for Stripe direct integration
- Other Payment Gateways [PRO] – PayPal, Razorpay, offline
- Alternative Platforms – Other e-commerce options
- Currency & Tax Config – Financial settings
