Send payment authentication code [Deprecated]

Verify API supports Strong Customer Authentication for payments. To begin the process, supply the customer's telephone number (in E.164 format ), the payee that will receive the payment, and the amount (in Euro) of the transaction, to the PSD2 endpoint.

The Verify API returns a request_id. Use this to identify a specific verification request in subsequent calls to the API, such as when making a check request to see if the user provided the correct code.

Replace the following variables in the sample code with your own values:

KeyDescription
VONAGE_API_KEY

Your Vonage API key (see it on your dashboard).

VONAGE_API_SECRET

Your Vonage API secret (also available on your dashboard).

RECIPIENT_NUMBER

The phone number to verify

PAYEE

Included in the message to describe the payment recipient

AMOUNT

How much the payment is for (always in Euro)

Write the code

Add the following to send-psd2-code.sh:

curl -X POST "https://api.nexmo.com/verify/psd2/json" \

View full source

Run your code

Save this file to your machine and run it:

sh send-psd2-code.sh

Prerequisites

Add the following to build.gradle:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

Create a file named StartPsd2Verification and add the following code to the main method:

val client = Vonage {
    apiKey(VONAGE_API_KEY)
    apiSecret(VONAGE_API_SECRET)
}

View full source

Write the code

Add the following to the main method of the StartPsd2Verification file:

val response = client.verifyLegacy.psd2Verify(VERIFY_NUMBER, VERIFY_AMOUNT, VERIFY_PAYEE_NAME)
if (response.status == VerifyStatus.OK) {
    println("Verification sent. Request ID: ${response.requestId}")
}
else {
    println("Error: ${response.errorText}")
}

View full source

Run your code

We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Run the following gradle command to execute your application, replacing com.vonage.quickstart.kt.verify.legacy with the package containing StartPsd2Verification:

gradle run -Pmain=com.vonage.quickstart.kt.verify.legacy.StartPsd2Verification

Prerequisites

Add the following to build.gradle:

implementation 'com.vonage:server-sdk:9.3.1'

Create a file named StartPsd2Verification and add the following code to the main method:

VonageClient client = VonageClient.builder()
        .apiKey(VONAGE_API_KEY)
        .apiSecret(VONAGE_API_SECRET)
        .build();

View full source

Write the code

Add the following to the main method of the StartPsd2Verification file:

VerifyResponse response = client.getVerifyClient().psd2Verify(
        VERIFY_NUMBER, VERIFY_AMOUNT, VERIFY_PAYEE_NAME
);

if (response.getStatus() == VerifyStatus.OK) {
    System.out.printf("Request ID: %s", response.getRequestId());
}
else {
    System.out.printf("Error: %s: %s", response.getStatus(), response.getErrorText());
}

View full source

Run your code

We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Run the following gradle command to execute your application, replacing com.vonage.quickstart.verify with the package containing StartPsd2Verification:

gradle run -Pmain=com.vonage.quickstart.verify.StartPsd2Verification

Prerequisites

Install-Package Vonage

Create a file named SendPsd2.cs and add the following code:

using Vonage;
using Vonage.Request;
using Vonage.Verify;

View full source

Add the following to SendPsd2.cs:


var creds = Credentials.FromApiKeyAndSecret(vonageApiKey, vonageApiSecret);

View full source

Write the code

Add the following to SendPsd2.cs:


var request = new Psd2Request { Amount = amount, Payee = payeeName, Number = recipientNumber };

View full source

Prerequisites

composer require vonage/client

Create a file named send_psd2_request.php and add the following code:

$basic  = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client(new \Vonage\Client\Credentials\Container($basic));

View full source

Write the code

Add the following to send_psd2_request.php:

$request = new \Vonage\Verify\RequestPSD2(RECIPIENT_NUMBER, PAYEE_NAME, AMOUNT);
$response = $client->verify()->requestPSD2($request);

echo "Started verification, `request_id` is " . $response['request_id'];

View full source

Run your code

Save this file to your machine and run it:

php send_psd2_request.php

Prerequisites

pip install vonage python-dotenv

Write the code

Add the following to psd2-request.py:

from vonage import Auth, Vonage
from vonage_verify_legacy import Psd2Request, StartVerificationResponse

client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))

request = Psd2Request(number=VERIFY_NUMBER, payee=VERIFY_PAYEE_NAME, amount=VERIFY_AMOUNT)

response: StartVerificationResponse = client.verify_legacy.start_psd2_verification(
    request
)
print(response)

View full source

Run your code

Save this file to your machine and run it:

python verify_legacy/psd2-request.py

Prerequisites

gem install vonage

Create a file named send_psd2_code.rb and add the following code:

client = Vonage::Client.new(
  api_key: VONAGE_API_KEY,
  api_secret: VONAGE_API_SECRET
)

View full source

Write the code

Add the following to send_psd2_code.rb:

response = client.verify.psd2(
  number: VERIFY_NUMBER,
  payee: VERIFY_PAYEE_NAME,
  amount: VERIFY_AMOUNT
)

View full source

Run your code

Save this file to your machine and run it:

ruby send_psd2_code.rb