Dynamic Linking
Last updated
Last updated
You can leverage the Keyless authentication mechanism to sign unrelated transactions, including Strong customer authentication (SCA) transactions.
Payment service providers compliant with SCA PSD2 dynamic linking are required to:
Generate an authentication code specific to the amount of the payment transaction and the payee agreed to by the payer when initiating the transaction
Make the payer aware of the amount of the payment transaction, and of the payee
Keyless helps you by:
protecting the authentication code that you use for dynamic linking.
displaying and signing the information to make the payer aware of details of the transaction.
Keyless is not a payment service provider. Keyless won't issue an authentication code tied to the transaction information.
By adding Keyless to your checkout flow you also benefit from Keyless Passwordless Multi Factor Authentication (MFA).
SCA requires authentication to use at least two of the following three elements.
Something that only the customer knows. For example, a password or PIN.
Something that only the customer has. For example, a mobile phone or hardware token.
Something that the customer is. For example, a biometric such as a fingerprint or face.
With Keyless Passwordless MFA you can satisfy the last two points from the list above.
The following sections contain some examples on implementing SCA with Keyless.
Keyless displays a screen containing a list of labels and associated information on your behalf.
For this reason, the format of the dynamicLinkingInfo
must be a jsonArray containing jsonObjects (key/value pairs). We expect a valid JSON as follows:
This information is added to the Authentication request that the user needs to approve.
Once the user approves the transaction data, Keyless starts the authentication to:
Authenticate the payer with the device factor and the biometric factor using Keyless MFA.
Tie the transaction data to the Keyless MFA
To tie the transaction data to the Keyless MFA, populate the parameter dynamicLinkingInfo
of the authentication configuration AuthConfig
. Add the authentication code or any other information you want to display to the user and sign with Keyless MFA. For example, add the "authentication code".
The transactionData
contained in dynamicLinkingInfo
must respect the format to display transaction information.
Keyless can produce a signed JWT containing a claim titled td
(transaction data) that contains the payload you passed as dynamicLinnkingInfo
.
Keyless is not storing history of records about the transaction amount, the payee, the payer and the authentication code.
If the authentication is successful, the AuthenticationSuccess
contains the following fields:
signedJwt
: the signed JWT (specs below).
Verify the JWT using the public key from Keyless backend.
Congrats, you just performed a Strong Customer Authentication displaying and signing the transaction information.