Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.

In-app authentication for Visa CTF

Visa Cloud Token Framework (CTF) is a Visa framework designed to increase trust in e-commerce digital cards after Tokenization.

CTF defines two flows: device binding and cardholder verification.

These flows let the merchant increase trust in a digital card by triggering a cardholder step-up authentication flow with the Issuer.

For more details about the full flows and Visa Cloud Token Framework (CTF), see the section Visa Cloud token framework on the Tokenization documentation.

The in-app authentication flow for Visa CTF is very similar to the flow described in In app authentication.

Steps [01] to [10] are essentially the same.

The main difference is the payload format, shown in the following table:

Device binding - payload
Cardholder verification - payload

Compared with standard Tokenization authentication, the issuer application must inspect:

  • reasonCode: identifies the reason for the CTF authentication.

    • TOKEN_DEVICE_BINDING: device binding flow.

    • CARDHOLDER_STEPUP: cardholder verification flow.

  • deviceIndex: used for the device binding flow. This is the Visa device reference. In the D1 SDK, it maps to bindingReference.

When you refer to the sequence diagram in In app authentication, replace steps [11] and [12] with a new API call.

In this case, there is no digital card activation. Instead, the authentication result must be propagated to Visa VTS.

The D1 SDK exposes the following APIs so the issuer application can report the result:

  1. For TOKEN_DEVICE_BINDING, call DigitalCardService.approveBinding with digitalCardID and deviceIndex.

  2. For CARDHOLDER_STEPUP, call DigitalCardService.approveCardholderVerification with digitalCardID.

The D1 SDK also lets you:

  1. Retrieve the list of bound devices as deviceBindingList when getDigitalCardList() is called. For details, see View and control digital cards.

  2. Unbind a device by calling DigitalCardService.unbindDevice. See Device unbind.

The following examples show how to parse the payload and approve a binding request.

Note

The following fields mapping apply:

  • tokenReferenceID = digitalCardID

  • deviceIndex = bindingReference

For a full access to the D1 SDK, please check API reference.

Last updated

Was this helpful?