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.
A complete stablecoin-payment infrastructure. We don't swap tokens, we don't custody your funds — we just make sure every payment lands safely.
Each order gets a unique deposit address derived off-chain. Contracts deploy only at sweep time, saving up to 99% of gas.
A single API reaches Polygon, BSC, Base, Arbitrum, and Optimism — payers pick their chain and token on the checkout page.
Production-ready multilingual checkout (English, Traditional Chinese, Japanese) with QR code, countdown timer, and one-tap WalletConnect.
Hosted redirect, embedded iframe widget, headless JS SDK, or raw REST API — pick whatever fits your product.
Quote in USD, EUR, JPY, TWD, KRW, and 5 more fiats. Built-in rate caching so merchants price in the currency they know.
Self-serve signup, order management, revenue analytics, funnel conversion, chain performance, and daily settlement breakdowns.
Real-time order status push with signature verification, retry logic, and custom callback URL overrides.
Settlement batches are generated automatically at 00:00 UTC. After admin review, funds are paid out in USDT to the merchant's wallet.
Original payer addresses are recorded; refunds are sent from the merchant's own wallet. The platform never touches refund funds.
From order creation to treasury consolidation, the entire flow runs automatically.
Merchant calls POST /api/v1/payments and receives a payment_id along with a hosted checkout URL.
Checkout page shows available chains and tokens, fee breakdown, and a countdown. Payer scans QR or uses WalletConnect.
Chain Monitor detects deposits in real time. Once the required confirmations are reached, status is pushed via WebSocket.
Sweep Worker consolidates funds to the treasury. A daily batch pays out to the merchant's wallet and fires the webhook.
From zero-code redirect to deep embed — there's a fit for every product shape.
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;
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>
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); });
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"
A single API covers the major EVM ecosystem — more chains coming.
All chains accept USDT and USDC stablecoin payments.
Platform fee plus actual network fee — both paid by the payer. Merchants receive the full quoted amount.
Sign up in minutes, grab an API key, and start integrating on testnet right away.