# WooCommerce and Shopify plugins | ezPayments

> Take ezPayments payments in your WooCommerce or Shopify store without writing code: install, configure, test mode, limits and troubleshooting.

Source: https://ezpayments.co/developers/plugins

Developers

[Overview](https://ezpayments.co/developers)[API reference](https://ezpayments.co/developers/api)[Webhooks](https://ezpayments.co/developers/api#webhooks)[Plugins](https://ezpayments.co/developers/plugins)[WooCommerce](#woocommerce)[Shopify](#shopify)[Build with AI agents](https://ezpayments.co/developers/ai-agents)

Plugins

# No code? Plug in.

Take ezPayments payments in your store without writing code. Both integrations use the same payment links and signed webhooks as the [API](https://ezpayments.co/developers/api).

Platform

How customers pay

Setup

**WooCommerce**

Redirected to an ezPayments hosted payment page at checkout

Install the WordPress plugin, paste your secret key

**Shopify**

Order placed with the ezPayments manual payment method, then paid by link

Create a Shopify app, then connect it in ezPayments under Settings, Shopify

## WooCommerce

v1.1.0**ezPayments for WooCommerce** adds ezPayments as a payment gateway. At checkout your customer is sent to a secure ezPayments payment page, and the order updates automatically when they pay. The plugin never touches card data.

### Requirements

-   WordPress 5.8 or later, WooCommerce 6.0 or later, PHP 7.4 or later
-   HTTPS on your store (needed to receive webhooks)
-   An ezPayments **secret** API key: `sk_test_…` for testing, `sk_live_…` for real payments

### Install

1.  Download [`ezpayments-woocommerce.zip`](https://github.com/ezPayments-LLC/ezpayments-wordpress/releases/latest/download/ezpayments-woocommerce.zip) from the latest release.
2.  In WordPress go to **Plugins → Add New → Upload Plugin**, choose the zip, click **Install Now**, then **Activate Plugin**.
3.  Updates appear in the normal WordPress updates screen when a new release is published.

### Configure

Go to **WooCommerce → Settings → Payments → ezPayments → Manage**.

Setting

What to enter

Enable ezPayments

Tick to show ezPayments at checkout

Title / Description

What customers see at checkout

Test Mode

On by default. Uses your test key, so no real money moves

Test Secret Key

Your `sk_test_…` key

Live Secret Key

Your `sk_live_…` key

Webhook Status

Read-only. Shows whether webhooks are registered for test and live

When you click **Save changes**, the plugin checks each key with ezPayments and registers a webhook for that mode at `https://your-store/wp-json/ezpayments/v1/webhook`, listening for `payment_link.paid`, `payment_link.expired` and `payment_link.cancelled`. You don’t need to set up webhooks yourself.

Use the **secret** key, never the publishable key (`pk_…`). Create keys in your ezPayments dashboard under API keys. A secret key is shown only once.

### How a payment works

1.  The customer chooses ezPayments at checkout.
2.  The plugin creates a payment link for the order total in USD. Stores in another currency are converted to USD at a live rate; the original amount and currency are kept on the order.
3.  The order is set to **On hold** and the customer is redirected to the ezPayments payment page.
4.  After paying, the customer returns to your order-received page.
5.  ezPayments sends a signed `payment_link.paid` webhook. The plugin marks the order paid (usually **Processing**), adds an order note and reduces stock.

Webhook event

What happens to the order

`payment_link.paid`

Payment completed, stock reduced. Protected against double processing

`payment_link.expired`

Cancelled

`payment_link.cancelled`

Cancelled

### Test mode

With Test Mode on, payments use your test key and no real money moves. Pay with the test card `4242 4242 4242 4242`, any future expiry date and any CVC.

### Limits

-   Customers are charged in USD.
-   Up to 10,000.00 per order.
-   Refunds aren’t supported from WooCommerce yet. Refund from your ezPayments dashboard instead.
-   Products only: no subscriptions or saved cards.

### Troubleshooting

Message

Fix

Invalid Test/Live Secret Key

You pasted a publishable key. Use the key that starts with `sk_test_` or `sk_live_`.

Could not authenticate API key

The key is wrong, revoked or from another account. Create a new one.

ezPayments requires HTTPS for webhook delivery

Turn on HTTPS for your store, then save settings again.

Webhook not registered

Save settings again with a valid key.

Unable to convert currency

The exchange-rate service was unreachable. Try again shortly.

Orders stay On hold

Check **WooCommerce → Status → Logs**, source `ezpayments`, for webhook signature errors. Save settings again so the right webhook secret is stored.

## Shopify

Connect your Shopify store from the ezPayments dashboard. Customers place their order with an **ezPayments** manual payment method, get a payment link by email, and once they pay, ezPayments records the payment on the Shopify order. There is nothing to install.

### Requirements

-   An ezPayments account with the Owner, Admin or Developer role
-   A Shopify store on a `*.myshopify.com` domain
-   An active ezPayments API key (test or live). The store follows the key’s mode

### Connect your store

1.  In ezPayments, open **Settings → Shopify → Connect**.
2.  In Shopify admin go to **Settings → Apps → App development → Build apps in Dev Dashboard → Create an app** and name it `ezPayments`.
3.  In the app’s configuration, set the **App URL** and **Allowed redirection URL** shown in the ezPayments wizard.
4.  Set the API scopes to `read_orders, write_orders, read_customers, write_script_tags`, save, then click **Release**.
5.  Copy the app’s **Client ID** and **Client Secret** into the ezPayments wizard, along with your store domain and API key.
6.  In Shopify go to **Settings → Payments → Manual payment methods → Create custom payment method**. Its name must contain `ezPayments`, for example `ezPayments - Card`.
7.  Click **Connect Store** in ezPayments and approve the app in Shopify.

### How a payment works

1.  The customer checks out with the ezPayments payment method. Shopify creates the order as unpaid.
2.  ezPayments receives the order, creates a payment link for the order total and emails it to the customer.
3.  The customer pays on the ezPayments payment page and returns to their Shopify order status page.
4.  ezPayments records the payment on the Shopify order. You can follow each payment under **Settings → Shopify → Sessions**.

### Limits

-   Customers pay after placing the order, not inside Shopify checkout.
-   Payments are in USD. Up to 10,000.00 per order.
-   Expired or cancelled payment links and refunds don’t update the Shopify order.
-   One ezPayments account per Shopify store.

### Troubleshooting

Message

Fix

Invalid store domain

Use your `*.myshopify.com` domain, not a custom domain.

Store already connected to another account

Disconnect it from the other ezPayments account first.

Invalid HMAC signature / Invalid state

Wrong Client Secret, or approval took more than 10 minutes. Start the wizard again.

Orders don’t get a payment link

The manual payment method’s name must contain `ezPayments`.

Store shows token invalid

Shopify revoked access. Reconnect the store.

Building your own integration? Start with the [API reference](https://ezpayments.co/developers/api), or hand the [AI agent guide](https://ezpayments.co/developers/ai-agents) to your coding assistant.
