SafePay by SafeSwap

Get paid in USDC or USDT.
Let them pay with any token.

Send a payment link or an invoice. Your customer pays with the token they already hold, on the network they are on. SafeSwap converts it through 0x and the stablecoin you chose (USDC or USDT) lands in your wallet in the same transaction. Nobody holds the money in between.

  • 1%fee, shown before paying
  • 7networks to receive stablecoins
  • 0days SafeSwap holds your money
NNorthwind StudioInvoice INV-0042 Open
Amount due$250.00
You pay with
ETHon Base 0.07851
  1. Price checked: at least $250.00 guaranteed
  2. Converted to USDC through 0x
  3. Arrived in the receiver's wallet
Receiver gets 247.50 USDCafter the 1% fee
How it works

From link to USDC in three steps

No account and no sign-up form: your wallet is your login.

  1. 1 Create a link or invoice

    Sign in with your wallet, enter the amount in dollars and choose the network and the stablecoin (USDC or USDT) you want.

  2. 2 They pay with what they hold

    Your customer opens the link, connects a wallet and picks a token. The page shows exactly what it costs before they confirm.

  3. 3 USDC arrives in your wallet

    In the same transaction. Your dashboard marks it paid, and your site gets a signed webhook if you use one.

Two ways to ask

Payment links for quick asks, invoices for real bills

One-time link
A fixed amount, closes when it is paid. Good for a single order or a favour.
Reusable link
The same amount for everyone, as often as people like: a product, a ticket, a membership.
Open amount
The payer types the amount. For tips, top-ups and donations to you.
Invoice
Invoice number, your business details, line items with VAT, a due date, and a print view to save as PDF.
One transaction

What happens to the money

Everything below happens inside the payer's own transaction, signed in their own wallet.

Payer's wallet0.0785 ETHon Base
0x routeETH → USDCbest price from 100+ sources
Receiver247.50 USDCstraight into the wallet
SafeSwap fee2.50 USDC1%, shown before paying

Price protection

Before the payer confirms, SafePay locks a minimum. If the price moves further than that, the transaction does not go through and nothing is paid, only the network fee.

Payments are final

SafeSwap never holds the money, so it cannot send anything back. A little extra from a better price stays with the receiver. A short direct transfer marks the request partly paid.

From other networks

Paying from another network uses a bridge (Across or Mayan) whose transaction names the receiver. If a bridge fails, the bridge itself returns the tokens to the payer.

For sites and dApps

Add crypto checkout to your shop in an afternoon

Create a checkout from your server, send the customer to the hosted pay page, and get a signed webhook when the USDC has arrived. Or put a pay button on any page.

  • REST API with live and test keys
  • Webhooks signed with HMAC-SHA256, retried for a day
  • Hosted checkout that returns to your site
  • Pay button through the SafeSwap SDK
  • Test mode with simulated payments
Read the developer guide
curl https://safeswap.online/api/safepay/v1/requests \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "checkout",
    "title": "Order #1042",
    "amount": "79.00",
    "chain_id": 8453,
    "reference": "1042",
    "success_url": "https://shop.example/thanks"
  }'

→ { "id": "Qk3…", "url": "https://safeswap.online/pay/Qk3…", … }
<script src="https://safeswap.online/sdk/v1/safeswap.js" async></script>

<div data-safeswap="pay"
     data-request="Qk3…"></div>

<script>
  document.addEventListener('safepay:paid', e => {
    // show a thank-you; confirm the order from the webhook
  });
</script>
// Node.js
const [t, v1] = req.headers['safepay-signature']
  .split(',').map(p => p.split('=')[1]);
const expected = crypto
  .createHmac('sha256', process.env.SAFEPAY_WHSEC)
  .update(t + '.' + rawBody).digest('hex');
if (expected !== v1) return res.status(400).end();

if (event.type === 'request.paid') markOrderPaid(event.data.request.reference);
Networks

Receive on one network, get paid from many

You receive USDC or USDT on

  • Base USDC
  • Ethereum USDC · USDT
  • Arbitrum USDC · USDT
  • Polygon USDC · USDT
  • Optimism USDC
  • Avalanche USDC · USDT
  • BNB Chain USDC · USDT · FDUSD

Your customer pays from

  • BNB Chain
  • Ethereum
  • Base
  • Arbitrum
  • Polygon
  • Optimism
  • Avalanche
  • Linea
  • Scroll
  • Mantle
  • Unichain
  • Berachain
  • Abstract
  • World Chain
  • Ink
  • HyperEVM
  • Monad
  • Plasma
  • Sonic

Almost any token with liquidity on these networks. Paying from another network than yours goes through a bridge and takes a few minutes.

Questions

Good to know

What does SafePay cost?

1% of each payment, taken in your stablecoin in the same transaction. You choose per request who pays it: included (you receive 99%) or added on top for the payer. 0x adds its own small fee (about 0.15%) on most swaps, and the payer pays the network fee.

Does SafeSwap ever hold my money?

No. The payer's transaction sends the stablecoin straight to your wallet. SafeSwap only builds and checks the transaction; it never has your funds or your keys.

Can a payment be refunded?

No. Payments are final: SafeSwap cannot reverse a blockchain transaction or send back money it never held. Any agreement about returns is between you and your customer.

What if the price moves while paying?

The pay page asks for a guaranteed minimum that covers the amount due. If the market moves past it, the transaction fails and nothing is paid. If the price moves the payer's way, the small extra goes to the receiver.

Do I need an account?

No. You sign in by signing a message with your wallet. It costs nothing and sends nothing on-chain. Your business details for invoices are optional.

Can I receive on another wallet?

Yes. Add it under Settings › Receiving wallets; it confirms once with its own signature, so a typo can never send your money to a stranger.

Are invoices legally valid?

SafePay gives you the tool; you decide what goes on the invoice. Check with your accountant which details and VAT rules apply to you.

What if someone sends a scam link?

Every pay page shows who receives the money and has a report button. SafeSwap can switch off requests and receivers that are reported for abuse.

Your first payment link takes a minute

Connect a wallet, enter an amount, share the link.

Start with SafePay