Update Application Transit Counter
The Application Transit Counter (ATC) is a counter maintained by the chip on the card. The chip increments the ATC with each contact or contactless transaction at a terminal. The ATC is included in the Europay, Mastercard, and Visa (EMV) request data read from the chip in tag 9F36 and is submitted to the issuer in all requests containing EMV chip data.
This can lead to the counter on the chip and the counter known to the issuer being out of sync if:
- The chip performs the authorization.
- The cardholder uses the card for tapping on or off at a contactless transit terminal for an aggregated transit fare.
In such cases, the issuer rejects transactions due to suspected fraud. Therefore, the card schemes require aggregated transit fare merchants to send an ATC synchronization update to the issuer. This message must include the EMV ICC data in DE 55 from the most recent card tap.
Supported schemes
The ATC update functionality supports the following card schemes:
- Mastercard
- American Express
- Diners and Discover
Scheme rules
The merchant is not required to provide the order.amount
ATC update. The scheme processing rules mandate that specific values must be submitted during the processing of an ATC Update. Mastercard Gateway submits these values on behalf of the merchant.
Scheme Rules | |||
---|---|---|---|
Fields | Mastercard | American Express | Discover |
emvRequest |
9F02 must be 0.00 List of mandatory tags
|
9F02 must be 0.00 List of mandatory tags
|
9F02 must be 0.00 List of mandatory tags
|
Scheme Rules | Mastercard | American Express | Discover |
---|---|---|---|
ATC update amount submitted to the issuer by Mastercard Gateway | 0.00 | 0.10 | 1.00 |
The amount submitted to the issuer is not voided after the ATC update request. The issuer decides whether to exclude it from the customer statement or let the amount lapse within their set time period.
WS API support
Mastercard Gateway supports ATC from version 100 onwards of the WS API.
API Field | Example Data |
---|---|
apiOperation |
UPDATE_APPLICATION_TRANSACTION_COUNTER |
correlationId |
17329UD |
sourceOfFunds.type |
CARD |
sourceOfFunds.provided.card.emvRequest |
"emvRequest": { "57":";345678901234564=12051019681143384001?", "5F2A":"840", "82": "0000", "84": "0000000000", "95": "0000000000", "9A": "161021", "9C": "00", "9F02": "000000001099", "9F10": "06011103A000000A0100000000000BB0ABAD", "9F1A": "840", "9F26": "D1F722D47FCA8273", "9F27": "40", "9F33": "E0B8C8", "9F34": "1E0300", "9F35":35, "9F36": "0002", "9F37": "2A4E1690", "9F6E": "1234" } |
sourceOfFunds.provided.card.expiry.month |
12 |
sourceOfFunds.provided.card.expiry.year |
31 |
sourceOfFunds.provided.card.number |
345678901234564 |
sourceOfFunds.provided.card.track2 |
";345678901234564=12051019681143384001?" |
|
"p2pe": { "cardBin": "345678", "encryptionState": "VALID", "initializationVector": "00000000000000000000000000000000", "keySerialNumber": "3CE000000000000000000001", "payload": "FAE9807E64CFD85201D8160CCED1C9213BEAF72DA3F25FF0B81945FDA37F654B" }, |
lineOfBusiness |
"S2ITest" |
sourceOfFunds.provided.card.sequenceNumber |
123 |
Examples of WS API request for ATC
American Express
ATC request without P2PE fields
Request
{ "apiOperation": "UPDATE_APPLICATION_TRANSACTION_COUNTER", "correlationId": "2135", "sourceOfFunds": { "type": "CARD", "provided": { "card": { "expiry": { "month": "05", "year": "12" }, "sequenceNumber": "234", "emvRequest": { "57": ";345678901234564=12051019681143384001?", "5F2A": "840", "82": "0000", "84": "0000000000", "95": "0000000000", "9A": "161021", "9C": "00", "9F02": "000000001099", "9F10": "06011103A000000A0100000000000BB0ABAD", "9F1A": "840", "9F26": "D1F722D47FCA8273", "9F27": "40", "9F33": "E0B8C8", "9F34": "1E0300", "9F35": "35", "9F36": "0002", "9F37": "2A4E1690", "9F6E": "1234" } } } } }
Response
{ "correlationId": "2135", "merchant": "CYG_S2I_MER2", "response": { "result": "SUCCESS" }, "transaction": { "receipt": "507008104338" } }
ATC request with P2PE fields
Request
{ "apiOperation": "UPDATE_APPLICATION_TRANSACTION_COUNTER", "sourceOfFunds": { "type": "CARD", "provided": { "card": { "p2pe": { "cardBin": "345678", "encryptionState": "VALID", "initializationVector": "00000000000000000000000000000000", "keySerialNumber": "3CE000000000000000000001", "payload": "FAE9807E64CFD85201D8160CCED1C9213BEAF72DA3F25FF0B81945FDA37F654B" }, "emvRequest": { "5F2A": "840", "82": "0000", "84": "0000000000", "95": "0000000000", "9A": "161021", "9C": "00", "9F02": "000000001099", "9F10": "06011103A000000A0100000000000BB0ABAD", "9F1A": "840", "9F26": "D1F722D47FCA8273", "9F27": "40", "9F33": "E0B8C8", "9F34": "1E0300", "9F35": "35", "9F36": "0002", "9F37": "2A4E1690", "9F6E": "1234", "5F34": "123", "9F1E": "67881245" } } } } }
Response
{ "correlationId": "2135", "merchant": "CYG_S2I_MER2", "response": { "result": "SUCCESS" }, "transaction": { "receipt": "507008104338" } }
Mastercard
ATC request without P2PE fields
Request
{ "apiOperation": "UPDATE_APPLICATION_TRANSACTION_COUNTER", "correlationId": "ABCD", "sourceOfFunds": { "type": "CARD", "provided": { "card": { "number": "5457210089020012", "expiry": { "month": "01", "year": "39" }, "emvRequest": { "82": "0000", "84": "0000000000", "95": "0000000000", "5F2A": "036", "9A": "161021", "9C": "00", "9F02": "000000001099", "9F10": "06011103A000000A0100000000000BB0ABAD", "9F1A": "840", "9F26": "D1F722D47FCA8273", "9F27": "40", "9F34": "1E0300", "9F36": "0002", "9F37": "2A4E1690", "9F6E": "1234", "9F39": "03", "9F35": "14", "9F33": "000000", "5F34": "000", "5F24": "340322" } } } } }
Response
{ "correlationId": "ABCD", "merchant": "CYG_S2I_MER2", "response": { "result": "SUCCESS" }, "transaction": { "receipt": "507207281473" } }
ATC request with P2PE fields
Request
{ "apiOperation": "UPDATE_APPLICATION_TRANSACTION_COUNTER", "sourceOfFunds": { "type": "CARD", "provided": { "card": { "p2pe": { "cardBin": "512345", "encryptionState": "VALID", "initializationVector": "00000000000000000000000000000001", "keySerialNumber": "3CE000000000000000000001", "payload": "277E896FC83858AC5DFA2152F7BC3C57457CD37B01C0BDCCA5D88781BB715C3A" }, "emvRequest": { "82": "0000", "84": "0000000000", "95": "0000000000", "5F2A": "036", "9A": "161021", "9C": "00", "9F02": "000000001099", "9F10": "06011103A000000A0100000000000BB0ABAD", "9F1A": "840", "9F26": "D1F722D47FCA8273", "9F27": "40", "9F33": "E0B8C8", "9F34": "1E0300", "9F36": "0002", "9F37": "2A4E1690", "9F6E": "1234", "9F1E": "12345678", "5F34": "012", "9F35": "14" } } } } }
Response
{ "merchant": "CYG_S2I_MER2", "response": { "result": "SUCCESS" }, "transaction": { "receipt": "506914276025" } }