Non-custodial stablecoin checkout

Accept stablecoin payments.
Your books close themselves.

Start with one USDC or USDT address you already control. Customers pay through a clear hosted checkout, funds go directly to your wallet, and every payment arrives already reconciled.

No custody No custodial account approval Direct to your wallet

You remain responsible for your own tax, sanctions, and customer due-diligence obligations.

MAINPAY CHECKOUTSecure payment
ORDER2,500 AI credits
$25.00
U
PAY WITHUSDC on Base
Exact amount
SEND EXACTLY25.000042 USDC0x71E4…9A20
Watching for paymentFunds go directly to Atlas AI
Payment reconcileduser_42 · order_1842 · books ready

One product, two doors

Checkout brings the payment in.Reconciliation closes it out.

From order to books

Three steps. One complete payment record.

No second system and no spreadsheet handoff after checkout.

01

Create the order

Create a one-time order from your server with the API, then share its hosted payment link.

Order + exact amount
02

Your customer pays

They scan the QR code or connect their own wallet, review the exact transfer, and sign it themselves.

QR or connect wallet
03

Receive and reconcile

Funds land in your wallet. MainPay confirms the transfer, sends a signed webhook, and matches the books.

Paid + reconciled

The non-custodial wedge

Your customer pays you.
MainPay never sits in the middle.

Connect a public receiving address. Your customer signs from their wallet and the stablecoins settle directly to yours. MainPay observes and records the transfer; it never holds keys or moves funds.

Your wallet, your keys

No pooled balance, payout wait, or MainPay-controlled account.

No KYC onboarding gate

No MainPay custody or KYC onboarding step sits between your wallet and a test checkout.

No card chargebacks

Stablecoin transfers settle on-chain. Refunds are initiated by you from your own wallet—MainPay cannot pull funds back.

The built-in advantage

Not just checked out.
Already reconciled.

Every MainPay order carries its customer, amount, wallet, transaction, and reference into one operational record. Revenue is matched as it arrives, exceptions are flagged, and accountant-ready CSV exports support QuickBooks or Xero.

  • Exact on-chain transfer linked to the order
  • Underpayments, overpayments, and unknown senders surfaced
  • Accountant-ready CSV and locked close records
See reconciliation and operations
REVENUE RECORDAll matched
Received$8,475.00
Close-ready
AArc & Co.INV-042USDC · Base$4,800.00 Reconciled
NNova SystemsORDER-1842USDT · TRON$2,500.00 Reconciled
SStudio TenINV-040USDC · Ethereum$1,175.00 Reconciled
Exact amounts · wallet evidence · signed eventsExport CSV →

Built for developers

Create server-side.
Open checkout anywhere.

Keep your API key on the server, return only the hosted URL, then fulfill from a verified t=,v1= webhook.

checkout.tsServer only
const response = await fetch(
  "https://api.mainpay.com/v1/invoices",
  {
    method: "POST",
    headers: {
      "X-API-Key": process.env.MAINPAY_API_KEY,
      "Idempotency-Key": crypto.randomUUID(),
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      fiat_amount: "25.00",
      asset: "USDC",
      network: "base",
      receiving_account_id: process.env.MAINPAY_WALLET_ID,
      customer_name: "user_42",
      client_reference_id: "user_42"
    })
  }
);
const order = await response.json();

// Return only this public URL to your browser.
return order.hosted_url;

Honest scope

One-time payments now.
Credits when the product repeats.

MainPay supports one-time orders and prepaid credit top-ups today. Your app owns and grants the credit balance after a verified paid event.

AVAILABLE

One-time checkout

Create an order, collect one wallet-signed transfer, and fulfill from the paid webhook.

AVAILABLE

Prepaid credits

Use a one-time credit_topup order, then grant credits in your own database.

NOT CLAIMED

Automatic renewal

No auto-charge subscriptions. A non-custodial checkout cannot pull the next payment from a customer's wallet.

Accept, match, close

Take the payment.
Skip the reconciliation chase.

Build your first order