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.

To integrate verifone.js in your Checkout page, follow these steps:

  1. Load verifone.js in the <head> of your Checkout page, where the card form is shown.

    Sandbox environment:

    Production environment:

  2. Collect the card data and place it into a JSON object. Card schema

    Parameter name
    Type
    Description

    cardNumber

    Required* (string)

    Numeric value with no spaces or separators allowed between the digits

    expiryMonth

    Optional (string)

    Numeric value with length 2. e.g., March -> 03

    expiryYear

    Optional (string)

    Numeric value with length 2, e.g., 2028 -> 28

    cvv

    Optional (string)

    Numeric value with length 3 or 4

    svcAccessCode

    Optional (string)

    Numeric value with length up to 8

    PIN number of non-PCI cards (e.g.: Gift Cards)

    *cardNumber is required for getEncryptedCardDetails method and optional for encryptCard

  3. Invoke verifone.js to encrypt the card using encryptionKey

    verifone.encryptCard returns 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:

  4. 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.

  5. [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?