---
title: Payment plugins
slug: commerce-connect-14/docs/payment-plugins
docTags: 
createdAt: 2026-07-23T10:25:34.370Z
---

The `PaymentPlugin` is available when building solutions with the payment processing parts of Optimizely Commerce Connect.  A payment type is passed to the payment plugin, which executes the payment transaction via the payment system. Each payment plugin is associated with a specific payment type.

:::hint{type="info"}
**Note**
Classes in this topic are available in the `EPiServer.Commerce.Order` namespace, which contains `IPaymentPlugin`.
:::

`IPaymentPlugin` is an improvement over `IPaymentGateway`, which supports abstraction APIs and `Serializable Carts` as well. The activities below will be carried out following [Payment gateways](docId\:LreRk8QUJ57o-Lp0WPSyP) exactly:

- Payment plugin properties
- Using built-in payment
- Creating a custom payment plugin

There is one important difference between `IPaymentPlugin` and `IPaymentGateway`: `IPaymentPlugin` uses `IPayment` as a parameter, while `IPaymentGateway` uses `Payment` as a parameter.

**Example \[New in Commerce Connect 14]**

```javascript
PaymentProcessingResult ProcessPayment(IOrderGroup orderGroup, IPayment payment)
```

A simple implementation of the [Adyen payment gateway](https://www.adyen.com/) is available in the ["Quicksilver" Commerce reference sample project on GitHub](https://github.com/episerver/Quicksilver).

**Commerce Connect 11-13 example**

```javascript
PaymentProcessingResult ProcessPayment(IOrderGroup orderGroup, IPayment payment)
```

Using `IPaymentPlugin`, Commerce Connect provides sample code for PayPal, DIBS and DataCash. See [Payment providers](https://world.optimizely.com/documentation/developer-guides/archive/commerce/payments/payment-providers/10-13/).

**Commerce Connect 10.2.2-10.x example**

```javascript
bool ProcessPayment(IPayment payment, ref string message);
```
