Accepting Payments with Stripe
Stripe lets you accept credit cards and over 20 other payment methods directly through your photo galleries. It is included with the free Sunshine Photo Cart plugin and comes with platform fees. Upgrading to the Stripe add-on removes all platform fees.
Connecting Your Stripe Account
- In your WordPress admin, go to Sunshine > Settings > Payments
- Enable the Stripe gateway with the toggle button, then click Configure
- Optionally enter a custom display name and description
- Select your mode — Live or Test
- Click the Connect button. You will be redirected to Stripe where you select which account to connect
Live and test modes use separate connections with their own credentials. You will need to connect each mode individually. The Mode toggle controls which connection is active.
Once connected, the settings page shows your connected Stripe account name and email so you can confirm the right account is linked.
Checkout Modes
Stripe offers two ways to collect payment from your customers. You can switch between them at any time in the Stripe settings.
Inline Payment Form
This is the default and recommended option. The payment form appears directly on your checkout page. Customers enter their payment details without ever leaving your site.
Inline mode gives you the most control over the checkout experience. It supports all payment method settings, statement descriptors, and layout customization described in the sections below.
Hosted Checkout
With hosted checkout, customers are redirected to a Stripe-hosted payment page to complete their purchase. After payment, they are sent back to your order confirmation page.
This mode supports Stripe Tax for automatic tax calculation. Payment methods are managed in your Stripe Dashboard rather than through Sunshine settings.
Hosted checkout is a good option if you prefer Stripe to handle the entire payment interface.
Payment Methods
Stripe supports over 20 payment methods beyond traditional credit cards. Available methods include:
- Cards — Visa, Mastercard, American Express, and more
- Digital wallets — Apple Pay, Google Pay, Amazon Pay, Cash App, Link
- Buy now, pay later — Affirm, Afterpay/Clearpay, Klarna
- Bank transfers — US Bank Account (ACH), Canadian Debit, Bacs Debit (UK), SEPA Direct Debit
- Regional methods — Alipay, WeChat Pay, Bancontact, EPS, giropay, iDEAL, Przelewy24, SOFORT
Apple Pay and Google Pay appear automatically when customers use a compatible device or browser, but they require domain verification before they will work.
Which methods are available depends on your Stripe account's country and capabilities. Not all methods work in every region.
Note: Payment method settings only apply to inline checkout mode. When using hosted checkout, payment methods are configured in your Stripe Dashboard instead.
Domain Verification for Apple Pay and Google Pay
Apple Pay and Google Pay require your website's domain to be registered with Stripe before they can accept payments. Without this, customers will see an error when trying to pay with these methods.
If you have Apple Pay or Google Pay enabled and your customers are seeing payment errors, domain verification is most likely the issue.
Automatic verification: When you connect your Stripe account through Sunshine, your domain is registered automatically. For most sites, this is all you need — no extra steps required.
Manual verification: If automatic verification didn't work — for example, if you changed your domain name after connecting Stripe — you can re-verify manually. In your Stripe settings within Sunshine, look for the Set up payment domain option and click it for the mode you are using (live or test).
The easiest option: If you are not sure whether domain verification is set up correctly, switch to Optimized Checkout. Optimized Checkout handles domain verification and payment method availability automatically. Apple Pay and Google Pay will only appear when everything is properly configured for that customer's device.
Optimized Checkout
Optimized Checkout is enabled by default. With this turned on, Stripe automatically shows the most relevant payment methods to each customer based on their location, device, and purchase amount.
This is the recommended approach for most photographers — it gives your customers the best experience without you needing to manage individual payment methods.
Manual Payment Method Selection
If you prefer to control exactly which payment methods appear, disable Optimized Checkout. You can then toggle individual payment methods on or off.
Use the Sync Payment Methods button to refresh the list of methods your Stripe account supports. Credit cards are always enabled as a baseline.
Layout
When using inline checkout mode, you can choose how the payment form displays:
- Tabs (default) — Payment method types appear as horizontal tabs
- Accordion — Payment method types appear as expandable sections
This is a visual preference and does not affect functionality.
Statement Descriptors
Statement descriptors control what appears on your customer's bank or credit card statement when they make a purchase. Clear descriptors help clients recognize their charges and reduce "I don't recognize this charge" inquiries.
These settings only apply to inline checkout mode.
- Bank Statement Descriptor — The text that appears on statements. Maximum 22 characters, letters, numbers, and spaces only. Leave blank to use your Stripe account's default setting.
- Add Order Number to Statement — When enabled, the order number is appended to the descriptor (e.g., "MYSHOP* #12345"). This helps customers connect a charge to a specific order.
- Shortened Descriptor — When the order number option is enabled, this shorter version (maximum 10 characters) is used as the prefix before the order number. If left blank, the first 10 characters of your full descriptor are used.
Stripe Tax
When using hosted checkout mode, you can let Stripe calculate tax automatically based on your customer's location.
To enable this:
- First, activate Stripe Tax in your Stripe Dashboard
- In the Sunshine Stripe settings, set Tax Calculation to Use Stripe Tax (automatic)
When Stripe Tax is active, the calculated tax amount is synced back to the order in Sunshine after payment completes.
By default, Sunshine uses its own built-in tax calculations. Switch to Stripe Tax if you sell to customers across multiple tax jurisdictions and want automatic compliance.
Note: Stripe Tax is only available in hosted checkout mode. Inline checkout uses Sunshine's tax settings.
Webhooks
Webhooks let Stripe notify your website when a payment event happens. This ensures your orders are updated automatically, even if a customer's browser closes before the confirmation page loads.
Setting Up Webhooks
- Find your webhook URL displayed in the Sunshine Stripe settings
- Log in to your Stripe Dashboard and go to Developers > Webhooks
- Click + Add endpoint and paste your webhook URL
- Select Choose events and add these two events:
checkout.session.completedpayment_intent.succeeded- Click Add endpoint to save
- Copy the Signing Secret from the endpoint details in Stripe (it starts with
whsec_) - Paste the signing secret into the corresponding field in the Sunshine Stripe settings
If you use both live and test modes, you will need to set up separate webhook endpoints and signing secrets for each.
Refunds
You can issue refunds directly from your WordPress admin without logging into Stripe.
- Go to the order in Sunshine > Orders and open it
- In the Order Actions panel, select Refund payment in Stripe
- Choose between a full refund or a partial refund
- For partial refunds, uncheck Full refund and enter the amount
- Optionally check the box to send the customer an email notification about the refund
- Click Submit
The order status is automatically updated to "Refunded" and the refund amount is recorded on the order. If the original payment included a platform fee, that fee is refunded as well.
Platform Fees
The free Stripe integration includes a 5% platform fee on each transaction. This is in addition to Stripe's own processing fees.
The Stripe add-on removes this platform fee entirely. See the platform fees article for full details.
Testing with Stripe
Before going live, you can test the full checkout flow using Stripe's test mode.
- In the Sunshine Stripe settings, switch the Mode to Test
- Click Connect to link your Stripe test mode account
- Set up a test mode webhook with its own signing secret if you want to test webhook delivery
- Place a test order using the card number 4242 4242 4242 4242, any future expiration date, and any 3-digit CVV (e.g., 123)
Switch back to Live mode when you are ready to accept real payments.
Still need help?
If you have not yet found your answer in the documentation articles, please contact support