Payment model field
Identify each transaction correctly to maximize authorization rates and correctly route 3D Secure.
The PaymentModelfield is included in /checkout and /openContract requests. It tells Reach, the payment processor, and the issuing bank what kind of transaction is being submitted. A PaymentModel value has two parts. The first part is the initiator—who submits the transaction. It can be one of:
- Consumer-initiated transaction (CIT)
- Merchant-initiated transaction (MIT)
- Mail or telephone order (MOTO)
The second part describes whether stored payment credentials are being created, reused, or not involved in the transaction, and if being created, whether future charges follow a fixed schedule. It can be one of:
- One-Time
- Setup-Scheduled
- Setup-Unscheduled
- Setup-Unscheduled-MIT
- Subsequent-Scheduled
- Subsequent-Unscheduled
Why the PaymentModel field matters
PaymentModel field mattersCorrectly setting the PaymentModel field improves authorization rates, reduces unnecessary 3DS challenges on stored-card transactions, and ensures the transaction is flagged correctly to the card issuer:
Improves authorization rates
Issuers use the initiator (CIT, MIT, or MOTO) and lifecycle (Setup, Subsequent, One-Time) to decide whether to approve a charge. Mismatched signaling leads to soft declines.
Routes 3D Secure correctly
Consumer-initiated transactions are subject to Strong Customer Authentication (SCA) and may trigger a 3DS challenge. SCA is a regulatory requirement that requires multi-factor authentication for online transactions. Merchant-initiated transactions are not subject to SCA, so flagging a recurring charge as a merchant-initiated transaction avoids unnecessary 3DS friction.
Signals lifecycle to the processor
Reach maps PaymentModel to processor-specific fields so the transaction reaches the issuer with the right classification.
Always include PaymentModel in the request. Explicitly setting PaymentModel is the only way to guarantee the transaction is classified the way you expect.
PaymentModel values
PaymentModel valuesPass a PaymentModel value in the request body of every /checkout or /openContract request.
Consumer-initiated (CIT)
The cardholder is present and actively participates in the transaction (for example, completing checkout in their browser).
PaymentModel value | When to use |
|---|---|
CIT-One-Time | A single consumer-initiated payment with no intent to save the card for future use. |
CIT-Setup-Scheduled | The cardholder is signing up for a subscription or any recurring service charged at fixed, regular intervals. Use this to open the contract. |
CIT-Setup-Unscheduled | The cardholder is saving a card for future consumer-initiated use (a standard "save my card" flow). |
CIT-Setup-Unscheduled-MIT | The cardholder is saving a card so the merchant can charge it later at an unscheduled interval (for example, top-ups, future installments, pay-as-you-go). |
CIT-Subsequent-Unscheduled | The cardholder is using a previously saved card to make a new purchase (for example, selecting a stored card at checkout). |
Merchant-initiated (MIT)
The cardholder is not present. The merchant charges stored payment details based on a prior agreement established by a CIT-Setup-* or MOTO-Setup-* transaction.
PaymentModel value | When to use |
|---|---|
MIT-Subsequent-Scheduled | A scheduled recurring charge (subscription renewal, monthly billing). Must be preceded by a CIT-Setup-Scheduled or MOTO-Setup-Scheduled transaction. |
MIT-Subsequent-Unscheduled | An unscheduled merchant-initiated charge (account top-up, deferred installment). Must be preceded by a CIT-Setup-Unscheduled-MIT or MOTO-Setup-Unscheduled-MIT transaction. |
Mail or telephone order (MOTO)
The cardholder provides their payment details to the merchant, who keys the transaction (for example, by phone or mail order). Use a MOTO payment model when the merchant needs to indicate that the channel is a keyed transaction rather than a consumer's own online checkout.
To submit payment card transactions via an agent, a merchant must submit a PCI DSS SAQ-C-VT. MOTO PaymentModel values cannot be used until this is in place.
PaymentModel value | When to use |
|---|---|
MOTO-One-Time | A single agent-keyed payment with no intent to save the card for future use. |
MOTO-Setup-Scheduled | An agent-keyed transaction that establishes payment details on file for a series of recurring payments at fixed, regular intervals (for example, a monthly subscription). |
MOTO-Setup-Unscheduled | An agent-keyed transaction that establishes payment details on file for future consumer-initiated transactions. |
MOTO-Setup-Unscheduled-MIT | An agent-keyed transaction that establishes payment details on file for future unscheduled merchant-initiated transactions (for example, future installment payments or account top-ups). |
Subsequent charges against a contract opened with a MOTO-Setup-* transaction use the matching MIT-Subsequent-* or CIT-Subsequent-Unscheduled value, as shown in the Setup-to-subsequent pairings section.
Choosing the right PaymentModel value
PaymentModel valueThe right value depends on what the transaction is doing now and what is intended for the future. Setup transactions must be paired with the matching subsequent transaction.
One-time purchases
Use CIT-One-Time (or MOTO-One-Time if the transaction is agent-keyed) for one-time purchases where the customer card is not saved.
For one-time purchases where the customer's card is saved for future use (by consumer, not the merchant), provide CIT-Setup-Unscheduled as the PaymentModel value.
When a consumer makes another purchase using the saved card, use CIT-Subsequent-Unscheduled and pass the contract ID provided from the previous CIT-Setup-Unscheduled response.
{
...
"PaymentModel": "CIT-One-Time",
"OpenContract": false,
...
}{
...
"PaymentModel": "CIT-Setup-Unscheduled",
"OpenContract": true
...
}
{
...
"PaymentModel": "CIT-Subsequent-Unscheduled",
"ContractId": "<contract id from setup>"
...
}
Subscriptions
First, use CIT-Setup-Scheduled to establish the contract between the merchant and the consumer. For each following subscription renewal, use the MIT-Subsequent-Scheduledvalue.
{
...
"PaymentModel": "CIT-Setup-Scheduled",
"OpenContract": true,
...
}
{
...
"PaymentModel": "MIT-Subsequent-Scheduled",
"ContractId": "<contract id from setup>"
...
}
Account top-ups or installments
For instances where the card is stored and charged by the merchant at a later unscheduled time—such as account top-ups or future installment payments—use CIT-Setup-Unscheduled-MIT to establish the contract.
For the subsequent merchant-initiated charges, use MIT-Subsequent-Unscheduled and pass the contract ID provided in the previous CIT-Setup-Unscheduled-MIT response.
{
...
"PaymentModel": "CIT-Setup-Unscheduled-MIT",
"OpenContract": true
...
}
{
...
"PaymentModel": "MIT-Subsequent-Unscheduled",
"ContractId": "<contract id from setup>"
...
}
Setup-to-subsequent pairings
For each use case, provide the initial setup PaymentModel value to establish a contract, followed by the corresponding value for subsequent transactions. Provide the ContractId when required.
Note that mismatched pairings can result in declines.
| Use cases | Initial setup | Subsequent transactions |
|---|---|---|
| Subscription, scheduled recurring billing | CIT-Setup-Scheduled or MOTO-Setup-Scheduled | MIT-Subsequent-Scheduled |
| Consumer reuses a saved card | CIT-Setup-Unscheduled or MOTO-Setup-Unscheduled | CIT-Subsequent-Unscheduled |
| Merchant top-ups, deferred installments, no fixed cadence | CIT-Setup-Unscheduled-MIT or MOTO-Setup-Unscheduled-MIT | MIT-Subsequent-Unscheduled |
Querying PaymentModel after a transaction
Use the /query endpoint to retrieve the PaymentModel that was applied to a completed transaction.
This is useful for confirming how Reach classified a request when PaymentModel was omitted from the original call.
For further details on Reach's Checkout API, see the Checkout API page and API reference pages. For details on storing payment credentials, see /openContract.
Updated about 21 hours ago
