Back to Gateway Index
NOWPayments logo
Payment Gateway

NOWPayments

Non-custodial crypto payment gateway with 350+ coins, flat 0.5% service fee, and the broadest altcoin list in the market — Seychelles-registered, explicitly closed to US residents.

Builder Verdict

Pick NOWPayments when you are a non-US merchant who wants funds to land directly in your own wallet, needs to accept long-tail altcoins other gateways don't support, and is comfortable with a Seychelles entity, English-law ToS, broad discretionary account-freeze clauses, and support that is inconsistent on weekends.

Complexity

◆◆ Moderate

Region

Global except US & UN-sanctioned

Fees

0.5% same-coin · 1% with exchange

NOWPayments is a non-custodial cryptocurrency payment gateway operated by NOWPayments Ltd., a company registered under the laws of Seychelles and affiliated with the ChangeNOW exchange group. It accepts 350+ cryptocurrencies across 10+ blockchain networks (BTC, ETH, BSC, TRX, SOL, MATIC, XRP, ADA, AVAX, LTC) and settles payments directly to a merchant-controlled wallet by default, so NOWPayments never holds customer funds unless the merchant opts into the Custody product. Standard service fee is a flat 0.5% on same-currency payments (1% when an exchange is needed), with volume discounts triggering above 50 BTC and 100 BTC in monthly flow; fiat off-ramp is available via the Switchere partnership but brings KYC obligations. Use is explicitly prohibited to US citizens/residents and to UN-sanctioned jurisdictions per the user agreement.

Last full audit: April 24, 2026

01

Trust Score Breakdown

Account Stability

52/100

Section 8 of the NOWPayments Terms of Service grants the company sole, unreviewable discretion to terminate any account at any time for any reason with immediate effect and no obligation to refund balances or state its reasons. Section 4 bans US residents and UN-sanctioned jurisdictions outright. Public merchant reviews on Trustpilot and OffshoreCorpTalk include reports of multi-year customers having their accounts blocked without explanation after processing significant volume, and the 500 USD aggregate liability cap in Section 11 means merchants have no practical recourse. This is the weakest dimension.

Developer Experience

78/100

Well-documented REST API with public Postman collections, a sandbox environment (sandbox.nowpayments.io) that mirrors production, and first-party CMS plugins for WooCommerce, Magento 2, WHMCS, PrestaShop, OpenCart, Zencart, Ecwid, and Shopify. Webhook/IPN signing uses HMAC-SHA512 against a sorted-key JSON body, delivered in the x-nowpayments-sig header — secure if verified correctly, but the 'sort keys then stringify' convention trips up developers who try to verify against the raw body like Stripe's pattern. API modules for Crypto Payments, Mass Payouts, Recurring Payments, and Custody cover most integration shapes.

Payout Reliability

68/100

Non-custodial settlement means that in the default flow funds land directly in the merchant's own wallet shortly after the buyer's transaction confirms onchain — NOWPayments never holds the money, so there is no intermediary that can delay a standard payout. That architecture is the biggest reliability lever this gateway has. The trust-weighted drag comes from edge-case flows: partially-paid transactions are not refunded because NOWPayments can no longer access the funds, wrong-network deposits have historically required manual processing (now partly automated by the Wrong-Asset Deposits feature and the Push Button for stuck payments), and users of the optional Custody product have reported delayed fiat withdrawals under the KYC/AML review pipeline.

Support Quality

45/100

Support quality is the second-weakest dimension. Trustpilot, G2, and forum threads consistently describe weekend response times as unacceptably slow — multiple merchants report having to wait until Monday to recover stuck funds — and many cite generic copy-paste replies on first contact. Positive reports do exist for weekday interactions with paid/priority merchants, and the dashboard Push Button now lets merchants resolve some stuck-payment cases without tickets, but the median experience for a new merchant hitting a Friday-night integration issue is poor.

Track Record

62/100

NOWPayments launched in 2019 as part of the ChangeNOW group and celebrated its 7-year milestone in 2026, so the product has survived a full crypto cycle without a solvency incident or publicly disclosed security breach. Coin list breadth and uptime are genuine strengths. The weaker parts of the track record are the Seychelles registration (a jurisdiction routinely chosen for lighter regulatory oversight), the absence of a formal payment-institution license comparable to Mollie's DNB authorization or Stripe's FCA/FinCEN registrations, and the steady drumbeat of Trustpilot complaints about opaque account closures.

Transparency

62/100

Headline pricing is clear: a flat 0.5% service fee on same-currency payments and 1% when currency exchange is involved, with published volume discounts at 50 BTC (0.45%) and 100 BTC (0.4%) monthly flow. There are no setup fees, monthly fees, or chargeback fees (crypto doesn't chargeback). Against that, several clauses dent transparency: the user agreement grants extremely broad discretion over account closure, suspension, and refund denial with no obligation to state reasons; the Seychelles registration offers less consumer-facing regulatory oversight than EU/US PSPs; and the affiliate/partnership structure with the ChangeNOW exchange group is not always disclosed in marketing copy.

02

Availability Matrix

Region Countries Currencies Payout Timing
Global (crypto-friendly jurisdictions) NOWPayments serves merchants in virtually every country where cryptocurrency business activity is legal — including the UK, most of the EEA, Canada, Australia, New Zealand, Singapore, Hong Kong, Japan, Brazil, Mexico, South Africa, India, the UAE, and most of LATAM/APAC/MENA/Africa. Merchants must be 18+ and register under a crypto-legal jurisdiction. No country whitelist is published; NOWPayments reserves the right to restrict specific markets on regulatory grounds. 350+ cryptocurrencies supported for payment acceptance (BTC, ETH, USDT across TRC20/ERC20/BEP20, USDC, BNB, SOL, XRP, LTC, BCH, XMR, TRX, DOGE, ADA, AVAX, MATIC, DAI, BUSD, and hundreds of altcoins). 75+ fiat currencies supported for price quoting; actual fiat off-ramp to bank requires the Switchere partner integration and full KYC. Non-custodial default: funds arrive in the merchant-controlled wallet shortly after onchain confirmation (seconds to 30+ minutes depending on the network). Custodial option (opt-in): balances held in NOWPayments hot/cold wallets with withdrawal-on-demand; fiat off-ramp to bank via Switchere typically 1-3 business days after KYC.
NOT Available — prohibited jurisdictions United States of America (all 50 states, DC, and US territories) — explicitly banned per Section 4.1 of the Terms of Service for both citizens and residents. All countries subject to United Nations Sanctions Lists or equivalent regimes (includes Cuba, Iran, North Korea, Syria, and the sanctioned regions of Ukraine/Russia/Belarus depending on the current list). Any country where cryptocurrency use is forbidden by local law. N/A N/A — service is void in these jurisdictions and use is a breach of the user agreement.
03

Feature Snapshot

Hosted Checkout / Invoice

Create an invoice via POST /v1/invoice and redirect the buyer to a NOWPayments-hosted checkout page where they choose which of 350+ coins to pay with. The merchant receives the price in their preferred settlement currency. No PCI or wallet code on the merchant side.

Payment API (programmatic)

POST /v1/payment creates a payment with a specific pay_address for the customer to send funds to, an expected pay_amount, and an order_id. Useful for embedding a native checkout UI inside an app rather than redirecting.

Subscriptions / Recurring Payments

Dedicated Recurring Payments API allows merchants to set up recurring charge schedules (e.g. monthly SaaS billing). Because crypto wallets cannot pre-authorize debits, each cycle sends the customer a new payment link/email rather than silently debiting — closer to automated invoicing than true card-style auto-pay.

Mass Payouts

Send crypto to many recipients in one API call — useful for payroll, affiliate rewards, creator payouts. No NOWPayments service fee on payouts; only the network/gas fee per transaction. Auto-conversion of source asset to target asset is available when 'Withdrawal fee paid by' is set to Receiver.

Donation Widgets & Buttons

Drop-in HTML widgets and buttons for creators, streamers, and charities to accept crypto donations in 300+ coins. No-code configuration from the dashboard; embeds via a short JavaScript snippet or iframe.

Custody (optional)

Opt-in balance-holding product for merchants who need conversion, auto-payouts, or fiat off-ramp. Funds move from the non-custodial flow into NOWPayments hot/cold storage. Adds KYC/AML obligations and reintroduces account-freeze risk that the non-custodial default avoids.

Fiat Off-Ramp via Switchere

Through the Switchere partnership merchants can cash out crypto balances to a linked bank account in 40+ fiat currencies. Requires KYC/KYB and a separate Switchere registration; fiat conversion fees of ~0.5% plus Switchere's spread apply.

IPN Webhooks (HMAC-SHA512)

Pass an ipn_callback_url when creating a payment to receive POST notifications on every status change (waiting, confirming, confirmed, sending, partially_paid, finished, failed, refunded, expired). Signed with HMAC-SHA512 of the sorted-keys JSON body using the store's IPN secret, delivered in the x-nowpayments-sig header.

CMS / E-commerce Plugins

First-party plugins for WooCommerce, Magento 2, PrestaShop, OpenCart, Zencart, Ecwid, WHMCS, and a Shopify gateway plugin. Community/third-party integrations for Vendure and others. Most install in under 10 minutes and expose the hosted checkout with minimal config.

Anti-Volatility Auto-Conversion

Optional setting to automatically convert incoming crypto into a stablecoin (USDT, USDC, BUSD, DAI) on receipt, shielding the merchant from BTC/ETH price swings between checkout and settlement. Triggers the 1% multi-currency fee.

2FA, Wallet Whitelisting, IP Whitelisting

Dashboard security controls: mandatory 2FA, whitelisted payout wallets (funds can only be sent to pre-approved addresses), IP whitelists for API key usage, and multi-role account access for teams.

Chargebacks

Onchain crypto payments are final once confirmed — there is no card-network chargeback process. Great for merchants (no friendly fraud) but removes buyer reversal rights, so the merchant's refund policy is the only remedy.

Fiat Card Payments (Visa/Mastercard)

NOWPayments is crypto-only at checkout — it does not process Visa, Mastercard, Apple Pay, or traditional fiat rails directly. Pair with a card processor (Stripe, Mollie, Paddle) if you need both fiat and crypto acceptance.

US Merchants

Section 4.1 of the user agreement prohibits any US citizen or resident (including US territories) from using the service. NOWPayments reserves the right to use geolocation and other methods to enforce this.

04

Pricing Breakdown

Service fee — same-currency payment (no exchange) 0.5% flat
Service fee — multi-currency / fixed-rate / fee-paid-by-user 1% flat (includes a 0.5% exchange fee on top of the base 0.5% service fee)
Volume discount — monthly turnover above 50 BTC 0.45% flat (same-currency)
Volume discount — monthly turnover above 100 BTC 0.4% flat (same-currency)
Volume discount — monthly turnover above 200 BTC Custom — contact NOWPayments sales for negotiated rate
Setup / monthly / subscription fee None
Chargeback fee N/A — crypto onchain payments are final, no chargeback process exists
Network / blockchain gas fee Variable — paid by whichever party the merchant configures in the dashboard (sender or receiver). Depends on the chain and congestion; near-zero on BSC/TRON, higher on Ethereum mainnet.
Mass Payouts service fee 0% — NOWPayments charges no service fee on outgoing mass payouts, only the per-transaction network fee.
Fiat conversion via Switchere (off-ramp) ~0.5% NOWPayments conversion fee plus Switchere's own spread and bank rails; realistic all-in 1.5-2.3% depending on amount
Custody withdrawal fee NOWPayments does not charge a service fee on Custody withdrawals — only the network fee is deducted.
05

Security & Compliance

Custody Model Non-custodial by default — payments flow directly to the merchant's own wallet; NOWPayments never holds the funds or the private keys. Optional opt-in Custody product uses a hybrid hot/cold wallet architecture for merchants who need balance management, auto-conversion, or the Switchere fiat off-ramp.
Webhook / IPN Signing HMAC-SHA512 of the POST body after the JSON has been sorted by keys and re-stringified, signed with the merchant's IPN secret. The signature is delivered in the x-nowpayments-sig header. Unusual compared to Stripe/Coinbase which sign the raw body — developers must sort then stringify to match.
API Authentication x-api-key header with a rotatable merchant API key. Additional JWT bearer tokens are required for Mass Payouts and Custody endpoints, obtained via POST /v1/auth with the account email + password. API keys can be revoked from the dashboard.
Account Security Controls Mandatory 2FA for withdrawals and sensitive account actions, wallet whitelisting (payouts can only go to pre-approved addresses), IP whitelisting for API keys, multi-account team roles, and a separate IPN secret distinct from the API key.
KYC / AML KYC is not required to sign up as a merchant on the non-custodial default. It becomes mandatory for Custody flows, fiat off-ramp via Switchere, and when NOWPayments' AML monitoring flags a transaction. KYB (business verification) required for fiat payments.
PCI DSS N/A — NOWPayments does not process card data. Because checkout is crypto-only, merchants incur no PCI scope for card acceptance when using NOWPayments alone.
Regulatory Registration NOWPayments Ltd. is registered in Seychelles (Suite 1, Second Floor, Sound & Vision House, Francis Rachel Street, Victoria, Mahe). No equivalent to a PSD2/EU Payment Institution license or US FinCEN registration is publicly disclosed. Governing law of the ToS is English Law.
Onchain Finality Payments are cryptographically final once confirmed on the chosen network. No chargebacks, no reversals. Buyer disputes fall entirely on the merchant's refund policy — which must be executed manually by sending a reverse transaction.
06

Integration Prompt

Copy & use this 8977-char integration prompt

Production-ready prompt for Claude / GPT / Cursor — handles setup, security, webhooks & gotchas

You are integrating NOWPayments (the non-custodial crypto payment gateway) into a [Django / Next.js / etc.] application.

## IMPORTANT JURISDICTIONAL CONTEXT — READ BEFORE INTEGRATING
Section 4.1 of the NOWPayments Terms of Service explicitly prohibits use by United States citizens or residents, residents of countries subject to United Nations sanctions, and residents of countries where cryptocurrency use is forbidden by law. If your merchant is US-based, stop here and use BitPay, Coinbase Business, or a fiat processor with a crypto add-on instead. Do not build a NOWPayments integration for a US merchant — use will be a breach of the user agreement with no liability recourse beyond USD 500.

## Setup
1. Register a merchant account at https://nowpayments.io/ and complete the email verification.
2. In the dashboard, Store Settings → API Keys: create an API key. Store it as `NOWPAYMENTS_API_KEY`.
3. In Store Settings → IPN Callbacks: set an IPN secret. Store it as `NOWPAYMENTS_IPN_SECRET`. This is a DIFFERENT secret from the API key; both are required.
4. If you need Mass Payouts or Custody endpoints, record the account email and 2FA setup; Mass Payouts requires a JWT bearer token obtained via POST /v1/auth with email + password, rotated hourly.
5. Base URLs:
   - Production: `https://api.nowpayments.io/v1`
   - Sandbox: `https://api-sandbox.nowpayments.io/v1` (use the sandbox dashboard at https://sandbox.nowpayments.io/ for test keys and fake networks).
6. Choose a settlement strategy: non-custodial wallet(s) per coin, or opt-in Custody if you need balance management / fiat off-ramp. For most integrations, non-custodial direct-to-wallet is the safer default.
7. Strongly recommended: set the default settlement currency to USDT or USDC in the dashboard to avoid BTC/ETH price volatility between checkout and confirmation.

## Authentication

```python
import requests
from django.conf import settings

BASE = "https://api.nowpayments.io/v1"
HEADERS = {
    "x-api-key": settings.NOWPAYMENTS_API_KEY,
    "Content-Type": "application/json",
}
```

For Mass Payouts / Custody, add a JWT bearer token obtained from POST /v1/auth (email + password) and refresh it hourly — do not hardcode it.

## Recommended Integration: Hosted Invoice
The simplest, lowest-risk flow is to create an invoice server-side and redirect the buyer to the NOWPayments-hosted checkout.

```python
import requests

def create_invoice(amount_usd, order_id, product_name):
    response = requests.post(
        f"{BASE}/invoice",
        headers=HEADERS,
        json={
            "price_amount": float(amount_usd),
            "price_currency": "usd",
            "pay_currency": "usdt",  # recommend stablecoin settlement
            "order_id": str(order_id),
            "order_description": product_name,
            "ipn_callback_url": "https://yoursite.com/webhooks/nowpayments/",
            "success_url": "https://yoursite.com/payment-success/",
            "cancel_url": "https://yoursite.com/payment-cancelled/",
            "is_fixed_rate": True,   # locks crypto amount at quote time
            "is_fee_paid_by_user": False,
        },
        timeout=15,
    )
    response.raise_for_status()
    data = response.json()
    # data["invoice_url"] — redirect the buyer here
    # data["id"] — store to reconcile with IPN webhooks
    return data
```

## IPN Webhook Handling (CRITICAL — non-standard signing)
Never trust the browser redirect. Treat only IPN notifications as authoritative, and verify the signature on every request.

**Signature scheme:** HMAC-SHA512 of the request body after it has been parsed as JSON, its keys recursively sorted alphabetically, and re-stringified with `JSON.stringify` (no extra whitespace). The signature is delivered in the `x-nowpayments-sig` header. This is NOT a signature over the raw body — verifying against the raw body will always fail.

```python
import hmac, hashlib, json
from django.http import HttpResponse, HttpResponseBadRequest
from django.views.decorators.csrf import csrf_exempt
from django.conf import settings

def _sorted_canonical(obj):
    if isinstance(obj, dict):
        return {k: _sorted_canonical(obj[k]) for k in sorted(obj)}
    if isinstance(obj, list):
        return [_sorted_canonical(x) for x in obj]
    return obj

@csrf_exempt
def nowpayments_webhook(request):
    raw_body = request.body
    signature = request.META.get("HTTP_X_NOWPAYMENTS_SIG", "")
    if not signature:
        return HttpResponseBadRequest("Missing signature")

    try:
        parsed = json.loads(raw_body)
    except json.JSONDecodeError:
        return HttpResponseBadRequest("Invalid JSON")

    canonical = json.dumps(_sorted_canonical(parsed), separators=(",", ":"))
    expected = hmac.new(
        settings.NOWPAYMENTS_IPN_SECRET.encode(),
        canonical.encode(),
        hashlib.sha512,
    ).hexdigest()

    if not hmac.compare_digest(expected, signature):
        return HttpResponseBadRequest("Invalid signature")

    payment_id = parsed["payment_id"]
    status = parsed["payment_status"]
    order_id = parsed.get("order_id")

    # Idempotency: track processed (payment_id, status) pairs
    if WebhookEvent.objects.filter(payment_id=payment_id, status=status).exists():
        return HttpResponse(status=200)

    if status == "finished":
        fulfill_order(order_id, parsed)
    elif status == "partially_paid":
        handle_partial(order_id, parsed)  # decide: partial-deliver, chase, or refund
    elif status in ("failed", "expired", "refunded"):
        mark_order_failed(order_id, status)

    WebhookEvent.objects.create(payment_id=payment_id, status=status)
    return HttpResponse(status=200)
```

## Payment Status State Machine
Expect these `payment_status` values and handle each idempotently:
- `waiting` — invoice created, no funds seen yet
- `confirming` — funds detected onchain, awaiting confirmations
- `confirmed` — confirmations reached, internal processing
- `sending` — forwarding to the merchant's wallet
- `finished` — settled to merchant wallet (fulfill the order here)
- `partially_paid` — customer underpaid; funds are already yours but short of the invoiced total. Decide per-order whether to partial-deliver, chase, or refund.
- `failed` — terminal failure
- `refunded` — you or ops initiated a refund
- `expired` — invoice expired before payment (default 1 hour)

## Security Best Practices
- Never expose `NOWPAYMENTS_API_KEY` or `NOWPAYMENTS_IPN_SECRET` in client-side code, logs, or CI build artifacts.
- Always verify the IPN signature using the sort-then-stringify canonicalization described above.
- Use `is_fixed_rate: true` on invoices to lock the crypto amount at quote time.
- Default `pay_currency` to `usdt` or `usdc` unless the merchant explicitly wants native-asset settlement.
- Enable dashboard 2FA, wallet whitelisting, and IP whitelisting.
- Withdraw balances (including any Custody balance) to a self-custody wallet regularly — do NOT treat the dashboard as a bank account, given the broad ToS termination clauses.
- Rotate `NOWPAYMENTS_API_KEY` if it ever leaks; the dashboard supports immediate revocation.

## Testing
- Register a sandbox account at https://sandbox.nowpayments.io/ — it issues separate API and IPN keys and simulates transactions on testnets.
- Use the dashboard's 'Send test IPN' button to validate your signature verification and state-machine handling without a live payment.
- Write replay tests that fire the same `(payment_id, status)` pair twice and assert the fulfillment side effect runs exactly once.
- Test `partially_paid` explicitly — it is the most common edge case in production and the ToS makes clear NOWPayments will not refund it for you.

## Common Gotchas
- **Signature failures:** You are almost certainly signing the raw body. NOWPayments signs the canonicalized (sorted keys, re-stringified) JSON. See the verifier above.
- **Wrong network deposits:** USDT exists on TRC-20, ERC-20, BEP-20, Solana, and more. Make the network explicit in your checkout UI and use the Wrong-Asset Deposits auto-processing in the dashboard.
- **Partially-paid payments:** NOWPayments does not auto-refund them because the funds are already on your wallet. Your handler must decide what to do.
- **Weekend support:** support is slow on weekends. Design your IPN handler to auto-recover as many edge cases as possible so you rarely need a live support ticket.
- **US residents:** the service is prohibited for them per Section 4.1 of the ToS. Do not ship a US integration.
- **Invoice expiration:** default 1 hour — handle `expired` gracefully, and show the user a clear 'create a new invoice' CTA.
- **Two secrets, not one:** the API key and the IPN secret are different values — mixing them is the second-most-common integration bug.
- **JWT for Mass Payouts / Custody:** these endpoints require a separate bearer token from POST /v1/auth that rotates hourly; do not try to authenticate them with just x-api-key.

Replace [Django / Next.js / etc.] with your stack. Follows PCI DSS best practices and handles common edge cases.

07

Common Pitfalls

9 items
1

US citizens and residents are explicitly banned

Section 4.1 of the user agreement prohibits anyone located in, or who is a citizen or resident of, the United States of America from using NOWPayments. This is a hard jurisdictional block, not a soft regional limitation — using the platform as a US merchant violates the ToS and risks account termination with forfeited balances under Section 8. Mitigation: if you are a US-based business, use Coinbase Business (post-shutdown successor of Coinbase Commerce, US-only in 2026), BitPay, or a traditional card processor with a crypto add-on instead.

2

Very broad discretionary termination and freeze powers

Sections 2, 5, and 8 of the ToS grant NOWPayments sole, unreviewable discretion to terminate any account at any time, cancel pending transactions, freeze funds, and deny refunds — with no requirement to state reasons and no refund obligation. Section 11 caps NOWPayments' total liability at 500 USD. Trustpilot and OffshoreCorpTalk include reports of multi-year merchants having high-volume accounts blocked without warning. Mitigation: withdraw balances to a self-custody wallet as soon as they land; do not treat the NOWPayments dashboard balance as operating capital.

3

Seychelles registration and 500 USD liability cap

The legal entity is NOWPayments Ltd. registered in Seychelles, with English law as the governing law and disputes heard in the company's domicile. Seychelles is commonly chosen for lighter regulatory oversight; there is no publicly disclosed payment-institution license equivalent to an EU PSD2 authorization or US FinCEN MSB registration. Combined with the 500 USD aggregate liability cap in Section 11, merchants processing meaningful volume have limited practical recourse if something goes wrong. Mitigation: treat NOWPayments as a processor, not a custodian; keep redundancy with a second gateway for critical revenue.

4

Partially-paid payments are not refunded

If a customer sends less than the invoiced amount (a 'Partially paid' status), NOWPayments passes the partial amount through to your wallet and will not refund the shortfall — because once the funds are on your wallet, NOWPayments has no way to reverse them. The merchant must either deliver partial goods, chase the buyer off-platform for the balance, or refund the partial amount manually. Mitigation: handle 'partially_paid' in your IPN webhook explicitly — either refund automatically via an outgoing transaction or flag for manual review.

5

Wrong-network / wrong-coin deposits require special handling

Crypto checkout invites user errors — sending USDT on TRC-20 when the invoice requested ERC-20, or paying BNB when the invoice wanted a BEP-20 token. NOWPayments' Wrong-Asset Deposits auto-processing now handles many of these cases, and the dashboard Push Button lets merchants unstick payments without a support ticket, but some edge cases still require manual support intervention — which means weekend-long waits if things break on a Friday. Mitigation: display chain labels clearly at checkout, use fixed-rate invoices that lock network choice, and monitor the 'waiting' and 'partially_paid' webhook statuses closely.

6

Weekend support is slow to unresponsive

The most consistent complaint across Trustpilot, G2, and forum posts is that support tickets submitted on weekends often go unanswered until Monday, with generic first-response copy-paste replies common on complex tickets. Merchants holding stuck payments over a weekend may be unable to release funds to customers until business hours resume. Mitigation: harden your IPN handler to auto-recover as many edge cases as possible (retries, wrong-network handling, partial-paid flows) so you rarely need synchronous support; document a manual-refund runbook for ops.

7

IPN signature scheme is non-standard — sort keys then stringify

Unlike Stripe (raw body HMAC-SHA256) or Coinbase Commerce (raw body HMAC-SHA256), NOWPayments signs a re-serialized JSON: the raw body is parsed, its keys are sorted alphabetically, the result is re-stringified with JSON.stringify, and that string is HMAC-SHA512-signed with the IPN secret. Developers who try to verify against the raw request body will see every signature fail. Mitigation: parse → recursively sort keys → JSON.stringify (no extra whitespace) → HMAC-SHA512 with the IPN secret → constant-time compare against x-nowpayments-sig.

8

Price volatility between invoice and confirmation

If you invoice in a volatile asset (BTC, ETH) and settle in that same asset, the USD value of the received payment can swing meaningfully between the moment the invoice is created and the moment the buyer's transaction confirms. NOWPayments offers two mitigations: the 'fixed rate' invoice type locks the crypto amount at quote time, and the anti-volatility auto-conversion option settles automatically in USDT/USDC/DAI. Both trigger the 1% multi-currency fee. Mitigation: default new integrations to USDT or USDC settlement; reserve native-asset settlement for niche use cases.

9

Fiat off-ramp ties you to Switchere and full KYC

To withdraw balances as fiat you must register with the NOWPayments partner Switchere and complete KYC/KYB, which changes the compliance story from 'non-custodial crypto-only' to 'regulated fiat off-ramp with identity verification'. Some merchants have reported delays in Switchere approvals and cash-out timing variability. Mitigation: if fiat is a must, complete Switchere onboarding during initial integration so the pipeline is live before you depend on it; plan for KYC review cycles.

08

Community Pulse

Community sentiment on NOWPayments in 2026 is meaningfully mixed but skews positive on the product itself and negative on the company's risk/support posture. Trustpilot sits around 4.3/5 across 660+ reviews, with merchants consistently praising the flat 0.5% fee, the breadth of 350+ supported coins, fast non-custodial settlement, and easy integration. Recurring complaints cluster around three things: weekend support that often goes unanswered until Monday, accounts being closed or frozen without explanation after significant processing volume (the OffshoreCorpTalk and Trustpilot threads are the most-cited sources), and the unusual webhook signature scheme that trips up developers expecting Stripe-style raw-body HMAC. The 2026 G2 and Coingape reviews both conclude the gateway is a strong choice for non-US crypto-only merchants who can accept the tradeoffs around support latency and broad discretionary terms.

Sentiment last updated: April 2026 · We summarize — never copy — community content. Links go to original threads.

09

Changelog

  1. logo

    Downloaded NOWPayments horizontal lockup from the official affiliate-program assets page (dark-on-white variant). Source was SVG; rendered to 400x59 transparent PNG via resvg_py. Average brightness 72.6 — dark enough for the default cream card, logo_bg left empty. File size 13.6KB.

  2. availability

    Initial availability rows: 'Global (crypto-friendly jurisdictions)' listing 75+ fiat-quoting currencies and 350+ pay currencies, with non-custodial settlement timing. 'NOT Available' row reflects the explicit Section 4.1 ToS ban on US citizens/residents and UN-sanctioned countries. US excluded via country_codes_excluded.

  3. pricing

    Captured the full published fee ladder: 0.5% same-currency, 1% multi-currency/fixed-rate/fee-paid-by-user, volume tiers at 50 BTC (0.45%), 100 BTC (0.4%), 200 BTC (custom). No setup/monthly/chargeback fees. Mass Payouts 0% service fee. Fiat off-ramp via Switchere ~0.5% plus Switchere spread.

  4. features

    Captured hosted invoice, payment API, recurring/subscription API, mass payouts, donations widgets, opt-in Custody, Switchere fiat off-ramp, HMAC-SHA512 IPN webhooks, CMS plugins (WooCommerce, Magento 2, WHMCS, PrestaShop, OpenCart, Zencart, Ecwid, Shopify), anti-volatility auto-conversion, 2FA/wallet/IP whitelisting. Flagged chargebacks, fiat card payments, and US merchants as 'no'.

  5. security

    Recorded non-custodial default + optional Custody hybrid, HMAC-SHA512 IPN signing over sort-then-stringify canonicalization, x-api-key auth with JWT for Mass Payouts/Custody, mandatory 2FA + whitelist controls, KYC only on Custody/fiat flows, Seychelles legal entity with English governing law, and PCI DSS N/A (crypto-only rails).

  6. pitfalls

    Documented nine pitfalls: US-resident ban, broad discretionary termination clauses with 500 USD liability cap, Seychelles registration, partial-paid no-refund policy, wrong-network deposits, weekend support gaps, non-standard IPN signature scheme, volatility between invoice and confirmation, and fiat off-ramp KYC via Switchere.

  7. community

    Initial community pulse synthesized from Trustpilot (~4.3/5, 668+ reviews), G2, OffshoreCorpTalk, Coingape 2026 review, and 0xProcessing 2026 review. Positive on fee/coin breadth/non-custodial speed; negative on weekend support and opaque account closures.

  8. trust_score

    Initial trust score 64/100. Strongest: developer_experience (78) and payout_reliability (68) thanks to non-custodial settlement and well-documented APIs/plugins. Weakest: support_quality (45) and account_stability (52) driven by weekend support gaps and broad discretionary ToS powers.

  9. all

    Initial gateway entry created with full audit. Emphasizes the explicit US-resident ban prominently in tagline, verdict, overview, availability, features, and integration_prompt so readers cannot miss the jurisdictional constraint.

Back to Gateway Index

LearnWithHasan.com · Payment Gateway Index · No affiliate links · Builder-first