● Multi-chain stablecoin payment infrastructure

Accept USDT / USDC
as easily as credit cards

Built on CREATE2 + EIP-1167 minimal proxy contracts, a unique deposit address is generated for every order at zero deployment cost. One integration covers Polygon, BSC, Base, Arbitrum, and Optimism — all five EVM chains.

5+
EVM chains supported
0
Address deployment cost
700+
WalletConnect wallets
10
Fiat currencies
Features

Why choose FiatPay

A complete stablecoin-payment infrastructure. We don't swap tokens, we don't custody your funds — we just make sure every payment lands safely.

CREATE2 Zero-Cost Addresses

Each order gets a unique deposit address derived off-chain. Contracts deploy only at sweep time, saving up to 99% of gas.

🌐

Multi-Chain Collection

A single API reaches Polygon, BSC, Base, Arbitrum, and Optimism — payers pick their chain and token on the checkout page.

💎

Hosted Payment Page

Production-ready multilingual checkout (English, Traditional Chinese, Japanese) with QR code, countdown timer, and one-tap WalletConnect.

🔌

Flexible Integration Modes

Hosted redirect, embedded iframe widget, headless JS SDK, or raw REST API — pick whatever fits your product.

💰

Real-Time Fiat Conversion

Quote in USD, EUR, JPY, TWD, KRW, and 5 more fiats. Built-in rate caching so merchants price in the currency they know.

📊

Full Merchant Dashboard

Self-serve signup, order management, revenue analytics, funnel conversion, chain performance, and daily settlement breakdowns.

🔔

HMAC Webhooks

Real-time order status push with signature verification, retry logic, and custom callback URL overrides.

🏦

Daily Batch Settlement

Settlement batches are generated automatically at 00:00 UTC. After admin review, funds are paid out in USDT to the merchant's wallet.

🛡️

Non-Custodial Refunds

Original payer addresses are recorded; refunds are sent from the merchant's own wallet. The platform never touches refund funds.

How it works

Four steps to a complete payment

From order creation to treasury consolidation, the entire flow runs automatically.

Create Order

Merchant calls POST /api/v1/payments and receives a payment_id along with a hosted checkout URL.

Payer Selects Chain

Checkout page shows available chains and tokens, fee breakdown, and a countdown. Payer scans QR or uses WalletConnect.

On-Chain Confirmation

Chain Monitor detects deposits in real time. Once the required confirmations are reached, status is pushed via WebSocket.

Sweep & Settlement

Sweep Worker consolidates funds to the treasury. A daily batch pays out to the merchant's wallet and fires the webhook.

Integration

Four integration modes, your pick

From zero-code redirect to deep embed — there's a fit for every product shape.

Hosted Payment Page Fastest

Call the API once to get a payment URL, then redirect users to our hosted page. Zero frontend work.

// 1. Create order
const res = await fetch('/api/v1/payments', {
  method: 'POST',
  headers: { 'X-API-Key': key },
  body: JSON.stringify({
    base_amount: '10.00',
    description: 'Order #1234'
  })
});
// 2. Redirect to checkout
window.location = res.paymentUrl;

Embedded Widget iframe

Load the widget with one script tag. The checkout flow embeds inside your site, with events delivered via postMessage.

<!-- Load the widget -->
<script src="https://pay.fiatpay.com/widget.js"></script>

<div data-fiatpay="pay_abc123"></div>

<script>
  window.addEventListener('message', (e) => {
    if (e.data.type === 'payment.completed') {
      // Handle payment completion
    }
  });
</script>

JS SDK headless

Full UI control. The SDK only handles API calls and WebSocket subscriptions. ESM + CJS dual format, zero dependencies.

import { FiatPayClient } from '@fiatpay/sdk';

const client = new FiatPayClient({ apiKey });

const payment = await client.payments.create({
  baseAmount: '10.00',
  currency: 'USD'
});

client.subscribe(payment.paymentId, (evt) => {
  console.log('Status:', evt.status);
});

REST API native

Full OpenAPI 3.1 spec. Works with any language. Covers payments, settlements, reports, and analytics endpoints.

# Create order
curl -X POST https://api.fiatpay.com/api/v1/payments \
  -H "X-API-Key: $KEY" \
  -H "Content-Type: application/json" \
  -d '{"base_amount":"10.00"}'

# Query status
curl https://api.fiatpay.com/api/v1/payments/pay_abc/status \
  -H "X-API-Key: $KEY"
Supported Chains

One integration, five chains

A single API covers the major EVM ecosystem — more chains coming.

🟣
Polygon
● Live
🟡
BNB Chain
● Live
🔵
Base
● Coming Soon
🔷
Arbitrum
● Coming Soon
🔴
Optimism
● Coming Soon
Tron
○ Planned

All chains accept USDT and USDC stablecoin payments.

Pricing

Transparent fees, no hidden costs

1%+ Gas

Platform fee plus actual network fee — both paid by the payer. Merchants receive the full quoted amount.

No monthly fee No setup fee No minimum volume Daily automatic settlement

Ready to start accepting payments?

Sign up in minutes, grab an API key, and start integrating on testnet right away.