---
title: "Barclaycard ePDQ Payment"
description: "The Barclaycard ePDQ plugin lets your J2Commerce store accept credit and debit card payments through the Barclaycard ePDQ gateway."
url: "https://docs.j2commerce.com/v6/payment-methods/payment_barclays"
markdown_url: "https://docs.j2commerce.com/v6/payment-methods/payment_barclays.md"
last_updated: "2026-10-23T01:49:34+00:00"
version: "J2Commerce 6"
breadcrumbs:
  - title: "Home"
    url: "https://docs.j2commerce.com/"
  - title: "J2Commerce 6"
    url: "https://docs.j2commerce.com/v6"
  - title: "Payment Methods"
    url: "https://docs.j2commerce.com/v6/payment-methods"
  - title: "Barclaycard ePDQ Payment"
    url: "https://docs.j2commerce.com/v6/payment-methods/payment_barclays"
---

# Barclaycard ePDQ Payment

The Barclaycard ePDQ plugin lets your J2Commerce store accept credit and debit card payments through the Barclaycard ePDQ gateway. Customers are redirected to a secure Barclaycard-hosted payment page to enter their card details — your server never handles raw card numbers. After payment, Barclaycard sends a notification back to your store to confirm the order.

> **Tip:** Barclaycard sold the ePDQ product to Worldline in 2023. If you already hold an ePDQ PSPID, your account continues to work unchanged under Worldline branding. If you do not yet have an ePDQ account, contact Worldline directly to open a new one.

Key features:

- Secure Hosted Payment Page (HPP) — card data handled entirely by Barclaycard (SAQ-A compliant)
- Optional on-site FlexCheckout card form using the ePDQ Alias Gateway
- Saved cards — logged-in customers can store and reuse their card at checkout
- Subscription product support with automatic renewal billing via saved cards
- Admin **Capture**, **Void**, and **Refund** buttons on the order detail screen
- Test mode with a separate set of sandbox credentials

## Requirements

- Joomla 6.0 or later
- J2Commerce 6.3.4 or later
- An active Barclaycard ePDQ merchant account
- SHA-IN and SHA-OUT passphrases set in your ePDQ Back Office
- Your site served over HTTPS

## Get your credentials from the ePDQ Back Office

Before you configure the plugin, you need to collect five values from the ePDQ Back Office at [payments.epdq.co.uk](https://payments.epdq.co.uk):

| What you need | Where to find it in the Back Office |
| --- | --- |
| **PSPID** | Your merchant account name shown at the top of the Back Office screen |
| **API User ID** | **Configuration** -> **Users** — create or select a user with DirectLink rights |
| **API Password** | Set when you create the API user |
| **SHA-IN Passphrase** | **Configuration** -> **Technical information** -> **Data and origin verification** |
| **SHA-OUT Passphrase** | **Configuration** -> **Technical information** -> **Transaction feedback** |

> **Tip:** The SHA-IN and SHA-OUT passphrases should be long, random strings that you create yourself. Write them down securely — you will enter the same values in both the ePDQ Back Office and the plugin.

## Purchase and download

This plugin is a separate add-on available from the [Barclays ePDQ](https://www.j2commerce.com/extensions/payment-plugins/barclays-epdq). It is not included with the core J2Commerce 6 component.

1. Go to the [J2Commerce website](https://www.j2commerce.com/extensions) and locate **Barclaycard ePDQ Payment**.
2. Add it to your cart and complete checkout.
3. Go to **My Downloads** under your account profile and find the plugin.
4. Click **Available Versions** -> **View Files** -> **Download Now** to download the ZIP file.

## Install the plugin

In the Joomla Administrator, go to **System** -> **Install** -> **Extensions**.

Upload the `plg_j2commerce_payment_barclays.zip` file.

![Joomla System Dashboard with System in the sidebar and the Install Extensions link highlighted to open the extension installer](https://docs.j2commerce.com/images/docs/shared/install.webp)

## Enable the Plugin

Once you have installed the App, you will need to enable it. There are **two** ways you can access the App.

**Option A:** Go to the **J2Commerce** icon at the top right corner **-> Setup -> Payment Methods**

**Option B:** Go to **Components** on the left sidebar **-> J2Commerce -> Dashboard** **-> Setup** **-> Payment Methods**

![J2Commerce Payment Methods list reached via Components > J2Commerce and the J2Commerce menu's Setup > Payment Methods, both highlighted, with 2Checkout listed](https://docs.j2commerce.com/images/docs/shared/culqi.webp)

To help you narrow down the list, you can do a search for **Barclaycard ePDQ Payment**, click the **X,** and it will turn into a green checkmark. It is now enabled and ready for setup.

![Payment Methods list searched for barclay, with the search box and the enabled Status check on the Barclaycard ePDQ row outlined (version 6.0.1)](https://docs.j2commerce.com/images/docs/shared/barclay-enable.webp)

## Configure the plugin

Click the **Barclaycard ePDQ** title next to the green checkmark to open the configuration screen.

> **Tip:** Click the **Toggle Inline Help** button at the top of any plugin configuration page to show a short description beneath each field.

![Barclaycard ePDQ plugin with the Toggle Inline Help button highlighted and the help text Name to display to customers during checkout outlined under Display Name](https://docs.j2commerce.com/images/docs/shared/barclay-toggle.webp)

### Display Settings

![Barclaycard ePDQ plugin settings outlined: Display Name Barclaycard and a Display Image picker showing the Barclays ePDQ logo](https://docs.j2commerce.com/images/docs/shared/barclay-display.webp)

**Display Name:** The name customers see at checkout (default: Barclaycard)

**Display Image:** Optional logo to show at checkout alongside the payment method name

### Test mode

![Barclaycard ePDQ live credentials outlined with Test Mode Never: empty PSPID (Merchant ID), API User ID, API Password, SHA-IN and SHA-OUT passphrase fields](https://docs.j2commerce.com/images/docs/shared/barclay-live.webp)

**Test Mode:** Switch this to **Yes** while you are testing. Payments go to the Barclaycard sandbox — no real money is charged. Switch to **No** before you go live.

### Credentials (live)

These fields are shown when Test Mode is off.

- **PSPID (Merchant ID):** Your ePDQ affiliation name (PSPID) from the Back Office
- **API User ID:** The DirectLink API username you created in the Back Office under **Configuration** -> **Users**
- **API Password:** Password for that DirectLink API user
- **SHA-IN Passphrase:** The passphrase from **Technical information** -> **Data and origin verification**
- **SHA-OUT Passphrase:** The passphrase from **Technical information** -> **Transaction feedback**

### Credentials (Test)

When Test Mode is enabled, a separate set of **Sandbox** credential fields appears. Enter your sandbox PSPID, sandbox API User ID, sandbox API Password, sandbox SHA-IN, and sandbox SHA-OUT there. Your live credentials remain safely stored and untouched.

- Before going live, enable **Test Mode** in the plugin and enter your Barclaycard sandbox PSPID and passphrase values in the sandbox fields. The Barclaycard sandbox environment is at `mdepayments.epdq.co.uk`.
- Barclaycard provides test card numbers through their merchant documentation. Typical test cards include:
  - Visa: `4111 1111 1111 1111` (check your ePDQ sandbox documentation for current test numbers)
  - Any future expiry date and any 3-digit CVV work on the test environment
- When Test Mode is enabled, a warning banner appears on the J2Commerce dashboard reminding you that no real payments are being processed.

> **Tip:** Always disable Test Mode and switch to your live credentials before opening your store to customers.

### Security

![Barclaycard ePDQ plugin security settings outlined: Hash Algorithm SHA-512 (recommended) and Verify SHA-OUT Signature set to Yes](https://docs.j2commerce.com/images/docs/shared/barclay-hash.webp)

**Hash Algorithm:** Must match exactly what you selected in the ePDQ Back Office under **Technical information** -> **Global transaction parameters**. SHA-512 is recommended.

**Verify SHA-OUT Signature:** Verifies that every payment notification genuinely comes from Barclaycard. Keep this enabled in production — disable only temporarily for debugging.

### Hosted page appearance

![Barclaycard ePDQ hosted page appearance fields outlined: empty HPP Background Color, HPP Logo URL and HPP Page Title](https://docs.j2commerce.com/images/docs/shared/barclay-hpp.webp)

These fields let you brand the Barclaycard payment page to match your store.

**HPP Background Color:** Hex color code for the page background (for example, `#FFFFFF` for white). Leave blank to use the ePDQ default.

**HPP Logo URL:** Full HTTPS URL to your store logo displayed on the Barclaycard page

**HPP Page Title:** Title text shown at the top of the Barclaycard hosted page

### Saved cards and integration mode

![Barclaycard ePDQ plugin settings outlined: Enable Saved Cards set to Never and Integration Mode set to Hosted Payment Page (HPP)](https://docs.j2commerce.com/images/docs/shared/barclay-cc.webp)

**Enable Saved Cards:** When set to **Yes**, logged-in customers can save their card at checkout and reuse it for future orders without re-entering card details. Requires the Alias feature to be enabled in the ePDQ Back Office.

**Integration Mode:** Choose how customers enter card details: **HPP** redirects them to Barclaycard's hosted page; **FlexCheckout** shows a card form on your own checkout page (on-site, SAQ-A, requires the Alias Gateway to be enabled in the Back Office).

### Template Style

![Barclaycard ePDQ plugin setting outlined: Template Style dropdown set to Default](https://docs.j2commerce.com/images/docs/shared/barclay-template.webp)

**Template Style:** Choose the checkout layout style — Bootstrap 5 or UIkit. Defaults to your site's active J2Commerce theme.

### Order statuses

![Barclaycard ePDQ order status settings outlined: Paid Confirmed, Pending Order Status Pending, Failed Order Status Failed, Change Status on Refund and Void Never](https://docs.j2commerce.com/images/docs/shared/barclay-status.webp)

**Paid Order Status:** Applied when Barclaycard confirms a successful payment (STATUS 5 or STATUS 9)

**Pending Order Status:** Applied when payment is awaiting confirmation (STATUS 51 or STATUS 91)

**Failed Order Status:** Applied when payment is declined, canceled, or encounters an error

**Change Status on Refund:** Automatically move the order to a chosen status after a refund is processed

**Refund Order Status:** Status to apply when a refund completes (only shown when the above is enabled)

**Change Status on Void:** Automatically move the order to a chosen status after a payment is voided

**Void Order Status:** Status to apply when a payment is voided (only shown when the above is enabled)

> **Info:** If the order status you want is not listed, create it first under **J2Commerce** -> **Setup** -> **Order Statuses**.

![J2Commerce Order Statuses list with the J2Commerce menu open at the right, highlighting Setup and its Order Statuses item](https://docs.j2commerce.com/images/docs/shared/shipstation-order-status2-1.webp)

### Surcharges

![Barclaycard ePDQ surcharge settings outlined: empty Surcharge Name, Surcharge Percent and Surcharge Fixed fields, and Surcharge Tax Class Not Taxable](https://docs.j2commerce.com/images/docs/shared/barclay-surcharge.webp)

Add an optional payment surcharge to cover your Barclaycard transaction fees. Leave both fields blank or set to `0` if you do not charge a surcharge.

**Surcharge Name:** Label shown to customers at checkout for the surcharge line item

**Surcharge Percentage:** Adds a percentage of the order total as a fee (for example, `2.5` for 2.5%)

**Surcharge Fixed Amount:** Adds a flat amount on top of the order total

**Surcharge Tax Class:** Tax profile to apply to the surcharge

### Visibility restrictions

![Barclaycard ePDQ restriction settings outlined: Geo Zone Restriction All, Minimum Subtotal -1 and Maximum Subtotal -1](https://docs.j2commerce.com/images/docs/shared/barclay-restrictions.webp)

**Geo-zone Restriction:** Limit Barclaycard ePDQ to customers in a specific geo-zone. Leave blank to show it to all customers.

**Minimum Order Subtotal:** Hide this payment method for orders below this amount. Enter `-1` to disable the limit.

**Maximum Order Subtotal:** Hide this payment method for orders above this amount. Enter `-1` to disable the limit.

### Checkout messages

![Barclaycard ePDQ plugin messages outlined: Thank You Article picker and empty Before Payment, After Payment, On Error and Order Cancelled text areas](https://docs.j2commerce.com/images/docs/shared/barclay-messages.webp)

These optional text fields let you customize what customers see at each stage of the payment flow.

**Thank-You Article:** Optional Joomla article to display after a successful payment

**On Before Payment:** Text shown before the customer is redirected to Barclaycard

**On After Payment:** Text shown on the order confirmation page after a successful payment

**On Error:** Text shown when a payment error occurs

**On Cancel:** Text shown when the customer cancels on the Barclaycard page

### Dashboard icon

![Barclaycard ePDQ plugin settings outlined: Show Dashboard Icon Yes, empty Icon Label, and Debug Logging set to Never](https://docs.j2commerce.com/images/docs/shared/barclay-icon.webp)

**Show Dashboard Icon:** Adds a shortcut icon for this plugin to the J2Commerce dashboard

**Icon Label:** Custom label for the dashboard icon

### Debug logging

**Debug Logging:** Writes transaction details to `administrator/logs/plg_j2commerce_payment_barclays.log.php`. Useful when troubleshooting. Disable in production — the log never contains raw card numbers or passphrases.

## Configure the ePDQ Back Office

After setting up the plugin, you also need to make a few settings in the ePDQ Back Office so that Barclaycard knows where to send payment notifications.

### Select a hash algorithm

In the Back Office, go to **Configuration** -> **Technical information** -> **Global transaction parameters**.

Under **Hash algorithm**, select the same algorithm you chose in the plugin (**SHA-512** recommended).

### Set your SHA-IN passphrase

Still on the **Global transaction parameters** page, enter your SHA-IN passphrase in the **SHA-IN pass phrase** field. This must match the value you entered in the plugin's **SHA-IN Passphrase** field exactly.

### Set your SHA-OUT passphrase and configure the callback

Go to **Configuration** -> **Technical information** -> **Transaction feedback**.

Under **Direct HTTP server-to-server request**, enter your store's notification URL:

```
https://yoursite.com/index.php?option=com_ajax&plugin=payment_barclays&group=j2commerce&format=raw&task=webhook
```

Replace `https://yoursite.com` with your actual site URL. This URL is how Barclaycard confirms a payment to your store server — it must be publicly reachable.

Under **SHA-OUT pass phrase**, enter the passphrase that matches the plugin's **SHA-OUT Passphrase** field.

### Enable feedback parameters on redirection URLs (recommended)

On the same **Transaction feedback** page, enable **I would like to receive transaction feedback parameters on the redirection URLs**. This ensures that when Barclaycard bounces the customer back to your store, it includes the payment status so the order can update even if the server-to-server notification is delayed.

### Enable the Alias Gateway (if using FlexCheckout or saved cards)

If you set **Integration Mode** to FlexCheckout, or if you enabled **Saved Cards**, contact Barclaycard support to activate the **Alias Gateway** (also called the Alias Manager) on your account. Without it, FlexCheckout and saved-card features will not work.

## How checkout works

### Standard (Hosted Payment Page)

Customer reaches the payment step and selects **Barclaycard** as their payment method.

![Storefront checkout Payment Method list with Barclaycard selected and outlined below Square, Adyen and QuickBooks card options, above Continue](https://docs.j2commerce.com/images/docs/shared/barclay-frontend.webp)

They click **Place Order** and are redirected to the secure Barclaycard payment page.

![Storefront checkout Confirm step with Payment Method showing the large Barclays ePDQ logo above the Place Order button, below Order Notes](https://docs.j2commerce.com/images/docs/shared/barclay-frontend1.webp)

They enter their card details on Barclaycard's page — your server never sees the card number.

Barclaycard processes the payment and sends a server-to-server notification to your site.

Your store verifies the signature and updates the order status.

The customer is redirected back to your order confirmation page.

### FlexCheckout (on-site card form)

When FlexCheckout is enabled, the card entry form appears directly on your checkout page inside a secure Barclaycard-hosted iframe. The customer never leaves your site. After they submit their card details, the Alias Gateway generates a token (Alias) and redirects back to your server, which then processes the charge via the DirectLink API.

### Saved cards

When **Enable Saved Cards** is on, a logged-in customer can choose to save their card when they pay. On future orders, they see their saved cards listed at checkout and can pay with one click — no need to re-enter card details. The plugin securely stores an Alias (a tokenized reference) — never the actual card number.

## Admin order actions

On any Barclaycard order in the J2Commerce order screen, you will see action buttons provided by the plugin.

| Button | When it appears | What it does |
| --- | --- | --- |
| **Capture Payment** | After an authorized (STATUS 5) payment | Settles the payment and collects the funds from the customer |
| **Void Payment** | While the payment is still authorized and not yet settled | Cancels the authorization — no money is collected |
| **Refund** | After a captured (STATUS 9) payment | Returns some or all of the payment to the customer |

For a refund, you can enter a specific amount to refund a partial amount, or leave the amount field blank to refund the full order total.

> **Info:** Void is only available before a payment settles. Once Barclaycard has settled a payment (usually within one business day), you must use Refund instead.

> **Tip:** **NOTE:** If the status you want isn't listed in the dropdown menu, you can create a new one by going to **J2Commerce -> Setup -> Order Statuses**

## Subscriptions

When **Enable Saved Cards** is turned on, customers can use Barclaycard ePDQ to pay for subscription products. Their card is stored as an Alias after the first payment, and the plugin uses that saved Alias to charge subsequent renewals automatically — no customer action is required.

If you need subscription support, make sure:

- **Enable Saved Cards** is set to **Yes**
- The Alias Gateway is active on your Barclaycard account
- The customer is logged in when they place their initial subscription order

## Troubleshooting

### Payment goes through but the order stays in Pending

Barclaycard usually sends the server-to-server notification (webhook) within a few seconds. If your order remains in Pending:

- Check that the notification URL in the ePDQ Back Office is correct and publicly accessible.
- Ensure no firewall, WAF, or Cloudflare rule is blocking the incoming POST from Barclaycard IP addresses.
- Enable **Debug Logging** in the plugin to see the incoming callback details in the Joomla log.
- Orders set to Pending will automatically update when Barclaycard sends a delayed notification.

### SHA signature mismatch error

This means the passphrase entered in the plugin does not match the one configured in the ePDQ Back Office, or the hash algorithms differ.

- Copy and paste the passphrases carefully — watch for leading/trailing spaces.
- Confirm the **Hash Algorithm** setting in the plugin matches the selection in the ePDQ Back Office exactly.
- Enable **Debug Logging** to inspect the computed and received signatures in the log file.

### PSPID or SHA-IN passphrase not configured warning on the dashboard

The J2Commerce dashboard shows a warning if the **PSPID** or **SHA-IN Passphrase** field is blank. Open the plugin settings and ensure both fields (or their sandbox equivalents when in Test Mode) are filled in.

### FlexCheckout card form does not appear

The FlexCheckout mode requires the Alias Gateway to be active on your Barclaycard account. Contact Barclaycard support and ask them to enable the Alias Gateway (Alias Manager) for your PSPID. You also need your DirectLink API user to have the appropriate permissions.

### Void button is missing on an order

The Void button only appears when a valid Barclaycard PAYID exists for the order and the payment has not yet been settled. If the payment has already settled, use the **Refund** button instead.

### Refund fails with "maximum refund exceeded" error

The refund amount cannot exceed the original transaction amount. Enter a lower amount in the partial refund field, or click **Full Refund** to return the exact original total.

## See Also

- Payment Methods overview
- Geo-zones
