Documentation
Everything you need to accept crypto payments and settle in stablecoins. REST API, HMAC-signed webhooks, six-chain support.
Getting Started
Accept your first crypto payment in five minutes. Create a payment link, redirect your customer, and receive settlement in your preferred stablecoin.
Authentication
MutoPay has three authentication methods — channel API keys for creating payments, master API keys for account management, and JWTs for the browser dashboard. This page explains when to use which.
Create a Payment
Full reference for POST /api/payments — every field, every response, and copy-paste examples in cURL, Node.js, and Python.
Webhooks
MutoPay sends an HMAC-SHA256 signed webhook when a payment completes, fails, expires, or needs attention. This page documents every event, the payload shape, and the delivery/retry guarantees.
Verify a Webhook Signature
MutoPay signs every webhook with HMAC-SHA256. This page shows how to verify the X-MutoPay-Signature header in Node.js, Python, and PHP — copy-paste, no dependencies.
Master Keys vs Channel Keys
MutoPay has two kinds of API keys — channel keys for creating payments, master keys for account-wide management. Use the weaker one per integration; reserve the master key for automation that genuinely needs account-wide access.
Payment Statuses
Every MutoPay payment has one of ten statuses. This page lists them, explains when each fires, and shows the legal state transitions you should expect to see.
Errors & Troubleshooting
MutoPay uses standard HTTP status codes with structured JSON error bodies. This page lists every error, what it means, and how to fix it.
API Reference
The full MutoPay API reference — interactive Scalar viewer plus the raw OpenAPI 3.1 spec for generating clients or piping into tooling.
Interactive API reference
Try endpoints live in your browser with the Scalar-powered API reference, or download the OpenAPI spec.