Stripe

Stripe is connected through Milo Payments and is the recommended gateway for most stores. It handles credit and debit cards, Apple Pay, Google Pay, and SEPA Direct Debit, with automatic SCA and 3D Secure. It is the only gateway supported in Standalone mode.

Key facts

  • Gateway ID: milo_stripe.
  • Method title at checkout: Credit / Debit Card.
  • Connected via OAuth through connect.milosubscriptions.com. No API keys to copy.
  • A 1% application fee is added on top of Stripe’s standard processing fees.
  • Fully supports saved cards so automatic renewals run without customer intervention.

Connecting Stripe

  1. Install and activate Milo Payments.
  2. Go to Milo Subscriptions → Payments.
  3. Click the Stripe card and then Connect with Stripe in the header.
  4. You are redirected to Stripe to authorize the connection.
  5. After authorizing, you are redirected back to your site. The card updates to CONNECTED and shows your Stripe account ID.

Gateway detail page

After connecting, the Stripe detail page shows two sections:

Connection

  • Account: your Stripe account ID (acct_...).
  • Mode: Test / Sandbox or Live, depending on the current toggle.

Settings

  • Enable at checkout: show Stripe as a payment option during WooCommerce checkout.
  • Test / Sandbox mode: process test payments only, without real charges.

A Disconnect button lives in the page header. Disconnecting revokes the OAuth credentials and clears them from the database. Active subscriptions on Stripe will fail on their next renewal until the customer adds a new payment method.

Checkout experience

When enabled, Stripe appears at WooCommerce checkout with the title Credit / Debit Card (or whatever you have renamed it to in WooCommerce → Settings → Payments → Credit / Debit Card (Milo Subscriptions)). The customer enters card details in a Stripe-hosted card element, which handles:

  • Card validation in the browser.
  • SCA and 3D Secure authentication for European customers.
  • Saving the card for automatic future renewals.

Milo Payments also registers a WooCommerce block checkout integration, so Stripe works with both the legacy shortcode checkout and the Checkout block.

Supported features

The Stripe gateway declares support for:

  • Products (one-time purchases).
  • Refunds.
  • Tokenization (saved payment methods).

When Milo Subscriptions is active, it additionally declares:

  • subscriptions
  • subscription_cancellation
  • subscription_suspension
  • subscription_reactivation
  • subscription_amount_changes
  • subscription_date_changes
  • subscription_payment_method_change
  • subscription_payment_method_change_customer

This means Stripe handles the full Milo Subscriptions lifecycle: charges, cancellations, suspensions, reactivations, price changes, date changes, and customer-driven payment method changes.

Test mode

Toggle Test / Sandbox mode on before accepting live traffic. While in test mode, Stripe uses its test environment and none of the following are real: charges, fees, or payout amounts.

Useful Stripe test cards:

  • 4242 4242 4242 4242: a successful Visa test card.
  • 4000 0025 0000 3155: triggers 3D Secure authentication.
  • 4000 0000 0000 0002: always declined.

Use any future expiry date and any 3-digit CVC. Full list in Stripe’s testing documentation.

When you are ready to go live, turn off the toggle and run one real purchase to confirm the live credentials work.

How renewals work

When a customer buys a subscription, Milo Payments:

  1. Creates a Stripe Customer on the connected account (and stores the customer ID in user meta, scoped by account: _milo_stripe_customer_id_{account_id}).
  2. Creates a PaymentMethod attached to that customer.
  3. Stores a WooCommerce payment token linked to the subscription.

Each renewal:

  1. Looks up the saved token on the subscription.
  2. Creates a PaymentIntent on the Stripe Customer and charges the saved PaymentMethod.
  3. If SCA is required, the renewal is marked as needing authentication and a renewal invoice is emailed to the customer so they can complete 3D Secure.

Application fee

Every live transaction through Milo Payments includes a 1% application fee, collected by the connect server. This fee is visible in your Stripe dashboard as an “Application Fee” line on each charge. It does not apply to test-mode transactions.

Disconnecting

From Milo Subscriptions → Payments → Stripe, click Disconnect in the header. Confirm in the modal. Milo Payments:

  • Revokes the OAuth connection with Stripe.
  • Clears the stored credentials from wp_options.
  • Leaves subscriptions intact but without a working payment source. Their next renewal will fail until the customer adds a new payment method.

If you only want to switch accounts, disconnect and reconnect. If you plan to replace Stripe with another gateway, contact affected customers first.

Troubleshooting

Stripe card appears connected but checkout is missing it

Check Enable at checkout on the Stripe detail page. The gateway is only offered to customers when this toggle is on.

Customers hit “authentication required” on renewal

This is expected when the card requires SCA. Milo Subscriptions emails the customer a renewal invoice they can pay from their account, which completes the 3D Secure challenge. Renewals complete once the customer authenticates.

Duplicate Stripe gateway on checkout

If you have another Stripe plugin installed (the official WooCommerce Stripe plugin, for example), you will see both. Milo Payments detects this and shows an admin notice. Deactivate one of the two plugins.

Gateway icon renders oversized

The Stripe SVG has a large viewBox. Milo Payments overrides get_icon() to set max-height: 24px. If you still see an oversized logo, another plugin is likely overriding the icon; inspect the <img> element in the browser to find the source.

Payout amounts look low

Stripe’s standard processing fee plus the 1% Milo Payments application fee both apply. Check the “Fees” column on each charge in the Stripe dashboard to confirm.

Next steps

  • Payments overview: compare Stripe with PayPal, Mollie, and Square.
  • PayPal: add PayPal as an alternative method.
  • Mollie: add European-focused methods like iDEAL and Bancontact.
  • Square: use Square for card payments alongside in-person checkout.