Integrate with a few lines
Public keys open checkout. Secret keys create sessions. Webhooks close the fulfillment loop after on-chain confirmation.
# Create order + session in one call curl -X POST https://api.infraio.xyz/v1/quick-checkout \ -H "Authorization: Bearer sk_live_…" \ -H "Idempotency-Key: order_8412" \ -d '{ "amount": "1000.00", "currency": "USD", "success_url": "https://shop.example/thanks" }' # → 201 Created { "checkout_url": "https://pay.infraio.xyz/c/s_9f2…", "expires_in": 900 }
Start no-code. Go API-first when you're ready.
Payment Links
Issue a link from the dashboard, share it anywhere, get a webhook when it's paid.
Open the dashboard →SDK Checkout
Popup, redirect, or embedded iframe. The SDK opens the same hosted checkout in whichever mode fits your site.
SDK guide ↗QuickCheckout API
Server-side order and session in one call. HMAC-signed, idempotent, sandbox included.
API reference ↗Drop the SDK on any web app
One import, one call. Open hosted checkout as a popup, redirect, or embed, and open the customer refund form the same way.
import { loadInfraIo } from "@lartech/infraio-checkout-js"; // Open hosted checkout from a session async function payNow(sessionKey, checkoutUrl) { const sdk = await loadInfraIo("pk_live_yourkeyhere"); sdk.checkout({ sessionId: sessionKey, checkoutUrl, mode: "popup", // "popup" | "redirect" | "embed" onSuccess: ({ sessionId }) => fulfill(sessionId), onCancel: () => showRetry(), }); }
Webhooks for every state
Signed with your endpoint secret, retried with backoff, replayable from the dashboard.
| Event | Fires when |
|---|---|
payment.pending | Buyer broadcast the transaction; waiting for confirmations |
payment.confirmed | Transaction reached the confirmation threshold for its network |
payment.settled | Funds swept to your settlement wallet |
session.expired | Checkout window closed without payment. Never billed |
Run crypto payments like an operations team
A dashboard built like an ops console, not a wallet. The four surfaces a merchant lives in every day.