> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dollarpe.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Build with AI

> Give coding agents llms.txt, the docs MCP server, the OpenAPI spec and a ready-made prompt.

These docs are built so coding agents can read them. Give your agent the context below, and it can write a working Zapyd integration with the correct signing, base URLs and request bodies.

## Machine-readable docs

| Resource | URL | Use it for |
| - | - | - |
| Page index | `https://docs.zapyd.com/llms.txt` | A short map of every page with its description. Good first context for an agent. |
| Full docs | `https://docs.zapyd.com/llms-full.txt` | Every page in one Markdown file. Paste it into a chat or a project knowledge base. |
| Any page as Markdown | Add `.md` to a page URL, e.g. `https://docs.zapyd.com/guides/getting-started/quickstart.md` | Exact context for one task, without HTML. |
| OpenAPI spec | `https://docs.zapyd.com/api-reference-exchange/openapi.json` | Generating typed clients and request validation. |

Every page also has a **copy** menu at the top. Use it to copy the page as Markdown, or to open it in ChatGPT, Claude, Perplexity, Cursor or VS Code.

## Docs MCP server

The MCP server lets your agent search these docs while it works, so it doesn't rely on stale training data.

<Tabs>
  <Tab title="Claude Code">
    ```bash theme={null}
    claude mcp add --transport http zapyd-docs https://docs.zapyd.com/mcp
    ```
  </Tab>

  <Tab title="Cursor">
    Add this to `.cursor/mcp.json`:

    ```json theme={null}
    {
      "mcpServers": {
        "zapyd-docs": { "url": "https://docs.zapyd.com/mcp" }
      }
    }
    ```
  </Tab>

  <Tab title="VS Code">
    Add this to `.vscode/mcp.json`:

    ```json theme={null}
    {
      "servers": {
        "zapyd-docs": { "type": "http", "url": "https://docs.zapyd.com/mcp" }
      }
    }
    ```
  </Tab>

  <Tab title="Other clients">
    Any MCP client that supports streamable HTTP can connect to `https://docs.zapyd.com/mcp`. You can also copy the URL from the **copy** menu on any page.
  </Tab>
</Tabs>

## Integration prompt

Copy this into your agent to start an integration. Each endpoint page in the API reference also has its own prompt with the exact URL and signing rules.

<Prompt description="Integrate Zapyd payouts" actions={["copy", "cursor"]}>
  Integrate the Zapyd payout API (stablecoin to fiat) into this codebase.

  Read these first:

  * [https://docs.zapyd.com/guides/getting-started/quickstart.md](https://docs.zapyd.com/guides/getting-started/quickstart.md)
  * [https://docs.zapyd.com/guides/getting-started/core-concepts.md](https://docs.zapyd.com/guides/getting-started/core-concepts.md)
  * [https://docs.zapyd.com/guides/development-and-testing/authentication.md](https://docs.zapyd.com/guides/development-and-testing/authentication.md)
  * [https://docs.zapyd.com/guides/payments/payouts.md](https://docs.zapyd.com/guides/payments/payouts.md)

  Rules:

  * Sandbox host is [https://sandbox.zapyd.com](https://sandbox.zapyd.com). Production host is [https://api.zapyd.com](https://api.zapyd.com). Each module has a path prefix: /cms/api/v1 for customer, KYC, bank and wallet; /pos/api/v1 for payout; /pis/api/v1 for payin; /ren/api/v1 for limits and EDD; /org/api/v1 for webhooks.
  * Sign every request with X-API-KEY, X-TIMESTAMP (Unix seconds) and X-SIGNATURE = Base64(HMAC-SHA256(apiSecret, apiKey + "|" + timestamp + "|" + canonicalBody)). canonicalBody is the JSON body with keys sorted at every level, no whitespace, and non-ASCII escaped as lowercase \uXXXX. GET requests sign "{}". Send the exact canonicalBody string as the body.
  * Verify the signing code against the test vector in the authentication guide before calling the API.
  * Read API\_KEY and API\_SECRET from environment variables. Never send the secret to a browser.
  * Flow: create customer, verify KYC (mock-kyc-status in sandbox), add bank account, create quotation, send crypto to quotation wallet\_address, initiate payout with transaction\_hash, then track status by webhook.
  * Send amounts as strings. Send client\_reference\_id on customers and orders, and store both IDs.
  * Branch on err\_code in the response envelope. Retry only HTTP 429 and 5xx, with exponential backoff.
  * Verify the webhook signature and deduplicate events on id and event.

  Build a small typed client module first, then the flow, then tests that run against sandbox.
</Prompt>

## Tips for agent-written integrations

* **Check the signature first.** Have the agent write a unit test for the [test vector](/guides/development-and-testing/authentication#test-vector) before anything else. Most failed integrations are signing bugs.
* **Keep the agent on sandbox.** Give it only sandbox credentials. Use the mock status endpoints so it can test every final status.
* **Point it at the spec for types.** The OpenAPI file lists every required field and enum. Agents that read it make fewer validation mistakes than agents that guess from examples.
* **Review money paths yourself.** Read the code that moves funds, handles webhooks and retries orders yourself. Don't rely only on agent-written tests.
