Skip to main content
The Paymove documentation is built to be usable not only by people but also by AI agents writing code. Here is how to take advantage of that.

Before you start the agent

The agent writes the code, but it will not open an account or invent keys for you - these have to come from your side: Plus the one-time setup - product, webhook and assigning the webhook to the product - described in Setup. Skipping that last step is the most common slip: payments work, notifications never arrive.
An agent given skill.md asks for these values and stops until you provide them - instead of putting made-up keys into the code.

The fastest route

Paste this URL to your agent:
That is all - no explanatory sentence needed. That address holds the complete integration procedure: what to collect from you, how to create a payment, how to verify the webhook and what to avoid. The agent fetches the file and carries out the integration.
Works in Cursor, Claude Code, Windsurf, Lovable and anywhere else an agent can fetch a URL.

Persistent project configuration

If you want your agent to remember the Paymove rules for every task, add them to your repository once. Copy the contents of:
into an AGENTS.md, CLAUDE.md or .cursor/rules/paymove.md file in your project. From then on a prompt like “add payments” is enough - the agent picks up the right rules by itself.

Every page as Markdown

Append .md to any URL in these docs to get clean Markdown with no interface chrome:
The contextual menu in the top-right corner of every page does the same - it offers copying the page and opening it directly in Claude, ChatGPT, Cursor or VS Code.

Documentation map for models

The rules agents get wrong most often

Whether you are writing the integration yourself or reviewing code an agent produced, check these points:
  1. Amounts are integers in grosze. 12.99 is silently truncated to 12 grosze and the API returns 200. Convert with Math.round(amount * 100).
  2. Authenticate with X-API-KEY, not Authorization: Bearer.
  3. Server-side only. The key must not reach the frontend, and a browser call fails CORS anyway.
  4. Always verify X-Paymove-Signature before fulfilling an order.
  5. Never fulfil an order on returnUrl - that is only a browser redirect.
  6. Unknown fields are ignored and the response is 200 - a malformed request looks like success.
  7. There is no rate limiting, no 429, no 422 and no Idempotency-Key - code handling those cases is dead weight.
The reasoning behind each is in Error codes and Signature verification.

Report a problem

If your agent produced a broken integration despite using the material above, write to integration@paymove.io and include the prompt you used. We treat that as a documentation bug.