POST /v1/payment_intents with payment_method_types=["affirm"], amount, currency=usd (Affirm is USD-only on Stripe), and capture_method=automatic
Affirm requires shipping address details; attach the shipping object to the PaymentIntent or PaymentMethod with name, address, and phone
Create a PaymentMethod with type=affirm and billing_details; then confirm the PaymentIntent with return_url
Redirect the customer to next_action.redirect_to_url.url; the customer completes the Affirm loan application and approval in Affirm's hosted flow
On redirect return, check PaymentIntent status; succeeded means Affirm approved and funds are guaranteed; capture_method=automatic is typical since Affirm manages the loan disbursement timeline
Known gotchas
Affirm has minimum order amounts (currently around $50 USD) and maximum order amounts; check Stripe documentation for current thresholds as they change
Partial captures are not supported for Affirm; if you need to adjust the order amount, issue a refund after full capture rather than a partial capture
Affirm is only available for US customers with USD transactions; attempting other currencies or non-US billing addresses will fail at confirmation
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp