The API for
programmable spending.
Cards, policies, and authorizations as first-class resources. If your code can call an endpoint, it can hold a budget.
Card. Policy.
Authorization.
- Policies are JSON. Diff them, review them, version them
- Authorizations expire in minutes and scope to a merchant
- Declines carry the rule that fired, not a mystery code
- By default a card cannot be charged at all
# Spin up a card with rules attached curl -X POST https://api.kleepay.ai/v1/cards \ -H "Authorization: Bearer kp_live_····" \ -d '{ "label": "Infra spending", "funding": "wallet", "policy": { "monthly_limit": 2500, "merchants": ["aws.amazon.com", "vercel.com"], "approval_over": 500 } }'
Small API.
Sharp edges.
POST/v1/cardsIssue a virtual card with an attached policy
POST/v1/authorizationsGrant a scoped, short-lived permission to spend
GET/v1/cards/:id/transactionsStream every authorization, clear, and decline
PATCH/v1/cards/:id/policyTighten or relax rules. Applies to the next authorization
POST/v1/wallet/allocateMove balance between cards and budgets
GET/v1/walletBalances, budgets, and available funds
Integrations
MCP server for agent runtimes, webhooks for your backend, exports for your books.
Safe by default
Keys are scoped, authorizations are short-lived, and no endpoint ever returns a PAN.
Observable
Every state change is an event you can subscribe to. Build dashboards, alerts, or audits.