Getting Started

Accept your first crypto payment in five minutes. Create a payment link, redirect your customer, and receive settlement in your preferred stablecoin.

MutoPay is a crypto payment gateway. Your customer pays in any supported token on any supported chain; you receive your preferred stablecoin in your wallet. This guide takes you from zero to a working payment link in five minutes.

What you need

  1. A MutoPay account — sign up at mutopay.com/dashboard/register.
  2. A settlement wallet address and preferred stablecoin/chain (set in Settings).
  3. A channel API key (prefix ep_). Every integration has its own channel — create one at Settings → Channels.

Create a payment

curl -X POST https://mutopay.com/api/payments \
  -H "X-API-Key: ep_your_channel_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "amount_usd": 25.00,
    "description": "Order #1042",
    "external_id": "order_1042",
    "callback_url": "https://yourstore.com/thanks"
  }'

Response:

{
  "id": "pay_abc123",
  "status": "pending",
  "url": "https://mutopay.com/pay/pay_abc123",
  "expires_at": "2026-04-21T14:30:00Z"
}

Redirect your customer to the url. They pick a token, connect their wallet (or scan a QR code for manual transfers), and the hosted page handles the rest.

Receive the result

Two options — use both in production:

  1. Webhook (recommended). Configure your endpoint in the dashboard. MutoPay POSTs to it with an HMAC-SHA256 signature when the payment completes, fails, or expires. See Verify a webhook signature.
  2. Polling. GET https://mutopay.com/api/payments/{id}/status returns the current status. Useful as a fallback or for the browser “thanks” page.

What happens on-chain

  • Customer pays in USDC on BSC → MutoPay executes a cross-chain swap → you receive USDC on Polygon (for example). Fees are deducted before settlement.
  • Direct transfers (customer pays the same token/chain you want to receive) skip the swap.

Next steps