Accept a PayPal payment
Learn how to accept PayPal payment, a digital wallet popular with businesses in Europe.
Checkout
Elements
Direct API
Mobile
Stripe Checkout shows PayPal either as a standard payment method or as a standalone button, depending on which option is more likely to increase the conversion rate.
Determine compatibility
A Checkout Session must satisfy all of the following conditions to support PayPal payments:
- Prices for all line items must be in the same currency. If you have line items in different currencies, create separate Checkout Sessions for each currency.
Accept a payment
Note
Build an integration to accept a payment with Checkout before using this guide.
Enable PayPal as a payment method
When creating a new Checkout Session, do the following:
- Enable PayPal in your Dashboard. Stripe automatically displays PayPal to eligible customers using dynamic payment methods . If you currently specify payment _ method _ types , see the migration guide .
- Make sure all your line _ items use the same currency.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Fulfill your orders
After accepting a payment, learn how to fulfill orders.
Test your integration
You don’t need to connect your PayPal business account to test the integration. However, make sure to connect your PayPal and Stripe accounts when you’re ready to activate live mode payments.
When Checkout shows the PayPal button, you need a personal PayPal Sandbox account to complete the test payment. If Checkout lists PayPal as a payment method instead, select PayPal and click Pay —no PayPal Sandbox account is required.
To simulate the most common integration and failure scenarios for PayPal payments, pass email values that match the patterns described in these test scenarios.
Test scenarios
| Email pattern | Scenario | Explanation |
|---|---|---|
.*payee_account_restricted@.* | Merchant account restricted | Capturing or authorizing a payment fails with a payment_method_unexpected_state error if your merchant account is restricted by PayPal. Provide an email matching this pattern at time of authorization to fail the authorization. |
.*transaction_refused@.* | Transaction refused | Capturing a payment fails with a payment_method_provider_decline error if the transaction is refused by PayPal. |
.*instrument_declined@.* | Payment instrument declined | Capturing a payment fails with a payment_method_provider_decline error if the instrument presented was either declined by the processor or bank, or it can’t be used for this payment. |
.*authorization_expired@.* | Manually capturing an authorized payment | Capturing an authorized payment fails with a capture_charge_authorization_expired error if the authorization has already expired. |
