Create a SetupIntent with the SEPA Direct Debit payment method type to collect and verify the customer's IBAN and obtain mandate authorization
Present the mandate acceptance UI to the customer, ensuring the mandate text meets Stripe's and SEPA scheme requirements for unambiguous authorization disclosure
Confirm the SetupIntent; Stripe will create a mandate object and return a mandate ID representing the customer's authorization
Store the mandate ID alongside the customer and payment method records; reference it on all future PaymentIntent charges against that IBAN
On each recurring charge, create a PaymentIntent in off-session mode referencing the mandate ID; Stripe will submit the SEPA debit instruction to the banking network
Handle failure webhooks for insufficient funds or returned debits; implement retry logic respecting the mandate's permitted retry rules and notify the customer
Known gotchas
SEPA mandates require a unique mandate reference; Stripe generates this automatically, but if you self-generate references ensure they are globally unique to avoid processing rejections
Charge confirmation for SEPA Direct Debit is not immediate; funds settle after multiple banking days and a chargeback window applies; do not fulfill orders requiring instant payment confirmation using SEPA
Mandate cancellation by the customer at their bank will cause future debit attempts to fail with a specific return code; your system must detect this and block further charges against the mandate
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