Understand the role of the original network transaction ID in distinguishing cardholder-initiated versus subsequent recurring transactions across Visa and Mastercard
Card networks require that the first transaction in a recurring series (the CIT) produce a network transaction identifier (variously called the network transaction ID, trace ID, or original transaction reference) in the authorization response
This ID must be stored by the merchant or their PSP and submitted in subsequent MIT authorizations as proof that the relationship began with a properly authenticated CIT
Visa's MIT framework requires the Visa Transaction Identifier (VTI) from the original CIT be passed in the subsequent authorization request under the appropriate field; Mastercard uses a similar concept with its own trace reference
PSPs like Stripe handle this automatically when you use stored PaymentMethods and off_session=true; verify via Stripe's documentation whether and how the network transaction ID is surfaced or if you need to pass it explicitly
For direct acquirer integrations, retrieve the network transaction ID from the first authorization response message field and store it in your payment record; include it in the subsequent authorization request per the network specification
Test with a Visa and a Mastercard to confirm both networks return and accept the transaction ID in your integration, as the fields differ
Known gotchas
The network transaction ID is only meaningful if the original CIT included proper authentication; submitting an MIT with a transaction ID from another MIT (not a CIT) may not be accepted by the issuer
Some acquirer APIs abstract away network transaction IDs entirely; check whether your acquirer exposes this field before building logic that depends on it
Transaction IDs have a defined field length and format per network specification; truncating or reformatting the value will cause the issuer to reject the MIT reference
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