Developers

Integrate with a few lines

Public keys open checkout in the browser. Secret keys stay on your server. Webhooks tell your server the moment a payment is confirmed.

# 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.

No code

Payment Links

Issue a link from the dashboard, share it anywhere, get a webhook when it's paid.

Open the dashboard →
One script tag

SDK Checkout

Popup, redirect, or embedded iframe. The SDK opens the same hosted checkout in whichever mode fits your site.

SDK guide ↗
Full control

Checkout API

Create the order and its checkout from your server in one call. Signed requests, safe to retry, with Test mode included.

API reference ↗

Drop the SDK on any web app

One import, one call. Open the 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 automatically if your server is down, and replayable from the dashboard.

EventFires when
payment.pendingThe buyer sent the payment and it is waiting for confirmations
payment.confirmedThe payment has enough confirmations on its network
payment.settledFunds forwarded to your treasury wallet
session.expiredThe checkout expired without a payment. Nothing is charged

Run crypto payments like an operations team

A dashboard for running payments day to day, not just a wallet. The four places you'll spend your time.

Orders & sessionsEvery checkout is linked to an order and a payment, with IDs that match your own order system.
TransactionsConfirmations, network fees, and a clear paid / waiting / underpaid status for every payment.
RefundsRefund in full or in part, straight to the buyer's wallet, or send the buyer a one-time link to enter their own address. Every refund is logged and exportable.
WebhooksSend a test event, rotate your signing secret without downtime, and replay any event yourself. Failed deliveries are retried automatically.

Built like payment infrastructure

Signed API requestsEvery request from your server is signed and time-stamped, so nobody can forge it or replay an old one.
Checkout links that can't be tampered withEach checkout link belongs to one order. Change it and it stops working, and once it expires it can't be used again.
No double chargesIf your server retries after a network error, the buyer is still charged only once.
Your money never sits with usBuyers pay an address made for their order, or your wallet directly. Either way the money goes to you, and InfraIO Pay never holds buyer funds in a shared account.

Test mode is free. So is production, until a buyer pays.