Skip to main content

Step-Up Authentication

The revised Payment Service Directive, more commonly known as PSD2, outlines regulations to improve customer authentication processes that better protect customers from fraud.

PSD2 defines that strong customer authentication (SCA) via a two-factor authentication solution needs to be in place for when end-users are:

Using the Multi APIs you can enrol your customers to different SCA options in line with PSD2 and step-up their authentication to perform certain operations.

How to step-up a token

An active user can step-up their token by completing a second authentication factor. Multi supports the following second factors:

Step-up a token using an OTP via SMS

A 6 digit one-time password is sent via text message on the end-user's registered mobile number. The one-time password needs to be submitted via the Multi APIs to complete the step-up.

The following are the steps required to complete a step-up via an OTP sent via an SMS:

  1. Initiate a challenge
  2. Confirm the challenge
info

In order to complete challenge, the logged-in user must have enrolled their mobile device for strong customer authentication.

1. Initiate a challenge

You can trigger the step-up process by calling the step-up challenge API. The user will receive a text message (SMS) on the mobile number associated with their credentials.

The endpoint allows the end-user to re-send a new OTP up to one time, if the first step-up challenge attempt was unsuccessful.

To be able to issue another step-up challenge, you need to wait a minimum of 15 seconds from the first attempt.

Triggering the step-up challenge API after 15 seconds from the first attempt will invalidate the first challenge and the user will need to respond to the new challenge.

  • Triggering the step-up challenge API within 15 seconds will return an 409 RETRY_IN_15SEC.

  • The step-up challenge can be retried once after which an 400 INVALID_REQUEST will be returned. The user will have to logout and login again to issue a new step-up challenge.

    If the end-user receives both the first SMS and the second one at the same time (e.g. a delay in telecom delivering the messages), only the more recent OTP will work.

For root users, this will be the mobile number provided when onboarding the corporate or consumer identity, while for authorised users, this will be the mobile number provided when onboarding the user.

2. Verify the challenge

You must build a page in your application where the user can enter the verification code that they received in the text message which you will need to submit via the challenge verify API.

info

The challenge expires after 5 minutes and the number of incorrect OTP attempts is limited to reduce the risk of fraud; the challenge remains in a Pending state until the last incorrect attempt has been consumed within the 5 minutes. A successful verification will also step-up the users current session, allowing access to the endpoints that require a stepped up token.

Step-up a token using Twilio Authy

To step a token using Twilio Authy, you can send a push notification on the user's mobile phone by calling the step-up challenge via authy API.

The user must approve the push notification submitted on their mobile phone. You will receive a webhook notification once the user approves or rejects the push notification.

info

To use AUTHY as an authentication factor, consumer users, corporate users and authorised users must be enrolled for Authy in order to perform authentication using this method.

More authentication channels will be added in the future.

caution

Once the customer successfully completes the second-factor authentication, then this token will be considered stepped-up. Authentication token expire after 5 minutes of inactivity.

If a wrong verification code is provided, the token remains valid however it is not considered as stepped-up.

Step-up a token using Biometrics

The Access Token that is returned after a successful login via biometrics is already stepped-up and will give you access to the endpoints below.

caution

Once a device has been enrolled for biometrics, it cannot be enrolled again, unless you un-enrol it first.

Actions requiring a stepped-up token

There are three levels of SCA for Payment Account Information which is being enforced depending on the endpoint being used.

Access to account details

The /managed_accounts and /managed_accounts/{id} endpoints only require the end-user to have enrolled and completed a two-factor authentication once.

Access to transaction details

Statement or transaction endpoints require the user to have completed a successful step-up in the last 180 days. If the active token is not stepped up, then only transactions executed in the last 180 days are returned. If transactions older than 180 days are required, the active token must be stepped-up.

Access to sensitive information

All card related operations require a stepped-up token. This includes viewing sensitive card information and updating the password or passcode of the end-user.

Please see the full list of endpoint and UI components requiring a stepped-up token for each call below.

info

You can control at which point the two-factor authentication is completed on the end-user so long as a stepped-up token is provided when calling the below endpoints.

warning

Two-factor authentication done for the purpose of verifying a transaction does not count towards SCA for the purpose of payment account information.

List of endpoints requiring a stepped-up token

EndpointDescription
Create Authorised User
POST multi/usersRequires a stepped-up token
Statement
GET managed_accounts/{id}/statementRequires the user to have completed a successful step-up in the last 180 days
GET managed_cards/{id}/statementRequires the user to have completed a successful step-up in the last 180 days
Managed Accounts
GET, POST /managed_accountFirst time access requires a stepped-up token
GET, PATCH /managed_accounts/{id}First time access requires a stepped-up token
Managed Cards
GET, POST /managed_cardsRequires a stepped-up token
GET, POST /managed_cards/{id}Requires a stepped-up token
POST /managed_cards/assignRequires a stepped-up token
PATCH /managed_cards/{id}Requires a stepped-up token
POST /managed_cards/{id}/physicalRequires a stepped-up token
POST /managed_cards/{id}/physical/activateRequires a stepped-up token
GET /managed_cards/{id}/physical/pinRequires a stepped-up token
POST /managed_cards/{id}/physical/replace_lost_stolenRequires a stepped-up token
POST /managed_cards/{id}/physical/replace_damagedRequires a stepped-up token
Transactions
GET /sendsRequires the user to have completed a successful step-up in the last 180 days
GET /transfersRequires the user to have completed a successful step-up in the last 180 days
GET /outgoing_wire_transfersRequires the user to have completed a successful step-up in the last 180 days
GET /outgoing_wire_transfers/{id}Requires the user to have completed a successful step-up in the last 180 days
GET /transfers/{id}Requires the user to have completed a successful step-up in the last 180 days
GET /send/{id}Requires the user to have completed a successful step-up in the last 180 days

List of UI components requiring a stepped-up token

UI ComponentDescription
Password UI ComponentRequired when changing the password. Setting your password the first time does not require a stepped-up token.
Passcode UI ComponentRequired when changing the passcode. Setting your passcode the first time does not require a stepped-up token.
Card UI ComponentsDescription
Card Number ComponentRequires a stepped-up token
Capture Card No PIN ComponentRequires a stepped-up token
Show Card PIN UI ComponentRequires a stepped-up token
CVV UI ComponentRequires a stepped-up token