---
title: Payment plugins
slug: commerce-connect-13/docs/payment-plugins
docTags: 
createdAt: 2026-07-23T09:44:50.000Z
---

The Payment plugin of Optimizely Commerce Connect is available when building solutions with the payment processing parts of Commerce Connect.  A payment type is passed to the payment plugin, which executes the payment transaction via the payment system. One payment type is associated with each payment plugin.

:::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\:o6L6yoM4kQYc-1LlvLiud) 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.

**Commerce Connect 14 example**

```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 Connect reference sample project on GitHub](https://github.com/episerver/Quicksilver).

**Commerce Connect 11-13 example**

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

Using IPaymentPlugin, Optimizely 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);
```
