# AI agents

> The Markdown version of https://www.paylent.com/docs/agents. Every page: [llms.txt](https://www.paylent.com/llms.txt).

The MCP server, the key it needs, the nine tools it exposes, and the things it deliberately cannot do.

Paylent exposes an MCP server, so an agent can do the work through tools instead of
through a browser. It is the whole of the programmatic surface: there is no public
REST API, and no OpenAPI description of one.

## The endpoint

```
https://dashboard.paylent.com/mcp
```

JSON-RPC over HTTP, protocol version `2024-11-05`.

## Make a key

Sign in, go to **Settings → AI agent**, and create an API key. It is shown once.

The key is a bearer token. Send it on every request:

```
Authorization: Bearer <your key>
```

A few things follow from how keys work, and they are the reason this is safe to hand
to an agent:

- A key belongs to **one business**. An agent holding it cannot see or touch another.
- A key **acts as you**. It can reach exactly what you can and nothing else.
- There is **no anonymous access**, and no way to make a key without an account. An
  agent cannot reach this endpoint unattended.

## Point a client at it

Most MCP clients want a URL and a header. In Claude Code:

```sh
claude mcp add --transport http paylent https://dashboard.paylent.com/mcp \
  --header "Authorization: Bearer <your key>"
```

Other clients differ in syntax and not in substance: the same URL, the same header.

## The nine tools

- `list_invoices` — find invoices, filtered the way the invoice list filters.
- `get_invoice` — one invoice in full, with its lines and payments.
- `create_invoice` — start a draft for a customer.
- `add_invoice_line` — add a line to a draft.
- `issue_invoice` — number it and freeze it.
- `send_invoice` — email it to the customer with their private link.
- `record_payment` — record money that arrived some way other than by card.
- `list_customers` — find a customer.
- `create_customer` — add one.

Call `tools/list` for their arguments. Those schemas are authoritative and these
descriptions are not — the server is the thing to believe:

```sh
curl -s https://dashboard.paylent.com/mcp \
  -H "Authorization: Bearer <your key>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

A call takes the same shape, with the arguments `tools/list` gave you:

```json
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": { "name": "list_invoices", "arguments": {} }
}
```

## What an agent cannot do

Nine tools is a budget rather than a catalogue. Every tool's schema sits in the agent's
context on every single turn, so the list is deliberately the smallest one that can
raise an invoice, look one up and settle it.

Left out on purpose, because each is irreversible or a decision about security:

- **Voiding an invoice** and **deleting a draft**
- **Rotating a payment link**
- **Crediting an invoice** — a credit note cannot be edited once written
- **Creating or cancelling a recurring schedule**

The ordinary sequence — create a customer, create a draft, add its lines, issue it,
send it, record what comes back — is entirely available, and none of it is destructive.
An agent that needs one of the above has to ask you.

Chasing needs no tool: unpaid invoices are followed up automatically, whoever raised
them.

## The rest of the site

Every page here has a Markdown twin at the same address with `.md` on the end, which
is the better thing to read if you are not a browser. The whole site is summarised at
[llms.txt](https://www.paylent.com/llms.txt).

---

Paylent · GBP, EUR, USD, AUD and CAD · hello@paylent.com
