PHPackages                             craftcms/commerce-paypal-checkout - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. craftcms/commerce-paypal-checkout

ActiveCraft-plugin[Payment Processing](/categories/payments)

craftcms/commerce-paypal-checkout
=================================

PayPal Checkout integration for Craft Commerce 5.0+

3.1.0(2mo ago)532.5k↑300%11[11 issues](https://github.com/craftcms/commerce-paypal-checkout/issues)MITPHPPHP ^8.2CI passing

Since Oct 28Pushed 2mo ago3 watchersCompare

[ Source](https://github.com/craftcms/commerce-paypal-checkout)[ Packagist](https://packagist.org/packages/craftcms/commerce-paypal-checkout)[ RSS](/packages/craftcms-commerce-paypal-checkout/feed)WikiDiscussions 3.x Synced 1mo ago

READMEChangelog (10)Dependencies (10)Versions (45)Used By (0)

[![PayPal Checkout for Craft Commerce icon](./src/icon.svg)](./src/icon.svg)

PayPal Checkout for Craft Commerce
==================================

[](#paypal-checkout-for-craft-commerce)

This plugin provides a [PayPal Checkout](https://www.paypal.com/uk/webapps/mpp/checkout) gateway integration for [Craft Commerce](https://craftcms.com/commerce).

Requirements
------------

[](#requirements)

This plugin requires Craft 5.0 and Craft Commerce 5.0 or later.

Installation
------------

[](#installation)

You can install this plugin from the Plugin Store or with Composer.

#### From the Plugin Store

[](#from-the-plugin-store)

Go to the Plugin Store in your project’s Control Panel and search for “PayPal Checkout for Craft Commerce”. Then click **Install** in the plugin’s modal window.

#### With Composer

[](#with-composer)

Open your terminal and run the following commands:

```
# go to the project directory
cd /path/to/my-project.test

# tell Composer to load the plugin
composer require craftcms/commerce-paypal-checkout

# tell Craft to install the plugin
php craft plugin/install commerce-paypal-checkout
```

Setup
-----

[](#setup)

### Creating PayPal REST API Credentials

[](#creating-paypal-rest-api-credentials)

The following steps are from the [PayPal guide](https://www.paypal.com/us/smarthelp/article/how-do-i-create-rest-api-credentials-ts1949) on how to create REST API credentials.

REST API credentials include a client ID and secret. Here's how you generate the credentials:

1. Log in to the [PayPal Developer Portal](https://developer.paypal.com/) using the same credentials you use for [PayPal](https://paypal.com/).
2. On the **My Apps &amp; Credentials** page, click **Live** or **Sandbox** depending on whether you need an app for testing (Sandbox) or going live (Live).
3. Click **Create App** under **REST API** apps. Any previously created REST API apps will appear in the table above the **Create App** button.
4. Enter the name of your REST API app in the **App Name** field, and select a Sandbox business account to associate with your app. **Note:** Remember that you can't use a Live credit card in Sandbox, and you can't use a test credit card in your Live account.
5. Click **Create App**.
6. Your credentials, the client ID and secret, are displayed on the app details page that displays after you click **Create App**.
7. Request permissions for REST API features that apply to your integration:
    - PayPal payments

You will now be able to see the **client ID** and **secret** for your newly created app.

When you are ready to take your code live, make sure you create a Live app to get live credentials.

Use the **Live** and **Sandbox** toggle at the top of **My Apps &amp; Credentials** to switch between app types and view your credentials for each.

### Creating PayPal Checkout Gateway in Commerce

[](#creating-paypal-checkout-gateway-in-commerce)

To add the PayPal Checkout gateway, go to **Commerce** → **Settings** → **Gateways**, create a new gateway, and set the gateway type to “PayPal Checkout”.

In the gateway settings, enter the **client ID** and **secret** for your REST app in their respective fields.

### Cart Info / Cost Breakdown

[](#cart-info--cost-breakdown)

Turning on the **Send Cart Information** setting for this gateway will send cart items and cost breakdown through to PayPal.

**Note:** If you’re using deprecated custom adjuster types, this setting will need be turned off.

### Paying with Non-Primary Currency

[](#paying-with-non-primary-currency)

When using the `getPaymentFormHtml()` method (e.g. `cart.gateway.getPaymentFormHtml({})`) and allowing payment in a currency other than the primary currency, you must pass the currency ISO in the method params.

For example, if you’ve already set the alternative payment currency on the cart you could do the following:

```
{{ cart.gateway.getPaymentFormHtml({
  currency: cart.paymentCurrency
}) }}
```

This is required when paying with an alternative payment currency due to the integration of the PayPal JavaScript SDK.

### SDK Query String Parameters

[](#sdk-query-string-parameters)

This gateway allows passing specific query string parameters at runtime, as specified in the [PayPal documentation](https://developer.paypal.com/docs/checkout/reference/customize-sdk/#query-parameters).

The allowed parameters are `currency` (as detailed above), `disable-card`, `disable-funding`, `enable-funding`, `locale` and `components`.

Warning

When using the `components` parameter, you must ensure you include the `buttons` component, otherwise the PayPal buttons will not render.

For example, to disable PayPal credit funding you could output the payment form as follows:

```
{{ cart.gateway.getPaymentFormHtml({
  ...
  'disable-funding': 'credit'
  ...
}) }}
```

###  Health Score

55

—

FairBetter than 98% of packages

Maintenance67

Regular maintenance activity

Popularity34

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity83

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 80.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~55 days

Recently: every ~39 days

Total

43

Last Release

63d ago

Major Versions

2.1.2 → 3.0.02024-03-20

1.3.5 → 2.1.32024-06-27

2.1.3 → 3.0.12024-06-27

2.1.4 → 3.0.32025-02-06

2.x-dev → 3.0.42025-10-14

PHP version history (2 changes)2.0.0-RC1PHP ^8.0.2

3.0.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/3ccdf8b493035de2343c55bd889513e3af5c04d5823482a2b186ad16adb1c3e3?d=identicon)[brandonkelly](/maintainers/brandonkelly)

---

Top Contributors

[![nfourtythree](https://avatars.githubusercontent.com/u/266453?v=4)](https://github.com/nfourtythree "nfourtythree (210 commits)")[![lukeholder](https://avatars.githubusercontent.com/u/133571?v=4)](https://github.com/lukeholder "lukeholder (20 commits)")[![angrybrad](https://avatars.githubusercontent.com/u/61869?v=4)](https://github.com/angrybrad "angrybrad (12 commits)")[![brandonkelly](https://avatars.githubusercontent.com/u/47792?v=4)](https://github.com/brandonkelly "brandonkelly (12 commits)")[![pdaleramirez](https://avatars.githubusercontent.com/u/4172750?v=4)](https://github.com/pdaleramirez "pdaleramirez (2 commits)")[![timkelty](https://avatars.githubusercontent.com/u/18329?v=4)](https://github.com/timkelty "timkelty (2 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")[![MattWilcox](https://avatars.githubusercontent.com/u/814039?v=4)](https://github.com/MattWilcox "MattWilcox (1 commits)")[![billmn](https://avatars.githubusercontent.com/u/779534?v=4)](https://github.com/billmn "billmn (1 commits)")

---

Tags

craft-commercecraft-plugincraftcmsecommerceyii2paypalcraftcmscheckoutcommerce

### Embed Badge

![Health badge](/badges/craftcms-commerce-paypal-checkout/health.svg)

```
[![Health](https://phpackages.com/badges/craftcms-commerce-paypal-checkout/health.svg)](https://phpackages.com/packages/craftcms-commerce-paypal-checkout)
```

###  Alternatives

[craftcms/commerce-stripe

Stripe integration for Craft Commerce 5.0+

32157.4k3](/packages/craftcms-commerce-stripe)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
