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.