Skip to content
Last updated

Visa and Mastercard require additional information to be sent when a card is being stored on file, or when a card on file is being used for a transaction. Merchants who send the required information will experience higher authorization approval rates, and card issuers will have greater visibility into the risk level of transactions.

The information can be transmitted via the transaction.cardOnFile object defined in the following endpoints:

For approved transactions, Shift4 will store the card on file transaction ID along with the token in our token vault. Shift4 will also return the cardOnFile.transactionId in the response. If you are using Shift4's Global Token Vault tokens to process subsequent card on file transactions Shift4 will lookup the associated card on file transaction ID stored within the Global Token Vault. If you are not using our Global Token Vault tokens you must store the cardOnFile.transactionId from the original response and include it in all subsequent card on file transaction requests.

Using a single card for multiple recurring payments

In this scenario a single card is used to process recurring payments for multiple users. For example, a parent using the same card to pay for their internet service as well as their child's internet service. Each recurring payment instance will have a separate COF transaction ID, however the Global Token Vault can only associate a single COF transaction ID with the card. In order to properly support this scenario, the integrator must store the appropriate COF transaction ID associated with each subscription and must include it in the cardOnFile.transactionId field when processing the payment.

Purchasing items and signing up for recurring payments

In this scenario a cardholder is purchasing items and also signing up for a recurring payment that will not occur until after the items are delivered. For example, the cardholder is signing up for internet service while also purchasing a modem and router. The initial charge for the hardware purchase should be sent as cardOnFile.type = S01, while the recurring payment that is sent after hardware delivery should be sent as cardOnFile.type = U03