---
title: "Fynex for WooCommerce — payment gateway plugin on WordPress.org"
description: "The official Fynex WooCommerce payment gateway: hosted checkout, signed webhooks that keep order status in sync, full and partial refunds. Free, on GitHub."
url: "/integrations/woocommerce"
---

Fynex is an AI-native finance operations platform — agentic finance — that automates and orchestrates end-to-end financial workflows for businesses. This page documents Fynex for WooCommerce, the official open-source payment gateway plugin: hosted checkout, signed webhooks that keep order status in sync, and refunds reconciled from the WooCommerce order screen. Fynex works alongside WooCommerce, WordPress, WooPayments and Stripe for WooCommerce rather than replacing them. This page is relevant when a WooCommerce store wants to take payments through Fynex, or a developer is looking for the plugin's install steps, version requirements or the API calls it makes.

# Fynex for WooCommerce

Install it from WordPress.org, paste one key, take payments. Card data never touches your store.



**Works with:** [WooCommerce](https://woocommerce.com/)

- **1.0.0** — Latest version · 2026-10-16
- **7.4+** — PHP version required
- **6.9+** — Requires at least WordPress
- **10.9 – 11.2** — WooCommerce, tested with

## What the plugin does

Everything in the current release, in the order a store meets it.

- **Hosted checkout** — Customers are sent to a Fynex-hosted payment page and returned to your store. Card details are entered there, never in WordPress — your PCI scope stays minimal.
- **Classic and Blocks checkout** — Fynex appears as a payment method in the classic shortcode checkout and in the Cart & Checkout Blocks. One plugin, both flows.
- **Signed webhooks** — Fynex posts payment events to your store signed with HMAC-SHA256. The plugin verifies the signature and a five-minute timestamp window before it touches an order. If one is lost, the plugin asks Fynex directly, so a paid order does not stay pending.
- **Amount-matched confirmation** — An order is marked paid only when the confirmed amount and currency match the checkout that was created for it. A mismatch flags the order for review instead of fulfilling it.
- **Full and partial refunds** — Refund from the WooCommerce order screen. WooCommerce records the refund as soon as Fynex accepts it, and Fynex's confirmation is matched to that record. A refund that fails later is flagged on the order.
- **HPOS and idempotency** — High-Performance Order Storage is declared. Every checkout and refund request carries an idempotency key, so a retried request never creates a second charge.

## How a payment moves

Three exchanges between your store and Fynex, all of them signed.

1. **Checkout** — On *Place order* the plugin creates a hosted checkout for the order's total and currency, with a per-attempt reference, and redirects the customer to it. The order waits as *Pending payment*.
2. **Confirmation** — Fynex confirms the payment to your store's webhook. The plugin checks the signature, matches amount and currency to the attempt, and marks the order paid. Failed or cancelled attempts set it to *Failed* so the customer can retry. If the webhook is lost, the plugin reads the status when the customer returns and every five minutes for an hour.
3. **Refund** — A refund from the order screen goes to Fynex with an idempotency key, and WooCommerce records it as soon as Fynex accepts it. Fynex's confirmation — by webhook, or by the plugin checking back a minute later — is matched to that record.

## Install and connect in four steps

A store owner does this once. No code, one key.

1. **Install from WordPress.org** — In WordPress open **Plugins → Add New**, search for *Fynex for WooCommerce*, install and activate. WooCommerce must already be active.
2. **Create a secret key** — In the Fynex dashboard open **Developers → API keys** and create a secret key. Start with a test key (sk_test_…); a publishable key does not work.
3. **Paste it and save** — Open **WooCommerce → Settings → Payments → Fynex**, paste the key and save. The plugin registers your store's webhook with Fynex and stores the signing secret itself.
4. **Enable, test, go live** — Tick *Enable Fynex payments* and place a test order with Fynex's test cards. The settings screen shows whether the saved key is demo or live; swap in a live key (sk_live_…) to go live.

## What this version does not do

Version 1.0.0 covers hosted checkout, signed confirmations and reconciled refunds. It does not yet do manual capture, saved cards, WooCommerce Subscriptions, or split payouts to vendors of a multi-vendor store.

Demo and live are chosen by the key you paste, not by a switch in the plugin: the plugin always talks to api.fynex.ai, and the settings screen shows which kind of key is saved. A debug log is under WooCommerce → Status → Logs.

## Built so the store and the money cannot disagree

The checks a payments reviewer looks for, already in the code.

- **Signed and time-boxed** — HMAC-SHA256 over the timestamp and the raw body, constant-time comparison, a five-minute skew window, and replayed event IDs dropped.
- **No card data in WordPress** — The hosted page handles the card. The store holds a checkout URL and an order reference, nothing a breach could use.
- **Secrets kept apart** — The API key and the webhook secret live in their own autoload-off options, not in the gateway settings blob, and are never rendered back to the browser.

## The three calls the plugin makes

Every request below is what the plugin sends to the Fynex Payments API. Same endpoints if you build your own integration.

### Create the checkout for an order

Amount, currency, the store's return URLs and a per-attempt reference. The response carries the URL the customer is sent to. See [Hosted checkout](https://docs.fynex.ai/payments-api/v1/docs/hosted-checkout).

```http
POST /payments-api/v1/checkout
{ "externalOrderRef":
    "wc-3f9a1c2e-1042-1",
  "amount": 129.00,
  "currencyCode": "GBP",
  "autoSettlement": true }
→ { "checkoutUrl": "https://…" }
```

### Register the store's endpoint

Done once when the key is saved. Fynex returns the signing secret the plugin will verify every event against. See [Webhooks](https://docs.fynex.ai/payments-api/v1/docs/webhooks).

```http
POST /payments-api/v1/webhooks
{ "webhookUrl":
  "https://store.example
   /wp-json/fynex/v1/webhook" }
→ { "secretKey": "whsec_…" }
```

### Refund part of an order

Sent when a refund is issued from the order screen. Idempotent, so a double click never refunds twice. See [Refunds](https://docs.fynex.ai/payments-api/v1/docs/captures-refunds).

```http
POST /payments-api/v1/payments
  /wc-3f9a1c2e-1042-1/refund
Idempotency-Key: 6f1c…
{ "amount": 25.00 }
```

### Match the confirmation

WooCommerce has already recorded the refund. If the refund webhook has not arrived a minute later, the plugin asks, and a *failed* answer flags the order with the record to delete. See [Refund status](https://docs.fynex.ai/payments-api/v1/docs/captures-refunds).

```http
GET /payments-api/v1/refunds/{id}
→ { "status": "succeeded" }
```

## Questions, answered

### Is the Fynex WooCommerce plugin free?

Yes. The plugin is open source under GPL-2.0-or-later and free to install from WordPress.org. Fynex charges per transaction on the payments themselves — see the pricing page — not for the plugin.

### Is it on WordPress.org or the Woo Marketplace?

It is on WordPress.org as Fynex for WooCommerce: install it from Plugins → Add New in your WordPress admin, and it updates like any other plugin. The same release is on GitHub if you prefer to upload the zip. It is not on the Woo Marketplace.

### Does the customer leave my site to pay?

Yes. WooCommerce redirects the customer to a Fynex-hosted checkout page for the card step and returns them to your order-received page afterwards. That is what keeps card data out of WordPress and your PCI scope minimal.

### Which WooCommerce and WordPress versions does it support?

WordPress 6.9 or later, WooCommerce 10.9 or later (tested through 11.2), and PHP 7.4 or later. It declares compatibility with High-Performance Order Storage and works with both the classic checkout and the Cart & Checkout Blocks.

### Does it support partial refunds?

Yes. Issue a full or partial refund from the WooCommerce order screen as usual. WooCommerce records the refund as soon as Fynex accepts it, and Fynex's confirmation is matched to it, usually within minutes. If Fynex later reports the refund as failed, the order is flagged with a note naming the WooCommerce refund to delete before you try again.

### Where do I get the API key?

In the Fynex dashboard under Developers → API keys. Create a secret key — sk_test_ to test, sk_live_ to go live — and paste it into the plugin settings. The plugin registers the webhook and stores the signing secret for you. A publishable key does not work.

### Is there a test or sandbox mode?

Demo and live are selected by the key, not by a plugin setting. Paste a test key (sk_test_…) to run the whole flow against demo money; the settings screen shows whether the saved key is demo or live, and checkouts say Test mode. Swap in a live key (sk_live_…) when you go live.

### I installed 0.1.0 from GitHub. How do I upgrade?

The plugin folder changed in 1.0.0. Deactivate and delete the 0.1.0 plugin (folder fynex-woo-commerce), then install Fynex for WooCommerce from WordPress.org and activate it. Settings and orders carry over.

### Does it do subscriptions, saved cards or vendor split payouts?

Not in version 1.0.0. The current release handles one-off hosted checkout, signed confirmations and reconciled refunds. Subscriptions, saved cards, manual capture and multi-vendor split payouts are not included yet.

## **Paid, confirmed, refunded** — *and your orders never disagree with the money*

---

The AI finance layer for platforms and operators. It runs the money chain and keeps more of it in your business. One platform instead of a dozen.

[Fynex on LinkedIn](https://www.linkedin.com/company/fynexai/) · [Fynex on X](https://x.com/FynexTeam) · [Fynex on GitHub](https://github.com/fynex-ai) · [Fynex on YouTube](https://www.youtube.com/@Fynex-AI) · [Fynex on Instagram](https://www.instagram.com/fynexteam/)



© 2026 Fynex Group LLC
