Skip to content

PayPal

Let customers pay from their PayPal balance alongside your card gateway, with saved wallets for automatic renewals.

PayPal collects payments from the customer's PayPal account. It is usually connected alongside a card gateway rather than instead of one: customers who prefer PayPal use it, everyone else pays by card. A payment made with PayPal is recorded as its own payment method on the ledger, so reports and refunds always show what was actually used.

The experience is embedded PayPal buttons on your pages, or the hosted redirect where the customer approves the payment on PayPal's site and returns.

Currencies

USD, EUR, GBP, AUD, CAD, JPY, CHF, CZK, DKK, HKD, HUF, ILS, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB and TWD.

Connecting

Go to Settings, then Payment gateways, then PayPal. Credentials come from the PayPal Developer Dashboard under Apps and Credentials. Each app has a sandbox and a live version; use the sandbox app's values on the test connection and the live app's on live.

  • Client ID and Client secret: the app's credentials. The secret is shown once when created.
  • Webhook ID: create a webhook on the app pointing at the endpoint URL shown on the gateway page, subscribed to payment capture, refund and dispute events, then paste the webhook's ID here. PayPal's event verification requires the ID, so charging stays off until this is set.

Testing without test cards

PayPal's sandbox does not use test card numbers. Instead, the Developer Dashboard gives you sandbox buyer accounts: log in as one at checkout to approve test payments end to end.

Saving wallets and renewals

When a customer pays and chooses to keep their PayPal account on file, the wallet is stored for renewals; approval happens once, during that first payment. Wallets can also be saved without any charge from the customer's update page, through PayPal's own approval flow. Renewals and automatic collection then charge the stored wallet without the customer being present.

Refunds and disputes

Refunds go back to the customer's PayPal account against the original capture. See refunds. Disputes opened at PayPal appear on the payment's activity trail automatically. When a dispute closes against you, the chargeback is recorded on the customer's account automatically (see refunds).

Limits

  • PayPal wallet only: it does not process your card payments, so pair it with a card gateway.
  • The webhook ID is required before charging.
  • PayPal's API only returns saved wallets one customer at a time, with no way to list them all, so yRecurring cannot fetch them for you. A migration from another billing system brings the token references in by file instead. See migrating saved payment methods.