Important: This is not the same as SubscriptionsThink of who’s in control of recurrence:
- Stored Credentials: You control recurrence and are responsible for sending each transaction according to your own schedule and recurrence logic.
- Subscription API: Yuno controls it. You provide instructions once, then Yuno automatically sends transactions on your behalf. See Subscriptions.
- Categorization
- General considerations
- Create a payment
- Subscription agreement ID
- Network transaction ID
- Wallet-originated tokens (Apple Pay and Google Pay)
Categorization
Determining whether a transaction is initiated by the merchant or the customer has significant implications for security, user experience, fraud prevention, and regulatory compliance.
General considerations
- Responsibility: In the context of strong customer authentication (SCA) under PSD2 regulation in the European Union, CIT generally requires higher authentication compared to MIT.
- Frequency: MIT transactions are often recurring and periodic, while CIT are more ad hoc events based on customer actions.
Create a payment with processing type
To specify a payment with a processing type, use thestored_credentials structure inside the payment_method.detail.card when creating a payment.
Critical: Complete All Required Fields
- When working with CIT and MIT transactions, it’s essential to correctly populate the
usage,reason, andnetwork_transaction_idfields. Failing to complete these fields properly can result in decreased approval rates and loss of chargeback disputes. - Some providers (e.g., Adyen) require that the
reasonfield remains consistent across the transaction lifecycle. If your first transaction (usage=FIRST) usesreason=SUBSCRIPTION, all subsequent transactions (usage=USED) must also usereason=SUBSCRIPTION.
Request example
Request (cURL)
Wallet-originated tokens (Apple Pay and Google Pay)
A wallet CIT withvault_on_success: true also produces a vaulted_token: Apple Pay and Google Pay decrypt to a card network token, so the stored instrument is a CARD record with parent_payment_method_type set to the wallet type.
Charges on a stored wallet token always use detail.card.stored_credentials — not detail.wallet:
Yuno attaches the
network_transaction_id from the usage: FIRST payment automatically, exactly as for cards. Keep reason consistent within a series. See the “Critical: Complete All Required Fields” note under Create a payment with processing type.
Subscription agreement
For certain markets (MX for example) and payment processors, when a subscription-related payment is made, the ID of the agreement with the customer needs to be specified in the payment request to ensure correct processing. To facilitate this, Yuno has enabled thesubscription_agreement_id field inside the stored_credentials struct, allowing you to share the agreement made with the customer.
NoteThe
subscription_agreement_id and network_transaction_id are independent fields. Including a subscription_agreement_id does not replace the need for a network_transaction_id. Both should be provided when applicable to ensure optimal approval rates and chargeback protection.Network transaction ID
A network transaction ID is a unique identifier assigned to a transaction by the card network. It is used to track and reference specific transactions, particularly in recurring payment scenarios, ensuring consistency and traceability across the payment lifecycle. If the transaction is customer-initiated (CIT), the network transaction reference will be available in thecard.stored_credentials.network_transaction_id field. This field represents the transaction ID for Visa and the trace ID for Mastercard, which are recommended for future subscription payments.
Use
Yuno associates thenetwork_transaction_id with the vaulted_token for future transactions, so you don’t have to manage the logic for each case. Yuno performs the association when a payment is created with:
- Payment method:
- A card
vaulted_token, or - Card data with
vault_on_successset totrue
- A card
- Stored credentials:
usageset toFIRST
network_transaction_id for the card, you can include it in the payment in the corresponding field. If not, for MIT payments (with stored_credentials.usage=USED), Yuno sends the network_transaction_id associated with the vaulted_token to the provider.
Remember to specify the
usage in the stored_credentials section, as Yuno triggers the network_transaction_id logic based on those fields.