/payments
/v1/agent/paymentsCreate a payment operation
Requires API-key authentication (agentAuth, agentId).
Request body
torequired | string | ||
assetrequired | string | ||
deliver_as | enum | auto · one_off_payment · recurring_payment · trusted_destination | |
note | string | ||
slippage_percent | number | ||
prefer | enum | auto · one_off_payment · recurring_payment · trusted_destination | |
amount | string | ||
amount_usd | string |
Response
okrequired | enum | true | |
operation_idrequired | string | ||
statusrequired | enum | accepted · policy_rejected · submitted · executed · execution_failed · cancelled | |
resourcerequired | object | ||
fee_usdrequired | string | ||
human_message | string | ||
policy_evaluation | object | ||
repay_amount_usd | string | ||
estimated_ltv_after | string | ||
onchain | object |
Purpose: create a payment operation to an active recurring-payment recipient, active one-off payment, or currently trusted destination.
Auth and scope: header-key auth or OAuth agent:payments:write.
Idempotency: required.
Request:
{
"to": "recipient id, address, or handle",
"asset": "USDC",
"amount": "1",
"deliver_as": "auto",
"prefer": "auto",
"note": null,
"slippage_percent": 1
}Use exactly one of amount or amount_usd. amount is a decimal asset-unit string. For USDC, "1" means 1 USDC.
Use this endpoint directly when an agent needs to pay an approved vendor or service. Do not call earn/withdraw or a withdrawal route first. When the agent's onchain lane allows the required payment and Earn pre-actions, the payment execution path can source from wallet balance and Earn positions.
Fields:
| Field | Type | Required |
|---|---|---|
to | nonempty string | Yes |
asset | nonempty string | Yes |
amount | positive decimal string | One of amount or amount_usd |
amount_usd | positive decimal string | One of amount or amount_usd |
deliver_as | auto, one_off_payment, recurring_payment, or trusted_destination | No |
prefer | same values as deliver_as; defaults to auto | No |
note | string up to 500 chars, null, or omitted | No |
slippage_percent | number from 0 inclusive to 100 exclusive | No |
Current v1 execution rejects unsupported modifiers it cannot honor. Omit note unless you have confirmed support for the specific payment path.
Response:
{
"ok": true,
"operation_id": "uuid",
"status": "submitted",
"resource": {
"type": "payment",
"id": "uuid"
},
"fee_usd": "0",
"human_message": "string"
}Common errors: recipient_not_allowed, permission_not_granted, asset_not_allowed, limit_exceeded, insufficient_funds, validation_failed, idempotency_key_reuse_mismatch, idempotency_request_in_progress.
Related recipe: Pay a Vendor.
