Feature
Support merchant-initiated payment_method_id transactions via a locker-sourced StoredCard for connectors that need the raw card (PAN + expiry) plus the network transaction id at MIT time (e.g. tsys_transit).
Problem
For a recurring_details.type = payment_method_id MIT, HS prefers the connector-mandate path whenever a connector_mandate_id is stored, sending only the mandate id. Connectors like tsys_transit need the actual card from the locker (they build a card-present-style MIT request), so the connector-mandate path fails with "payment method not supported".
Proposal
- New
PaymentMethodData::StoredCardForNetworkTransactionId variant carrying the locker card + network_transaction_id.
pmid_mit_supported_connectors config (opt-in; tsys_transit for now): for these connectors, when the pm carries an NTI, replay via the network-transaction-id / locker path (StoredCard) even when a connector_mandate_id is stored.
Acceptance
- CIT stores the NTI in both
connector_mandate_id and network_transaction_id.
payment_method_id MIT routes via StoredCardForNetworkTransactionId (locker card + NTI) and the connector succeeds.
Feature
Support merchant-initiated
payment_method_idtransactions via a locker-sourced StoredCard for connectors that need the raw card (PAN + expiry) plus the network transaction id at MIT time (e.g.tsys_transit).Problem
For a
recurring_details.type = payment_method_idMIT, HS prefers the connector-mandate path whenever aconnector_mandate_idis stored, sending only the mandate id. Connectors liketsys_transitneed the actual card from the locker (they build a card-present-style MIT request), so the connector-mandate path fails with "payment method not supported".Proposal
PaymentMethodData::StoredCardForNetworkTransactionIdvariant carrying the locker card +network_transaction_id.pmid_mit_supported_connectorsconfig (opt-in;tsys_transitfor now): for these connectors, when the pm carries an NTI, replay via the network-transaction-id / locker path (StoredCard) even when aconnector_mandate_idis stored.Acceptance
connector_mandate_idandnetwork_transaction_id.payment_method_idMIT routes viaStoredCardForNetworkTransactionId(locker card + NTI) and the connector succeeds.