Correctly flag recurring and merchant-initiated transactions (MIT) versus cardholder-initiated transactions (CIT) to meet card network compliance requirements
A CIT occurs when the cardholder is present and actively initiating the payment; a MIT occurs when the merchant charges a stored credential without the cardholder being present (e.g., subscription renewal, unscheduled charge)
For MITs, include the appropriate MIT indicator in your authorization message; in Stripe, this is expressed by setting off_session=true on the PaymentIntent and ensuring the card was stored with a proper CIT
For the first transaction in a recurring series (the CIT), collect the cardholder's consent, authenticate via SCA or card verification, and store the payment method; Stripe captures the network transaction ID from this CIT
On subsequent MITs, reference the original network transaction ID from the CIT in your authorization request; this is handled automatically by Stripe when you use off_session=true with a stored PaymentMethod attached to a Customer
Unscheduled MITs (such as topping up an account when a balance is low) must also be flagged correctly; use payment_method_options.card.mit_exemption or the appropriate Stripe parameter for your use case
Review card network rules for your specific MIT category (recurring fixed, recurring variable, unscheduled) as each has different requirements for original transaction reference and descriptor
Known gotchas
Misclassifying a MIT as a CIT (or vice versa) can result in issuer declines, incorrect liability assignment, and network compliance violations
The network transaction ID (original transaction reference) must come from the actual first CIT authorization response; a fabricated or incorrect ID will cause the MIT to be declined by some issuers
MIT rules and exemption definitions differ between Visa and Mastercard and between regions; do not assume a single implementation covers all networks and geographies
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