Card encryption - verifone.js
The verifone.js library is a quick and secure way to collect sensitive credit card data. This allows users full control over the checkout experience while maintaining a minimum SAQ A-EP level. The user receives an encrypted card block, which can be used to process a payment.
Availability
verifone.js is available for all Verifone merchants who use the Payments API of Verifone or process their payments using an external party.
Benefits
The verifone.js solution offers:
Full ownership over merchant payment flow
Reduced complexity for PCI DSS compliance
Seamless integration into an existing checkout page, regardless of the stack used
Supported browsers
Chrome
Firefox
Edge
Safari
Opera
Brave
How it works

Integration steps
An account is created in Verifone Central by a Verifone employee.
The onboarding is done with a Secure Card Capture Key on Verifone Central.
To integrate verifone.js in your Checkout page, follow these steps:
Load verifone.js in the <head> of your Checkout page, where the card form is shown.
Sandbox environment:
Production environment:
Define the Secure Card Capture Key.
Collect the card data and place it into a JSON object. Card schema
Parameter nameTypeDescriptioncardNumberRequired* (string)
Numeric value with no spaces or separators allowed between the digits
expiryMonthOptional (string)
Numeric value with length 2. e.g., March -> 03
expiryYearOptional (string)
Numeric value with length 2, e.g., 2028 -> 28
cvvOptional (string)
Numeric value with length 3 or 4
svcAccessCodeOptional (string)
Numeric value with length up to 8
PIN number of non-PCI cards (e.g.: Gift Cards)
*
cardNumberis required for getEncryptedCardDetails method and optional forencryptCardInvoke verifone.js to encrypt the card using
encryptionKeyverifone.encryptCardreturns a Promise. Not all browsers support using async-await. Consider this in your integration.Alternatively, if you would like to receive additional data regarding the card, such as expiration date and limited card digits use the function below:
If you are using getEncryptedCardDetails you can use the BIN in a binlookup call to receive the card_brand for grater accuracy in initiating payments.
If this returns multiple results, you should ask the shopper to select one of the brands, corresponding to their card.
[Optional] To initiate a payment using the Payments API, use the encryptedCard parameter alongside the public key alias of the encryption key:
Last updated
Was this helpful?
