On this page
- As of 15 October 2026, the WooCommerce Marketplace lists DePay Payments under Crypto payments, with Solana among its chains, and its Coinbase Commerce extension is retired.
- A Fianto payment link per product works without code, but each purchase is one price of one product, outside the WooCommerce cart, with no WooCommerce order.
- A custom gateway creates a Fianto checkout session for the order total and calls payment_complete() when the order.paid webhook arrives.
Can WooCommerce accept USDC out of the box?
No. WooCommerce's own payment service, WooPayments, takes cards, express wallets, buy now pay later and local methods, and its payment methods page listed no crypto or stablecoin method when we read it on 15 October 2026. Accepting USDC means adding an extension or building a gateway.
On the same day, the WooCommerce Marketplace listed DePay Payments, filed under Official payments and Crypto payments. Its listing reads "Stablecoin & Crypto Payments", names Solana among its blockchains, shows version 3.0.7 and "1K+" active installs, says it was tested with WooCommerce 10.1.2, and states "Pay-as-you-go fees per transaction (1.5%)". The Coinbase Commerce listing now says "We retired this product". We looked only at the Marketplace, not at the wordpress.org plugin directory.
Fianto is not one of these. There is no Fianto extension in the Marketplace and no Fianto plugin anywhere. What Fianto offers is a hosted checkout for USDC on Solana that sends each payment straight from the customer's wallet to yours. The two routes below connect it to a WooCommerce store.
How do you sell a WooCommerce product through a payment link?
You turn the product into an External/Affiliate product whose button opens a Fianto payment link. WooCommerce's add-product guide says that product type replaces the Add to cart button with two fields: "The Product URL field is the destination where users can purchase this product. Then the Button text lets you change the normal Add to cart button text to your preferred text." That is all the link route needs.
- In the Fianto dashboard, open Payments, then Payment links, and create a link. Choose New product (a name, an amount in USDC, One-off or Monthly) or Existing price for a price you already have, including a yearly one.
- Set Ask for email to "Ask, required" if you need to reach the buyer, because Fianto sends link payers no email. For a one-off price, fill in "After payment, send them to" (https only) with a thank-you page on your store: the receipt then shows a Continue to [your business name] button that opens it.
- Copy the link. It looks like https://checkout.fianto.xyz/l/ followed by 16 random characters.
- In WooCommerce, edit the product, pick External/Affiliate product, paste the link into Product URL and write Button text such as "Pay with USDC".
- Publish. A buyer who clicks lands on the link's page, sees the price in USDC and pays from their wallet on Fianto's checkout.
Payment links need an approved Fianto account; what Fianto reviews before approval covers that step. Limits, closing and editing a link are in the payment links guide.
What does a WooCommerce store lose with a payment link per product?
The link route loses the cart and the WooCommerce order. Each link is one price of one product, so a buyer cannot add three items and pay once, and the purchase happens on Fianto's pages, not in WooCommerce:
| WooCommerce feature | With a payment link per product |
|---|---|
| Cart totals, quantities, several items in one payment | Lost. One price of one product per payment |
| A WooCommerce order and its status | None is created. The sale shows in Fianto's dashboard under Payments and Orders, with an order id starting plink_ |
| Stock, shipping address, tax lines | Not handled. The link asks for an email at most; the tax side is in VAT and sales tax on USDC sales |
| WooCommerce emails to the buyer | None, and Fianto sends link payers none either |
| WooCommerce coupons | Do not apply. Fianto discount codes do work on the checkout page |
| Price changes | Done twice: the link's price cannot be edited, so you make a new link and update the product URL |
That makes the link route a fit for a store with a few digital products, services or a membership, where each sale is one thing and nothing ships. Such a store could also skip WooCommerce and use a Fianto shop; the guide to the 23 shop themes shows what one looks like. A store that sells physical goods in carts should not use it.
How does a custom WooCommerce gateway on the Fianto API work?
A custom gateway is a small WordPress plugin, written by a developer, that adds "Pay with USDC" to the normal WooCommerce checkout and sends the buyer to Fianto's hosted checkout for the order total. WooCommerce documents the plugin side in its Payment Gateway API: a class that extends WC_ and a process_ method that returns where to redirect the buyer.
- In process_payment(), call Fianto's POST /v1/checkout-sessions from your server with mode payment, your WooCommerce order number as order_id, the order total as amount with a description, and https success_url and cancel_url. Send an Idempotency-Key header; every v1 POST requires one.
- Leave the WooCommerce order pending and redirect the buyer to the session's url. Fianto returns the url only when it creates a session or reissues its link, so redirect straight away.
- Receive Fianto's webhooks on a route your plugin registers. Verify the signature first: requests carry webhook-id, webhook-timestamp and webhook-signature headers, signed with your whsec_ secret.
- On order.paid, find the WooCommerce order by data.order_id, check data.amount against the order total, and call $order->payment_complete(). WooCommerce's docs say this "ensures stock reductions are made, and the status is changed to the correct value."
- On order.expired, leave the order unpaid. Fianto notes that an expired order can still become paid if a late payment finalizes, so do not cancel stock on that event alone.
curl https://api.fianto.xyz/v1/checkout-sessions \
--user "$FIANTO_APP_ID:$FIANTO_APP_SECRET" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: wc-1042-1" \
-d '{
"mode": "payment",
"order_id": "wc-1042",
"amount": "48.50",
"description": "Order 1042 from your store",
"success_url": "https://store.example/checkout/order-received/1042/",
"cancel_url": "https://store.example/cart/"
}'Two details trip people up. amount is a decimal USDC string, from 0.01 to 1,000,000 with at most 6 decimals, while the webhook's data. is in USDC base units: 48.50 USDC arrives as "48500000". And the amount is USDC: if your store prices in euros, your gateway has to convert before it creates the session. line_ can show the cart's lines to the buyer, but Fianto never adds them up; the amount is what is charged.
Which USDC route should a WooCommerce store choose?
Choose by how many items a typical order has and whether you have a developer. The rule we would use:
| Your store | Route | Why |
|---|---|---|
| A handful of digital products or a membership, no developer | Payment link per product | Live in minutes; you give up the cart and WooCommerce orders |
| Carts, shipping or stock, and a developer | Custom gateway on the Fianto API | Keeps cart totals and marks the WooCommerce order paid; someone has to build and maintain it |
| Carts, no developer, other chains or tokens wanted | A Marketplace extension such as DePay | Installs into the WooCommerce checkout; read its own fees and terms |
| You only need cards | WooPayments | USDC adds nothing if your buyers do not hold it |
With Fianto, the merchant pays nothing either way: no Fianto fee during the beta, no Solana network fee, and after the beta the customer pays about 0.1 to 0.5% on top of the price. The buyer needs USDC and a little SOL for the transaction fee they sign, which is under $0.01; the checkout tells them the exact amount. A refund is you sending USDC back from your wallet, since Fianto has no refund API. More on the money side in how to accept USDC on Solana.
See what your buyer sees: one hosted page, the price in USDC, paid straight to your wallet.
Look at the checkoutCan WooCommerce sell a USDC subscription through Fianto?
Yes, but outside WooCommerce's subscription tools. A Fianto payment link on a monthly or yearly price starts a USDC subscription that renews automatically after one approval in the buyer's wallet, and the buyer cancels it in the customer portal at fianto.xyz/my. WooCommerce never learns about it, so access has to be granted from Fianto's subscription. and subscription. webhooks, or by hand. A subscription creates no order, so order. never fires for it.
Selling memberships end to end, including the webhook side, is covered in selling a membership for USDC.
- WooCommerce Marketplace: DePay Payments listing (read 15 Oct 2026)
- WooCommerce Marketplace: Coinbase Commerce, retired (read 15 Oct 2026)
- WooPayments documentation: Payment Methods
- WooCommerce documentation: adding an External/Affiliate product
- WooCommerce developer docs: Payment Gateway API
- Fianto docs: Checkout sessions
- Fianto docs: Create a payment link