Talk to usGet started
Agents and SDKs

Agent skills

Teach your agent to use AgentPay in one paste. A skill for Claude Code and friends, an AGENTS.md for Codex and Cursor, and tool schemas for the Claude, OpenAI and Gemini APIs.

Install the skill

The skill, the AGENTS.md, the MCP config, the tool files, the API reference and the Postman collection live in one public repository.

cURL
npx skills add Kato-Official/agentpay-skills

That installs SKILL.md where Claude Code, Codex, Cursor, Gemini CLI and other agents load it by themselves. github.com/Kato-Official/agentpay-skills

Or paste a file

The console ships the same files under Developer, Agent skills.

FileFor
SKILL.mdClaude Code. Save as .claude/skills/agentpay/SKILL.md.
AGENTS.mdCodex, Cursor and most agents. Drop it next to your agent's code.
agentpay_anthropic_tools.jsonTool-use schema for the Claude API.
agentpay_openai_tools.jsonFunction-calling schema for the OpenAI API.
agentpay_google_tools.jsonFunction declarations for the Gemini API.
agentpay_langchain_tools.pyLangChain and CrewAI tools.
agentpay_mcp_config.jsonThe MCP server config.

Every file exposes the same six tools: complete_purchase, get_checkout_status, issue_card, get_spend_status, get_wallet, create_topup_link. All point at https://api.joomjoo.com with Authorization: Bearer $AGENTPAY_API_KEY.

What the skill teaches

  • Prefer complete_purchase. Only issue a card when the agent truly must type it.
  • Never spend above the cap. One card per purchase; a single-use card locks after its first charge.
  • Pay only with the AgentPay card, never a card saved on the merchant account. Confirm the last four digits.
  • 3DS is AgentPay's job. Never ask the person for a one-time code.
  • Send an idempotency_key on every checkout and retry with the same one.
  • Never put the API key, a card number or a security code in a log, a message, a file or a prompt.
  • Pass error messages on as they are; they are written for the person.

Wire the tools yourself

If you build the tool loop by hand, each tool is one HTTP call. The schema file gives the parameters; the API reference gives the response.

import Anthropic from "@anthropic-ai/sdk";
import tools from "./agentpay_anthropic_tools.json" with { type: "json" };

const client = new Anthropic();
const msg = await client.messages.create({
  model: "claude-sonnet-5-5",
  max_tokens: 1024,
  tools,
  messages: [{ role: "user", content: "Buy the domain example.click for one year, up to 20 dollars." }],
});
// dispatch msg.content tool_use blocks to the matching AgentPay endpoint
import json, anthropic

tools = json.load(open("agentpay_anthropic_tools.json"))
client = anthropic.Anthropic()
msg = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user", "content": "Buy the domain example.click for one year, up to 20 dollars."}],
)