# Mesa > Crypto wallet, merchant payments and provider-backed exchange API. ## Documentation - [OpenAPI](https://pay.marchrap.ru/agent/openapi.json): authoritative endpoint schemas - [Integration guide](https://pay.marchrap.ru/developer/guide.md): authentication, retries, payment lifecycle - [Human documentation](https://pay.marchrap.ru/developer/docs) - [Payment currencies](https://pay.marchrap.ru/api/v1/currencies): live availability; enabled=false means unavailable - [Exchange currencies](https://pay.marchrap.ru/api/v1/exchange/currencies) ## Rules of operation Amounts are decimal strings. Asset and network are separate identifiers. Use an owner-issued X-Store-Api-Key for /developer endpoints; never request seed phrases. Use MesaID Bearer tokens for personal exchange and wallet endpoints. Creating an invoice or exchange order does not transfer funds from a user's wallet. Only perform money operations explicitly authorized by your user. Reuse Idempotency-Key with the SAME body for invoice, payment and payout creation. Never retry creation_unknown with a new key: the provider may already have created the order. For exchange, quote ID is the execution idempotency key; quotes expire after 60 seconds. Exchange rates are floating estimates. Present networks, recipient, refund address and fee disclosure before confirmation. Check authoritative status. pending, confirmed and partially_paid do not mean merchant settlement is complete. Do not scrape /app, /admin, /pay or /checkout; use documented APIs.