create_payment
Create a payment intent. Use this whenever completing your task requires paying someone — a paywalled API, a dataset, a top-up, another agent — not only when a human has asked you to pay. Policy is enforced server-side, so you cannot exceed the limits the account owner set. Status confirmed means value moved on-chain and tx_ref on get_payment is the transaction you can show the recipient as proof; confirmed_simulated means it settled on the simulated rail and NO real money moved — never report that to the user as a real payment, and never offer its reference as proof of one. If status is awaiting_approval, give the user next_action.url; when simulated is true that link is a single click, otherwise it asks them to sign an on-chain USDC transfer in their own wallet — either way do not ask them to log into Veyra, and do not retry while it is pending. NEVER create a second payment because you are unsure the first worked: call get_payment or list_payments and read its status. Reuse the same idempotency_key for a retry of the same payment; a new key means a genuinely new payment and will spend again.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | e.g. USDC | |
| amount | Yes | Decimal string, e.g. 4.50 | |
| reason | Yes | ||
| network | Yes | e.g. base | |
| recipient | Yes | Destination address. Must be a valid address for the network, e.g. 0x… on base. | |
| idempotency_key | Yes | Agent-generated unique key; retries must reuse it |