Paylent.

AI agents

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:

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:

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:

{
  "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.