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.
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
Wireless mechanical · slate finish · ships worldwide.
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.
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.
Pick which stablecoins you accept and on which chains. Add custom ERC-20 tokens for your audience.
Drop the web SDK on any site today. Native iOS, Android, and React Native SDKs landing soon.
Production-grade primitives — orders, sessions, webhooks — wired into stablecoin rails. No wallet rituals. No reconciliation spreadsheets.
Pick whichever matches your stack today. Move up the stack when you’re ready.
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.
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" });Server-side QuickCheckout. Create order + session in one call, hand the URL to your frontend.
{
"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"
}Sign up, plug in a wallet, share a checkout link. No app-store reviews, no card processor underwriting.
Sign up at infraio.xyz. No card on file — verify your email and you're in.
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).
Set amount + token + accepted networks. Share the URL on invoices, support tickets, social.
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.
Issue a payment link in the dashboard. Share it. Get a webhook when it’s paid.
| session_key | Amount | Customer | Status | Expires | |
|---|---|---|---|---|---|
| cst_3f4a18b9c2d7 | 49.00 USDC | [email protected] | paid | 12:04 UTC | |
| cst_8a7c2e0fa912 | 120.00 USDT | [email protected] | pending | 12:14 UTC | |
| cst_d12bc4af0e35 | 75.00 USDC | [email protected] | expired | 11:48 UTC | |
| cst_b09a3f7d8e1c | 240.00 USDC | [email protected] | paid | 11:31 UTC | |
| cst_64a18bd99c0e | 1.00 USDC | [email protected] | test | — |
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.
| Token | Ethereum | Polygon | Base | BNB Chain | Arbitrum | Optimism | ZKsync | Mantle | Custom Chain |
|---|---|---|---|---|---|---|---|---|---|
USDC Stable · USD | |||||||||
USDT Stable · USD | |||||||||
Custom token Configurable |
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.
Public keys open checkout. Secret keys create sessions. Webhooks close the fulfillment loop after on-chain confirmation.
Every checkout emits the same three events — wire your fulfillment to payment.settled and stop polling.
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 */ },
});
}A dashboard built like an ops console — not a wallet. The four surfaces a merchant lives in every day.
Every checkout traces back to an order, a payment intent, and an immutable session. Stable IDs your fulfillment pipeline can key on.
On-chain settlement, confirmations, network fees, and a clear paid / awaiting / underpaid state per intent.
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.
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.
Take rate drops automatically with your monthly volume. Affiliate rebates stack on top.
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.
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.
One form. We approve within a business day and mint your referral code.
Embed it in onboarding flows, blog posts, community pitches. Referred merchants attach automatically.
You earn the base commission plus your tier boost on each referred merchant's settled volume. Climb tiers and the boost grows.
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.
0 referrals
USDC payouts, dashboard analytics
10 referrals
Priority support, co-marketing assets
50 referrals
Slack channel, quarterly bonus pool
200 referrals
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.
The boring half of the product is the one we obsess over. Four guarantees that matter when real money lands.
Every server request is signed + timestamped (X-Client-ID, X-Timestamp, X-Signature). Constant-time verification on every endpoint, ±5 min replay window.
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.
Safe to retry. Duplicate orders collapse to a single payment intent — your retry-on-network-error path never double-charges or double-mints.
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.
Use payment links today, SDK checkout tomorrow, and API-first automation when you’re ready.
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.
Reach the team directly at [email protected]