Payments

Milo Subscriptions can work with any WooCommerce-compatible payment gateway that supports tokenized recurring payments (Stripe, PayPal, WooPayments, Braintree, Authorize.net, and so on). On top of that, Milo ships a dedicated payments plugin called Milo Payments, which bundles the four most common gateways behind a single OAuth connection flow.

This page covers both options: using stock WooCommerce gateways, and using the Milo Payments plugin.

Option 1: Stock WooCommerce gateways

If you already have a WooCommerce-supported gateway installed and configured, Milo Subscriptions will use it automatically. At checkout, any gateway that supports tokenization (saving a payment method for future charges) is offered when a subscription is in the cart. Gateways that do not support tokenization are hidden unless you enable Accept manual renewals in Milo Subscriptions → Settings → Checkout.

You configure stock gateways in the usual place: WooCommerce → Settings → Payments. Milo Subscriptions does not override their settings.

To qualify as a recurring gateway, the plugin must implement WooCommerce’s subscription support flags (subscriptions, subscription_cancellation, subscription_payment_method_change, etc.). Most major gateways do. If a gateway supports subscriptions in WooCommerce Subscriptions (the official plugin), it also works with Milo Subscriptions.

Option 2: Milo Payments

Milo Payments is a separate free plugin by Milo that adds four gateways in one install: Stripe, PayPal, Mollie, and Square. It connects each gateway via OAuth through a connect server proxy at connect.milosubscriptions.com, so there are no API keys to copy or paste.

Milo Payments is independent of milosubscriptions: it also works as a standalone WooCommerce payment gateway plugin for one-time purchases. When combined with Milo Subscriptions, it adds native support for recurring payments.

Why use Milo Payments

  • One plugin for four gateways instead of installing a separate plugin for each.
  • One-click OAuth setup per gateway.
  • Automatic renewals via saved payment methods, mandates, or vault tokens.
  • SCA and 3D Secure handled automatically.
  • Block-based checkout support for Stripe and PayPal.
  • Free to use, with a small 1% transaction fee on processed payments to keep the plugin maintained.

Installing Milo Payments

Milo Payments is a separate plugin. Install it from:

  • Plugins → Add New and search for Milo Payments, or
  • Download the ZIP from milosubscriptions.com and upload it.

Activate it and open Milo Subscriptions → Payments.

The Payments page

The page lists every supported gateway as a card showing the gateway’s name, icon, description, and connection status.

In standalone mode (when WooCommerce is not active), only Stripe is shown, because Standalone mode uses Stripe Checkout exclusively. In WooCommerce mode, all four gateways are shown.

A separate Coming soon section lists Braintree, Authorize.net, and PayFast as upcoming additions.

Connecting a gateway

  1. Click the gateway card to open its detail view.
  2. Click Connect with [gateway name] in the page header. Milo Payments initiates an OAuth flow via the connect server.
  3. You are redirected to the gateway’s authorization page (Stripe, PayPal, Mollie, or Square).
  4. Authorize the connection.
  5. You are redirected back to your site with the gateway marked Connected.

Once connected, the gateway detail page shows:

  • Connection section with your account or merchant ID and the current mode (Test/Sandbox or Live).
  • Settings section with two toggles:
  • Enable at checkout: show this payment method to customers during checkout.
  • Test / Sandbox mode: process test payments only. No real charges will be made.

Disconnecting a gateway

From the gateway detail page, click Disconnect in the header. Milo Payments shows a confirmation modal:

Are you sure you want to disconnect this gateway? Active subscriptions using this gateway will need a new payment method.

Confirming revokes the OAuth connection and clears the stored credentials. Existing subscriptions using this gateway will fail on their next renewal and will need the customer to add a new payment method.

Test mode

Every gateway supports test or sandbox mode out of the box. Toggle Test / Sandbox mode on to use test credentials and send only test transactions. Switch it off when you are ready to accept live payments.

  • Stripe uses test keys internally while in test mode. Test cards like 4242 4242 4242 4242 work.
  • PayPal uses the sandbox environment, so you need a sandbox buyer account to test.
  • Mollie has a dedicated test mode.
  • Square uses its sandbox environment.

Transaction fees

Milo Payments adds a 1% application fee on processed payments. This is taken on top of the gateway’s own fees (Stripe, PayPal, Mollie, and Square each charge their own standard processing fees). The 1% is enforced server-side by the connect server proxy. There is no license fee, no annual renewal, and no per-site charge.

How Milo Payments integrates with subscriptions

When Milo Subscriptions is active alongside Milo Payments:

  • Each gateway registers as a WooCommerce payment method that supports subscriptions.
  • Payment tokens (cards, PayPal vault tokens, Mollie mandates, Square cards-on-file) are saved so renewals can be charged automatically.
  • Customer IDs are scoped per gateway account and stored in user meta as _milo_{gateway}_customer_id_{account_id}.
  • Gateway-specific meta keys are exposed through the milosubscriptions_gateway_meta_keys filter so they follow subscriptions through renewals, switches, and migrations.

Conflict detection

Milo Payments detects when another plugin on your site registers the same gateway (for example, the official WooCommerce Stripe plugin). An admin notice surfaces the conflict. Two plugins registering the same gateway cause unpredictable behavior at checkout, so pick one and deactivate the other.

Credentials and security

Gateway credentials returned by the OAuth handshake are stored in wp_options and AES-encrypted at rest. They are never exposed through the REST API or rendered in the admin UI. If you need to rotate credentials, disconnect and reconnect the gateway.

Choosing between stock gateways and Milo Payments

Pick stock WooCommerce gateways when:

  • You already have a configured WooCommerce subscription-capable gateway you trust.
  • You need a specific gateway that Milo Payments does not support yet.
  • You are comfortable copying and managing API keys yourself.
  • You prefer to avoid a 1% transaction fee, even if it means paying for a gateway extension or managing more plugins.

Pick Milo Payments when:

  • You want to avoid copying API keys and managing multiple plugins.
  • You are setting up a new store and want a fast path to live payments.
  • You are using Standalone mode (Milo Payments is the recommended Stripe integration).
  • You are fine trading 1% in processing for simpler setup and unified support.

The two approaches are not mutually exclusive. You can, for example, use Milo Payments for Stripe while keeping a stock PayPal plugin for PayPal. Just make sure you do not have two plugins registering the same gateway at once.

Next steps

  • Stripe: detailed Stripe setup and options.
  • PayPal: detailed PayPal setup and options.
  • Square: detailed Square setup and options.
  • Mollie: detailed Mollie setup and options.