Endpoints at a glance
| Endpoint | Auth | Purpose |
|---|---|---|
POST /v1/payments | secret key | Create a card or wallet payment |
POST /v1/pay | — | Create a payment without an account (with a payout wallet) |
POST /v1/crypto/payments | secret key | Create a crypto payment |
POST /v1/crypto/pay | — | Crypto payment without an account |
GET /v1/payments/:id | secret key | Payment status |
GET /v1/payments | secret key | List payments |
GET /v1/providers | — | Payment methods available for an amount and currency |
GET /v1/crypto/coins | — | Coins, networks and minimums of the crypto gateway |
GET /v1/currencies | — | Accepted fiat currencies |
Full reference with every field, error and example: API documentation.
Create a payment
Send the amount and currency; optionally pin a method with provider (for example stripe for cards and Apple Pay, paypal, revolut or transak for UPI). Redirect the buyer to checkout_url.
curl -X POST https://api.utopay.app/v1/payments \
-H "Authorization: Bearer utopay_sk_live_..." \
-H "content-type: application/json" \
-d '{ "amount": 49.90, "currency": "EUR", "description": "Order #1042",
"success_url": "https://shop.example/thanks" }'
# → { "id": "ord_…", "status": "pending",
# "checkout_url": "https://api.utopay.app/pay/ord_…" }
Confirm with webhooks
Register an endpoint in the dashboard. UTOPAY sends payment.succeeded, payment.underpaid, payment.expired and payment.failed with an x-utopay-signature header (HMAC-SHA256 over the timestamp and raw body). Retries run for about seven hours. Verification examples for Node.js, PHP and Python are in the webhook docs.
No-code and low-code options
- Payment links — create a link in the dashboard and share it; no code at all. See payment links.
- CMS plugins — WooCommerce, WHMCS, OpenCart, PrestaShop, MODX, Easy Digital Downloads, Paid Memberships Pro and Tilda. See plugins.
- Test mode — test keys create orders that never touch real money, and you can simulate statuses from the dashboard.
Updated · UTOPAY team