Wire it in 5 minutes.
Drop a plugin onto your store or call our compact API directly. Everything is JSON, nothing is rate-limited at the door, and no API key is required.
Quickstart
Five minutes from snippet to first settlement.
-
1
Pick your integration path. Use a plugin if you run WooCommerce, PrestaShop or WHMCS — otherwise call the REST API directly.
-
2
Configure your wallet. Address, chain, and settlement asset (USDC recommended). Stored only in your plugin / your server — never on ours.
-
3
Create a checkout.
POST /api/checkoutwith the order amount & reference. Receive acheckout_url. -
4
Redirect the buyer. Send them to
checkout_url. They pick any rail; the page handles the rest. -
5
Reconcile on settlement. We POST a webhook to your
webhook_url. Or pollGET /api/transactionfrom your thank-you page.
Drop-in plugins
Click the platform you use. Install, paste your wallet, done.
WooCommerce
Adds a payment method to WooCommerce checkout. Supports classic checkout and Block-based checkout.
WHMCS
Standard gateway module. Drop into /modules/gateways
and activate from the admin panel.
API endpoints
Base URL: https://flexpay.to/api.
All responses are JSON with a status envelope.
/api/payment_options
Price-check available rails for a given amount and currency.
curl "https://flexpay.to/api/payment_options?fiat_amount=50&fiat_currency=USD"
/api/checkout
Create a pending order. Returns a transaction_code
and a checkout_url you can redirect your customer to.
curl -X POST "https://flexpay.to/api/checkout" \
-H "Content-Type: application/json" \
-d '{
"fiat_amount": 49.99,
"fiat_currency": "USD",
"external_reference": "ORDER-1011",
"webhook_url": "https://yourshop.com/wp-json/wc/v3/...",
"success_url": "https://yourshop.com/checkout/thanks?o=1011",
"cancel_url": "https://yourshop.com/checkout/cancel?o=1011",
"customer": {
"wallet_address": "0xYourMerchantWallet",
"crypto_currency": "USDC",
"crypto_currency_network": "POLYGON"
}
}'
Response:
{
"status": "success",
"data": {
"transaction_code": "a1b2c3d4-e5f6-4789-9abc-deadbeefcafe",
"amount_in_usd": 49.99,
"checkout_url": "https://flexpay.to/pay/a1b2c3d4-…",
"payment_options": [ ... ]
}
}
/api/payment_link
Given a transaction code and a chosen rail slug, returns the
JSON instructions needed to render the payment yourself
(crypto rails return address+amount;
fiat rails return redirect_url).
curl "https://flexpay.to/api/payment_link?transaction_code=a1b2c3d4-…&payment_method=bitcoin"
/api/transaction
Look up the live status of an order. Use this to reconcile from your thank-you page when polling.
curl "https://flexpay.to/api/transaction?transaction_code=a1b2c3d4-…"
https://flexpay.to/pay/<transaction_code> and is
branded with your domain. Redirect your customers there after creating
an order.
Webhooks
If you set webhook_url on a checkout call,
we POST a JSON body when the payment lands. Reply 2xx within 8 seconds.
{
"event": "transaction.settled",
"transaction_code": "a1b2c3d4-…",
"external_reference": "ORDER-1011",
"fiat_amount": 49.99,
"fiat_currency": "USD",
"received_usd": 49.99,
"wallet_address": "0xYourMerchantWallet",
"wallet_currency": "USDC",
"wallet_network": "POLYGON",
"payout_dispatched": true,
"timestamp": 1736000000
}
Webhooks are fire-and-forget — there is no retry. If your endpoint
is offline, poll /api/transaction from your thank-you
page to reconcile.