DiVert Implementation Guide

Introduction 


Divert is a payment solution that enables merchant to request payment from cardholdes for services rendered.To generate a payment link, transaction details and intended recepient information are required. Once this information is provided, secure payment link is generated.The merchant can then share through their preffered communication channel, such as SMS or Whatsapp or alternatively, the iVeri Gateway can distributte the link via email

There are 2 ways to generate the payment link:


  • Create payment links manually by logging into the iVeri merchant Portal
  • Automate the payment link creation process using our API


Use Cases 

Adhoc: Rendering of services such as plumbing, electricians

Hospitality: Additional charges that may not be included in the customers reservation

Subscription/Recurring: Where customers may have missed a scheduled payment, merchants can use payment links to collect funds from customerd


Create payment links via merchant portal


Set up & Customize Divert application:



Generate Payment link


  • Complete the payment request form - Amount, email address, name, expiry, reference
  • Send Link  - payment request link will generated to your clients specified email address
  • Alternatively, use generate URL into your emails, SMS, whatsAPP channel


Stay informed 

DiVert API

Requirements

With the API, merchants are able to generate payment requests to their clients by implementing the “DebitRequest” command and include the specific data parameters that are expected in the message request to the Gateway. The data elements required in the “DebitRequest” command are covered in the Enterprise Documentation

In order to implement the DebitRuquest method, the following should be in place.

  • Reference this implementation guide 
  • Reference the “RequestDebit” method in the Enterprise Documentation 
  • Merchant Agreement with an acquirer with Divert as the solution which will result in a merchant profile on the Gateway

DiVert Functionality

The Divert API has a parameter “CreateTransactionUrl” that can be set to either “True or “False”. The value set determines how the Gateway handles and processes the message request.

Scenario 1

  • If CreateTransactionUrl” is set to“True” - the Gateway generates a transaction URL and makes a callback to the merchant with the URL.
  • The merchant can then construct and format their own message, including the URL (returned by the Gateway) and distribute the message to their cardholder using either SMS|Email
  • When the cardholder receives the messages, it will have all the particulars of the merchant, the cardholder can then click on the URL, and be redirected to a payment page wherein they can make a payment to the merchant

Scenario 2

If CreateTransactionUrl is set to “False” – the Gateway processes the request, packages the payment request and distributes into the cardholder’s specified email address on behalf of the merchant

When the cardholder receives the messages, it will have all the particulars of the merchant, the cardholder can then click on the URL and be redirected to a payment page wherein they can make a payment to the merchant

Divert - Payment Link Parameters

The table below carries the applicable parameters for merchants intending to implement our API 

Mandatory

O

Optional

C

Conditional

blank

not relevant

 

DiVert Parameter per Action

t

Parameter

RequestForDebit

RequestForAuthorisation

Core

ApplicationID

M

M

Core

Category

M

M

Core

CertificateID

M

M

Core

Gateway

O

O

Core

Command

M

M

Core

Mode

M

M

Common

Amount

M

M

Common

Currency

M

M

Common

MerchantReference

M

M

Common

CardholderName

M

M

Common

CardholderEmail

C

C

Common

OrderDescription

O

O

Common

AllowBudgetPeriod

O

O

Common

RequestExpiryDate

O

O

Common

CreateTransactionUrl

O

O

Format: JSON

Content-Type: Application/json

REQUEST

{

    "Version": "2.0",

    "CertificateID": "{c5fb89bb-d823-4204-8df8-c0485ac9e113}",

    "ProductType": "Enterprise",

    "ProductVersion": "WebAPI",

    "Direction": "Request",

    "Enquiry": {

        "ApplicationID": "{e879975b-df4a-4e13-8ed1-102579581827}",

        "Command": "RequestForDebit",

        "Mode": "Test",

        "MerchantReference": "20220226_1225",

        "Amount":"2000",

        "Currency":"ZAR",

        "OrderDescription":"Check1",

        "AllowBudgetPeriod":"False",

        "CardholderName":"Kersh",

        "ardholderEmail": "test@hotmail.com",

        "RequestExpiryDate": "20230201",

        "CreateTransactionUrl": "True"

    }

}


 

RESPONSE

{

    "Version": "2.0",

    "Direction": "Response",

    "Enquiry": {

        "MerchantReference": "20220226_1225",

        "TransactionUrl": 

"https://portal.nedsecure.co.za/DiVert/Authorise.aspx?RequestId=9F5DD3CA-5195-4957-A9E6-79FFF5E021BD&SecurityToken=OGlIUU5ETkNtOEZMTG9xcGhQTUNiNmxwUGVuRUtLRy9aWktXNEZHSmJRaz01",

        "ApplicationID": "{E879975B-DF4A-4E13-8ED1-102579581827}",

        "Command": "RequestForDebit",

        "Mode": "Test",

        "RequestID": "{3C35B9CF-ACC6-416D-8A1C-0EDB1D61B592}",

        "Result": {

            "Status": "0",

            "Code": "0",

            "Description": "",

            "AppServer": "105IVERIAPPPR2N",

            "DBServer": "105iveridbpr01n",

            "Gateway": "Nedbank"

        }

    }

}


 
 

DiVert API Process Flow


Batch Upload File XML Specification


The Divert Batch Upload Data Elements

 

The Divert Batch XML upload file uses the following logic:

  • The <Divert> element can occur multiple times
  • The <DivertItem> element can occur multiple times under a <Divert> element
  • The Application ID used in the <DivertItem> elements should be the same through-out the <Divert> element

Divert attributes

Tag Name

Length

Data Type

Format

Description

Amount

<=12

 

Numeric

 

 

 

The sum of the Amount sub-element values of all the <DivertItem> sub-elements

Count

<=6

Number

 

The number of <DivertItem> sub-elements

Divert sub-elements

Tag Name

Length

Data Type

Format

Description

 

Date

 

8

 

Numeric

 

YYYYMMDD

The date when the batch was created (in which case the batch will be processed on the upload date) or a future date on which the batch should be processed (a past or future date cannot be more than 1 calendar month from the upload date)

 

Filename

<=64

Text

 

The Filename by which the Divert batch can be identified (must be unique for all Divert batches uploaded for an ApplicationID)

 

CreateTransactionUrl

 

Boolean

True|False

Used to generate the URL to which a payment can be made by the cardholder. When this value is set to ‘true’ a ‘TransactionUrl’ will be returned to the merchant, the merchant can then distribute the payment requests with this URL using their preferred comms. If set to ‘false’ a debit request email will be sent by the gateway on behalf of the merchant to the ‘CardholderEmail’

DivertItem

 

 

XML element

An element for each transaction in the Divert Batch, this can occur multiple times within a <Divert> 

 


DivertItem Attributes

Tag Name

Length

Data Type

Format

Description

Application ID

38

GUID

{00000000-0000-0000-0000-  000000000000}

 

The ApplicationID allocated generated by the gateway during merchant capture (the same ApplicationID must be used for all DivertItem elements under a Divert element)

 

Mode

4

Text

Test|Live

The mode of an ApplicationID

Command

<=64

Text

Debit|Authorisation|Credit|

The Transaction Type to be used


DivertItem sub-elements


Tag Name

Length

Data Type

Format

Description

Amount

<=12

Numeric

 

The transaction value in cents ( no decimal point)

 

Currency

3

Alpha

 

The iSO currency code in which the transaction will be processed in ie. ZAR or USD

OrderDescription

<=255

Text

 

A description of the Divert Batch

MerchantReference

<=64

 

 

Unique merchant reference for this transaction. Must be unique for each DivertItem with Divert uploaded for an Application ID(normally  this an Invoice Number)

AllowBudgetPeriod

 

Boolean

True|False

The number of months over which the cardholder would like to pay the transaction off.

CardholderName

<=50

 

 

 

CardholderEmail

<=128

String

 

The cardholder email address which the merchant will send payment request to

RequestExpiryDate

8

Numeric

YYYYMMDD

A future date which can be specified by the merchant on the validity period of the Divert payment request. If the date elapses and the request has not been processed by the cardholder the request will expire.

DiVert Batch Result File


DiVert Batch Result File Data Elements

 

The result file data elements described in this section are returned to the merchant when the <CreateTransactionURL> in the “DivertUpload” file is set to “True”. Merchants can use the returned data elements to create and format their own payment request messages and send the requests to their cardholder using their own delivery method i.e. SMS|EMAIL


The Divert Batch has the following logic:

  • The <Divert> element can occur multiple times
  • The <DivertItem> element can occur multiple times under a <Divert> element


Divert Attributes

Tag Name

Length

Data Type

Format

Description

Amount

<=12

Numeric

 

The sum of the Amount sub-element values of all the <DivertItem> sub-elements

 

Count

<=6

Number

 

The number of <DivertItem> sub-elements

 


Divert sub-elements

Tag Name

Length

Data Type

Format

Description

Date

8

Numeric

 

The date when the batch was created (in which case the batch will be processed on the upload date) or a future date on which the batch should be processed (a past or future date cannot be more than 1 calendar month from the upload date)

 

File Name

<=64

Text

 

The Filename by which the Divert batch can be identified (must be unique for all Divert batches uploaded for an ApplicationID)

 

CreateTransactionUrl

Boolean

 

True|False

Generated URL to which a payment can be made by the cardholder.

DivertItem

 

 

XML element

An element for each transaction in the Divert Batch, this can occur multiple times within a <Divert> 

 


DivetItem Attributes

Tag Name

Length

Data Type

Format

Description

Application ID

38

GUID

{00000000-0000-0000-0000-  000000000000}

 

The ApplicationID allocated generated by the gateway during merchant capture (the same ApplicationID must be used for all DivertItem elements under a Divert element)

Mode

4

Text

Test|Live

The mode of an ApplicationID

Command

<=64

Text

Debit|Authorisation|Credit| etc.

The Transaction type used

RequestID

38

GUID

{00000000-0000-0000-0000-  000000000000}

A unique identifier for the transaction allocated by iVeri


DivertItem sub-elements

Tag Name

Length

Data Type

Format

Description

TransactionURL

<=255

Text

 

This will be returned to the merchant in the result file if the ‘CreateTransactionUrl’ parameter set to ‘True’

 

MerchantReference

<=64

Text

 

Unique merchant reference for this transaction. Must be unique for each DivertItem with Divert uploaded for an Application ID(normally  this an Invoice Number)

DiVert Batch Upload Response Code

 

Error Description

Possible Reasons

Not a valid payment request Batch file

Can occur due to the following reasons: 

  • Incorrect File format Type
  • VXML tags that may be opened but not closed or Vice Versa

 

DiVertItem element Command attribute not valid

Check the Command file

Invalid Date

Make sure date is provided and on the correct format

User, Administrator, you have already uploaded a file, Teswa.XML, with applicationId, 8c4adb24-bda4-473b-af75-e4c4cd85ee05. 

 

 

 File with the same name  already uploaded