NiftiPay for WooCommerce
Accepts crypto, fiat card, and ramping payments in WooCommerce. Works with both classic checkout and WooCommerce Blocks. Shared concepts are covered in E-commerce plugins.Requirements
- WordPress ≥ 6.2
- WooCommerce ≥ 6.0
- PHP ≥ 7.4
Download
Download NiftiPay for WooCommerce
Latest release as a
.zip, ready to upload to WordPress.Before you install
Have both credentials ready — the plugin can’t create an order without them:Get your Integration ID
A fiat integration is the per-shop configuration your orders attach to: which URLs the customer comes back to, and where status updates are sent. Every order the plugin creates references exactly one integration.1
Open Dashboard → Settings → Fiat
Fill the Create integration form:
- Name — anything you recognise, e.g.
My Shop. - Return URL (required) — your shop’s order-received page. The plugin overrides this per order when Return URL mode is WooCommerce thank-you page, so any valid URL on your shop works here.
- Failure URL — where the customer lands after a failed/cancelled payment. Must match the Failure URL you set in the plugin.
- Merchant webhook URL (required) — your shop’s webhook endpoint, shown at the top of the plugin settings page.
- Contact URL — your contact/support page, shown to blocked customers.
2
Copy the ID
The new integration appears under Your integrations with
Integration ID: <id>. Press Copy ID — that is the value you paste into
the plugin.GET /api/fiat/integrations returns the same list:
integrations[].id (e.g. fi_abc123) is the Integration ID. Full CRUD is in
Fiat integrations; the same walkthrough with more
context is in Fiat orders → How to get your integrationId.
One integration per shop. Running several shops on one account? Create one
integration each — that keeps return URLs and webhooks from crossing over, and
lets you filter orders per shop.
Installation
1
Install the plugin
In WordPress go to Plugins → Add New → Upload Plugin, pick the
.zip
you downloaded, install it, and activate. Activation registers the
/niftipay/webhook endpoint and flushes rewrite rules.2
Open the settings
Go to WooCommerce → Settings → Payments → Niftipay.
3
Add your credentials
Paste your API key, then your Integration ID — see
Get your Integration ID above.
4
Register the webhook
Copy the Webhook URL shown at the top of the settings page into the
NiftiPay dashboard (Webhooks section), then paste the returned Webhook
secret back into the plugin.
5
Enable your payment methods
Turn on Crypto, Fiat, and/or Ramping, then save.
Gateways
The plugin registers three WooCommerce gateways, all configured from the first one’s settings screen:Settings reference
Shared
Per method
Each of Crypto, Fiat, and Ramping has its own block of settings:Endpoints the plugin exposes
If pretty permalinks are disabled on the site, register the
/wp-json/niftipay/v1/webhook route in the dashboard instead of
/niftipay/webhook.Payment flows
Crypto — creates the order at NiftiPay, sets the WooCommerce order toon-hold, and returns the customer to the order-received page, which renders
the invoice (QR, address, amount, countdown) and polls order-status every 10
seconds. The message swaps in place when the invoice expires, is cancelled, is
refunded, or is detected as paid.
Fiat — creates the order (sending serviceFeePayer, returnUrl,
failureUrl), stores the fiat order key for later refunds, sets the order to
on-hold, and redirects the customer to the hosted payment page. NiftiPay then
returns the customer to whichever URL the Return URL mode selects.
Ramping — creates a payment link and redirects to it.
Admin features
- Test API key and Refresh coins buttons on the settings screen.
- Service-fee breakdown under the order totals on the admin order screen.
- Refund address field and fiat refund action on the order screen.
- Fraud signals and IP risk panel per order.
- A guard rail rewrites a bare
/order-received/hit to the canonical order-received URL when the order can’t be resolved from the path, which prevents “invalid order” landings after returning from a payment page.