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

Correctly 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.

Classifying transactions

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

Pass 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 valueWhen to use
CIT-One-TimeA single consumer-initiated payment with no intent to save the card for future use.
CIT-Setup-ScheduledThe cardholder is signing up for a subscription or any recurring service charged at fixed, regular intervals. Use this to open the contract.
CIT-Setup-UnscheduledThe cardholder is saving a card for future consumer-initiated use (a standard "save my card" flow).
CIT-Setup-Unscheduled-MITThe 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-UnscheduledThe 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 valueWhen to use
MIT-Subsequent-ScheduledA scheduled recurring charge (subscription renewal, monthly billing). Must be preceded by a CIT-Setup-Scheduled or MOTO-Setup-Scheduled transaction.
MIT-Subsequent-UnscheduledAn 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.

Required

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 valueWhen to use
MOTO-One-TimeA single agent-keyed payment with no intent to save the card for future use.
MOTO-Setup-ScheduledAn 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-UnscheduledAn agent-keyed transaction that establishes payment details on file for future consumer-initiated transactions.
MOTO-Setup-Unscheduled-MITAn 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

The 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 casesInitial setupSubsequent transactions
Subscription, scheduled recurring billingCIT-Setup-Scheduled or MOTO-Setup-ScheduledMIT-Subsequent-Scheduled
Consumer reuses a saved cardCIT-Setup-Unscheduled or MOTO-Setup-UnscheduledCIT-Subsequent-Unscheduled
Merchant top-ups, deferred installments, no fixed cadenceCIT-Setup-Unscheduled-MIT or MOTO-Setup-Unscheduled-MITMIT-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.