Read Debit/Credit Card data using NFC

I am trying to find solutions past 4 days. but not getting any reference about NFC implementation in my app to read Debit/Credit card upon user consent? Can you confirm apple is provided any api for read Debit/Credit card using NFC or not. Tried with normal NFCReader but it reads only for normal tags but nothing with Visa/ MasterCard cards. Looking forward some help from you. Thanks

Answered by Engineer in 807997022

It is not possible to interact with payment related cards using the base CoreNFC APIs.

Currently there are two special programs that will allow apps to interact with payment cards/readers. You can read about the capabilities and requirements for these use cases in the following documents:

NFC & SE Platform for secure contactless transactions

HCE-based contactless transactions for apps in the European Economic Area (EEA)

Both these programs have strict geographic and eligibility requirements, which you can find out at the above links. If you are not eligible at this time, no other use cases are supported.


Argun Tekant /  DTS Engineer / Core Technologies

It is not possible to interact with payment related cards using the base CoreNFC APIs.

Currently there are two special programs that will allow apps to interact with payment cards/readers. You can read about the capabilities and requirements for these use cases in the following documents:

NFC & SE Platform for secure contactless transactions

HCE-based contactless transactions for apps in the European Economic Area (EEA)

Both these programs have strict geographic and eligibility requirements, which you can find out at the above links. If you are not eligible at this time, no other use cases are supported.


Argun Tekant /  DTS Engineer / Core Technologies

It's possible in both program? In HCE-based contactless transaction for apps (EEA), how to send APDU command to debit/credit card not terminal. In documenation https://developer.apple.com/documentation/corenfc/cardsession/ I only see reading APDU, not send like in example: case .received(let cardAPDU):

            do {
                /// Call handler to process received input and produce a response.
                let responseAPDU = ProcessAPDU(cardAPDU.payload)
                try await cardAPDU.respond(response: responseAPDU)
         
Read Debit/Credit Card data using NFC
 
 
Q