Statement Descriptor

A guide about dynamic description functionality and how it works.

Overview

Merchants can now specify the desired description that will be displayed to the cardholder’s bank statement.

The dynamic description functionality is fully functional in Smart Checkout (Online Transactions) and in In-Person Payments (Android & Paydroid) too.

The functionality is available only for payments through card and with Visa, Mastercard, Aamex, Diners, JCB & Bancontact card schemes.

Restrictions

There is/are not any restriction(s) with other features/functionalities. Also, no MCC restrictions take place.

Plugin(s) does/do not support the dynamic descriptor feature.

How to activate Dynamic Descriptor

The dynamic descriptor id enabled by default to all merchants and it’s value is dispplayed in the Smart Checkout.

Smart Checkout

How to use a smart checkout with Dynamic Descriptor

In the integration flow, the process stays the same. The only difference is that a new parameter, named “dynamicDescriptor” added in the Create Payment Order Api Call.

Request example

Make the below call through a backend channel. Please notice the dynamicDescriptor parameter in the request body.

The dynamicDescriptor is a String parameter with max length 22 and it is a combination of the three parts:

Note that you should use OAuth2 method for the authentication.

post    /checkout/v2/orders

Run in Postman

Environment URL
Production https://api.vivapayments.com/checkout/v2/orders
Demo https://demo-api.vivapayments.com/checkout/v2/orders
curl '[Environment URL]'
-H 'Authorization: Bearer [access token]'
-H 'Content-Type: application/json'
-d '{
    "amount": 1000,
    "customerTrns": "Short description of purchased items/services",
    "dynamicDescriptor": "This is a desired Dynamic Descriptor",
    "customer":
    {
        "email": "johdoe@vivawallet.com",
        "fullName": "John Doe",
        "phone": "+30999999999",
        "countryCode": "GB",
        "requestLang": "en-GB"
    },
    "currencyCode": 348,
    "paymentTimeout": 300,
    "preauth": false,
    "allowRecurring": false,
    "sourceCode": "1234",
    "merchantTrns": "Short description of items/services",
    "tags":
    [
        "tags for grouping and filtering the transactions",
        "this tag can be searched on VivaWallet sales dashboard",
        "Sample tag 1",
        "Sample tag 2",
        "Another string"
    ],
    "cardTokens":
    [
        "ct_5d0a4e3a7e04469f82da228ca98fd661"
    ]
}'
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => '[Environment URL]',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
 "amount": 1,
 "customerTrns": "string",
 "dynamicDescriptor": "This is a desired Dynamic Descriptor",
 "customer": {"email": "","fullName": "","phone": "","countryCode": "","requestLang": ""},
 "paymentTimeout": 0,
 "preauth": true,
 "allowRecurring": true,
 "currencyCode": 348,
 "sourceCode": "Default",
 "merchantTrns": "string",
 "tags": ["string"],
 "cardTokens": ["ct_5d0a4e3a7e04469f82da228ca98fd661"]
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer [access token]',
    'Content-Type: application/json'
  ),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Response example

If authentication is successful and the parameter values provided for the creation of the payment order are valid, an order code is returned in the response.

{
    "orderCode": 1272214778972604
}

You may find below how the dynamic descriptor will be displayed in the cardholder’s bank statement

Smart Checkout

Get Support

If you would like to integrate with Viva, or if you have any queries about our products and solutions, please see our Contact & Support page to see how we can help!