- Regular: a customer-initiated payment where the user enters the card details and chooses whether to store them.
- MOTO: a customer-initiated payment where the customer is not present in the journey. The acronym stands for Mail Order / Telephone Order, which describes how the customer requested the good or service and passed their instrument details for a payment. These transactions carry no authentication challenge, and the liability remains with the merchant.
- CardOnFile: a customer-initiated payment using a stored instrument.
- Subscription: a merchant-initiated payment using a stored instrument as part of a series of payments on a fixed schedule and with a fixed or variable amount.
Note: If you would like to send Subscription payments where the first payment was not processed by Payrails please align with the Payrails Payment Strategy team on designing the optimal implementation solution for your business needs. - UnscheduledCardOnFile: a merchant-initiated payment using a stored instrument that occurs on a not fixed schedule and/or without a set amount.
futureUsage field, sent inside paymentInstrumentData on the payment composition element (paymentComposition[].paymentInstrumentData.futureUsage).When a customer requests to store their card details, Payrails creates an instrument and assigns it one of these
futureUsage values:
- CardOnFile: the customer initiates payments using the instrument.
- Subscription: the merchant initiates payments using the instrument on a fixed schedule, with a fixed or variable amount.
- UnscheduledCardOnFile: the merchant initiates payments using the instrument on a non-fixed schedule and/or without a set amount.
futureUsage value in one of these ways, in priority order:
- The merchant sends it while tokenizing an instrument, from the backend or the client-side encryption SDK.
- (If the merchant does not send it) The workflow configuration applies its default value.
Payrails uses two request fields to differentiate between the current payment and future ones:
paymentProcessingTypedescribes the payment flow you are processing now. Send it directly on thepaymentComposition[]element (Enum: Regular, MOTO, CardOnFile, Subscription, UnscheduledCardOnFile).futureUsagespecifies which payment flows the stored instrument serves in the future. Send it insidepaymentInstrumentData(Enum: CardOnFile, Subscription, UnscheduledCardOnFile).
Where the flags sit in the request
Both fields sit inside thepaymentComposition[] array of the Authorize a payment request, but at different levels:
paymentProcessingTypeis a field on thepaymentComposition[]element itself — a sibling ofpaymentInstrumentData.futureUsageis a field insidepaymentInstrumentData.
paymentProcessingType is Regular because the customer initiates the payment, and futureUsage is CardOnFile, marking the stored card for later customer-initiated payments.
Subscription) but the customer now makes a different type of payment on that same card (for example, a one-time payment), set paymentProcessingType on the paymentComposition[] element to match the current payment — for example, CardOnFile.