InfraIO Pay

Crypto payments for any merchant — link, SDK, or API

Non-custodial stablecoin checkout. No setup fee, no monthly minimum — you only pay when a buyer settles on-chain.

Works with any EVM wallet — MetaMask, Trust, Coinbase, Rainbow, WalletConnect, and 200+ more

Free until you sellYour tokens & networksWeb + Mobile SDK
Electronic Rubber Keyboard

Wireless mechanical · slate finish · ships worldwide.

$1,000.00
Your storefront
0
Setup fees · monthly mins · failed-payment charges
0.3%
Floor rate at scale — drops automatically with volume
6+
EVM chains supported · USDC + USDT + any custom ERC-20
<1 day
From signup to first paid checkout link
  • Free to start

    No setup fee, no monthly minimum, no card-network surcharges, no charge for failed or cancelled payments. The take rate kicks in only when a buyer actually pays you — and drops with volume.

  • Your wallet, your funds

    Funds settle on-chain to the EVM address you connected — each order is paid into its own deposit address, then swept to you once it confirms. No PSP house account, no withdrawal queue.

  • Your tokens & networks

    Pick which stablecoins you accept and on which chains. Add custom ERC-20 tokens for your audience.

  • Web + Mobile SDK

    Drop the web SDK on any site today. Native iOS, Android, and React Native SDKs landing soon.

Why InfraIO Pay

Crypto payments without the operational mess

Production-grade primitives — orders, sessions, webhooks — wired into stablecoin rails. No wallet rituals. No reconciliation spreadsheets.

Setup fees + monthly minimums
Free to integrate. Zero charge until a buyer actually settles.
High card fees
Stablecoin-friendly checkout
Fees stay flat as you scale
Down to 0.3% per transaction — fee drops automatically with your monthly volume
Chargebacks
On-chain finality after confirmation
Wallet & token fragmentation
Hosted token + network selection
Manual reconciliation
Orders, sessions, transactions, webhooks
Heavy integration
QuickCheckout API + SDK + Payment Links
How merchants accept

Three ways to accept payment

Pick whichever matches your stack today. Move up the stack when you’re ready.

Payment Links

One click to create. One click to share. Buyer opens the URL and pays from any wallet — no code, no SDK, no checkout to build.

infraio.xyz/pay/cst_3f4a18b9c2d7
49.00 USDC · expires in 14:32
live
infraio.xyz/pay/cst_8a7c2e0fa912
120.00 USDT · 7d
draft
infraio.xyz/pay/cst_d12bc4af0e35
9.50 USDC · single use
live
Open the dashboard

SDK Checkout

Drop the InfraIO SDK on your site. Open checkout as a popup, redirect, or embedded iframe.

import { loadInfraIo } from "@lartech/infraio-checkout-js";

const sdk = await loadInfraIo(pubKey);
sdk.checkout({ sessionId, mode: "popup" });
Read the SDK guide

API-first Checkout

Server-side QuickCheckout. Create order + session in one call, hand the URL to your frontend.

POST/v1/checkout/quick
{
  "amount": "49.00",
  "currency": "USDC",
  "network": "polygon",
  "metadata": { "order_id": "ord_1042" }
}
→ {
  "session_key": "cst_3f4a…",
  "checkout_url": "https://…",
  "expires_at": "2026-05-15T12:18Z"
}
Read the API reference
Onboarding

Live in one day, not one quarter

Sign up, plug in a wallet, share a checkout link. No app-store reviews, no card processor underwriting.

  1. 2 min
    step 01

    Create your account

    Sign up at infraio.xyz. No card on file — verify your email and you're in.

  2. 1 min
    step 02

    Connect a settlement wallet

    Paste your EVM address. Funds settle here on every successful payment. You can swap wallets later from the dashboard (a short cooldown between changes protects in-flight payments).

  3. 30 sec
    step 03

    Create your first payment link

    Set amount + token + accepted networks. Share the URL on invoices, support tickets, social.

  4. instant
    step 04

    Get paid

    Buyer pays in their wallet. You receive a signed webhook the moment the chain confirms — then the funds are swept on-chain to your settlement wallet.

Need a dev integration instead? Drop the SDK on any site or app — same dashboard, same payouts.

Dashboard

Checkout links when you don’t need a full cart

Issue a payment link in the dashboard. Share it. Get a webhook when it’s paid.

Payment links

5 active
session_keyAmountCustomerStatusExpires
cst_3f4a18b9c2d749.00 USDC[email protected]paid12:04 UTC
cst_8a7c2e0fa912120.00 USDT[email protected]pending12:14 UTC
cst_d12bc4af0e3575.00 USDC[email protected]expired11:48 UTC
cst_b09a3f7d8e1c240.00 USDC[email protected]paid11:31 UTC
cst_64a18bd99c0e1.00 USDC[email protected]test
Tokens & networks

Your tokens. Your networks. Your call.

Choose which stablecoins you accept on which chains. List a custom ERC-20 of your own. The buyer only ever sees the combinations you allow — and if your chain isn't on the matrix, we can wire it up.

TokenEthereumPolygonBaseBNB ChainArbitrumOptimismZKsyncMantleCustom Chain
USDC
Stable · USD
USDT
Stable · USD
Custom token
Configurable
  • Supported by default
  • Bring your own token
  • Not available

Six chains ship with USDC/USDT defaults out of the box. On the others — and on any custom EVM chain you bring — list your own ERC-20 contract in the dashboard, then the same SDK flow handles it.

Developers

Integrate with a few lines

Public keys open checkout. Secret keys create sessions. Webhooks close the fulfillment loop after on-chain confirmation.

  • Public keys ship safely in the browser. They authorize the SDK to open a hosted checkout you’ve already issued.
  • Secret keys stay on the server. They sign QuickCheckout calls, refunds, and read access.
  • Webhooks deliver signed events after settlement. Idempotency keys make re-delivery safe.

Every checkout emits the same three events — wire your fulfillment to payment.settled and stop polling.

checkout.createdcheckout.completedpayment.settled
Read the docs
import { loadInfraIo } from "@lartech/infraio-checkout-js";

// ── Open checkout ────────────────────────────────────────────────
async function payNow(sessionKey: string, checkoutUrl: string) {
  // Replace with your live publishable key — format pk_(live|test)_…
  const sdk = await loadInfraIo("pk_live_yourkeyhere");

  sdk.checkout({
    sessionId: sessionKey,
    checkoutUrl,
    mode: "popup",         // "popup" | "redirect" | "embed"
    onSuccess: ({ sessionId }) => fulfill(sessionId),
    onCancel:  () => showRetry(),
  });
}

// ── Open refund form for a customer ──────────────────────────────
// Your server mints a one-time token first (B2B API, HMAC-signed):
async function openRefundForm(orderId: string) {
  const { token } = await fetch("/api/mint-refund-token", {
    method: "POST",
    body:   JSON.stringify({ orderId }),
  }).then(r => r.json());

  const sdk = await loadInfraIo("pk_live_yourkeyhere");
  sdk.openRefundRequest({
    token,
    mode:      "popup",      // "popup" | "redirect" | "embed"
    onSuccess: ({ linkToken, refundId }) => {
      console.log("refund submitted →", refundId);
      window.location.href = "/r/" + linkToken;
    },
    onCancel:  () => { /* buyer closed */ },
  });
}
Merchant operations

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 & sessions

    Every checkout traces back to an order, a payment intent, and an immutable session. Stable IDs your fulfillment pipeline can key on.

  • Transactions

    On-chain settlement, confirmations, network fees, and a clear paid / awaiting / underpaid state per intent.

  • Refunds

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

  • Webhooks

    Per-endpoint test ping, rotate-with-grace secrets, retry queue with 6 delay tiers, dead-letter outbox + self-serve replay.

More dashboard surfaces (Customers, API keys, Test/Live envs, Payment method config) ship in the same dashboard — see the docs for the full operator surface.

Pricing

Free until a buyer pays.

Take rate drops automatically with your monthly volume. Affiliate rebates stack on top.

Down to
0.3%
per settled transaction · drops automatically with volume
  • No setup fee
  • No monthly minimum
  • No charge on failed payments
What you take home
Buyer pays
$100.00
Take rate (0.3%)
−$0.30
You receive
$99.70

Example at the 0.3% public floor. Rate drops automatically with monthly volume. Buyer pays their own network gas at checkout — the sweep to your wallet is included in the take rate, never billed separately.

Everything included

  • Settles to a wallet you control — no PSP house account, no withdrawal queue
  • Unlimited payment links
  • Hosted checkout + SDK (popup, redirect, embed)
  • USDC, USDT + any verified ERC-20 you add from the dashboard
  • Multi-network: Ethereum, Polygon, Base, BNB Chain, Arbitrum, Optimism — any other EVM chain on request
  • Refunds — issue directly or send a customer link
Affiliate program

Bring a merchant on. Earn from their volume.

Every InfraIO merchant gets a personal referral code. Share it on Twitter, with your dev community, or your e-commerce clients — when they sign up and start processing, you earn a cut of every payment they take. Paid out in any stablecoin you accept — with no minimum on day one.

  1. 01

    Apply for the program

    One form. We approve within a business day and mint your referral code.

  2. 02

    Share your code

    Embed it in onboarding flows, blog posts, community pitches. Referred merchants attach automatically.

  3. 03

    Earn on every settled payment

    You earn the base commission plus your tier boost on each referred merchant's settled volume. Climb tiers and the boost grows.

Tiers reward the merchants who scale you

Refer more, climb higher. Tier boosts stack on top of the base commission — and unlock perks like a private Slack channel and quarterly cash bonuses.

  • Starter

    0 referrals

    Base commission

    USDC payouts, dashboard analytics

  • Silver

    10 referrals

    Base + 1% boost

    Priority support, co-marketing assets

  • Gold

    50 referrals

    Base + 3% boost

    Slack channel, quarterly bonus pool

  • Diamond

    200 referrals

    Custom rate card

    Dedicated AM, branded landing page

Commissions accrue on every settled payment of every referred merchant — for as long as they keep using InfraIO. Referral income stacks on top of your own merchant volume-tier discount — every mechanic compounds.

Security & reliability

Built like payment infrastructure, not a crypto widget

The boring half of the product is the one we obsess over. Four guarantees that matter when real money lands.

  • HMAC-signed B2B API

    Every 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 URLs

    Each 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 keys

    Safe to retry. Duplicate orders collapse to a single payment intent — your retry-on-network-error path never double-charges or double-mints.

  • Deterministic deposit addresses

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

FAQ

Frequently asked

A checkout session is a server-issued object that represents one buyer’s intent to pay a specific amount in a specific token. The session has its own session_key and a hosted checkout_url. InfraIO Pay creates the session via the QuickCheckout API, then the SDK opens the URL as a popup, redirect, or embed.

Add crypto checkout without rebuilding your payment stack

Use payment links today, SDK checkout tomorrow, and API-first automation when you’re ready.

Contact

Let's get your business accepting stablecoins

Tell us a bit about your business. We'll come back within 1 business day with a pricing fit, integration walkthrough, and a sandbox session you can poke at.

Prefer email?

Reach the team directly at [email protected]