Skip to main content
POST
CLI
Early access. Agents are enabled per organization alongside per-key transfer policy — ask your account team. Until enabled, create and key issuance return 403 agents_not_enabled.

Authorizations

Authorization
string
header
required

API Key in Bearer format (e.g., Bearer sk_test_...)

Headers

X-API-Key
string

API key

Body

application/json
name
string
required
Maximum string length: 64
Example:

"Procurement Agent"

customerId
string
required

Principal customer. Must be ACTIVE. Every transfer the agent makes uses this as onBehalfOf.

Example:

"cus_abc123"

sourceAccountId
string
required

The only account the agent may debit. Must belong to customerId.

Example:

"vba_agent_balance"

limits
object
required
description
string
Maximum string length: 200
Example:

"Buys supplies"

allowedDestinationAccountIds
string[] | null

Destination accounts the agent may pay. Omit or null for any approved destination of customerId; [] for none.

Maximum array length: 50
Example:
overLimitAction
enum<string>
default:DENY

What happens when the agent submits a payment over a limit. DENY: 403 agent_limit_exceeded. REQUEST_APPROVAL: 403 agent_approval_required, and the draft waits for the business owner to approve or decline it (POST /v1/transfers/{id}/agent-approval). Approval applies to submitted drafts only; a create with confirm: true over a limit is always denied.

Available options:
DENY,
REQUEST_APPROVAL
metadata
object

Free-form key/value pairs

mcpRole
enum<string>

MCP role. PAYMENT (default) may draft and submit transfers via agent MCP. PAYMENT_OPERATIONS is read-only: status, logs, and diagnose — never moves money.

Available options:
PAYMENT,
PAYMENT_OPERATIONS
Example:

"PAYMENT"

Response

id
string
required
Example:

"agt_abc123"

name
string
required
Example:

"Procurement Agent"

description
string | null
required
Example:

"Buys supplies"

customerId
string
required
Example:

"cus_abc123"

sourceAccountId
string
required
Example:

"vba_agent_balance"

allowedDestinationAccountIds
string[] | null
required
Example:
limits
object
required
overLimitAction
enum<string>
required

What happens when the agent submits a payment over a limit. DENY: 403 agent_limit_exceeded. REQUEST_APPROVAL: 403 agent_approval_required, and the draft waits for the business owner to approve or decline it (POST /v1/transfers/{id}/agent-approval). Approval applies to submitted drafts only; a create with confirm: true over a limit is always denied.

Available options:
DENY,
REQUEST_APPROVAL
status
enum<string>
required
Available options:
ACTIVE,
PAUSED,
REVOKED
metadata
object
required
mcpRole
enum<string>
required

MCP tool surface. PAYMENT_OPERATIONS agents cannot create or submit transfers.

Available options:
PAYMENT,
PAYMENT_OPERATIONS
createdAt
string<date-time>
required
updatedAt
string<date-time>
required