# Payer developer documentation > One payments platform for the Maldives, over REST and GraphQL. Take payments, read your own money, let other apps act on your behalf, and get notified when things happen. ## Docs - [Payer API](https://payer.mv/developers/docs.md): One payments platform for the Maldives, over REST and GraphQL. Take payments, read your own money, let other apps act on your behalf, and get notified when things happen. - [Authentication](https://payer.mv/developers/docs/authentication.md): One credential model for every surface. Bearer tokens, scoped access, and an environment baked into each key. - [Checkout API](https://payer.mv/developers/docs/checkout.md): Take a one-off payment. Create a checkout session for an amount, send the customer to the hosted page, and read the result. - [QR Code API](https://payer.mv/developers/docs/qr-codes.md): Accept payments in person. Mint static QR codes to print, or dynamic ones per transaction with the amount fixed. - [Webhooks](https://payer.mv/developers/docs/webhooks.md): Let Payer come to you. Register a signed HTTPS endpoint and get a POST the moment a checkout session changes state. - [Personal access tokens](https://payer.mv/developers/docs/personal-tokens.md): Read your own Payer account from your own scripts. No merchant, no server — a bearer token that belongs to you. - [OAuth2 apps](https://payer.mv/developers/docs/oauth.md): Let another app act on a Payer user's behalf. A standard OAuth2 authorization-code flow with PKCE and rotating refresh tokens. - [Errors](https://payer.mv/developers/docs/errors.md): How the API signals failure: HTTP status codes on REST, an errors array on GraphQL, and RFC error bodies on OAuth. - [OpenAPI specification](https://payer.mv/developers/docs/specs.md): The REST API and every webhook payload as a machine-readable OpenAPI 3.1 document. Import it, generate a client from it, or hand it to an AI.