PayPal
PayPal is connected through Milo Payments using the PayPal Commerce Platform. It accepts PayPal, Venmo, and Pay Later, and supports automatic subscription renewals through PayPal vault tokens.
Key facts
- Gateway ID:
milo_paypal. - Method title at checkout: PayPal.
- Built on the PayPal Commerce Platform using PayPal’s JS SDK for buttons and the Orders API for processing.
- Connected via OAuth through
connect.milosubscriptions.com. No client ID or secret to copy. - Recurring renewals use vault tokens, not PayPal’s own Subscriptions API, which keeps subscription state inside Milo Subscriptions where it belongs.
- A 1% application fee is added on top of PayPal’s standard processing fees on live transactions.
Connecting PayPal
- Go to Milo Subscriptions → Payments.
- Click the PayPal card, then click Connect with PayPal in the header.
- You are redirected to PayPal to authorize the connection as a merchant.
- After authorizing, you are redirected back to your site. The card updates to CONNECTED and shows your PayPal merchant ID.
Gateway detail page
Once connected, the PayPal detail page shows two sections:
Connection
- Account: your PayPal merchant ID.
- Mode: Test / Sandbox or Live.
Settings
- Enable at checkout: show PayPal during checkout.
- Test / Sandbox mode: route payments through PayPal’s sandbox environment.
A Disconnect button lives in the page header. Disconnecting revokes the OAuth connection and clears stored credentials.
Checkout experience
When PayPal is enabled, customers see a PayPal button block at checkout instead of a standard card form. Clicking the button opens a PayPal-hosted window where the customer signs in and confirms payment. Depending on their country and PayPal account, the options include:
- PayPal (standard PayPal balance or linked funding sources).
- Venmo (US only).
- Pay Later / Buy Now Pay Later (regional availability).
The PayPal button and checkout flow work with both the Checkout block and the classic shortcode checkout. Milo Payments stores the PayPal order ID (_milo_paypal_order_id) on the WooCommerce order when customers check out via the Checkout block so the order is linkable back to PayPal’s side.
Supported features
The PayPal gateway declares support for the same features as the other Milo Payments gateways:
- Products
- Refunds
- Tokenization
- Subscriptions: cancellation, suspension, reactivation, amount changes, date changes, and payment method change (by both admin and customer) when Milo Subscriptions is active.
How renewals work
On the first purchase, PayPal is asked to create a vault token (a reusable reference to the buyer’s funding source) at the same time it processes the first payment. Milo Payments stores this vault token as subscription meta:
_milo_paypal_vault_id: the PayPal vault token used for renewals.
On each renewal:
- Milo Payments creates a PayPal order using the stored vault token.
- The order captures automatically through PayPal’s Orders API, charging the saved funding source.
- If the vault token is missing or revoked, the renewal fails and the customer is asked to update their payment method.
This flow works for PayPal, Venmo, and most Pay Later methods that support vaulting.
Sandbox mode
Toggle Test / Sandbox mode on to route payments through PayPal’s sandbox. You will need:
- A PayPal sandbox business account to connect with.
- A PayPal sandbox buyer account for testing purchases.
Create both from the PayPal Developer Dashboard. When in sandbox mode, no real money moves, and the PayPal buttons use the sandbox domain.
Turn sandbox mode off only after you have confirmed:
- You can connect a live PayPal business account.
- A real buyer can complete one live purchase.
- A renewal successfully charges the vault token (you can force this from the subscription detail page).
Application fee
On live transactions, Milo Payments adds a 1% application fee collected through the connect server proxy. This appears as a line on each PayPal transaction and is separate from PayPal’s standard processing fees. No fee applies in sandbox mode.
Disconnecting
From Milo Subscriptions → Payments → PayPal, click Disconnect in the header. After confirming, Milo Payments:
- Revokes the OAuth connection with PayPal.
- Clears the stored merchant credentials from
wp_options. - Leaves active subscriptions intact, but their stored vault tokens will no longer work. Renewals will fail until the customer adds a new payment method.
Troubleshooting
PayPal button is missing at checkout
Check:
- The PayPal gateway is Enabled at checkout on the PayPal detail page.
- Your site loads PayPal’s JS SDK (no ad blockers or CSP restrictions blocking
paypal.com). - No other PayPal plugin is registering a conflicting payment method. Milo Payments shows an admin notice when it detects a conflict.
Renewals fail with a vault error
The most common cause is that the buyer revoked authorization to charge on their PayPal side, or that PayPal revoked the vault token due to an expired funding source. Milo Subscriptions will run retries according to your renewal retry settings and email the customer to update their payment method.
Venmo or Pay Later option is missing
Availability depends on the buyer’s region, PayPal account status, and the purchase amount. You cannot force a funding source; PayPal decides which options to show based on its own rules.
A buyer paid through PayPal outside the normal checkout
Milo Payments processes orders through the standard WooCommerce checkout and Store API. Payments taken through PayPal’s dashboard, a manual invoice, or another integration are not visible to Milo Subscriptions. If you need to attribute an external PayPal payment to a subscription, link the order manually from Milo Subscriptions → Subscriptions.
Next steps
- Payments overview: compare PayPal with Stripe, Mollie, and Square.
- Stripe: card payments with the lowest setup friction.
- Mollie: add European methods like iDEAL and Bancontact.
- Square: card payments linked to Square’s POS.
Did this page miss something?
Tell us and we rewrite it, usually the same day.