Keyed Credit Card Payments

A keyed credit card payments is when the full card number, expiration date, and the security code are manually entered in order to charge the card.

Use Cases

There are many scenarios when keying a card would be used, here are a few examples:

  • Merchant does not have access to the physical card and receives card information from the cardholder. For example telephone orders.
  • Customer enters their own card information when making a payment online.
  • There's an issue with the card reader and it isn't able to detect the Magstripe/Chip/NFC, so keying the card number can be used as a backup to process the transaction.
  • Support for keyed payments is typically integrated as a simple and cost-effective way to accept payments for low volume merchants since equipment isn't required.

Presentment Types

Presentment types explain how the card information was obtained. When keying card information the following presentment types are available:

  • Card Not Present - Merchant does not have access to the physical card and received the card information directly from the cardholder to process the transaction
  • Card Present Keyed - Merchant has the physical card in their presence and keyed the card information to process the transaction

Things to Keep in Mind

Keyed transactions allow for a simple integration and don't require any equipment. However, due to the riskiness of keyed transactions, they have the potential to result in higher processing fees. Also, since the merchant doesn't have access to the physical card there is a higher probability of potential card fraud. Lastly, having to key in all of the card information takes time and can create a slower customer experience.

Making a Keyed 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

  • In the cardAccount object, we provide the card number, expiration, and any other required fields as seen in this payload:
{
   "merchantId" :"4xxx0",
   "tenderType" :"Card",
   "amount" :"0.01",
   "cardAccount":{
      "number" : "4111xxxxxxxx1111",
      "expiryMonth":"02",
      "expiryYear":"22",
      "cvv":"123",
      "avsZip":"30004",
      "avsStreet":"1234"
   }
}

Note that CVV, avsZip, and avsStreet may only be required based on your Loss Prevention settings.