NFC Credit Card Payments

Also referred to as tap payments due to the action made to complete an NFC transaction. NFC stands for Near Field Communication, which is used to securely transmit the card information to the card reader.

Use Cases

  • Customer is using a plastic NFC enabled card and Merchant has NFC enabled equipment.
  • Customer is using their phone to pay with a mobile wallet such as Apple Pay, Samsung Pay, Google Pay, etc and Merchant has NFC enabled equipment
  • NFC transactions are typically integrated in environments where the POS equipment is customer facing - not in environments where the card is normally processed behind a counter by a clerk or taken to a POS station. For example, restaurants, bars, etc. do not usually accept NFC payments.


Check out the Supported Hardware tab for a full list of equipment and card readers available for NFC transactions.

Things to Keep in Mind

The payment data is the same as an EMV or NFC transaction. The only difference is how that card information is captured, in this case, the customer uses their device or NFC enabled card placed near a card reader.

Making an NFC Transaction

Step 1

  • Set HTTP request method to POST and use /payment route

Step 2

  • Supply the request with your username and password. Make sure it's in base-64 encryption in the Authorization header field.
  • Set Content-Type to Application/JSON

Step 3

   "merchantId" :"4xxx0",
   "tenderType" :"Card",
   "amount" :"0.01",
   "cardAccount" :{
      "emvData": "Xym9TXlYqOusxG1JrdlDqThnzBVZHnTziDjptEdBsv0MasvWV8IOF75Ld0OlntfIxxxxxxxxxxxxxxxx\/...", 
      "emvDataKsn": "8033xxxxxxx000011" 
  • If you would like to get the response object, you should supply echo=true as a URL parameter. This is useful as it keeps the user from having to use a GET call to see the response object information.

Step 4

  • You may use any mobile wallet for testing, but you will need to get an nfc-enabled reader injected with our PPS private key to make payments. The response from the reader will be encrypted in TLV, which you will need to pull out the C0 tag for the emvDataKsn field and the C2 tag for the emvData field.

Step 5

  • You should expect to receive an HTTP 201 code for the response if the payment posted correctly, and the status field should set to Approved. Note that the Sandbox environment will approve all cards as long as they are in the correct credit card format. To get a Declined status, you would use our Testing Cards as specified.