Out of band transaction notification

 Out of Band Transaction notification is a dedicated messaging system that allows merchants to receive their transaction outcome reliable and timeously. The transaction outcome available in the Out of Band notification system contains the same data elements as would be found when doing a transaction look up in the gateway's endpoint or directly from Backoffice. Merchant developers can implement a webservice that will consume the transaction notification payload. The transaction notifications are usually available when the cardholder completes a payment to the merchant.

Format of the OOB Transaction Notification

  • The transaction notifications to the merchant are JSON formatted, the body of the message contains a Base64 string of the VXML response. The VXML response parameters are defined in the Output Parameters per action.

Usage: Out of Band notifications are available for any transactions processed by the Gateway, no matter the channel or product.

Prerequisite

  • Merchant developer has to implement a Webservice that can consume the transaction results posted to the merchants endpoint, with the sample available in  merchant-webservice
  • Out of Band Transaction notification must be enabled on the Test/Live application ID(s), this can be actioned by the support team - assist@iveri.com 
  • The merchant developer has to contact the support team - assist@iveri.com and provide the merchant URL to be used for posting transaction
  • The merchant URL should be HTTPS and handle TLS 1.2 connections.

Merchant Webservice 
The sections covers the Webservice example which the merchant can implement in order to consume the transaction responses as and when they are delivered by the Gateway's out of band notification system.

Out of Band Sample

Sample from a merchant view point

namespace 

{

  public class Response: IResponse

  {

            public string TransactionResponse(Response_message message)

   {

                      string decoded_response = null;

                      string response_message = null;

                      string response = message.message;

                    //Deserialize the message and get the response

                     dynamic dynJson = JsonConvert.DeserializeObject(response);

                     string deserialized_response = dynJson.Response;

                     //Decode the response from base64

                    byte [] response_data = System.Convert.FromBase64String(deserialized_response);

  decoded_response = System.Text.ASCIIEncoding.ASCII.GetString(response_data);

  response_message = decoded_response;

  Log.WriteLog(response_message);

                    return response_message;

         }

     }

}