Skip to main content

How to Integrate and Use the Fingerprint Anit-Fraud Protection

Fingerprint is an anti-fraud protection available on the new checkout widget.

Updated over 2 months ago

Fingerprint is an anti-fraud protection available on the new checkout widget. It requires a fingerprint generated by fingerprint.com just before loading the payment widget. The information gathered from the client at this step helps us identify fraud and decline it discreetly.


Integrate Fingerprint

To integrate, it requires the following integration steps:

  1. [Client Side] Load fingerprint JS script, ideally globally, on all pages.

  2. [Client Side] Call fp.get() with the fingerprintLinkedId from the order object returned in the OCTO API.

  3. [Fingerprint] A fingerprint is internally generated and sent to Ventrata via webhook.

  4. [Backend] Poll GET /orders/:id request until cardPayments.gateway is no longer null.

  5. [Backend] When step 4 succeeds, load the payment form with the card payment session.

  6. [Backend] Confirm the payment as normal.


    📝 NOTES

    • Fingerprint JS Script

      We use fingerprintjs-pro. Read the Quick Start Guide for more information.

      You simply need to include the javascript file.Then load it with the following script:

      const fp = FingerprintJS.load({
      apiKey: "XXXXXXXX",
      endpoint: "https://fp.ventrata.com",
      scriptUrlPattern: "https://fp.ventrata.com/web/v<version>/<apiKey>/loader_v<loaderVersion>.js",
      });

      The XXXXXXXX value is your Public API Key. Please contact your Account Manager to provide your API Key.



Use the ventrata/checkout capability

To get access to order.fingerprintLinkedId, needed for the next bit, use the ventrata/checkout capability in all API requests you make. This will:

  1. Make cardPayments.gateway null until we receive a webhook from Fingerprint.

  2. Provide the order.fingerprintLinkedId value.

Should you have any questions, do not hesitate to reach out to the Ventrata team.

Did this answer your question?