Developers

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.

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

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.

EventFires when
payment.pendingBuyer broadcast the transaction; waiting for confirmations
payment.confirmedTransaction reached the confirmation threshold for its network
payment.settledFunds swept to your settlement wallet
session.expiredCheckout 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.

Orders & sessionsEvery checkout traces back to an order, a payment intent, and an immutable session. Stable IDs your fulfillment pipeline can key on.
TransactionsOn-chain settlement, confirmations, network fees, and a clear paid / awaiting / underpaid state per intent.
RefundsPartial or full, issue directly to the original wallet, or send the buyer a one-time link so they fill in their own destination. Audited and exportable.
WebhooksPer-endpoint test ping, rotate-with-grace secrets, retry queue with 6 delay tiers, dead-letter outbox + self-serve replay.

Built like payment infrastructure, not a crypto widget

HMAC-signed B2B APIEvery server request is signed + timestamped (X-Client-ID, X-Timestamp, X-Signature). Constant-time verification on every endpoint, ±5 min replay window.
Session-scoped checkout URLsEach checkout URL is bound to a single session_key. Tampering invalidates the request; expired sessions can't be reused, the cleanup worker swaps them to EXPIRED on a lazy + scheduled pass.
Idempotency keysSafe to retry. Duplicate orders collapse to a single payment intent, your retry-on-network-error path never double-charges or double-mints.
Deterministic deposit addressesEach checkout gets its own EVM deposit address derived ahead of time, so the buyer pays into a slot bound to that exact order. Funds are then swept on-chain to the merchant's settlement wallet, InfraIO never pools buyer money in a hot wallet.

Sandbox is free. So is production, until a buyer pays.