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.
| 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.0ezPayments 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
- Download
ezpayments-woocommerce.zipfrom the latest release. - In WordPress go to Plugins → Add New → Upload Plugin, choose the zip, click Install Now, then Activate Plugin.
- 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.
pk_…). Create keys in your ezPayments dashboard under API keys. A secret key is shown only once.How a payment works
- The customer chooses ezPayments at checkout.
- 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.
- The order is set to On hold and the customer is redirected to the ezPayments payment page.
- After paying, the customer returns to your order-received page.
- ezPayments sends a signed
payment_link.paidwebhook. 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.comdomain - An active ezPayments API key (test or live). The store follows the key’s mode
Connect your store
- In ezPayments, open Settings → Shopify → Connect.
- In Shopify admin go to Settings → Apps → App development → Build apps in Dev Dashboard → Create an app and name it
ezPayments. - In the app’s configuration, set the App URL and Allowed redirection URL shown in the ezPayments wizard.
- Set the API scopes to
read_orders, write_orders, read_customers, write_script_tags, save, then click Release. - Copy the app’s Client ID and Client Secret into the ezPayments wizard, along with your store domain and API key.
- In Shopify go to Settings → Payments → Manual payment methods → Create custom payment method. Its name must contain
ezPayments, for exampleezPayments - Card. - Click Connect Store in ezPayments and approve the app in Shopify.
How a payment works
- The customer checks out with the ezPayments payment method. Shopify creates the order as unpaid.
- ezPayments receives the order, creates a payment link for the order total and emails it to the customer.
- The customer pays on the ezPayments payment page and returns to their Shopify order status page.
- 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. |