> For the complete documentation index, see [llms.txt](https://doc.paysats.exchange/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.paysats.exchange/developers/overview.md).

# Overview

PaySats exposes **three integration surfaces** for settlement flows (live today), all backed by the same tenant API key. **MCP** is the primary surface for **AI agent** last-mile settlement across DCA, borrowing, and bank payout. See [Product primitives](/introduction/primitives.md).

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>SDK: @paysats/sdk</strong></td><td>Typed Node client. Quotes, payout methods, orders, polling.</td><td><a href="/pages/UccHaU6qy1ilMoJ4l5yz">/pages/UccHaU6qy1ilMoJ4l5yz</a></td></tr><tr><td><strong>MCP server: @paysats/mcp</strong></td><td>Agent last-mile settlement: quote, list rails, create IDR orders.</td><td><a href="/pages/34Qs1fXJV5fqN5U9vJtA">/pages/34Qs1fXJV5fqN5U9vJtA</a></td></tr><tr><td><strong>HTTP API /v1</strong></td><td>Raw REST endpoints with curl, SDK, and TypeScript examples.</td><td><a href="/pages/if9bvLCA4SH56TUzu0ur">/pages/if9bvLCA4SH56TUzu0ur</a></td></tr><tr><td><strong>Order lifecycle</strong></td><td>Every <code>OrderState</code>, terminal rules, and polling strategy.</td><td><a href="/pages/7IpIXkcXcUjeoBJ9znBg">/pages/7IpIXkcXcUjeoBJ9znBg</a></td></tr><tr><td><strong>Deposit rails</strong></td><td>Lightning, cbBTC on Base, and BTCB on BNB Chain. Shapes and examples.</td><td><a href="/pages/IOmE6toQhGn0qmk0T8Pn">/pages/IOmE6toQhGn0qmk0T8Pn</a></td></tr><tr><td><strong>Payout methods</strong></td><td>Bank vs e-wallet, <code>bankCode</code>/<code>bankName</code>, and recipient formats.</td><td><a href="/pages/kAV3jzK4JRswZs2VZt0t">/pages/kAV3jzK4JRswZs2VZt0t</a></td></tr></tbody></table>

## Pick a surface

| Use case                                                                                       | Use this                                          |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------------- |
| A Node / TypeScript backend creating off-ramp orders                                           | [`@paysats/sdk`](/developers/sdk.md)              |
| A backend in another language, or you need a specific endpoint                                 | [HTTP API `/v1`](/developers/http-api.md)         |
| An AI agent (Cursor, Claude Desktop, Claude web) settling BTC → local fiat on behalf of a user | [`@paysats/mcp`](/developers/mcp-server.md)       |
| Driving UI off order state                                                                     | [Order lifecycle](/developers/order-lifecycle.md) |

## Base URL

All surfaces resolve to the same API:

```
<code class="expression">space.vars.api_base_url</code>
```

You can point the SDK or MCP at a self-hosted backend by setting `PAYSATS_BASE_URL`.

## Shared conventions

* **Auth.** Every request sends the tenant API key as `x-api-key: <PAYSATS_API_KEY>` (or `Authorization: Bearer <PAYSATS_API_KEY>`; both are accepted). See [API keys](/getting-started/api-keys.md).
* **JSON.** All request and response bodies are JSON.
* **Amounts.** `idrAmount` is in whole rupiah (integer). `satAmount` is in sats (integer). No floats, ever.
* **Timestamps.** ISO 8601 strings (UTC) on the wire. The SDK surfaces them as `string | Date` on read, `string` on write.
* **Redaction.** `recipientDetails` and `bankAccountName` are **redacted from server logs**. Only the tenant that created an order can retrieve it.
* **Errors.** Non-2xx responses return `{ "error": "<message>" }`. The SDK raises `PaysatsApiError` with `status` and `body`.

Next: [SDK](/developers/sdk.md) · [MCP](/developers/mcp-server.md) · [HTTP API](/developers/http-api.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://doc.paysats.exchange/developers/overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
