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
- A MutoPay account — sign up at mutopay.com/dashboard/register.
- A settlement wallet address and preferred stablecoin/chain (set in Settings).
- 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:
- 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.
- Polling.
GET https://mutopay.com/api/payments/{id}/statusreturns the currentstatus. 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
- Authentication — channel keys vs master key vs JWT.
- Create a Payment — full request/response reference with every parameter.
- Webhooks — events, payload shape, retry schedule.
- Interactive API reference — try every endpoint in your browser.