What is a Payment Intent?
A payment intent is a data object representing the intention to make a payment — including amount, currency, recipient, and metadata — created before execution, enabling validation, authorization, and policy checks before funds move.
WHY IT MATTERS
Stripe popularized the payment intent pattern: create a PaymentIntent object, confirm it, and the payment executes. This two-step process separates 'what do we want to pay?' from 'actually move the money' — enabling validation, fraud checks, and authorization between the steps.
The pattern translates perfectly to agent payments. An agent creates a payment intent ('I want to pay 50 USDC to 0x...'), which is validated against policies before execution. If the intent violates spending limits or targets a blocked address, it's rejected without any funds moving.
Payment intents also enable batching, scheduling, and human approval flows. An agent can create intents for all planned payments, a human reviews and approves the batch, and they execute together.
HOW POLICYLAYER USES THIS
PolicyLayer validates agent payment intents before execution — similar to Stripe's model. The agent creates an intent, PolicyLayer checks it against spending rules, and only approved intents proceed to on-chain execution.