Skip to main content
A recurring purchase reuses one enrollment and one mandate across many charges. The user approves the terms once, and each later charge runs inside those terms instead of prompting the user again.

What the mandate controls

Read the mandate with GET /agentic/mandates/:id and check four things.
Response
You can charge only while status reads ACTIVE. Lifecycle and Statuses lists every value.

The charge cycle

Each cycle repeats the purchase phase and reuses only the enrollment and the mandate. The ceiling check is the one point where a cycle can stop, so branch on it before you charge.
1

Read the mandate

Confirm the status is ACTIVE and that charges remain under maxCharges. A paused or canceled mandate cannot authorize the cycle.
2

Price the order again

Create a fresh quote for the cycle with POST /agentic/quotes and select a shipping option. Merchant prices move, so never reuse a quote or an old total across cycles. The call sequence matches One-Time Purchases.
3

Compare the total to the ceiling

Check amountBreakdown.finalAmount against the mandate amount before you charge. Hold the cycle and ask the user for new terms when the total sits above the ceiling.
4

Charge and confirm

Create the checkout with POST /agentic/checkouts against the same enrollment, then read it with GET /agentic/checkouts/:id to capture orderId and finalAmount for that cycle. Branch on nextAction in the checkout response, and send the user to the approval page whenever it holds a value.

Control the schedule

A mandate stays under your control between cycles. Resuming needs no further approval from the user, because the terms have not changed. Lifecycle and Statuses covers each operation with a request and a response.
Revoking an enrollment stops charges across every mandate that points at the same stored card. Pause or cancel the mandate instead when the card should stay usable.

Next steps

Lifecycle and Statuses

Pause, resume, cancel, and every status value.

FAQ

Short answers to common integration questions.