Latpay API

Introduction

The LatPay API provides a suite of solutions to manage the entire Checkout process along with transaction management. Our API has been built with security as its core and offers all features as required by both the back office operations team as well as ease of integration for your technical team.

By accessing the LatPay payment management engine through the API, you will be able to manage the entire cash flow from collection to payout. The LatPay platform also gives you the ability to process in over 140 currencies and settle in 26 major currencies, all in real time. The API is designed in such a way that a single unified model to integrate for card, alternate payment and bank transfer is possible. So high level of code reusability and quick integration is possible.

Our API integration is very simple. However, if you need to contact us for technical support, please e-mail us at techsupport@lpsmail.com. For sandbox access, please send email to techsupport@lpsmail.com. Signing up for the sandbox will give you access to a test MID through which you can check out live responses, make demo transactions and explore features.

Getting Started

Our documentation was designed to be easy to use. Our API calls are grouped by resources which you will see in the navigation menu on the left frame.

These are the base API URLs for the LATPAY environments:

Sandbox: <<<Endpoint provided on signup to test MID>>>

Production: <<<Endpoint provided on issue of live MID>>>

mediaType: application/json

Checkout

The Checkout API call will initialise an order in the Latpay system and begin the checkout process for the customer. The response will provide a unique transaction id, order id to acknowledge order acceptance and state of transaction. The response code indicates the type of response along with status and error codes to indicate the actual status and if rejected, the reason for rejection.

Ecomm(CNP)
Card

The Checkout API is part of a unified API request to process authorisations. To use cards as payment mode, indicate the “billing” section with type set to “card” as shown the sample request.

API
POST /url/path/
Request
POST /url/path/

The payload of Checkout request must contain details of the authentication, customer, order details. For a seamless experience for customer, all purchase details can be included as well. The request & response parameters table below summarises the field requirements for Checkout along with mandatory field indicators . For the full list of parameters, including what is and is not mandatory, refer our API Reference section.

Checkout Request

Checkout URL Parameters

API Type Mandatory
accountid string Required
authkey** String Required
consumer Consumer Required
order Order Required
callback_params Callback param Optional
billing Billing Required

** Refer the “authkey” construction details in Authentication section

Card Transaction
Token Transaction
{
    "accountid": "test_pos",    
    "authkey":"a8ac11093e02e71c119b15452796677354b6c18320ec868731fde9050c5c737c48aec959e517fabeba5ec6d6d86efc4f87f4a9d066b8c1e1d257246b4e923e50",
    "consumer": {
       "firstname": "thirlok",
       "lastname": "shankar",
       "phone": "1234567890",
       "email": "thirlok@lpsmail.com"
    },
    "order": {
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "2.25",
        "purchasesummary": "Ecomm purchase list",
        "purchasedetail": [
            {
                "productid": "1890",
                "productname": "Smart watch",
                "productsku": "shop_dept_item_12434",
                "productdescription": "Android Smart wear design # tyfg45667",
                "productcategory": "Electronics",
                "productURL": "http://lateralpaymentsolutions.com",
                "quantity": "2",
                "priceperunit": "0.5"
            },
            {
                "productid": "1891",
                "productname": "Smart card",
                "productsku": "shop_dept_item_7895",
                "productdescription": "Kingston Smart SD Card # sd43545",
                "productcategory": "Electronics",
                "productURL": "http://lateralpaymentsolutions.com",
                "quantity": "2",
                "priceperunit": "0.5"
            }
        ]
    },
    "callback_params": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3",
        "param4": "value4",
        "param5": "value5"
    },
    "billing": {
        "type": "card",
        "card": {
            "name": "name on card",
            "pan": "4200000000000000",
            "exp": "12/24",
            "cvc": "123"            
        },
       "address" : 
                {
                  "line1" : "Southbank House",
                  "line2" : "",
                  "city" : "London",
                  "state" : "",
                  "country" : "GB",
                  "zipcode" : "SE1"
                },
         "fees": {
            "processingfee": "0.25",
            "surcharge" : "0.25"
        }
    }
}
{
    "accountid": "test_pos",    
    "authkey":"a8ac11093e02e71c119b15452796677354b6c18320ec868731fde9050c5c737c48aec959e517fabeba5ec6d6d86efc4f87f4a9d066b8c1e1d257246b4e923e50",
    "consumer": {
       "firstname": "thirlok",
       "lastname": "shankar",
       "phone": "1234567890",
       "email": "thirlok@lpsmail.com"
    },
    "order": {
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "2.25",
        "purchasesummary": "Ecomm purchase list",
        "purchasedetail": [
            {
                "productid": "1890",
                "productname": "Smart watch",
                "productsku": "shop_dept_item_12434",
                "productdescription": "Android Smart wear design # tyfg45667",
                "productcategory": "Electronics",
                "productURL": "http://lateralpaymentsolutions.com",
                "quantity": "2",
                "priceperunit": "0.5"
            },
            {
                "productid": "1891",
                "productname": "Smart card",
                "productsku": "shop_dept_item_7895",
                "productdescription": "Kingston Smart SD Card # sd43545",
                "productcategory": "Electronics",
                "productURL": "http://lateralpaymentsolutions.com",
                "quantity": "2",
                "priceperunit": "0.5"
            }
        ]
    },
    "callback_params": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3",
        "param4": "value4",
        "param5": "value5"
    },
    "billing": {
        "type": "card",
        "card": {
            "token": "0x7ed775036bb875eeb500e9f2dff5e24a17852e7d",
            "cvc": "123"            
        },
       "address" : 
                {
                  "line1" : "Southbank House",
                  "line2" : "",
                  "city" : "London",
                  "state" : "",
                  "country" : "GB",
                  "zipcode" : "SE1"
                },
        "fees": {
            "processingfee": "0.25",
            "surcharge" : "0.25"
        }
    }
}

Response

The response to checkout API indicates the status of transaction along with unique transaction and order id’s. In case of asynchronous payments where customer will be completing payments, the status will usually acknowledge as pending and final status notified on callback to URL sent on the notifyurl parameter.


Checkout Response



Checkout URL Parameters

API Type Mandatory
accountid string Required
transactionid numeric Required
customerid numeric Required
responsekey** string Required
transactiondate_utc String Required
status Status Required
consumer Consumer Required
order Order Required
callback_params CallbackParams Optional
billing Billing Required

** Refer the “responsekey” details in Authentication section

Object
Application/json
{
    "accountid": "test_pos",
    "transactionid": "1653022",
    "responsekey": "DCD5ACBF9C48878BEE266E10B6D44A5C4A18C45145A353CDA9255663885EC2CD63D0F3F05260DBC0E1B0037AD9AD07B70121B95D979C6A38284F72B9FE8AA264",
    "customerid": "2",
    "transactiondate_utc": "22/11/2022 10:44:00",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": "1653011",
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "2.25",
        "purchasesummary": "Ecomm purchase list",
        "purchasedetail": [
            {
                "productid": "1890",
                "productname": "Smart watch",
                "productsku": "shop_dept_item_12434",
                "productdescription": "Android Smart wear design # tyfg45667",
                "productcategory": "Electronics",
                "productURL": "http://lateralpaymentsolutions.com",
                "quantity": "2",
                "priceperunit": "0.5"
            },
            {
                "productid": "1891",
                "productname": "Smart card",
                "productsku": "shop_dept_item_7895",
                "productdescription": "Kingston Smart SD Card # sd43545",
                "productcategory": "Electronics",
                "productURL": "http://lateralpaymentsolutions.com",
                "quantity": "2",
                "priceperunit": "0.5"
            }
        ]
    },
    "callback_params": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3",
        "param4": "value4",
        "param5": "value5"
    },
    "billing": {
        "type": "card",
        "card": {
            "name": "name on card",
            "pan": "420000XXXXXX0000",
            "exp": "12/24",
            "token": "0x7ed775036bb875eeb500e9f2dff5e24a17852e7d"
        },
        "fees": {
            "processingfee": "0.25",
            "surcharge": "0.25"
        },
        "authresponse": {
            "banktransactionno": "82166613",
            "authcode": "test",
            "gatewayreference": "82166613"
        }
    },
    "status": {
        "responsetype": "1",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": ""
    }
}
Auth Status Check

Auth Status Check API call offers the ability to query the status of transaction in realtime. This API can be used for querying of transaction status in case if no response back for the original authorisation request. It can also be used to verify transaction status as an additional check from server, if in case the authorisation was initiated from a client side application.

POST /url/path/
Request
POST /url/path/
Field Type Mandatory
accountid string Required
authkey** string Required
transactionid string Optional
order Order Required
billing Billing Required

**Refer the “authkey” construction details in Authentication section

Example 1
{
"accountid": "test_pos",
"authkey": "c85dd1ab0feda8a08e69fe0c6410437d82ac9e3cfe5ece25c2c860cfe740ef498b9d080704b7372792dab69d84dcee1f733311ae1fe0e58c75e7a305f6ef7e97",
"transactionid": "5507",
"order":
   {
    "reference": "lpstest123",
    "currency": "AUD",
    "amount": "0.02",
    "purchasesummary": "Ecomm purchase list" 
    },
"billing":
        {
        "type": "card"
        }
}

Response
Field Type Mandatory
accountid string Required
transactionid string Required
responsekey** string Required
customerid string Required
transactiondate_utc string Required
consumer Consumer Required
order Order Required
billing Billing Required
status Status Required

** Refer the “responsekey” details in Authentication section

Object
Accepted
Prescreen Failed
{
    "accountid": "test_pos",
    "transactionid": "5507",
    "responsekey": "09C4661B1A4ECC7FC840CC379AE41399628257744F1F5C21692E54794E9C62F283BF87C0F11FDB84A0EA63121279E3419CAD2005A9132C33A071487585C60B73",
    "customerid": "106",
    "transactiondate_utc": "17/04/2020 11:10",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234512345",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "0.02",
        "purchasesummary": "Ecomm purchase list"
    },
    "billing": {
        "type": "card",
        "card": {
            "name": "aswani",
            "pan": "420000XXXXXX0000",
            "exp": "03/21",
            "token": "0x2a70aa24c86a53f06f057ecbf5acca7ebe383df4"
        },
        "fees": {
            "processingfee": "2.00"
        },
        "authresponse": {
            "banktransactionno": "7008682104",
            "authcode": "",
            "gatewayreference": "76122834"
        }
    },
    "status": {
        "responsetype": "6",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": ""
    }
}
{
    "accountid": "test_pos",
    "transactionid": "5507",
    "responsekey": "",
    "order": {
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "0.02",
        "purchasesummary": "Ecomm purchase list"
    },
    "billing": {
        "type": "card"
    },
    "status": {
        "responsetype": "6",
        "statuscode": "1",
        "errorcode": "1001",
        "errordesc": "Authentication Failed"
    }
}
Embedded Form(Card + Wallet)

The Embedded UI - Checkout (Card+Wallet) is a two step process, first step to dynamically create a payment form to securely collect customer’s card details and a second step of server side API call for authorising the payment.

  1. Latpay Embedded Form - Checkout securely collects customer payment information and authorises the card or wallet. On successful completion of payment process, a callback is triggered to indicate the process completion.

  2. On the callback, clients can then make a server side to their backend and then initiate a server-to-server API to validate the payment status before displaying the final status to customers.

By capturing card details from the client side and tokenising the sensitive information, the card details never pass through your server. Hence the integration is fully PCI-compliant.


Account Registration

The first step will be to obtain a Latpay processing account enabled for Embedded UI - Checkout.Register Now.

To have the wallet functionality enable for Checkouts, it would be necessary for merchants domain registered with the wallets via Latpay. As part of account request, merchant will be required to confirm their domain name on which Latpay checkout will need be emdedded. Latpay will register the domain name which will enable the wallet buttons to be shown on Latpay Checkout.


Payment Form Creation

The next step is to securely collect card details. Embedded UI - Checkout creates UI components that are hosted in Latpay in your payment form, rather than you creating them directly.

Add this script tag in the head section of your Checkout HTML page:

<script src="https://lateralpayments.com/<<path>>/Scripts/latpay3.js"></script>

This script should be loaded directly from https://lateralpayments.com

Authentication

Next, to authenticate the merchant account to enable binding of Checkout elements into the payment page. This is performed by calling the open() function on the Latpay Checkout script. This should be called on the Page Onload() event. The following Javascript code sample can be used as a template. The function provides an option to handle authentication failure for e.g. to alert website admins or write to log etc.

LatpayCheckout.open
({
merchantuserid: issued by latpay ,
publickey: issued by latpay,
currency: transaction currency,
amount: transaction amount,
reference: transaction reference,
description: transaction description,
'status': function (status) {}
//merchant can write custom logic to get alerted
//validate (status). If False, send callback to backend to raise alert for investigation.
});

On the payment form, to allow the Embedded UI - Checkout elements to be binded, it is necessary to create an empty DOM container (div tag) with the unique id “latpay-element”. This should be placed in location where you would like to have the card elements to be displayed.

Card Only

If you specifically want to handle the card section separately, replace the LatpayCheckout.open call with LatpayCheckout.open_card when initializing the card input fields. Here’s how to do it:

LatpayCheckout.open_card
({
merchantuserid: issued by latpay ,
publickey: issued by latpay,
currency: transaction currency,
amount: transaction amount,
reference: transaction reference,
description: transaction description,
'status': function (status) {}
//merchant can write custom logic to get alerted
//validate (status). If False, send callback to backend to raise alert for investigation.
});


<div id=latpay-element>
</div>
<button id="customButton">Checkout</button>

To customise the user interface styles, the following classes can be added as inline style to overwrite the default behaviour of the card element UI. The available style classes and its default configuration used in Embedded UI - Checkout element are:

CSS details


Card element style


/*This selector is used for set required field "*" color*/
span.latpay-required {
color: red;
font-weight: bold;
}

/*This selector points to form labels */
div.latpay-elements-field > label {
color: #999 !important;
font-size: 12px !important;
}

/*This selector points to CVC box while pay using card token*/
div.latpay-elements-field {
padding: 10px 5px;
}

/*This selector points all input boxes*/
div.latpay-elements-field > input {
width: 100%;
margin-top: 5px;
border: 1px solid #d9d9d9;
background: #fff !important;
padding: 6px;
font-size: 18px !important;
color: grey !important;
}

/*This selector points card brand logo*/
i.latpay-credit-card-brand {
position: absolute;
right: 8%;
margin-top: -37px;
display: block;
width: 30px;
height: 24px;
background: no-repeat url(https://lateralpayments.com/checkout/Content/images/credit-card.svg);
}

/*This selector points division between Expiry Date and CVC*/
div.latpay-flex {
display: flex;
justify-content: space-between;
padding-bottom: 5%;
}

/*This selector points division width Expiry Date and CVC*/
div#latpay-exp-element, div#latpay-cvc-element {
width: 50%;
}



/*This selector points error-list section */
li.latpay-error-list {
color: #b81c23;
font-weight: bold !important;
}

@media (max-width: 520px) and (min-width: 300px) {
div.payment_box {
padding: 0px !important;
}

div.latpay-elements-field > input {
font-size: 15px !important;
}
//applepaybutton
#latpay-applepayButtonId {
        width: 90% !important;
        min-width: 90% !important;
        height: 50px;
        }
//googlepay button        
#latpay-gp-element{
width:60%;
}
}

Once authentication is successful, the Latpay Card Element would be embedded in the merchant page.

If the customer selects the Wallet option (either Gpay or ApplePay), then the transaction flow will complete based on the wallet popup and customer completing the necessary authentication.

When the customer selects the card option and fills in the card detail, on clicking the Submit button on merchant side, should trigger the secure3dPayment() on latpay script, the function call specification as shown below.

After the payment is processed, either via Wallet or Card, the Latpay Script will then initiate a callback to a predefined function called OnPaymentCompleted(), which the merchant should implement for capturing the process status. To securely validate the final status of the payment, on the callback, merchant can then initiate a call to their server to initiate a server-to-server API call to Latpay AuthStatus check endpoint to get the final status of payment.

LatpayCheckout.secure3DPayment({
amount: 'transaction amount' ,
currency: 'transaction currency' ,
reference: 'transaction reference' ,
description: 'transaction description' ,
firstname: 'customer firstname' ,
lastname: 'customer lastname' ,
email: 'customer email' ,
transkey: transkey**,
is3dcheck:'Y'|'N' 
});

** Refer the “HPS secure3DPayment TransKey” construction details in Authentication section

The following Javascript code sample template shows an implementation for the event listener along with the Latpay script main function calls.

LatpayCheckout.open
({
merchantuserid: issued by latpay ,
publickey: issued by latpay,
currency: inputparameter,
amount: inputparameter,
reference: inputparameter,
description: inputparameter,
'status': function (status) {}
//merchant can write custom logic to get alerted
});

 $("#customButton").click(function (e) {

LatpayCheckout.secure3DPayment({
amount: 'transaction amount' ,
currency: 'transaction currency' ,
reference: 'transaction reference' ,
description: 'transaction description' ,
firstname: 'customer firstname' ,
lastname: 'customer lastname' ,
email: 'customer email' ,
transkey: 'e875a6785520c8e5b9e20bb99a6d71c251221bff2bebd44442dcddf8398aa708'(hashvalue),
is3dcheck:'Y'|'N'
});

LatpayCheckout.OnPaymentCompleted= (val) => {        
        var Url = 'https://lateralpayments.com/<<path>>/';
        var transkey = 'acbda47903d16b4a9e09d0089bef2091635a3735bdc3b50a7e6362b100c10481';
         
                var authrequest = {
                    'merchantid': $("#merchatnuserid").val(),
                    'amount': val.amount,
                    'currency': val.currency,
                    'reference': val.reference,
                    'transactionkey': transkey,
                };
                $.ajax({
                    type: 'POST',
                    url: Url + '/authorise/authstatuscheck',
                    dataType: "json",
                    async: false,
                    contentType: 'application/json; charset=utf-8',
                    data: JSON.stringify(authrequest),
                    success: function (data) {
                        var objs = JSON.stringify(data);
                        $("#paymentresponce").text(objs);
                    } });
                }})

Callback

Once the callback OnPaymentCompleted() is triggered, the following fields will be send to the callback from Latpay script.

Response

Response received from the OnPaymentCompleted Callback

Field Type Mandatory
responsekey string optional
amount money required
currency string required
reference string required
description string required
errorcode string required
errordesc string required

Clients can write custom logic to make a call to their backend and initiate a server to server API to Latpay Payment AuthStatus Check API to validate the payment, before displaying the results to customers.

**** PS. The above sample implementation shows the authstatuscheck being called from front end script, however, it is recommended to make this call from merchant server to added security.

Auth status check

Status Check API call offers the ability to query the status of transaction in realtime. This API can be used for querying of transaction status in case if no response back for the original authorisation request. It can also be used to verify transaction status as an additional check from server, if in case the authorisation was initiated from a client side application.

Request
Field Type Mandatory
merchantid string required
amount money required
currency string required
reference string required
transactionkey string required
lpstransid string optional
Example 1
{
    "merchantid":"test_hps",
    "amount":"0.10",
    "currency":"AUD",
    "reference":"3811b2a16309ba9f20d8e51ebce782b8a09962eb",
    "transactionkey":"acbda47903d16b4a9e09d0089bef2091635a3735bdc3b50a7e6362b100c10481",
    "lpstransid": 
}
Response

Response received to the Latpay Payment AuthStatus Check API endpoint

Field Type Mandatory
merchantid string required
amount string required
currency string required
reference string required
banktransaction_no string required
bankauth_no string required
authstatuscheckstatus string required
transactionstatus string optional
transactiondate string required
transid string required
statuscheckid string required
cardbin string required
cardlast4 string required
bankcode string required
bankmsg string required
cardtoken string required
status Status required
responsekey string optional

** Refer the “Authstatuscheck transactionKey” construction details in Authentication section

Example 1
{
    "merchantid":"test_hps",
     "responsekey":"6aaef2496fb25097b38d04b1150d1b9648c54f5b15fca3cbabc9325693f76a1fa94916ad45949c6783a4037"
    "reference": "lpstest123",
    "amount": "0.01",
    "currency": "AUD",
    "banktransaction_no": "7212223482886280404022",
    "bankauth_no": "276678",
    "transactiondate": "Jul 17 2024  2:19PM",
    "transid": "90673776",
    "statuscheckid": "527271",
    "cardbin": "481390",
    "cardlast4": "2598",
    "bankcode": "00",
    "bankmsg": "Approved",
    "cardtoken": "",
    "status": {
        "responsetype": "5",
        "statuscode": "0",
        "originalcode": "ACCEPT",
        "errorcode": "00",
        "errordesc": ""
    }
}
Hosted payment / Wallet

LPS Hosted Payment System (HPS) is a simple integration method suitable for all e-commerce merchants. It allows real-time transaction processing and at the same time can remove the problems involved in collecting and storing of cardholder details on merchant systems. The HPS is fully secure and linked to the LPS enterprise payment gateway which provides sophisticated fraud and risk assessment in addition to authorising the transaction. The HPS uses HTML redirect messages to pass information between merchant e-commerce site and LPS.

This method does not involve installation of any files at merchant site and hence is very simple to implement. We provide a 256-bit SSL interface for secure transmission of data over the internet. A secure reporting and administration system to provide real time information is also made available to the merchant. This document serves to explains the technical integration requirements and procedures. It is of a technical nature and should be read as such.

HPS WorkFlow

This integration method uses HTML forms to pass information to LPS payment gateway for payment processing. Merchants should create a purchase order form which describes the details of goods or service purchased by the customer.

1.When a shopper is ready to pay for their goods, the merchants website should submit the order details to our hosted payment page.

2.The shopper will then be taken to the LPS payment page to enter their payment details, such as credit/debit card details.

  1. Once the shopper confirms the purchase the HPS system sends a request to LPS enterprise payment gateway which forwards the shopper’s details to the Acquiring bank, and which in turn returns an authorised or declined response to LPS.

  2. HPS then displays the result to the shopper and sends them a confirmation email. The transaction status is then sent to merchant. If the merchant had opted for synchronous post back response, then HPS will call the merchant post back URL and post the response fields. The customer is then taken back to merchant site along with the response fields in another HTML redirect post session.



Transactional Security

At LPS, security of customer’s financial data is of very high importance and we constantly review the existing security threats mapped against business / transaction flow and introduce mechanisms to minimise the risk of exploitation.

Since the HPS system involves the customer being redirected from different domains using browser redirection capabilities, it is very important to make sure the details generated by the merchant as part of transaction checkout are the same when redirected to HPS. And that the details have not been intercepted and changed during transit (man in middle attack).

To prevent the risk of such interception, the LPS HPS system provides a strong security mechanism wherein the transaction details are one-way encrypted (hashed) along with a secret key (salt) which will be known only to the merchant & LPS. This will be provided by merchant at the time of setup of the account with LPS.

If at any time merchant feels that the secret key may have been compromised, then merchant should get in touch with LPS and provide a new secret key.

The encryption functionality works as follows:

a. Merchant should concatenate the following fields in the same order:

• currencydesc

• amount

• merchant_ref_number

• secret key

b. Merchant should generate SHA1 hash of the above concatenated field and post this value in “transactionkey” field along with other redirection parameters.

In the LPS HPS System, the transactionkey is validated by computing the hash value again and only if the posted key matches the key computed at our end (i.e. no data tampering during transit), the transaction is accepted for processing. If the hash doesn’t match, the transaction request is declined.

POST /url/path/
Request
POST /url/path/

The payload of Checkout request must contain details of the authentication, customer, order details. For a seamless experience for customer, all purchase details can be included as well. The request & response parameters table below summarises the field requirements for Checkout along with mandatory field indicators . For the full list of parameters, including what is and is not mandatory, refer our API Reference section.

Merchant Posted Fields To LPS HOSTED PAYMENT SYSTEM


Field Description Required/ Optional Data Type Len
merchant_User_Id Merchant’s user id provided by LPS Required varchar 50
merchantpwd Merchant’s PWD provided by LPS Required varchar 50
customer_firstname First name of the customer Required varchar 50
customer_lastname Last name of the customer Required varchar 50
customer_phone Telephone number of the customer Required varchar 50
customer_email Email address of the customer Required varchar 50
customer_ipaddress IP address of the customer Required varchar 50
bill_firstname First name of the card holder Required varchar 50
bill_lastname Last name of the card holder Required varchar 50
bill_address1 Bill address line1 Required varchar 100
bill_address2 Bill address line2 Optional varchar 100
bill_city Bill city Required varchar 50
bill_country Bill country Required See LPS Standard Codes
bill_state Bill state Optional See LPS Standard Codes
bill_zip Postal code for the billing the credit card Required varchar 50
dateregistered Date customer setup an account with your site Optional varchar 50
ship_to_address1 Delivery address line1 Optional varchar 50
ship_to_address2 Delivery address line2 Optional varchar 50
ship_to_city Delivery city Optional varchar 50
ship_to_country Delivery country Optional varchar 50
ship_to_phone Telephone number of shipping destination Optional varchar 50
ship_to_state State or province to which the ship the product Optional varchar 50
ship_to_zip Postal code to which the ship the product Optional varchar 50
ship_to_method Shipping method Optional varchar 50
merchant_ref_number Purchase order number Required varchar 50
Purchase_summary Summary details of the purchase details Required Varchar 1000
currencydesc Purchase Currency in 3-digit ISO format Required See LPS Standard Codes
amount Purchase Amount – 2 decimal places only Required Numeric
3dsecurecheck Flag to indicate whether 3d secure code check to be performed. Valid values Y, N. Default: N Optional varchar 1
scsscheck Flag to indicate if SCSS is required. Values: Y, N, D. Y: Yes; N: No; [default if not sent] D: Done, token posted with the request Optional varchar 1
motocheck Flag to indicate if transactions should be processed as MOTO. Valid values Y, N. Default: N Optional varchar 1
cardtoken Unique card token previously generated using LPS SCSS system Conditional (only if scsscheck is D) varchar 255
transactionkey Secure one way hash value for transactional security Required see “TRANSACTIONAL SECURITY” section above
theme_identifier Unique identifier issued by LPS for the custom theme you’d configured for the MID Optional Varchar 50
language Field indicating the language of the hosted payment page Optional See “Language Code” Section below
processurl URL on merchant website to which the result of the authorisation will be posted back. *should be sent as url encoded Optional Varchar 500
notifyurl URL on merchant server to which the transaction status should be notified as soon as transaction is completed. This is independent of customer redirection and happens server to server synchronously. *should be sent as url encoded Optional Varchar 500
cancelurl URL on merchant website to which the customer must be returned when customer opts out of the payment process (by clicking the cancel button). *should be sent as url encoded Optional Varchar 500
logoid Unique identifier issued by LPS for the custom Logo you’d configured for the MID Optional Varchar 50
displayname Website / client name to be displayed on payment form Optional Varchar 50
Response

The response to API indicates the status of transaction along with unique transaction and order id’s. In case of asynchronous payments where customer will be completing payments, the status will usually acknowledge as pending and final status notified on callback to URL sent on the notifyurl parameter.

Redirection

All Latpay API requests, on completion of authentication made in bank side, page will get redirected to the “processurl” fields URL which will be given in request api call

POSTED FIELDS FROM LPS HOSTED PAYMENT SYSTEM TO ECOMMERCE SYSTEM


Field Description Data Type
Merchant_User_Id Merchant’s user id provided by LPS varchar
Merchant_ref_number Purchase order number varchar
Lpsid Login id of merchant site for authentication Varchar
Lpspwd Password for LPS on Merchant site varchar
Transactionid Unique Identifier for the transaction generated by LPS Integer
Requestid Unique Identifier for the transaction generated by HPS Integer
bill_firstname First name of the card holder varchar
bill_lastname Last name of the card holder varchar
Purchase_summary Summary details of the purchase details varchar
currencydesc Currency Code in ISO 3-digit format See LPS Standard Codes
amount Purchase Amount – 2 decimal places only 2 decimal places
CardBin First six digits of the customer card integer
CardLast4 Last four digit of the customer card integer
CardType Card scheme of customer card Varchar
CardHolderName Card holder name as entered on payment page Varchar
CardIssuingCountry Card issuer country (2-digit ISO codes) See LPS Standard Codes
CardExpiry Card expiry as selected on payment page in the form of “MMYYYY” i.e., 012016 Varchar
merchant_ipaddress Posted Merchant server IP address Varchar
TransDateTime Date and time of transaction processed DateTime
CVN_Result CVN result code Integer
AVS_Result AVS result code Integer
Status Transaction status Refer to LPS Response codes
CardToken Unique card token generated for the card processed Varchar
Bank_Code Bank reason code Integer
Bank_Message Bank reason message Varchar
Object
Notification

All Latpay API requests, on completion, will also generate a callback to merchant server to indicate the status of transaction in addition to the response. The status of the transaction will be received in “notifyurl” which will be given in request api call

Posted fields from LPS Hosted Payment System to Ecommerce System


Field Description Data Type
Merchant_User_Id Merchant’s user id provided by LPS varchar
Merchant_ref_number Purchase order number varchar
Lpsid Login id of merchant site for authentication Varchar
Lpspwd Password for LPS on Merchant site varchar
Transactionid Unique Identifier for the transaction generated by LPS Integer
Requestid Unique Identifier for the transaction generated by HPS Integer
bill_firstname First name of the card holder varchar
bill_lastname Last name of the card holder varchar
Purchase_summary Summary details of the purchase details varchar
currencydesc Currency Code in ISO 3-digit format See LPS Standard Codes
amount Purchase Amount – 2 decimal places only 2 decimal places
CardBin First six digits of the customer card integer
CardLast4 Last four digit of the customer card integer
CardType Card scheme of customer card Varchar
CardHolderName Card holder name as entered on payment page Varchar
CardIssuingCountry Card issuer country (2-digit ISO codes) See LPS Standard Codes
CardExpiry Card expiry as selected on payment page in the form of “MMYYYY” i.e., 012016 Varchar
merchant_ipaddress Posted Merchant server IP address Varchar
TransDateTime Date and time of transaction processed DateTime
CVN_Result CVN result code Integer
AVS_Result AVS result code Integer
Status Transaction status Refer to LPS Response codes
CardToken Unique card token generated for the card processed Varchar
Bank_Code Bank reason code Integer
Bank_Message Bank reason message Varchar
Object

Latpay Paylink module is an extension of Latpay Unified Gateway, which provides the ability for merchant to generate a paylink targeting a customer using either email or mobile or both. This paylink can be presented in the form of QR code for the customer to make payment securely.

The paylink latches on to the secure features of Hosted Payment System which is a fully compliant L1 PCI certified system.

The paylink also has features to control the expiry of link so merchant has fine grained control over when the payment should be completed. There is also the option to notify merchant on completion of payment by customer, in the form of a callback to a URL as specified by merchant in the request.

POST /url/path/
POST /url/path/

The request & response parameters table below summarises the field requirements for paylink along with mandatory field indicators. For the full list of parameters, including what is and is not mandatory, refer our API Reference section.

API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
merchantkey** String Required
consumer Consumer Required
order Order Required
billing Billing Required
notifyurl string Required

** Refer the “merchantkey” construction details in Authentication section

Card Transaction
{
    "accountid": "test_pos",
    "storeid": "store1",
    "deviceid": "latapydssj5",
    "merchantkey": "394DE40765DE5C7CE579CBC29C066AE98ABB56C3E05DD2AC19603F54227ED9CA",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "reference": "lpstest123",
        "currency": "USD",
        "amount": "0.12",
        "purchasesummary": "Ecomm purchase list"
    },
    "billing": {
        "type": "paylink",
        "paylink": {
            "emailnotify": "Y",
            "mobilenotify": "N",
            "expireindays":"5"
        },
        "fees": {
            "processingfee": "0.25"
        }
    },
    "notifyurl": "https://www.notifyurl.aspx"
}

The response for paylink is provided with the paylinkurl, which will send in mail or phoneno based on paylink request Y or N. In case of asynchronous payments where customer will be completing payments, the status will usually acknowledge as pending and final status notified on callback to URL sent on the notifyurl parameter.




API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
transactionid numeric Required
responsekey** string Required
status Status Required
consumer Consumer Required
order Order Required
callback_params CallbackParams Optional
billing Billing Required

** Refer the “responsekey” details in Authentication section

Object
Application/json
{
    "accountid": "test_pos",
    "storeid": "store1",
    "deviceid": "latapydssj5",
    "transactionid": "365",
    "status": {
        "responsetype": "1",
        "statuscode": "2",
        "errorcode": "",
        "errordesc": ""
    },
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "reference": "lpstest123",
        "currency": "USD",
        "amount": "0.12",
        "purchasesummary": "Ecomm purchase list"
    },
    "billing": {
        "type": "paylink",
        "paylink": {
            "emailnotify": "Y",
            "mobilenotify": "N",
            "paylinkurl": "https://lateralpayments.com/checkout/checkout/Paylink?publickey=querygfdsazar&currency=AUD&amount=0.10&reference=JS_IPChecking23Oct2020 &description=JS_IPChecking23Oct2020&source=PayLink&transid=365&merchantid=test_hps"
        },
        "fees": {
            "processingfee": "0.25"
        }
    },
    "notifyurl": "https://www.notifyurl.aspx"
}
Notification

Once the payment is completed by the customer by making use of the paylink, the transaction status notification will be sent to the notification URL submitted along with the paylink original request.

The notification will contain the following fields and sample JSON response is shown for reference.




API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
transactionid numeric Required
responsekey** string Required
status Status Required
consumer Consumer Required
order Order Required
callback_params CallbackParams Optional
billing Billing Required

** Refer the “responsekey” details in Authentication section

Object
Application/json
{
    "accountid": "test_pos",
    "storeid": "store1",
    "deviceid": "latapydssj5",
    "transactionid": "365",
    "status": {
        "responsetype": "1",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": ""
    },
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "reference": "lpstest123",
        "currency": "USD",
        "amount": "0.12",
        "purchasesummary": "Ecomm purchase list"
    },
    "billing": {
        "type": "paylink",
        "paylink": {
            "emailnotify": "Y",
            "mobilenotify": "N",
            "paylinkurl": "https://lateralpayments.com/checkout/checkout/Paylink?publickey=querygfdsazar&currency=AUD&amount=0.10&reference=JS_IPChecking23Oct2020 &description=JS_IPChecking23Oct2020&source=PayLink&transid=365&merchantid=test_hps"
        },
        "fees": {
            "processingfee": "0.25"
        }
    },
    "notifyurl": "https://www.notifyurl.aspx"
}
Batch Authorisation

Latpay offers batch API to submit authorisation request in a batch. A batch can be upto 10k transactions. The process flow will be for each batch request, the API will validate the request and acknowledge receipt of batch with a batchid and status pending. Latpay enterprise Gateway will then sweep all pending batches and will notify the status of transactions in each batch in a callback notification.

Batch Submission

Request

Fields Type Mandatory
merchant_User_Id string Required
merchantpwd string Required
batchreference string Required
transaction[] Transaction Required
notifyurl string Optional
batch autorisation
{
    "batchauthorisation": {
        "merchant_User_Id": "test_user",
        "merchantpwd": "v!@qst",
        "batchreference": "test01",
        "transaction": [
            {
                "consumer": {  
                    "firstname": "Thirlok",
                    "lastname": "Shankar",
                    "phone": "1234567890",
                    "email": "email@domain.com"
                },
                "billing": {
                    "type": "card",
                    "card": {
                        "name": "name on card",
                        "pan": "4200000000000000",
                        "exp": "12/25",
                        "cvc": "123"
                    },
                    "address": {
                        "line1": "Southbank House",
                        "line2": "",
                        "city": "London",
                        "state": "",
                        "country": "GB",
                        "zipcode": "SE1"
                    }
                },
                "order": {
                    "reference": "lpstest123",
                    "currency": "GBP",
                    "amount": "2.00"
                }
            },
            {
                "consumer": {
                    "firstname": "Ian",
                    "lastname": "Vidamour",
                    "phone": "1234567890",
                    "email": "email@domain.com"
                },
                "billing": {
                    "type": "card",
                    "card": {
                        "name": "name on card",
                        "pan": "4200000000000002",
                        "exp": "12/25",
                        "cvc": "345"
                    },
                    "address": {
                        "line1": "Southbank House",
                        "line2": "",
                        "city": "London",
                        "state": "",
                        "country": "GB",
                        "zipcode": "SE1"
                    }
                },
                "order": {
                    "reference": "lpstest456",
                    "currency": "GBP",
                    "amount": "5.00"
                }
            }
        ],        "notifyurl": "https://www.notifyurl.aspx"
    }
}
Acknowledgement

Response

Field type response
batchid string required
batchcount numeric required
status Status required
Failure
Success
Error

Prescreen Failure

{
"response":
   {
     "batchid" : "123456",
     "batchcount": "10000",
     "status": 
      {
         "responsetype": "0",
         "statuscode": "1",
         "errorcode": "1001",
         "errordesc": "Authentication failed"
      }
    }
}

Batch Accepted

{
"response":
   {
    "batchid" : "123456",
    "batchcount": "10000",
    "status": 
      {
         "responsetype": "8",
         "statuscode": "2",
         "errorcode": "00",
         "errordesc": "Batch accepted for processing"
      }
 
    }
}

System Error

{
"response":
   {
     "batchid" : "123456",
     "batchcount": "10000",
     "status": 
      {
         "responsetype": "8",
         "statuscode": "1",
         "errorcode": "9000",
         "errordesc": "System Error"
      }
    }
}
Notification

Response

Field Type Mandatory
batchid string Required
batchcount numeric Required
batchreference string Required
transaction[] Transaction Required
Notification
{
 "batchauthorisation":
    {
      "batchid" : "123456",
      "batchcount": "10000",
      "batchreference": "ref123",
      "status": 
                {
                "responsetype": "4",
                "statuscode": "0",
                "errorcode": "00",
                "errordesc": "Batch processing completed"
                 }
      "transaction":[
           {
           "transactionid": "74580250",
           "consumer": 
                {
                "firstname": "Thirlok",
                "lastname": "Shankar",
                "phone": "1234567890",
                "email": "email@domain.com"
                },
           "billing":
                {
                "type": "card",
                "card":
                    {
                    "name": "name on card",
                    "pan": "420000XXXXXX0000",
                    "exp": "12/25",
                    "cvc": "XXX"
                    },
                 "address" : 
                   {
                    "line1" : "Southbank House",
                    "line2" : "",
                    "city" : "London",
                    "state" : "",
                    "country" : "GB",
                    "zipcode" : "SE1",
                    }
                },
           "order":
                {
                "reference": "lpstest123",
                "currency": "USD",
                "amount": "2.00"
                },
           "status": 
                {
                "responsetype": "1",
                "statuscode": "0",
                "errorcode": "00",
                "errordesc": "Transaction approved"
                 }
 
            },
        "transaction":
            {
               "transactionid": "74580251",
               "consumer": 
                  {
                   "firstname": "Ian",
                   "lastname": "Vidamour",
                   "phone": "1234567890",
                   "email": "email@domain.com"
                  },
               "billing":
                 {
                  "type": "card",
                  "card":
                      {
                       "name": "name on card",
                       "pan": "420000XXXXXX0002",
                       "exp": "12/25",
                       "cvc": "XXX"
                      },
                  "address" : 
                     {
                       "line1" : "Southbank House",
                       "line2" : "",
                       "city" : "London",
                       "state" : "",
                       "country" : "GB",
                       "zipcode" : "SE1",
                      }
                  },
               "order":
                   {
                     "reference": "lpstest456",
                     "currency": "USD",
                     "amount": "5.00"
                   },
               "status": 
                   {
                     "responsetype": "1",
                     "statuscode": "1",
                     "errorcode": "05",
                     "errordesc": "Do not honor"
                    }
                }
            ]
 
    }
  }
Batch Status Check
Request
Field Type Mandatory
merchant_User_Id string Required
merchantpwd string Required
batchreference string Required
batchcount numeric Required
batchid string Optional
Request
{
"batchauthorisation":
     {
        "merchant_User_Id": "test_user",
        "merchantpwd": "v!@qst",
        "batchreference": "test01",
        "batchcount": "10000",
        "batchid": "12345"
     }
}
Response
Field Type Mandatory
merchant_User_Id string Required
merchantpwd string Required
batchreference string Required
batchcount numeric Required
batchid string Optional
transaction[] Transaction Required
Failure
Success
Pending / Inprogress
Error

Prescreen Failure

{
"batchauthorisation":
     {
         "batchid" : "",
         "batchcount": "10000",
         "batchreference": "test01",
         "status": 
	     {
	       "responsetype": "0",
	       "statuscode": "1",
	       "errorcode": "2001",
	       "errordesc": "Invalid Batch Details"
	      }
    }
}

Batch Accepted

{
"batchauthorisation":
     {
         "batchid" : "123456",
         "batchcount": "10000",
         "batchreference": "test01",
         "status": 
              {
                "responsetype": "6",
                "statuscode": "0",
                "errorcode": "00",
                "errordesc": "Batch processing completed"
                }
         "transaction":[
              {
                "transactionid": "74580250",
                "consumer": 
                 {
                   "firstname": "Thirlok",
                   "lastname": "Shankar",
                   "phone": "1234567890",
                   "email": "email@domain.com"
                  },
                "billing":
                   {
                    "type": "card",
                    "card":
                        {
                          "name": "name on card",
                          "pan": "420000XXXXXX0000",
                          "exp": "12/25",
                          "cvc": "XXX"
                        },
                    "address" : 
                        {
                          "line1" : "Southbank House",
                          "line2" : "",
                          "city" : "London",
                          "state" : "",
                          "country" : "GB",
                          "zipcode" : "SE1",
                        }
                    },
                "order":
                   {
                      "reference": "lpstest123",
                      "currency": "USD",
                      "amount": "2.00"
                   },
                "status": 
                   {
                       "responsetype": "1",
                       "statuscode": "0",
                       "errorcode": "00",
                       "errordesc": "Transaction approved"
                    }
               },
              
               {
                "transactionid": "74580251",
                "consumer": 
                   {
                   "firstname": "Ian",
                   "lastname": "Vidamour",
                   "phone": "1234567890",
                   "email": "email@domain.com"
                   },
               "billing":
                 {
                   "type": "card",
                   "card":
                      {
                       "name": "name on card",
                       "pan": "420000XXXXXX0002",
                       "exp": "12/25",
                       "cvc": "XXX"
                       },
                   "address" : 
                     {
                      "line1" : "Southbank House",
                      "line2" : "",
                      "city" : "London",
                      "state" : "",
                      "country" : "GB",
                      "zipcode" : "SE1",
                     }
                 },
               "order":
                  {
                    "reference": "lpstest456",
                    "currency": "USD",
                    "amount": "5.00"
                   },
               "status": 
                  {
                    "responsetype": "1",
                    "statuscode": "1",
                    "errorcode": "05",
                    "errordesc": "Do not honor"
                   }
                }
            ]
 
     }
}
 

Batch Pending / Inprogress

{
"batchauthorisation":
	 {
	     "batchid" : "123456",
	     "batchcount": "10000",
	     "batchreference": "test01",
		 "status": 
		       {
		           "responsetype": "6",
		           "statuscode": "2",
		           "errorcode": "2003",
		           "errordesc": "Batch still in pending / Inprogress"
		         }
	   }
	}

System Error

{
	"batchauthorisation":
	     {
	         "batchid" : "123456",
	         "batchcount": "10000",
	         "batchreference": "test01",
		     "status": 
		                   {
		                       "responsetype": "6",
		                       "statuscode": "1",
		                       "errorcode": "9000",
		                       "errordesc": "System Error"
		                    }
	      }
	}
Reports
POST /url/path/
Request
POST /url/path/
API Type Mandatory
accountid string Required
authkey** string Required
startdate string Required
enddate string Required
Example 1
{"accountid": "test_pos",
"authkey": "86e1ebc503b668e548f966d900e9bfe76f16b0b90bc36c6213f4cd5abe71d049bd347e606a258bce71127363f99256e587a27b1199cc041693235ecf5f279dbc",
"startdate": "01/01/2022",
"enddate": "11/01/2022"
}
Response
API Type Mandatory
accountid string Required
responsekey string Required
status Status Required
transaction[] Transaction Required
Object
Example 1
{
    "accountid": "test_pos",
    "responsekey": "E56F2CF3C6B605F0796FC81CCFE0DF7A7F593BF2C1CD63461FC7B3CB31DF956208ED50D1A5C31A93BB165C8FCF21B27EA2B50B93C0C3BB2D0BD00DBD33D9B359",
    "status": {
        "responsetype": "10",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": ""
    },
    "transactions": [
        {
            "transactionid": "289357",
            "amount": "0.02",
            "currency": "AUD",
            "transtype": "1",
            "reference": "lpstest123",
            "transactiondate": "10/01/2022 13:19",
            "pan": "420000XXXXXX0000",
            "status": {
                "responsetype": "1",
                "statuscode": "0",
                "errorcode": "",
                "errordesc": ""
            }
        },
        {
            "transactionid": "289349",
            "amount": "0.02",
            "currency": "AUD",
            "transtype": "1",
            "reference": "lpstest123",
            "transactiondate": "10/01/2022 13:11",
            "pan": "420000XXXXXX0000",
            "status": {
                "responsetype": "1",
                "statuscode": "0",
                "errorcode": "",
                "errordesc": ""
            }
        },
        {
            "transactionid": "289337",
            "amount": "0.02",
            "currency": "AUD",
            "transtype": "1",
            "reference": "lpstest123",
            "transactiondate": "10/01/2022 12:58",
            "pan": "420000XXXXXX0000",
            "status": {
                "responsetype": "1",
                "statuscode": "0",
                "errorcode": "",
                "errordesc": ""
            }
        },       
       
        {
            "transactionid": "288522",
            "amount": "0.02",
            "currency": "AUD",
            "transtype": "1",
            "reference": "lpstest123",
            "transactiondate": "10/01/2022 06:30",
            "pan": "420000XXXXXX0000",
            "status": {
                "responsetype": "1",
                "statuscode": "0",
                "errorcode": "",
                "errordesc": ""
            }
        },
        {
            "transactionid": "288487",
            "amount": "0.02",
            "currency": "AUD",
            "transtype": "1",
            "reference": "lpstest123",
            "transactiondate": "10/01/2022 06:14",
            "pan": "420000XXXXXX0000",
            "status": {
                "responsetype": "1",
                "statuscode": "0",
                "errorcode": "",
                "errordesc": ""
            }
        },
        
        {
            "transactionid": "288363",
            "amount": "0.02",
            "currency": "AUD",
            "transtype": "1",
            "reference": "lpstest123",
            "transactiondate": "10/01/2022 05:17",
            "pan": "420000XXXXXX0000",
            "status": {
                "responsetype": "1",
                "statuscode": "0",
                "errorcode": "",
                "errordesc": ""
            }
        }
    ]
}
SCA / 3dsecure

SCA - Strong Customer Authentication Strong Customer Authentication (SCA) is a new requirement of the second Payment Services Directive (PSD2), which aims to add extra layers of security to electronic payments. The requirement ensures that electronic payments are performed with multi-factor authentication, to increase the security of electronic payments.

EMV 3D Secure, often referred to as 3DS 2.x, is the authentication protocol provided by the card networks to support SCA. To comply with SCA, merchants must deploy 3DS 2.x to their checkout page or use a compliant hosted checkout.

Latpay unified GW is compatible with 3DS 2.x and merchants can integrate into the 3dsecure flow by extending their existing integration with Latpay.

3dsecure flow:

The merchant will make the usual CNP transaction to Latpay Unified GW. In addition to the existing parameters, merchant will also flag 3dcheck as Y. This will initiate the 3dS flow for the transaction.

As part of initial response to merchant request, a 3d payer authentication response which includes payer authentication request, VBV URL to where the customer must be redirected, will be returned back.

The merchant must extract the response and then make a browser redirection to the VBV URL returned on the first request. When redirecting, merchant must include parameters Pareq, TermURL and MD.

The Pareq value to be used as returned in first request. The TermURL is the URL to which customer will be returned back after completing the payer authentication. This will need to be to a URL as issued by Latpay.

The construction of MD parameter must follow the rules as explained in next sections. It encapsulates the gateway reference, merchant reference and a “back to merchant” URL identifier. Merchants, as part of 3dsecure setup will be expected to provide URL’s to where the customer will be redirected back from Latpay. Latpay will provide unique identifiers to each of the URL’s which merchant provides, which then can be used in the construction of MD parameter.

On receiving the customer back on the “back to merchant” URL, merchant will be required to make final AuthRequest call to Latpay API. When making this call, they’ll be expected to send the PaRes value which was returned as part of the customer returing back to merchant url.

The step - by - step flow is explained below:

<<dig>>

  1. At the point of checkout, the cardholder selects an appropriate payment method based on the initiatives supported by the Merchant.

  2. Based on the payment information the Merchant passes a lookup message to LPS. This message contains all the required information provided by the cardholder to check the enrolment of the cardholder.

  3. Based on the card number range (pulled from the Directory Server daily), a Verify Enrolment request message will be sent to the Enrolment Directory server.

  4. The Enrolment Directory will send the a Verify Enrolment Request to the card holder issuing bank ACS Server where it will verify the enrolment status of the issuing bank.

  5. The Verify Enrolment Response is then passed back to the Directory Server with the corresponding ACS URL, if applicable.

  6. The information is then passed back to LPS where it is verified, and the Payment Authentication Request is created.

  7. The Lookup response is returned to the merchant with the Payer Authentication Request [PAReq].

  8. Based on the existence of the ACS URL in the Lookup response, the Merchant will redirect the card holder browser to the corresponding ACS Server.

  9. The ACS URL will gather the customer profile details including browser capabilities and determine if the transaction can proceed as “frictionless” (i.e. No additional authentication needed) or if a “challenge” (additional authentication is necessary). If deemed challenge, then prompt to enter additional authentication is shown for customer to enter.

  10. The ACS, in conjunction with the Card Issuer, authenticates the cardholder.

  11. The Payer Authentication Response [PARes] along with the customer is returned to the LPS gateway, via the web browser.

  12. The Payer Authentication Response is then forwarded to the merchant to the backtomerchant url requested in the original redirection (step 8)

  13. The merchant initiates the authenticate message, which is sent to the LPS gateway for processing.

  14. LPS 3D secure system validates the Payer Authentication Response, and along with the rest of the transaction information, sends out the authorization to the payment network.

LPS 3D Secure Integration Flow
POST /url/path/
Overview

The merchant’s server makes a request for authorisation passing all the mandatory fields and relevant optional fields through a synchronous secure HTTP POST as per table given in Schedule 2A. LPS Gateway will initiate the 3d2 request for the transaction and respond back with the Payment Authentication Request & VBV URL to which merchant must redirect the customer.

POST /url/path/
Request
POST /url/path/

The payload of Checkout request must contain details of the authentication, customer, order details. For a seamless experience for customer, all purchase details can be included as well. The request & response parameters table below summarises the field requirements for Checkout along with mandatory field indicators . For the full list of parameters, including what is and is not mandatory, refer our API Reference section.

Checkout Request

Checkout URL Parameters

API Type Mandatory
accountid string Required
authkey** String Required
consumer Consumer Required
order Order Required
callback_params Callback param Optional
billing Billing Required
3drequest _3drequest Required

** Refer the “authkey” construction details in Authentication section

Card Transaction
{
        "accountid": "test_pos_3d",        
        "authkey": "1af0e9eb2fe5feef32cb6249e21d24c0979bf09a897bd6d222be7cb22ccd646337b865d056efec8e6ca42e9fbaea279706c5d2fb3ee8cc2e43d3a88a539f7087",
        "consumer": 
        {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234512345",
        "email": "thirlok@lpsmail.com"
        },
        "order":
        {
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "0.02",
        "purchasesummary": "Ecomm purchase list"
        },
    "callback_params":
       {
       "param1": "value1",
       "param2": "value2",
       "param3": "value3",
       "param4": "value4",
       "param5": "value5"
       },  
     "_3drequest":
       {
       "_3dcheck": "y"
         },
        "billing":
        {
        "type": "card",
        "card":
        {
        "name": "thirlok",
         "pan": "420000XXXXXX0000",
         "exp": "12/25",
         "cvc": "123"        
        } ,
        "address": 
        {
        "line1": "Southbank House",
        "line2": "",
        "city": "London",
        "state": "",
        "country": "GB",
        "zipcode": "SE1"
        },
        "fees":
        {
        "processingfee": "0.0" 
        }
        }
        }

Response

The response to checkout API indicates the status of transaction along with unique transaction and order id’s.


Checkout Response/2C



Checkout URL Parameters

API Type Mandatory
accountid string Required
transactionid numeric Required
customerid numeric Required
responsekey** string Required
transactiondate_utc String Required
status Status Required
consumer Consumer Required
order Order Required
callback_params CallbackParams Optional
billing Billing Required

** Refer the “responsekey” details in Authentication section

Object
Application/json
{
    "accountid": "test_pos_3d",
    "transactionid": "1905816",
    "responsekey": "1AF0E9EB2FE5FEEF32CB6249E21D24C0979BF09A897BD6D222BE7CB22CCD646337B865D056EFEC8E6CA42E9FBAEA279706C5D2FB3EE8CC2E43D3A88A539F7087",
    "customerid": "106",
    "transactiondate_utc": "19/01/2023 08:18:00",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234512345",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": "1905802",
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "0.02",
        "purchasesummary": "Ecomm purchase list"
    },
    "callback_params": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3",
        "param4": "value4",
        "param5": "value5"
    },
    "billing": {
        "type": "card",
        "authresponse": {
            "banktransactionno": "",
            "authcode": "",
            "gatewayreference": "82631581"
        },
        "_3dresponse": {
            "isenrolled": "y",
            "enrollmentdata": {
                "VBV_URL": "https://l4p2s7p2r4o3c9e3ss.com/testing/3dsecurity/GP3dMPIAuthUrlRedirect.aspx",
                "PAReq": "YWNjZXNzVG9rZW49ZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5LmV5SnFkR2tpT2lJd05UTmtOall5TkMwd01HVXpMVFEyTXpVdE9UUXhNaTFpTlRVeE56VXpNMlk1TVRFaUxDSnBZWFFpT2pFMk56UXhNVFl6TVRBc0ltbHpjeUk2SWpWa1pEZ3pZbVl3TUdVME1qTmtNVFE1T0dSalltRmpZU0lzSW1WNGNDSTZNVFkzTkRFeE9Ua3hNQ3dpVDNKblZXNXBkRWxrSWpvaU5XWTJOMlZrTkRFMVlXUXpaRGMxTmpkbE5HWXdaR0ZqSWl3aVVtVm1aWEpsYm1ObFNXUWlPaUptT0RJeE9UVm1OeTAxTUdGaExUUTJPRGd0T1dFd1pDMHdNalF3WkRsaVpUTTNNR0VpZlEudVUySnl0Tk9VVUJEa3lYbFNzZlFvUW92Z1gtcHRpY0YxNVNxMld6dndoRSZDb2xsZWN0aW9uVVJMPWh0dHBzOi8vY2VudGluZWxhcGlzdGFnLmNhcmRpbmFsY29tbWVyY2UuY29tL1YxL0NydWlzZS9Db2xsZWN0JnJlZmVyZW5jZUlEPWY4MjE5NWY3LTUwYWEtNDY4OC05YTBkLTAyNDBkOWJlMzcwYSZUcmFuc2FjdGlvbmlkPTgyNjMxNTgx",
                "gatewayreference ": "82631581"
            }
        }
    },
    "status": {
        "responsetype": "2",
        "statuscode": "2",
        "errorcode": "5012",
        "errordesc": "3d2 initiated"
    }
}
Redirecting customer

LPS Payment Gateway will return the information as per table given in Schedule 2C.

_3dresponse

Name Type Length
isenrolled string 1
enrollmentdata enrollmentdata

enrollmentdata

Name Type Length
VBV_URL string 200
PAReq string 200
gatewayreference string 50

The merchant will be required to handle the response, check the presence of URL, and then redirect the customer to the URL returned along with Payment Authentication Request (PAReq) returned. When merchant redirects the customer to their issuing bank 3D SECURE page they will also be required to attach the “TARGET” page to which the customers will be redirected after successful 3D SECURE authentication with their issuing bank as a hidden field parameter. The merchant should also attach as hidden field parameters their system reference number and LPS Transaction Id for retrieval of the transaction at LPS Payment Gateway after 3D SECURE authentication.

The fields that needs to be sent along with the redirection to 3D SECURE URL is given in Table 2D.

<<Table 2D>>

Name Type Length
PaReq string 200
TermUrl string 200
MD string 200

**Note that all the fields are mandatory and must be send as hidden variables.

Pareq

3D SECURE Provider Payment Authentication Request returned in 2C.

TermUrl

The “target” page on LPS payment gateway to which the customer is redirected after 3D SECURE authentication

MD

Merchant Details. The following post variables must be concatenated together:
a. gatewayreference (LPS Transaction Id)
b. Merchant_ref_number (Merchant Ref Number)
c. BackToMerchantURL (urlidentifiervalue)

**Sample MD param will be like:

gatewayreference=760371&Merchant_ref_number=yoursystemref&BackToMerchantURL=grp327_JRSI

Below script for redirection


<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>

function post(path, params, method='post') { 

  // The rest of this code assumes you are not using a library.
  // It can be made less verbose if you use one.
  const form = document.createElement('form');
  form.method = method;
  form.action = path; 

  for (const key in params) {
    if (params.hasOwnProperty(key)) {
      const hiddenField = document.createElement('input');
      hiddenField.type = 'hidden';
      hiddenField.name = key;
      hiddenField.value = params[key]; 

      form.appendChild(hiddenField);
    }
  } 

  document.body.appendChild(form);
  form.submit();
} 
<!-- //function post(path, parameters) {

    var form = $('<form></form>');
document.write("form form");
    form.attr("method", "post");
    form.attr("action", path); 

    $.each(parameters, function(key, value) {
        var field = $('<input></input>'); 

        field.attr("type", "hidden");
        field.attr("name", key);
        field.attr("value", value); 

        form.append(field);
    }); 

    // The form needs to be a part of the document in
    // order for us to be able to submit it.
    $(document.body).append(form);
    form.submit();
//} -->
</script>
3D Secure Authentication Response

When the customer is redirected to a URL on LPS Gateway after 3D SECURE authentication, it will match the transaction Id passed with the existing pending transaction. The status of the transaction will be updated to “3D SECURE Response Returned” and the 3D SECURE response will then be transferred back to a merchant’s URL which will return the customer back to the merchant site along with the details given in Table 2E.

<<Table 2E>>

Name Type Length
LPS_transaction_id string 100
Merchant_ref_number string 100
Lpsid string 100
Lpspwd string 100
PARes string 200

LPS_transaction_id—Unique Identifier for the transaction generated by LPS

Merchant_ref_number—Merchant reference number generated for the order

Lpsid—LPS Response Authentication User Id

Lpspwd—LPS Response Authentication User Password

PARes—3D SECURE Authentication Response

The merchant should extract the 3D SECURE response and update the status of the transaction as 3D SECURE Response received. Note at this stage neither LPS nor the merchant know if the 3D SECURE authentication is successful. They will then open synchronous connection back to LPS payment gateway with the transaction details as shown in next step Table 2F.

Acquirer Authentication

LPS Payment gateway on receiving the payment request as per table 2F will send the 3D SECURE authentication response back to the 3D SECURE provider to validate if the 3D SECURE authentication was successful.

<<Table 2F>>

Name Type Length
accountid string 100
authkey string 100
reference string 100
pares string 200
gatewayreference string 100

If successful, then it will be passed to the acquirer along with 3D SECURE authentication response. After the transaction is authorized / rejected, the response will be sent back to the merchant on the same synchronous connection along with the details specified in Table 2B with ResponseType = 1. If the 3D SECURE authentication has failed, LPS will return the transaction back to the Merchant as 3D SECURE failed transaction with the details specified in Table 2B with ResponseType = 0.

Request
POST /url/path/

The payload of Checkout request must contain details of the authentication, customer, order details. For a seamless experience for customer, all purchase details can be included as well. The request & response parameters table below summarises the field requirements for Checkout along with mandatory field indicators . For the full list of parameters, including what is and is not mandatory, refer our API Reference section.

Checkout Request

Auth Request Parameters

API Type Mandatory
accountid string Required
authkey** String Required
reference string Required
pares String Required
gatewayreference String Required

** Refer the “authkey” construction details in Authentication section(3dsecureauth Request)

Card Transaction
{
    "accountid": "test_pos_3d",
    "authkey": "fef49a78727aacbdcc0934b58eb02014c0eda9aa7030f5a99ef8ce6dd87e98a6",   
"reference": "lpstest123",
"pares": "eNpdUdtuwjAMfc9XID6gCWWTBvIsMZgmhjYhLtNeo8aCSLSFJJ1gXz8n5bItD/Hx8bGd2LDaOqLJkorGEcIbea831LHmsdv/Hs1ePtbGv5pTPvNm65XqIsxHC/JJUPpNVmhnbKV3GTlXOw5eci###j1PBuMLzn/yZegA86NB7XIM###eci###IC8S06YIOCJbvcW0IBw8gr45I/ISCtjscX###eci###a6PPlAZfYcx9uKzwqu2FaTaSMYB5OWx###eci###jPUn8ACROewQ==",
 
   "gatewayreference ": "82631581"   
}


Response

The response to checkout API indicates the status of transaction along with unique transaction and order id’s.


Checkout Response



Checkout URL Parameters

API Type Mandatory
accountid string Required
transactionid numeric Required
customerid numeric Required
responsekey** string Required
transactiondate_utc String Required
status Status Required
consumer Consumer Required
order Order Required
callback_params CallbackParams Optional
billing Billing Required

** Refer the “responsekey” details in Authentication section(3dsecureauth Response)

Object
Application/json
{
    "accountid": " test_pos_3d",
    "transactionid": "6743",
    "responsekey": "A263DC2AA1691570F1054A50E3C53E214323102CC856D578BC1B705D9E2FBF4B",
    "customerid": "106",
    "transactiondate_utc": "01/01/2023 05:17:00",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234512345",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": "6732",
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "0.02",
        "purchasesummary": "Ecomm purchase list"
    },
    "billing": {
        "type": "card",
        "card": {
            "name": "thirlok",
            "pan": "420000XXXXXX0000",
            "exp": "12/25",
            "token": "0x2a70aa24c86a53f06f057ecbf5acca7ebe383df4"
        },
        "authresponse": {
            "banktransactionno": "82631581",
            "authcode": "test",
            "gatewayreference": "82631581"
        }
    },
    "status": {
        "responsetype": "1",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": ""
    }
}

Bank Payments (AU only)

The Checkout API is part of a unified API request to process authorisations. To use direct debit / direct credit as payment mode, indicate the “billing” section with type set to “dd” or “dc” as shown the sample request.

POST /url/path/
Request
POST /url/path/

The payload of Checkout request must contain details of the authentication, customer, order details. For a seamless experience for customer, all purchase details can be included as well. For the full list of parameters, including what is and is not mandatory, refer our API Reference section.

Direct Entry Request

Direct Debit/Credit URL Parameters


API Type Mandatory
accountid string Required
authkey** string Required
consumer Consumer Required
order Order Required
callback_params CallbackParams Optional
billing Billing Required
notifyurl string Required

** Refer the “authkey” construction details in Authentication section

DD Request
DC Request
{
   "accountid": "test_pos",
   "authkey": "1996aff89fdf053644a3719c9eb4b638a23b2990932baa2760a5d311f709ecf86e9d048271c4a19534822a40d82a69d679cde7eaf56d9a72021ef8c639cc92c7",
   "consumer": 
{
       "firstname": "thirlok",
       "lastname": "shankar",
       "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
},
    "order":
{
         "reference": "lpstest123",
         "currency": "AUD",
          "amount": "0.12",
          "purchasesummary": "Ecomm purchase list",
          "purchasedetail": [
           {
             "productid": "1890",
             "productname": "Smart watch",
             "productsku": "shop_dept_item_12434",
             "productdescription": "Android Smart wear design # tyfg45667",
             "productcategory": "Electronics",
             "productURL": "http://lateralpaymentsolutions.com",
             "quantity": 2,
             "priceperunit": 0.5
           },
           {
             "productid": "1891",
             "productname": "Smart card",
             "productsku": "shop_dept_item_7895",
             "productdescription": "Kingston Smart SD Card # sd43545",
             "productcategory": "Electronics",
             "productURL": "http://lateralpaymentsolutions.com",
             "quantity": 1,
             "priceperunit": 0.2
            }
        ]
},
    "callback_params":
{
       "param1": "value1",
       "param2": "value2",
       "param3": "value3",
       "param4": "value4",
       "param5": "value5"
},
    "billing":
{
         "type": "dd",
         "directentry":
			{
				"accountnumber": "8766565465",
					"bsb": "123456",
				"accountname": "My account"
			},
	     "address":
	        {
                "line1": "Southbank House",
                "line2": "",
                "city": "London",
                "state": "",
                "country": "GB",
                "zipcode": "SE1"
             },
          "fees": 
             {
                 "processingfee": "0.25"
             }
},
  "notifyurl": "https://www.notifyurl.aspx"
}


{
   "accountid": "test_pos",
   "authkey": "1996aff89fdf053644a3719c9eb4b638a23b2990932baa2760a5d311f709ecf86e9d048271c4a19534822a40d82a69d679cde7eaf56d9a72021ef8c639cc92c7",
   "consumer": 
{
       "firstname": "thirlok",
       "lastname": "shankar",
       "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
},
    "order":
{
         "reference": "lpstest123",
         "currency": "AUD",
          "amount": "0.12",
          "purchasesummary": "Ecomm purchase list",
          "purchasedetail": [
           {
             "productid": "1890",
             "productname": "Smart watch",
             "productsku": "shop_dept_item_12434",
             "productdescription": "Android Smart wear design # tyfg45667",
             "productcategory": "Electronics",
             "productURL": "http://lateralpaymentsolutions.com",
             "quantity": 2,
             "priceperunit": 0.5
           },
           {
             "productid": "1891",
             "productname": "Smart card",
             "productsku": "shop_dept_item_7895",
             "productdescription": "Kingston Smart SD Card # sd43545",
             "productcategory": "Electronics",
             "productURL": "http://lateralpaymentsolutions.com",
             "quantity": 1,
             "priceperunit": 0.2
            }
        ]
},
    "callback_params":
{
       "param1": "value1",
       "param2": "value2",
       "param3": "value3",
       "param4": "value4",
       "param5": "value5"
},
    "billing":
{
         "type": "dc",
         "directentry":
			{
				"accountnumber": "8766565465",
					"bsb": "123456",
				"accountname": "My account"
			},
	     "address":
	        {
                "line1": "Southbank House",
                "line2": "",
                "city": "London",
                "state": "",
                "country": "GB",
                "zipcode": "SE1"
             },
          "fees": 
             {
                 "processingfee": "0.25"
             }
},
  "notifyurl": "https://www.notifyurl.aspx"
}

Response

The response to checkout API indicates the status of transaction along with unique transaction and order id’s. In case of asynchronous payments where customer will be completing payments, the status will usually acknowledge as pending and final status notified on callback to URL sent on the notifyurl parameter.

Direct Entry Response

Direct Debit/Credit URL Parameters


API Type Mandatory
accountid string Required
transactionid numeric Required
customerid string Required
responsekey string Required
consumer Consumer Required
order Order Required
callback_params CallbackParams Optional
billing Billing Required
status Status Required
Object
DD Response
DC Response
{
    "accountid": "test_pos",
    "transactionid": "2056442",
    "responsekey": "8C8FD7DC5965CF84BB3DFC272DAEEB627D23CD3BD2CA5B192DF739E57E0B76E21DDC3C3FB80940A7B435126483C1E7318DA7B17A301F08191B9895CC02F04580",
    "customerid": "2",
    "transactiondate_utc": "21/02/2023 10:15:00",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": "2056427",
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "0.12",
        "purchasesummary": "Ecomm purchase list",
        "purchasedetail": [
            {
                "productid": "1890",
                "productname": "Smart watch",
                "productsku": "shop_dept_item_12434",
                "productdescription": "Android Smart wear design # tyfg45667",
                "productcategory": "Electronics",
                "productURL": "http://lateralpaymentsolutions.com",
                "quantity": "2",
                "priceperunit": "0.5"
            },
            {
                "productid": "1891",
                "productname": "Smart card",
                "productsku": "shop_dept_item_7895",
                "productdescription": "Kingston Smart SD Card # sd43545",
                "productcategory": "Electronics",
                "productURL": "http://lateralpaymentsolutions.com",
                "quantity": "1",
                "priceperunit": "0.2"
            }
        ]
    },
    "callback_params": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3",
        "param4": "value4",
        "param5": "value5"
    },
    "billing": {
        "type": "dd",
        "directentry": {
            "bsb": "123456",
            "accountnumber": "8766565465",
            "accountname": "My account"
        },
        "fees": {
            "processingfee": "0.25"
        },
        "authresponse": {
            "banktransactionno": "",
            "authcode": "",
            "gatewayreference": "2585"
        }
    },
    "status": {
        "responsetype": "2",
        "statuscode": "2",
        "errorcode": "",
        "errordesc": ""
    },
    "notifyurl": "https://www.notifyurl.aspx"
}

{
    "accountid": "test_pos",
    "transactionid": "2056442",
    "responsekey": "8C8FD7DC5965CF84BB3DFC272DAEEB627D23CD3BD2CA5B192DF739E57E0B76E21DDC3C3FB80940A7B435126483C1E7318DA7B17A301F08191B9895CC02F04580",
    "customerid": "2",
    "transactiondate_utc": "21/02/2023 10:15:00",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": "2056427",
        "reference": "lpstest123mahe121",
        "currency": "AUD",
        "amount": "0.12",
        "purchasesummary": "Ecomm purchase list",
        "purchasedetail": [
            {
                "productid": "1890",
                "productname": "Smart watch",
                "productsku": "shop_dept_item_12434",
                "productdescription": "Android Smart wear design # tyfg45667",
                "productcategory": "Electronics",
                "productURL": "http://lateralpaymentsolutions.com",
                "quantity": "2",
                "priceperunit": "0.5"
            },
            {
                "productid": "1891",
                "productname": "Smart card",
                "productsku": "shop_dept_item_7895",
                "productdescription": "Kingston Smart SD Card # sd43545",
                "productcategory": "Electronics",
                "productURL": "http://lateralpaymentsolutions.com",
                "quantity": "1",
                "priceperunit": "0.2"
            }
        ]
    },
    "callback_params": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3",
        "param4": "value4",
        "param5": "value5"
    },
    "billing": {
        "type": "dc",
        "directentry": {
            "bsb": "123456",
            "accountnumber": "8766565465",
            "accountname": "My account"
        },
        "fees": {
            "processingfee": "0.25"
        },
        "authresponse": {
            "banktransactionno": "",
            "authcode": "",
            "gatewayreference": "2585"
        }
    },
    "status": {
        "responsetype": "2",
        "statuscode": "2",
        "errorcode": "",
        "errordesc": ""
    },
    "notifyurl": "https://www.notifyurl.aspx"
}
Process Notification
API Type Mandatory
accountid string Required
transactionid numeric Required
responsekey string Required
customerid string Required
transactiondate_utc string Required
consumer Consumer Required
order Order Required
billing Billing Required
status Status Required
Object
DD Notification
DC Notification
{
    "accountid":"test_lpsv2",
    "transactionid":"39678",
    "responsekey":"a746ff9621d67a6d1b8d7bb6174fea00",
    "customerid":"123",
    "transactiondate_utc":"07/04/2020 00:40:00",
    "consumer":
        {
          "firstname":"thirlok",
          "lastname":"shankar",
          "phone":"1234567890",
          "email":"thirlok@lpsmail.com"
            
        },
    "order":
        {
            "orderid":"345",
            "reference":"lpstest123",
            "currency":"AUD",
            "amount":"0.01",
            "purchasesummary":"Ecomm purchase list"
            
        },
    "billing":
        {
            "type":"dd",
            "directentry":
               {
                   "bsb":"650000",
                   "accountnumber":"111111",
                   "accountname":"My account"
                   
                },
            "authresponse":
               { 
                   "banktransactionno":"",
                   "authcode":"",
                   "gatewayreference":"123"
                   
               }
            
          },
        "status":
            {
                "responsetype":"4",
                "statuscode":"0",
                "errorcode":"",
                "errordesc":""
                
            }
    
}


{
    "accountid":"test_lpsv2",
    "transactionid":"39678",
    "responsekey":"a746ff9621d67a6d1b8d7bb6174fea00",
    "customerid":"123",
    "transactiondate_utc":"07/04/2020 00:40:00",
    "consumer":
        {
          "firstname":"thirlok",
          "lastname":"shankar",
          "phone":"1234567890",
          "email":"thirlok@lpsmail.com"
            
        },
    "order":
        {
            "orderid":"345",
            "reference":"lpstest123",
            "currency":"AUD",
            "amount":"0.01",
            "purchasesummary":"Ecomm purchase list"
            
        },
    "billing":
        {
            "type":"dc",
            "directentry":
               {
                   "bsb":"650000",
                   "accountnumber":"111111",
                   "accountname":"My account"
                   
                },
            "authresponse":
               { 
                   "banktransactionno":"",
                   "authcode":"",
                   "gatewayreference":"123"
                   
               }
            
          },
        "status":
            {
                "responsetype":"4",
                "statuscode":"0",
                "errorcode":"",
                "errordesc":""
                
            }
    
}
Returns
Return Notification
API Type Mandatory
accountid string Required
transactionid numeric Required
responsekey string Required
customerid string Required
transactiondate_utc string Required
consumer Consumer Required
order Order Required
billing Billing Required
status Status Required
Object
DD Returns
DC Returns
{
    "accountid":"test_lpsv2",
    "transactionid":"39678",
    "responsekey":"a746ff9621d67a6d1b8d7bb6174fea00",
    "customerid":"123",
    "transactiondate_utc":"07/04/2020 00:40:00",
    "consumer":
        {
            "firstname":"thirlok",
            "lastname":"shankar",
            "phone":"1234567890",
            "email":"thirlok@lpsmail.com"
            
        },
    "order":
       {
           "orderid":"345",
           "reference":"lpstest123",
           "currency":"AUD",
           "amount":"0.01",
           "purchasesummary":"Ecomm purchase list"
           
       },
    "billing":
        {
            "type":"dd",
            "directentry":
                 {
                     "bsb":"032053",
                     "accountnumber":"111114",
                     "accountname":"My account"
                     
                 },
            "authresponse":
                {
                    "banktransactionno":"",
                    "authcode":"",
                    "gatewayreference":"123"
                    
                }
            
        },
    "status":
       {
           "responsetype":"11",
           "statuscode":"1",
           "errorcode":"5056",
           "errordesc":"Refer to Customer"
           
        }
    
}


{
    "accountid":"test_lpsv2",
    "transactionid":"39678",
    "responsekey":"a746ff9621d67a6d1b8d7bb6174fea00",
    "customerid":"123",
    "transactiondate_utc":"07/04/2020 00:40:00",
    "consumer":
        {
            "firstname":"thirlok",
            "lastname":"shankar",
            "phone":"1234567890",
            "email":"thirlok@lpsmail.com"
            
        },
    "order":
       {
           "orderid":"345",
           "reference":"lpstest123",
           "currency":"AUD",
           "amount":"0.01",
           "purchasesummary":"Ecomm purchase list"
           
       },
    "billing":
        {
            "type":"dc",
            "directentry":
                 {
                     "bsb":"032053",
                     "accountnumber":"111114",
                     "accountname":"My account"
                     
                 },
            "authresponse":
                {
                    "banktransactionno":"",
                    "authcode":"",
                    "gatewayreference":"123"
                    
                }
            
        },
    "status":
       {
           "responsetype":"11",
           "statuscode":"1",
           "errorcode":"5056",
           "errordesc":"Refer to Customer"
           
        }
    
}
Status Check

Status Check API call offers the ability to query the status of transaction in realtime. This API can be used for querying of transaction status in case if no response back for the original authorisation request. It can also be used to verify transaction status as an additional check from server, if in case the authorisation was initiated from a client side application.

POST /url/path
Request
POST /url/path
Field Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
merchantkey** string Required
transactionid string Conditional
order Order Required
billing Billing Required

** Refer the “merchantkey” construction details in Authentication section

DD Request
DC Request
{
"accountid": "test_pos",
"storeid": "store1",
"deviceid": "latapydssj5",
"merchantkey": "127bb857ce2302012068afdb35f336d680de2d36ebf8c9f00d13b5a5542f8293",
"transactionid":"5800",
"order":
{
"reference": "HubTest123@25052020_12311",
"currency": "AUD",
"amount": "0.12",
"purchasesummary": "x"
},
"billing":
{
"type": "dd"
}
}
{
"accountid": "test_pos",
"storeid": "store1",
"deviceid": "latapydssj5",
"merchantkey": "127bb857ce2302012068afdb35f336d680de2d36ebf8c9f00d13b5a5542f8293",
"transactionid":"5800",
"order":
{
"reference": "HubTest123@25052020_12311",
"currency": "AUD",
"amount": "0.12",
"purchasesummary": "x"
},
"billing":
{
"type": "dc"
}
}
Response
Field Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
transactionid string Required
responsekey** string Required
customerid string Required
transactiondate_utc string Required
consumer Consumer Required
order Order Required
billing Billing Required
status Status Required
returnstatus Return Status Required

** Refer the “responsekey” details in Authentication section

Object
DD Success Response
DD Return Response
DC Success Response
DC Return Response
{
    "accountid": "test_pos",
    "storeid": "store1",
    "deviceid": "latapydssj5",
    "transactionid": "5800",
    "responsekey": "19518330367F2BD6B92025A528C6EDEFB7BF379943FAC12AD369694CAE29EC60",
    "customerid": "2",
    "transactiondate_utc": "25/05/2020 13:11",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": "5789",
        "reference": "HubTest123@25052020_12311",
        "currency": "AUD",
        "amount": "0.12",
        "purchasesummary": "x"
    },
    "billing": {
        "type": "dd",
        "directentry": {
            "bsb": "650-000",
            "accountnumber": "111XXXX111",
            "accountname": "Thirlok shankar"
        },
        "fees": {
            "processingfee": "0.25"
        },
        "authresponse": {
            "banktransactionno": "LATPAYDD0000000892",
            "authcode": "",
            "gatewayreference": "892"
        }
    },
    "status": 
    {
        "responsetype": "6",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": ""
      },
      "returnstatus": 
      {
        "returnid": "",
        "returncode": "",
        "returndate": "",
        "returnreference": ""
      }
}
{
    "accountid": "test_pos",
    "storeid": "store1",
    "deviceid": "latapydssj5",
    "transactionid": "5800",
    "responsekey": "19518330367F2BD6B92025A528C6EDEFB7BF379943FAC12AD369694CAE29EC60",
    "customerid": "2",
    "transactiondate_utc": "25/05/2020 13:11",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": "5789",
        "reference": "HubTest123@25052020_12311",
        "currency": "AUD",
        "amount": "0.12",
        "purchasesummary": "x"
    },
    "billing": {
        "type": "dd",
        "directentry": {
            "bsb": "650-000",
            "accountnumber": "111XXXX111",
            "accountname": "Thirlok shankar"
        },
        "fees": {
            "processingfee": "0.25"
        },
        "authresponse": {
            "banktransactionno": "LATPAYDD0000000892",
            "authcode": "",
            "gatewayreference": "892"
        }
    },
    "status": {
        "responsetype": "6",
        "statuscode": "1",
        "errorcode": "5055",
        "errordesc": "No acc/incorrect acc Number"
    },
    "returnstatus": {
        "returnid": "121",
        "returncode": "5055",
        "returndate": "27/05/2020 23:00",
        "returnreference": "LATPAYDD0000000892"
    }
}
{
    "accountid": "test_pos",
    "storeid": "store1",
    "deviceid": "latapydssj5",
    "transactionid": "5800",
    "responsekey": "19518330367F2BD6B92025A528C6EDEFB7BF379943FAC12AD369694CAE29EC60",
    "customerid": "2",
    "transactiondate_utc": "25/05/2020 13:11",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": "5789",
        "reference": "HubTest123@25052020_12311",
        "currency": "AUD",
        "amount": "0.12",
        "purchasesummary": "x"
    },
    "billing": {
        "type": "dc",
        "directentry": {
            "bsb": "650-000",
            "accountnumber": "111XXXX111",
            "accountname": "Thirlok shankar"
        },
        "fees": {
            "processingfee": "0.25"
        },
        "authresponse": {
            "banktransactionno": "LATPAYDD0000000892",
            "authcode": "",
            "gatewayreference": "892"
        }
    },
    "status": 
    {
        "responsetype": "6",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": ""
      },
      "returnstatus": 
      {
        "returnid": "",
        "returncode": "",
        "returndate": "",
        "returnreference": ""
      }
}
{
    "accountid": "test_pos",
    "storeid": "store1",
    "deviceid": "latapydssj5",
    "transactionid": "5800",
    "responsekey": "19518330367F2BD6B92025A528C6EDEFB7BF379943FAC12AD369694CAE29EC60",
    "customerid": "2",
    "transactiondate_utc": "25/05/2020 13:11",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": "5789",
        "reference": "HubTest123@25052020_12311",
        "currency": "AUD",
        "amount": "0.12",
        "purchasesummary": "x"
    },
    "billing": {
        "type": "dc",
        "directentry": {
            "bsb": "650-000",
            "accountnumber": "111XXXX111",
            "accountname": "Thirlok shankar"
        },
        "fees": {
            "processingfee": "0.25"
        },
        "authresponse": {
            "banktransactionno": "LATPAYDD0000000892",
            "authcode": "",
            "gatewayreference": "892"
        }
    },
    "status": {
        "responsetype": "6",
        "statuscode": "1",
        "errorcode": "5055",
        "errordesc": "No acc/incorrect acc Number"
    },
    "returnstatus": {
        "returnid": "121",
        "returncode": "5055",
        "returndate": "27/05/2020 23:00",
        "returnreference": "LATPAYDD0000000892"
    }
}
Alternate Payments

The Checkout API is part of a unified API request to process authorisations. To use alternate payments as payment mode, indicate the “billing” section with type set to “alt” and “the service code” as shown the sample request.

POST /url/path/
Request
POST /url/path/

The payload of Checkout request must contain details of the authentication, customer, order details. For a seamless experience for customer, all purchase details can be included as well. For the full list of parameters, including what is and is not mandatory, refer our API Reference section.

Alternate Payment Request

Alternate Payment URL Parameters

API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
merchantkey string Required
consumer Consumer Required
order Order Required
callback_params CallbackParams Optional
billing Billing Required
notifyurl string Required
Application/json
{
   "accountid": "test_lpsv2",
   "storeid":"ST1",
   "deviceid":" Ter1",
   "merchantkey":"a746ff9621d67a6d1b8d7bb6174fea00",
 } ,
   "consumer": 
{
       "firstname": "thirlok",
       "lastname": "shankar",
       "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
},
   "order":
{
         "orderid":"345",
          "reference": "lpstest123",
         "currency": "USD",
          "amount": "2",
          "purchasesummary": "Ecomm purchase list",
          "purchasedetail": [
           {
             "productid": "1890",
             "productname": "Smart watch",
             "productsku": "shop_dept_item_12434",
             "productdescription": "Android Smart wear design # tyfg45667",
             "productcategory": "Electronics",
             "productURL": "http://lateralpaymentsolutions.com",
             "quantity": "2",
             "priceperunit": "0.5"
            },
           {
             "productid": "1890",
             "productname": "Smart card",
             "productsku": "shop_dept_item_7895",
             "productdescription": "Kingston Smart SD Card # sd43545",
             "productcategory": "Electronics",
             "productURL": "http://lateralpaymentsolutions.com",
             "quantity": "2',
             "priceperunit": "0.5"
            }
       ]
},
    "callback_params":
{
       "param1": "value1",
       "param2": "value2",
       "param3": "value3",
       "param4": "value4",
       "param5": "value5"
},
    "billing":
{
         "type": "alt",
		  "servicecode": "Alipay"	 
},
  "notifyurl": "https://www.notifyurl.aspx"
}

Response

The response to checkout API indicates the status of transaction along with unique transaction and order id's. In case of asynchronous payments where customer will be completing payments, the status will usually acknowledge as pending and final status notified on callback to URL sent on the notifyurl parameter.

Alternate Payment Response

Alternate Payment URL Parameters


API Type Mandatory
accountid string Required
responsekey string Required
storeid string Required
deviceid string Required
consumer Consumer Required
order Order Required
callback_params CallbackParams Optional
billing Billing Required
status Status Required
notifyurl string Required
Object
Application/json
{
   "accountid": "test_lpsv2",
   "storeid":"ST1",
   "deviceid":" Ter1",
   "transactionid": "39678",
   "customerid":"123",
   "responsekey":"a746ff9621d67a6d1b8d7bb6174fea00",
   "status": 
      {
         "responsetype": "1",
         "statuscode": "2",
         "errorcode": "0",
         "errordesc": ""
      } ,
   "consumer": 
     {
       "firstname": "thirlok",
       "lastname": "shankar",
       "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
     },
   "order":
     {
         "orderid":"345",
          "reference": "lpstest123",
         "currency": "USD",
          "amount": "2",
          "purchasesummary": "Ecomm purchase list",
          "purchasedetail": [
           {
             "productid": "1890",
             "productname": "Smart watch",
             "productsku": "shop_dept_item_12434",
             "productdescription": "Android Smart wear design # tyfg45667",
             "productcategory": "Electronics",
             "productURL": "http://lateralpaymentsolutions.com",
             "quantity": "2",
             "priceperunit": "0.5"
           },
          {
             "productid": "1890",
             "productname": "Smart card",
             "productsku": "shop_dept_item_7895",
             "productdescription": "Kingston Smart SD Card # sd43545",
             "productcategory": "Electronics",
             "productURL": "http://lateralpaymentsolutions.com",
             "quantity": "2",
             "priceperunit": "0.5"
           }
        ]
      },
   "callback_params":
      {
       "param1": "value1",
       "param2": "value2",
       "param3": "value3",
       "param4": "value4",
       "param5": "value5"
      },
   "billing":
      {
       "type": "alt",
	   "servicecode": "Alipay"		 
      },
  "notifyurl": "https://www.notifyurl.aspx"
}

Service Code

Latpay API currently supports the following services:

Service Service Code
Alipay QR Alipay
Object
EMV(Card Present)
Latpay Terminals

The Latpay All-In-One Terminal device is currently compatible with Android and Windows operating systems and is supported by a tailored SDK to ensure your set up is as easy as possible. If you’re operating on an android device simply download the Latpay App and away you go.

SDK

To integrate the latpay terminals with your payment application, we offer SDK’s which provides interface for the payment operations with the terminals. Currently we offer SDK’s for Android, IOS, Windows & Linux. Please reach out to our sales team for more information if you need more information regarding these SDK’s.

API
POST /url/path/
Request
POST /url/path/

The payload of Checkout request must contain details of the authentication, customer, order details. For a seamless experience for customer, all purchase details can be included as well. The request & response parameters table below summarises the field requirements for Checkout along with mandatory field indicators . For the full list of parameters, including what is and is not mandatory, refer our API Reference section.

Checkout Request

Checkout URL Parameters

API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
merchantkey** String Required
consumer Consumer Required
order Order Required
billing Billing Required

** Refer the “merchantkey” construction details in Authentication section

EMV Transaction
{
  "accountid": "Provided by Latpay",
  "storeid": "Provided by Latpay",
  "deviceid": "Provided by Latpay",
  "merchantkey": "0c6e7b7554bfdff6b7cfabb17a75ccebe3cee3cf0e691354766b64711c8e8fe2",
  "consumer": {
    "firstname": "thirlok",
    "lastname": "shankar",
    "phone": "1234512345",
    "email": "thirlok@lpsmail.com"
  },
  "order": {
    "reference": "lpstest123",
    "currency": "AUD",
    "amount": "51.00",
    "purchasesummary": "Parking Charge",
  },
  "billing": {
    "type": "emv",
    "emv": {
      "payload": "9A032207089F21031848269F390107DF8116161B00000000656E000000000000000000000000000000DF81290830F0F000B0F0FF00DFEE2601C3DFEE76050000008001DFEF4C06002700000000B8302D51C1110B21E0BC847CCEDF0808C2846BE6E95E0977FF81058201169F0206005626974204D6173746572636172645AA1085166CCCCCCCC27585AC110F288C77044F426B0C8F846B303BDB3D55F3401019F120B49434943492044454249549F3602016F9F0702FFC09F090200028407A0000000041010FFF20830303030303030309F1101019F2701809F34031F03029F10120110A04001240000000000000000000000FF9F33036008089F1A0208409F3501249505000000800157A9a032207089f21031848269f390107df8116161b00000000656e000000000000000000000000000000df81290830f0f000b0f0ff00dfee2601c3dfee76050000008001dfef4c06002700000000ccedf0808c2846be6e95e0977ff81058201169f02060000000001009f03060000000000009f260830664ef3c89405f88c77044f426b0c8f846b303bdb3d55f3401019f120b49434943492044454249549f3602016f9f0702ffc09f090200028407a0000000041010fff20830303030303030309f1101019f2701809f34031f03029f10120110a04001240000000000000000000000ff9f33036008089f1a0208409f3501249505000000800157a1135166cccccccc2758d2803226cccccccccccccc57c120f893d091af5ea6da2dca4b7eb7ccdd7a2dcf1aff0555a3ecc7d2ef29d041ee7d9f5301005f2a0208409a032207089c01009f3704f2288086ff81062edf8115009f42020356df810b0100df810e0100df810f01009f6e07035600003230005323233"
    },
    "fees": {
      "processingfee": "0.00",
      "surcharge": "1.00"
    }
  }
}
Response

The response to checkout API indicates the status of transaction along with unique transaction and order id’s. In case of asynchronous payments where customer will be completing payments, the status will usually acknowledge as pending and final status notified on callback to URL sent on the notifyurl parameter.


Checkout Response



Checkout URL Parameters

API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
transactionid numeric Required
customerid numeric Required
responsekey** string Required
transactiondate_utc String Required
status Status Required
consumer Consumer Required
order Order Required
callback_params CallbackParams Optional
billing Billing Required
emvtags array(contents can vary) Optional
response_emvtags array(contents can vary) Optional

** Refer the “responsekey” details in Authentication section

Object
Application/json
{ 
    "accountid": "Provided by Latpay",
    "storeid": "Provided by Latpay",
    "deviceid": "Provided by Latpay",
    "transactionid": "1012177",
    "responsekey": "8870B6763FAEC9FD7C85BB6C42432BEB2DC3182ADEC9E02644BBB8F37970D68F",
    "customerid": "106",
    "transactiondate_utc": "14/07/2022 11:16:00",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234512345",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": "1012166",
        "reference": "lpstest123",
        "currency": "AUD",
         "amount": "51.00",
        "purchasesummary": "Ecomm purchase list"        
    },
    "billing": {
        "type": "emv",
        "card": {
            "name": "NA NA",
            "pan": "",
            "exp": "032028",
            "token": "0xe09f15ca5897a95bb5559d3e"
        },       
        "authresponse": {
            "banktransactionno": "*****",
            "authcode": "*****",
            "gatewayreference": "*****"
        },
        "fees": {
            "processingfee": "0.01",
            "surcharge": "1.00"
        }
    },
    "status": {
        "responsetype": "1",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": "",
        "original_code": "00"
    },
    "emvtags": [
        {
            "name": "9A",
            "length": "03",
            "value": "220708"
        },
        {
            "name": "9F21",
            "length": "03",
            "value": "184826"
        },
        {
            "name": "9F39",
            "length": "01",
            "value": "07"
        },
        {
            "name": "DF8116",
            "length": "16",
            "value": "1B00000000656E000000000000000000000000000000"
        },
        {
            "name": "DF8129",
            "length": "08",
            "value": "30F0F000B0F0FF00"
        },
        {
            "name": "DFEE26",
            "length": "01",
            "value": "C3"
        },
        {
            "name": "DFEE76",
            "length": "05",
            "value": "0000008001"
        },       
        {
            "name": "9F02",
            "length": "06",
            "value": "000000000100"
        },
        {
            "name": "9F03",
            "length": "06",
            "value": "000000000000"
        },
        {
            "name": "9F26",
            "length": "08",
            "value": "30664EF3C89405F8"
        },
        {
            "name": "5F24",
            "length": "03",
            "value": "280331"
        },
        {
            "name": "82",
            "length": "02",
            "value": "1980"
        },       
        {
            "name": "5A",
            "length": "08",
            "value": "5166CCCCCCCC2758"
        },      
       
        {
            "name": "9F07",
            "length": "02",
            "value": "FFC0"
        },
        {
            "name": "9F09",
            "length": "02",
            "value": "0002"
        },
        {
            "name": "84",
            "length": "07",
            "value": "A0000000041010"
        },
        {
            "name": "FFF2",
            "length": "08",
            "value": "3030303030303030"
        },
        {
            "name": "9F11",
            "length": "01",
            "value": "01"
        },
        {
            "name": "9F27",
            "length": "01",
            "value": "80"
        },
       
        {
            "name": "9F35",
            "length": "01",
            "value": "24"
        },
        {
            "name": "95",
            "length": "05",
            "value": "0000008001"
        },       
        {
            "name": "9F53",
            "length": "01",
            "value": "00"
        },
        {
            "name": "5F2A",
            "length": "02",
            "value": "0840"
        },
        {
            "name": "9A",
            "length": "03",
            "value": "220708"
        },
        {
            "name": "9C",
            "length": "01",
            "value": "00"
        },
        {
            "name": "9F37",
            "length": "04",
            "value": "F2288086"
        },
        {
            "name": "DF8115",
            "length": "06",
            "value": "0000000000FF"
        },
        {
            "name": "9F5D",
            "length": "03",
            "value": "010000"
        },
        {
            "name": "9F42",
            "length": "02",
            "value": "0356"
        },
        {
            "name": "DF810B",
            "length": "01",
            "value": "00"
        }       
       
    ],
     "response_emvtags" : [
  {
    "name": "91",
    "length": "0A",
    "value": "6F6D8C8EE88336250012"
  }
]
}
Offline Processing

Latpay EMV Unified Gateway supports offline processing of EMV transactions for those use cases with merchants who are operating in environments with no reliable oubound Internet connectivity. The Latpay terminals can be configured to accept offline approvals. These offline approved transactions can be stored in merchant’s host storage in the terminal location and then be transmitted via the EMV offline batch processing API to Latpay for capture of transactions.

This is an “on-demand” feature which will require compliance approval. If you need more information on this feature please reach out to our operations team.

EMV Offline Batch Submission API

The batch submission API allows merchants to submit a batch of offline approved transactions in one request. If the request submission is successful, an acknowledgement will be returned which will contain a unique Latpay EMV Offline batch ID. Latpay will be processing capture of these batch submitted transactions as per the acquirer capture cutoff. Once the capture is processed, a notification can be triggered to merchant callback URL if provided in the original batch submission request. This notification will carry the status of transaction captured.

Batch authorisation

Request

Fields Type Mandatory
batchreference string Required
notifyurl string Required
batchcount string Required
transactions[] Transaction Required
Example 1
{
"batchreference" :"batch123",
 "notifyurl" :  "https%3A%2F%2Fmerchantdomain.com%2Fnotify%2F",
 "batchcount": "2",
 "transactions": 
[
{
 "accountid": "Provided by Latpay",
  "storeid": "Provided by Latpay",
  "deviceid": "Provided by Latpay",
    "merchantkey": "187e359db7f192362b96a2726245b360e3c7882c42994a54de39017da8661e86",
  "consumer": {
    "firstname": "thirlok",
    "lastname": "shankar",
    "phone": "1234512345",
    "email": "thirlok@lpsmail.com"
  },
  "order": {
    "reference": "AA406E0",
    "currency": "AUD",
    "amount": "5.00",
    "purchasesummary": "Vending Charge"
  },
  "billing": {
    "type": "emv_offline_approved",
    "emv": {
      "payload": "9A032207089F21031848269F390107DF8116161B00000000656E000000000000000000000000000000DF81290830F0F000B0F0FF00DFEE2601C3DFEE76050000008001DFEF4C06002700000000B8302D51C1110B21E0BC847CCEDF0808C2846BE6E95E0977FF81058201169F0206005626974204D6173746572636172645AA1085166CCCCCCCC27585AC110F288C77044F426B0C8F846B303BDB3D55F3401019F120B49434943492044454249549F3602016F9F0702FFC09F090200028407A0000000041010FFF20830303030303030309F1101019F2701809F34031F03029F10120110A04001240000000000000000000000FF9F33036008089F1A0208409F3501249505000000800157A9a032207089f21031848269f390107df8116161b00000000656e000000000000000000000000000000df81290830f0f000b0f0ff00dfee2601c3dfee76050000008001dfef4c06002700000000ccedf0808c2846be6e95e0977ff81058201169f02060000000001009f03060000000000009f260830664ef3c89405f88c77044f426b0c8f846b303bdb3d55f3401019f120b49434943492044454249549f3602016f9f0702ffc09f090200028407a0000000041010fff20830303030303030309f1101019f2701809f34031f03029f10120110a04001240000000000000000000000ff9f33036008089f1a0208409f3501249505000000800157a1135166cccccccc2758d2803226cccccccccccccc57c120f893d091af5ea6da2dca4b7eb7ccdd7a2dcf1aff0555a3ecc7d2ef29d041ee7d9f5301005f2a0208409a032207089c01009f3704f2288086ff81062edf8115009f42020356df810b0100df810e0100df810f01009f6e07035600003230005323233"
    },
    "fees": {
      "processingfee": "0.00",
      "surcharge": "0.00"
    }
  }
},
{
 "accountid": "Provided by Latpay",
  "storeid": "Provided by Latpay",
  "deviceid": "Provided by Latpay",
    "merchantkey": "187e359db7f192362b96a2726245b360e3c7882c42994a54de39017da8661e86",
  "consumer": {
    "firstname": "Satheesh",
    "lastname": "Kumar",
    "phone": "7654566778",
    "email": "satheesh@lpsmail.com"
  },
  "order": {
    "reference": "Kqf0-4rIRu",
    "currency": "AUD",
    "amount": "5.00",
    "purchasesummary": "Vending Charge"
  },
  "billing": {
    "type": "emv_offline_approved",
    "emv": {
      "payload": "9A032207089F21031848269F390107DF8116161B00000000656E000000000000000000000000000000DF81290830F0F000B0F0FF00DFEE2601C3DFEE76050000008001DFEF4C06002700000000B8302D51C1110B21E0BC847CCEDF0808C2846BE6E95E0977FF81058201169F0206005626974204D6173746572636172645AA1085166CCCCCCCC27585AC110F288C77044F426B0C8F846B303BDB3D55F3401019F120B49434943492044454249549F3602016F9F0702FFC09F090200028407A0000000041010FFF20830303030303030309F1101019F2701809F34031F03029F10120110A04001240000000000000000000000FF9F33036008089F1A0208409F3501249505000000800157A9a032207089f21031848269f390107df8116161b00000000656e000000000000000000000000000000df81290830f0f000b0f0ff00dfee2601c3dfee76050000008001dfef4c06002700000000ccedf0808c2846be6e95e0977ff81058201169f02060000000001009f03060000000000009f260830664ef3c89405f88c77044f426b0c8f846b303bdb3d55f3401019f120b49434943492044454249549f3602016f9f0702ffc09f090200028407a0000000041010fff20830303030303030309f1101019f2701809f34031f03029f10120110a04001240000000000000000000000ff9f33036008089f1a0208409f3501249505000000800157a1135166cccccccc2758d2803226cccccccccccccc57c120f893d091af5ea6da2dca4b7eb7ccdd7a2dcf1aff0555a3ecc7d2ef29d041ee7d9f5301005f2a0208409a032207089c01009f3704f2288086ff81062edf8115009f42020356df810b0100df810e0100df810f01009f6e07035600003230005323233"
    },
    "fees": {
      "processingfee": "0.00",
      "surcharge": "0.00"
    }
  }
}
]
}
Acknowledgement

Response

Field type response
batchid string required
batchcount numeric required
status Status required
Failure
Success
Error

Prescreen Failure



   {
     "batchid" : "123456",
     "batchcount": "2",
     "batchreference": "batch123",
     "status": 
      {
         "responsetype": "0",
         "statuscode": "1",
         "errorcode": "1001",
         "errordesc": "Authentication failed"
      }
    }

   {
    "batchid" : "123456",
    "batchcount": "2",
    "batchreference": "batch123",
    "status": 
      {
         "responsetype": "8",
         "statuscode": "2",
         "errorcode": "00",
         "errordesc": "Batch accepted for processing"
      }
 
    }

   {
    "batchid" : "123456",
    "batchcount": "2",
    "batchreference": "batch123",
     "status": 
      {
         "responsetype": "0",
         "statuscode": "1",
         "errorcode": "9000",
         "errordesc": "System Error"
      }
    }
Notification

Response

Field Type Mandatory
batchid string Required
batchcount string Required
batchreference string Required
transaction[] Transaction Required
Example 1
{
"batchid" :"587567",
"batchreference" :"batch123",
 "notifyurl" :  "https%3A%2F%2Fmerchantdomain.com%2Fnotify%2F",
 "batchcount": "2",
 "status": 
                {
                "responsetype": "4",
                "statuscode": "0",
                "errorcode": "00",
                "errordesc": "Batch processing completed"
                 },
 "transactions": 
[
{
    "accountid": "Provided by Latpay",
  "storeid": "Provided by Latpay",
  "deviceid": "Provided by Latpay",
    "transactionid": "8070331",
    "responsekey": "5CE09A4F1C2947860F102963D53912AE6960A8D9D3CF71F00DC80D91",
    "customerid": "2",
    "transactiondate_utc": "22/01/2025 06:19:10",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": null,
        "reference": "Kqf0-4rIRu",
        "currency": "AUD",
        "amount": "5.00",
        "purchasesummary": "Vending Charge"
    },
    "billing": {
        "type": "emv_offline_approved",
        "card": {
            "name": null,
            "pan": "4XXXXXXXXXXX2598",
            "exp": "032029",
            "token": "0x000000"
        },
        "Authresponse": {
            "banktransactionno": "XXXXXXXX",
            "authcode": "XXXXX",
            "gatewayreference": "XXXXXXXX"
        }
    },
    "status": {
        "responsetype": "1",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": "",
        "original_code": "00"
    }
},
{
    "accountid": "Provided by Latpay",
  "storeid": "Provided by Latpay",
  "deviceid": "Provided by Latpay",
    "transactionid": "8070331",
    "responsekey": "5CE09A4F1C2947860F102963D53912AE6960A8D9D3CF71F00DC80D91",
    "customerid": "2",
    "transactiondate_utc": "22/01/2025 06:19:10",
    "consumer": {
        "firstname": "Satheesh",
        "lastname": "Kumar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": null,
        "reference": "AA406E0",
        "currency": "AUD",
        "amount": "5.00",
        "purchasesummary": "Vending Charge"
    },
    "billing": {
        "type": "emv",
        "card": {
            "name": null,
            "pan": "4XXXXXXXXXXX2598",
            "exp": "032029",
            "token": "0x000000"
        },
        "Authresponse": {
            "banktransactionno": "XXXXXXXX",
            "authcode": "XXXXX",
            "gatewayreference": "XXXXXXXX"
        }
    },
    "status": {
        "responsetype": "1",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": "",
        "original_code": "00"
    }
}
]
}
Batch Status Check
Request
Fields Type Mandatory
batchid string Required
batchreference string Required
notifyurl string Required
batchcount string Required
Example 1
{
"batchid" :"587567",
"batchreference" :"batch123",
 "notifyurl" :  "https%3A%2F%2Fmerchantdomain.com%2Fnotify%2F",
 "batchcount": "2"
}
Response
Field Type Mandatory
batchid string Required
batchcount string Required
batchreference string Required
notifyurl string Required
status Status required
transaction[] Transaction Required
Example 1
Example 2

Prescreen failure

{
         "batchid" : "587567",
         "batchcount": "10000",
         "batchreference": "batch123",
         "notifyurl" :  "https%3A%2F%2Fmerchantdomain.com%2Fnotify%2F",
         "status": 
	     {
	       "responsetype": "0",
	       "statuscode": "1",
	       "errorcode": "2006",
	       "errordesc": "Batch count invalid"
	      }
}

SUCCCESS

{
"batchid" :"587567",
"batchreference" :"batch123",
 "notifyurl" :  "https%3A%2F%2Fmerchantdomain.com%2Fnotify%2F",
 "batchcount": "2",
 "status": 
                {
                "responsetype": "6",
                "statuscode": "0",
                "errorcode": "00",
                "errordesc": "Batch processing completed"
                 },
 "transactions": 
[
{
    "accountid": "Provided by Latpay",
  "storeid": "Provided by Latpay",
  "deviceid": "Provided by Latpay",
    "transactionid": "8070331",
    "responsekey": "5CE09A4F1C2947860F102963D53912AE6960A8D9D3CF71F00DC80D91",
    "customerid": "2",
    "transactiondate_utc": "22/01/2025 06:19:10",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": null,
        "reference": "Kqf0-4rIRu",
        "currency": "AUD",
        "amount": "5.00",
        "purchasesummary": "Vending Charge"
    },
    "billing": {
        "type": "emv_offline_approved",
        "card": {
            "name": null,
            "pan": "4XXXXXXXXXXX2598",
            "exp": "032029",
            "token": "0x000000"
        },
        "Authresponse": {
            "banktransactionno": "XXXXXXXX",
            "authcode": "XXXXX",
            "gatewayreference": "XXXXXXXX"
        }
    },
    "status": {
        "responsetype": "1",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": "",
        "original_code": "00"
    }
},
{
    "accountid": "Provided by Latpay",
  "storeid": "Provided by Latpay",
  "deviceid": "Provided by Latpay",
    "transactionid": "8070331",
    "responsekey": "5CE09A4F1C2947860F102963D53912AE6960A8D9D3CF71F00DC80D91",
    "customerid": "2",
    "transactiondate_utc": "22/01/2025 06:19:10",
    "consumer": {
        "firstname": "Satheesh",
        "lastname": "Kumar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "orderid": null,
        "reference": "AA406E0",
        "currency": "AUD",
        "amount": "5.00",
        "purchasesummary": "Vending Charge"
    },
    "billing": {
        "type": "emv",
        "card": {
            "name": null,
            "pan": "4XXXXXXXXXXX2598",
            "exp": "032029",
            "token": "0x000000"
        },
        "Authresponse": {
            "banktransactionno": "XXXXXXXX",
            "authcode": "XXXXX",
            "gatewayreference": "XXXXXXXX"
        }
    },
    "status": {
        "responsetype": "1",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": "",
        "original_code": "00"
    }
}
]
}
Auth status check

Auth Status Check API call offers the ability to query the status of transaction in realtime. This API can be used for querying of transaction status in case if no response back for the original authorisation request. It can also be used to verify transaction status as an additional check from server, if in case the authorisation was initiated from a client side application.

POST /url/path/
Request
POST /url/path/
Field Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
merchantkey** string Required
transactionid string Optional
order Order Required
billing Billing Required

**Refer the “merchantkey” construction details in Authentication section

Example 1
{
   "accountid": "test_gp_dss",
    "storeid": "001",
    "deviceid": "01",
    "merchantkey": "f522a6bdf3f6465c157b64a0dece67dedad20c8d9ef7da5c146542b924f4b53c",
   "transactionid" : "6427503",
    "order": {
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "0.01",
        "purchasesummary": "test"
    },
    "billing": {
        "type": "EMV"
    }
}

Response
Field Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
transactionid string Required
responsekey** string Required
customerid string Required
transactiondate_utc string Required
consumer Consumer Required
order Order Required
billing Billing Required
status Status Required

** Refer the “responsekey” details in Authentication section

Object
Accepted
Prescreen Failed
{
    "accountid": "test_gp_dss",
    "storeid": "001",
    "deviceid": "01",
    "transactionid": "6427503",
    "responsekey": "124DDA9393E1E8AD9D03BB4DAA9D9EC0619F2103062C7E92221ABE6FDE27C774",
    "customerid": "2",
    "transactiondate_utc": "8/9/2024 1:04:20 PM",
    "consumer": {
        "firstname": "thirlok",
        "lastname": "shankar",
        "phone": "1234567890",
        "email": "thirlok@lpsmail.com"
    },
    "order": {
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "0.01",
        "purchasesummary": "test"
    },
    "billing": {
        "type": "EMV",
        "card": {
            "name": "thirlok shankar",
            "pan": "47617XXXXXXXXX0306",
            "exp": "12/24",
            "token": "0x000000"
        },
        "fees": {
            "processingfee": "0.00"
        },
        "authresponse": {
            "banktransactionno": "422291",
            "authcode": "610899",
            "gatewayreference": "911552"
        }
    },
    "status": {
        "responsetype": "6",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": ""
    }
}

{
    "accountid": "test_pos",
     "storeid": "001",
    "deviceid": "01",
    "transactionid": "5507",
    "responsekey": "",
    "order": {
        "reference": "lpstest123",
        "currency": "AUD",
        "amount": "0.02",
        "purchasesummary": "Ecomm purchase list"
    },
    "billing": {
        "type": "emv"
    },
    "status": {
        "responsetype": "6",
        "statuscode": "1",
        "errorcode": "1001",
        "errordesc": "Authentication Failed"
    }
}
Zero auth transactions

Latpay unified GW card checkout API also supports zero auth transaction requests. This API can be used to validate the customer card, during say any signup process and also to tokenise the customer’s card for any future transaction requests for e.g. 1-click checkout or recurring. This is offered as “on demand” feature and for more information contact Latpay sales team who can provide more information on the prerequisites for this feature.

Subscription / Recurring Transactions

Latpay supports subscription management for scheduling of repeated transaction authorisation as well as taking requests of recurring transactions where merchants manage the subscription schedule themselves at their end. The recurring transactions are supported for both bank payments (bank accounts) as well as cards.

To schedule a subscription, currently Latpay offers the ability to create a schedule in the portal and based on the schedule, the transactions will be processed automatically. In the event of subscription schedule being managed at merchants end, the merchant can just call the Checkout API for card or bank payment respectively when the subscription is due for renewal.

The card flow can be designed such that, either the first payment can be done using the card by customer, during which time the card is tokenised and subsequent payment requests can be done using that token. Alternatively, merchant can do a zero auth transaction during the subscription signup to tokenise customer’s card and recurring transactions can be performed using the card tokens.

For more information contact Latpay sales team who can provide more information on the prerequisites for this feature.

Reversal

Merchants can post a request to the unified gateway to refund/reversal a previously successfully authorized transaction. When a request is submitted, the gateway performs a series of checks and then responds back to the merchant. Refunds/Reversal are checked by LPS staff before they are sent to the bank.

Card
Reversal Types
Type Description
standard Reversal type to send when processing refunds/voids for general business process
fraud Reversal type to send when processing refunds/voids for suspicious fraud transactions
Reversal Transaction Types
Code Type
2 Refund
3 Void
8 EMV Refund
6 Chip Declined
7 Timeout
Ecomm(CNP)
API
POST /url/path/
Response

The response to reversal API indicates the status of transaction whether it was successfully reversed and also will contain unique transaction and order id’s.

Reversal Respose

Reversal URL Parameters


API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
transactionid numeric Required
status Status Required
reversaldetails Reversal Details Required
responsekey** string Required
transtype string Optional

** Refer the “responsekey” details in Authentication section
Object
Application/json
Sample:
{
    "accountid":"test_pos",   
    "transactionid":"6602",
    "status":
       {
           "responsetype":"1",
           "statuscode":"0",
           "errorcode":"",
           "errordesc":""
       },
     "reversaldetails":
        {
            "type":"standard",
            "reason":"Customer doesnt want the service - so requesting reversal"
         },      "responsekey":"c39edcd12c5c6d10a4b28afeae21d44631e503c9bcd4a547b027d70fc1835c7759c28aa47e35adbba6e7f36141c899034823eb743495ec8bb16079dba0c6502a",
      "transtype":"3"
    
}
Request
POST /url/path/

The payload of reversal must contain details of the original checkout request. For the full list of parameters, refer our API Reference section.

Reversal Request

Reversal URL Parameters


API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
merchantkey** string Required
transactionid string Conditional
amount money Required
currency string Required
reference string Required
reversaldetails Reversal Details Required
transtype*** string Conditional

** Refer the “merchantkey” construction details in Authentication section
*** Refer below table for reversal transaction types to be sent in request. If the transtype is sent, the actual reveral request will be processed, if the transtype not sent system will process either void or refund based on the transaction state and response will be sent with the processed reversal type. If partial refund is being attempted, then transtype is mandatory.

Note: Incase of partial refund the transtype must be set

Reversal can be used for transaction which has been authorised successfully. It can also be used for transactions for which no response has been received, in that case transactionid can be omittied. In this scenario, if the transaction was successful , then the reversal will be attempted. If the transaction was not successful, then the reversal will fail.

Application/json
Sample:
   {
      "accountid": "test_pos",     
      "authkey": "779761463f3f878481d1d031ca34b13f25a9a3afabeef4395d39bf77df8ff6e2ad1e40a1764a25d10f40a1c2224b4a63e387aa9b1994221572cdf7c7cbe2b725",
      "transactionid": "5175",
      "amount": "0.12",
      "currency": "AUD",
      "reference": "lpstest123",
      "reversaldetails": 
        {
         "type": "standard",
         "reason": "Customer doesnt want the service - so requesting reversal"
         },
         "transtype": "3"
   }
Reversal Status Check
POST /url/path/
Request
POST /url/path/

Request

API Type Mandatory
accountid string Required
authkey** String Required
transactionid string Required

** Refer the “authkey” construction details in Authentication section

Card Transaction
{
"accountid": "test_pos",
"authkey" :"ba734822b2130ba46cf1ddc0d9d777b3bb99c9ed17c00c7d63d06c05f28e9028a5bcc15705ddc5606e919bcba22fd3bfaf8af039090c5a3eba4534668fe23e3d",
"transactionid": "1567890"
}
Response
API Type Mandatory
accountid string Required
transactionid numeric Required
responsekey** string Required
status Status Required
reversaltransactions Reversaltransactions Required

** Refer the “responsekey” details in Authentication section

Object
Application/json
{
    "accountid": "test_pos",
    "transactionid": "184025",
    "responsekey": "FDB181CD866E68EFDC7C1F34CC0847885570C79AE17D9574750423EB55A3AF4F",
    "status": {
        "responsetype": "6",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": ""
    },
    "reversaltransactions": [
        {
            "refundid": "",
            "amount": "0.02",
            "deviceid": "latapydssj5",
            "currency": "AUD",
            "refundtype": "3",
            "reference": "lpstest123",
            "reversaldate_utc": "17/11/2021 10:59",
            "status": {
                "responsetype": "0",
                "statuscode": "1",
                "errorcode": "4004",
                "errordesc": "Transaction has already been canceled / fully refunded"
            }
        },
        {
            "refundid": "877509",
            "amount": "0.02",
            "deviceid": "latapydssj5",
            "currency": "AUD",
            "refundtype": "3",
            "reference": "lpstest123",
            "reversaldate_utc": "17/11/2021 09:32",
            "status": {
                "responsetype": "1",
                "statuscode": "0",
                "errorcode": "",
                "errordesc": ""
            }
        }
    ]
}
EMV(Card Present)
API
POST /url/path/
EMV Request
POST /url/path/

The payload of reversal must contain details of the original checkout request. For the full list of parameters, refer our API Reference section.

Reversal Request

Reversal URL Parameters


API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
merchantkey** string Required
transactionid string Conditional
amount money Required
currency string Required
reference string Required
reversaldetails Reversal Details Required
transtype*** string Conditional
billing Billing Required

** Refer the “merchantkey” construction details in Authentication section
*** Refer reversal transaction types to be sent in request. If the transtype is sent, the actual reveral request will be processed, if the transtype not sent system will process either void or refund based on the transaction state and response will be sent with the processed reversal type. If partial refund is being attempted, then transtype is mandatory.

Note: Incase of partial refund the transtype must be set

Reversal can be used for transaction which has been authorised successfully. It can also be used for transactions for which no response has been received, in that case transactionid can be omittied. In this scenario, if the transaction was successful , then the reversal will be attempted. If the transaction was not successful, then the reversal will fail.

Application/json
Sample:
 {
    "accountid": "test_pos",
    "storeid": "store1",
    "deviceid": "latapydssj5",
    "merchantkey": "623c89b2f3c1d5d30ae45e01a52a9ebcff83efd674a0867ff5202604c709926c",
    "transactionid": "1012276",
    "amount": "0.02",
    "currency": "AUD",
    "reference": "lpstest123",
    "reversaldetails": {
        "type": "standard",
        "reason": "Customer doesnt want the service - so requesting reversal"
    },
    "transtype": "2",
    "billing": {
        "type": "Emv",
        "emv": {
            "payload": "9A032207089F21031848269F390107DF8116161B00000000656E000000000000000000000000000000DF81290830F0F000B0F0FF00DFEE2601C3DFEE76050000008001DFEF4C06002700000000B8302D51C1110B21E0BC847CCEDF0808C2846BE6E95E0977FF81058201169F0206005626974204D6173746572636172645AA1085166CCCCCCCC27585AC110F288C77044F426B0C8F846B303BDB3D55F3401019F120B49434943492044454249549F3602016F9F0702FFC09F090200028407A0000000041010FFF20830303030303030309F1101019F2701809F34031F03029F10120110A04001240000000000000000000000FF9F33036008089F1A0208409F3501249505000000800157A9a032207089f21031848269f390107df8116161b00000000656e000000000000000000000000000000df81290830f0f000b0f0ff00dfee2601c3dfee76050000008001dfef4c06002700000000ccedf0808c2846be6e95e0977ff81058201169f02060000000001009f03060000000000009f260830664ef3c89405f88c77044f426b0c8f846b303bdb3d55f3401019f120b49434943492044454249549f3602016f9f0702ffc09f090200028407a0000000041010fff20830303030303030309f1101019f2701809f34031f03029f10120110a04001240000000000000000000000ff9f33036008089f1a0208409f3501249505000000800157a1135166cccccccc2758d2803226cccccccccccccc57c120f893d091af5ea6da2dca4b7eb7ccdd7a2dcf1aff0555a3ecc7d2ef29d041ee7d9f5301005f2a0208409a032207089c01009f3704f2288086ff81062edf8115009f42020356df810b0100df810e0100df810f01009f6e07035600003230005323233"
        }
    }
}
emv Response

The response to reversal API indicates the status of transaction whether it was successfully reversed and also will contain unique transaction and order id’s.

Reversal Respose

Reversal URL Parameters


API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
transactionid numeric Required
status Status Required
reversaldetails Reversal Details Required
responsekey** string Required
transtype string Optional
emvtags array(contents can vary) Optional
response_emvtags array(contents can vary) Optional

** Refer the “responsekey” details in Authentication section
Object
Application/json
Sample:
{
    "accountid": "test_pos",
    "storeid": "store1",
    "deviceid": "latapydssj5",
    "transactionid": "1012276",
    "amount": "0.02",
    "currency": "AUD",
    "reference": "lpstest123",
    "status": {
        "responsetype": "1",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": ""
    },
    "reversaldetails": {
        "type": "standard",
        "reason": "Chip Declined"
    },
    "responsekey": "7E6FEE0DB09A3EEB53C2574AF5668F21491DC53D59460D317BF867B2EC38C872",
    "billing": {
        "emv": {
            "payload": "9a032207089f21031848269f390107df8116161b00000000656e000000000000000000000000000000df81290830f0f000b0f0ff00dfee2601c3dfee76050000008001dfef4c06002700000000dfef4d30d09e26d8700741880bf7b055bc86a8ecae116221d0208a50b8302d51c1110b21e0bc847ccedf0808c2846be6e95e0977ff81058201169f02060000000001009f03060000000000009f260830664ef3c89405f85f24032803318202198050104465626974204d6173746572636172645aa1085166cccccccc27585ac110f288c77044f426b0c8f846b303bdb3d55f3401019f120b49434943492044454249549f3602016f9f0702ffc09f090200028407a0000000041010fff20830303030303030309f1101019f2701809f34031f03029f10120110a04001240000000000000000000000ff9f33036008089f1a0208409f3501249505000000800157a1135166cccccccc2758d2803226cccccccccccccc57c120f893d091af5ea6da2dca4b7eb7ccdd7a2dcf1aff0555a3ecc7d2ef29d041ee7d9f5301005f2a0208409a032207089c01009f3704f2288086ff81062edf8115060000000000ff9f5d030100009f42020356df810b0100df810e0100df810f01009f6e0703560000323000ffee0104df300100ffee120a6299499710900c400584fff2083754343635323233"
        }
    },
    "emvtags": [
        {
            "name": "9A",
            "length": "03",
            "value": "220708"
        },
        {
            "name": "9F21",
            "length": "03",
            "value": "184826"
        },
        {
            "name": "9F39",
            "length": "01",
            "value": "07"
        },
        {
            "name": "DF8116",
            "length": "16",
            "value": "1B00000000656E000000000000000000000000000000"
        },
        {
            "name": "DF8129",
            "length": "08",
            "value": "30F0F000B0F0FF00"
        },
        {
            "name": "DFEE26",
            "length": "01",
            "value": "C3"
        },
        {
            "name": "DFEE76",
            "length": "05",
            "value": "0000008001"
        },       
        {
            "name": "9F02",
            "length": "06",
            "value": "000000000100"
        },
        {
            "name": "9F03",
            "length": "06",
            "value": "000000000000"
        },
        {
            "name": "9F26",
            "length": "08",
            "value": "30664EF3C89405F8"
        },
        {
            "name": "5F24",
            "length": "03",
            "value": "280331"
        },
        {
            "name": "82",
            "length": "02",
            "value": "1980"
        },       
        {
            "name": "5A",
            "length": "08",
            "value": "5166CCCCCCCC2758"
        },      
       
        {
            "name": "9F07",
            "length": "02",
            "value": "FFC0"
        },
        {
            "name": "9F09",
            "length": "02",
            "value": "0002"
        },
        {
            "name": "84",
            "length": "07",
            "value": "A0000000041010"
        },
        {
            "name": "FFF2",
            "length": "08",
            "value": "3030303030303030"
        },
        {
            "name": "9F11",
            "length": "01",
            "value": "01"
        },
        {
            "name": "9F27",
            "length": "01",
            "value": "80"
        },
       
        {
            "name": "9F35",
            "length": "01",
            "value": "24"
        },
        {
            "name": "95",
            "length": "05",
            "value": "0000008001"
        },       
        {
            "name": "9F53",
            "length": "01",
            "value": "00"
        },
        {
            "name": "5F2A",
            "length": "02",
            "value": "0840"
        },
        {
            "name": "9A",
            "length": "03",
            "value": "220708"
        },
        {
            "name": "9C",
            "length": "01",
            "value": "00"
        },
        {
            "name": "9F37",
            "length": "04",
            "value": "F2288086"
        },
        {
            "name": "DF8115",
            "length": "06",
            "value": "0000000000FF"
        },
        {
            "name": "9F5D",
            "length": "03",
            "value": "010000"
        },
        {
            "name": "9F42",
            "length": "02",
            "value": "0356"
        },
        {
            "name": "DF810B",
            "length": "01",
            "value": "00"
        }       
       
    ],
    "response_emvtags": [
        {
            "name": "91",
            "length": "08",
            "value": "FA1EA5AB928AA907"
        }
    ]
}
Reversal Status Check

Reversal Status Check API call offers the ability to query the status of Refund/Cancellation transaction in realtime.This API call can be used to check in the event of communication failures on original Refund/Cancellation submissions or if they would like to know if the Refund/Cancellation is fully settled after being accepted by LPS initially.

POST /url/path/
Request
POST /url/path/

Request

API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
merchantkey** String Required
transactionid string Required

** Refer the “merchantkey” construction details in Authentication section

Card Transaction
{
 "accountid": "test_pos",
  "storeid": "store1",
  "deviceid": "latapydssj5",
"merchantkey": "fcf98b8c805b892077325bac217258dd34d14931a1bd9f5686e622ab55b7a3bc",
"transactionid": "184025"
}
Response
API Type Mandatory
accountid string Required
storeid string Required
deviceid string Required
transactionid numeric Required
responsekey** string Required
status Status Required
reversaltransactions Reversaltransactions Required

** Refer the “responsekey” details in Authentication section

Object
Application/json
{
    "accountid": "test_pos",
    "storeid": "store1",
    "deviceid": "latapydssj5",
    "transactionid": "184025",
    "responsekey": "FDB181CD866E68EFDC7C1F34CC0847885570C79AE17D9574750423EB55A3AF4F",
    "status": {
        "responsetype": "6",
        "statuscode": "0",
        "errorcode": "",
        "errordesc": ""
    },
    "reversaltransactions": [
        {
            "refundid": "",
            "amount": "0.02",
            "deviceid": "latapydssj5",
            "currency": "AUD",
            "refundtype": "3",
            "reference": "lpstest123",
            "reversaldate_utc": "17/11/2021 10:59",
            "status": {
                "responsetype": "0",
                "statuscode": "1",
                "errorcode": "4004",
                "errordesc": "Transaction has already been canceled / fully refunded"
            }
        },
        {
            "refundid": "877509",
            "amount": "0.02",
            "deviceid": "latapydssj5",
            "currency": "AUD",
            "refundtype": "3",
            "reference": "lpstest123",
            "reversaldate_utc": "17/11/2021 09:32",
            "status": {
                "responsetype": "1",
                "statuscode": "0",
                "errorcode": "",
                "errordesc": ""
            }
        }
    ]
}
Authentication

Each API call will need to be authenticated by way of a merchantid issued by LatPay along with a key, which will be a SHA-256/SHA-512 hash of a set of post fields along with a predefined secret agreed between merchant & Latpay at the time of account setup.

Checkout Request

In case of Checkout request, the authentication key is “merchantkey” which is a SHA2 hash of the following parameters.


Name Description
amount Purchase amount – 2 decimal places
currency The 3 digit ISO currency code
deviceid a unique number assigned and linked to a specific point-of-sale (POS) terminal or workstation (Provided on account setup)
terminalsecret (Secret passphrase provided by merchant to Latpay during account setup)

Sample:

Name Description
amount 1.00
currency AUD
deviceid ST1
terminalsecret bK5NDRFgLv3
SHA-256 Hash Value 981f504a2b35397898cb4aa756a44abb25722b782703173f3a33e3fca7528c9b

In case of Checkout request, the authentication key is “authkey” which is a SHA-512 hash of the following parameters.

Name Description
Amount Purchase amount – 2 decimal places
Currency The 3 digit ISO currency code
Reference Merchant generated reference number
Accountkey (Secret passphrase provided by merchant to Latpay during account setup)

Sample:

Name Description
Amount 2.25
Currency AUD
Reference lpstest123
accountkey 9TQvL3Tm7
SHA-512 Hash Value a8ac11093e02e71c119b15452796677354b6c18320ec868731fde9050c5c737c48aec959e517fabeba5ec6d6d86efc4f87f4a9d066b8c1e1d257246b4e923e50



Object
Checkout Response

In case of Checkout response, the authentication key is “responsekey” which is a SHA2 hash of the following parameters.

Name Description
transactionid Unique id provided by Latpay
amount Purchase amount – 2 decimal places
currency The 3 digit ISO currency code
deviceid a unique number assigned and linked to a specific point-of-sale (POS) terminal or workstation (Provided on account setup)
responsesecret (Secret passphrase provided by Latpay to merchant during account release)

Sample:

Name Description
transactionid 1435946
amount 1.00
currency AUD
deviceid ST1
responsesecret oaiSofFnt
SHA-256 Hash Value 0a93b327f4fd1ec52e5f7c1661660aacd1c9f34244dc518861f406577a4b547e

In case of Checkout response, the authentication key is “responsekey” which is a SHA512 hash of the following parameters.

Name Description
Amount Purchase amount – 2 decimal places
Currency The 3 digit ISO currency code
Reference Merchant generated reference number
Statuscode Response status object statuscode value
Accountkey (Secret passphrase provided by Latpay to merchant during account release)

Sample:

Name Description
Amount 2.25
Currency AUD
Reference lpstest123
Statuscode 0
Accountkey 9TQvL3Tm7
SHA-512 Hash Value DCD5ACBF9C48878BEE266E10B6D44A5C4A18C45145A353CDA9255663885EC2CD63D0F3F05260DBC0E1B0037AD9AD07B70121B95D979C6A38284F72B9FE8AA264
Object
Reversal Request

In case of Reversal request, the authentication key is “merchantkey” which is a SHA-256 hash of the following parameters.

When transactionid Posted

Name Description
transactionid Unique id provided by Latpay
amount Purchase amount – 2 decimal places
currency The 3 digit ISO currency code
deviceid A unique number assigned and linked to a specific point-of-sale (POS) terminal or workstation (Provided on account setup)
terminalsecret Secret passphrase provided by merchant to Latpay during account setup

When transactionid Omitted

Name Description
amount Purchase amount – 2 decimal places
currency The 3 digit ISO currency code
deviceid A unique number assigned and linked to a specific point-of-sale (POS) terminal or workstation (Provided on account setup)
terminalsecret Secret passphrase provided by merchant to Latpay during account setup

Sample:

Name Description
transactionid 1435946
amount 1.00
currency AUD
deviceid ST1
terminalsecret bK5NDRFgLv3
SHA-256 Hash Value 981f504a2b35397898cb4aa756a44abb25722b782703173f3a33e3fca7528c9b

In case of Checkout request, the authentication key is “authkey” which is a SHA-512 hash of the following parameters.

Name Description
transactionid Unique id provided by Latpay
Amount Purchase amount – 2 decimal places
Currency The 3 digit ISO currency code
Reference Merchant generated reference number
Accountkey (Secret passphrase provided by merchant to Latpay during account setup)

Sample:

Name Description
transactionid 5678345
Amount 2.25
Currency AUD
Reference lpstest123
accountkey 9TQvL3Tm7
SHA-512 Hash Value 495268748ff0b08840bca671536c28354dea20e9460946a23d09efa8ecc5e713c9e9ae6eb95b8e81923442b8a95c5fcdc4a7ee43d3d5bf6aa473e5ab698405da



Object
Reversal Response
  • List item

Responsekey which is a SHA2 hash of the following parameters:

Name Description
transactionid Unique id provided by Latpay
amount Purchase amount – 2 decimal places
currency The 3 digit ISO currency code
deviceid a unique number assigned and linked to a specific point-of-sale (POS) terminal or workstation (Provided on account setup)
responsesecret (Secret passphrase provided by Latpay to merchant during account release)

Sample:

Name Description
transactionid 1435946
amount 1.00
currency AUD
deviceid ST1
responsesecret oaiSofFnt
SHA-256 Hash Value 0a93b327f4fd1ec52e5f7c1661660aacd1c9f34244dc518861f406577a4b547e

In case of Checkout response, the authentication key is “responsekey” which is a SHA512 hash of the following parameters.

Name Description
Amount Purchase amount – 2 decimal places
Currency The 3 digit ISO currency code
Reference Merchant generated reference number
Statuscode Response status object statuscode value
Accountkey (Secret passphrase provided by Latpay to merchant during account release)

Sample:

Name Description
Amount 2.25
Currency AUD
Reference lpstest123
Statuscode 0
Accountkey 9TQvL3Tm7
SHA-512 Hash Value DCD5ACBF9C48878BEE266E10B6D44A5C4A18C45145A353CDA9255663885EC2CD63D0F3F05260DBC0E1B0037AD9AD07B70121B95D979C6A38284F72B9FE8AA264
Object
Status Check Request

In case of Status check request, the authentication key is “merchantkey” which is a SHA-256 hash of the following parameters.

When transactionid Posted

Name Description
transactionid Unique id provided by Latpay
amount Purchase amount – 2 decimal places
currency The 3 digit ISO currency code
deviceid A unique number assigned and linked to a specific point-of-sale (POS) terminal or workstation (Provided on account setup)
TerminalSecret Secret passphrase provided by merchant to Latpay during account setup

When transactionid Omitted

Name Description
amount Purchase amount – 2 decimal places
currency The 3 digit ISO currency code
deviceid A unique number assigned and linked to a specific point-of-sale (POS) terminal or workstation (Provided on account setup)
TerminalSecret Secret passphrase provided by merchant to Latpay during account setup

Sample:

Name Description
transactionid 1435946
amount 1.00
currency AUD
deviceid ST1
terminalsecret bK5NDRFgLv3
SHA-256 Hash Value 981f504a2b35397898cb4aa756a44abb25722b782703173f3a33e3fca7528c9b

In case of Checkout request, the authentication key is “authkey” which is a SHA-512 hash of the following parameters.

Name Description
transactionid Unique id provided by Latpay
Amount Purchase amount – 2 decimal places
Currency The 3 digit ISO currency code
Reference Merchant generated reference number
Accountkey (Secret passphrase provided by merchant to Latpay during account setup)

Sample:

Name Description
transactionid 5678345
Amount 2.25
Currency AUD
Reference lpstest123
accountkey 9TQvL3Tm7
SHA-512 Hash Value 495268748ff0b08840bca671536c28354dea20e9460946a23d09efa8ecc5e713c9e9ae6eb95b8e81923442b8a95c5fcdc4a7ee43d3d5bf6aa473e5ab698405da



Object
Status Check Response

Responsekey which is a SHA2 hash of the following parameters:

Name Description
transactionid Unique id provided by Latpay
accountid merchant account provided by Latpay
storeid unique id for each store (provided on account setup)
deviceid a unique number assigned and linked to a specific point-of-sale (POS) terminal or workstation (provided on account setup)
responsesecret secret passphrase provided by Latpay to merchant during account setup

Sample:

Name Description
transactionid 1435946
amount 1.00
currency AUD
deviceid ST1
responsesecret oaiSofFnt
SHA-256 Hash Value 0a93b327f4fd1ec52e5f7c1661660aacd1c9f34244dc518861f406577a4b547e

In case of Checkout response, the authentication key is “responsekey” which is a SHA512 hash of the following parameters.

Name Description
Amount Purchase amount – 2 decimal places
Currency The 3 digit ISO currency code
Reference Merchant generated reference number
Statuscode Response status object statuscode value
Accountkey (Secret passphrase provided by Latpay to merchant during account release)

Sample:

Name Description
Amount 2.25
Currency AUD
Reference lpstest123
Statuscode 0
Accountkey 9TQvL3Tm7
SHA-512 Hash Value DCD5ACBF9C48878BEE266E10B6D44A5C4A18C45145A353CDA9255663885EC2CD63D0F3F05260DBC0E1B0037AD9AD07B70121B95D979C6A38284F72B9FE8AA264
Object
Reversal Status Check Request

In case of Reversal Status check request, the authentication key is “merchantkey” which is a SHA-256 hash of the following parameters.

Name Description
transactionid Unique id provided by Latpay
deviceid A unique number assigned and linked to a specific point-of-sale (POS) terminal or workstation (Provided on account setup)
terminalSecret Secret passphrase provided by merchant to Latpay during account setup

In case of Checkout request, the authentication key is “authkey” which is a SHA-512 hash of the following parameters.

Name Description
transactionid Unique id provided by Latpay
Accountkey (Secret passphrase provided by merchant to Latpay during account setup)

Sample:

Name Description
transactionid 5678345
accountkey 9TQvL3Tm7
SHA-512 Hash Value 495268748ff0b08840bca671536c28354dea20e9460946a23d09efa8ecc5e713c9e9ae6eb95b8e81923442b8a95c5fcdc4a7ee43d3d5bf6aa473e5ab698405da



Object
Reversal Status Check Response

Responsekey which is a SHA2 hash of the following parameters:

Name Description
accountid merchant account provided by Latpay
statuscode status code for each transaction
responsesecret secret passphrase provided by Latpay to merchant during account setup

In case of Checkout response, the authentication key is “responsekey” which is a SHA512 hash of the following parameters.

Name Description
accountid merchant account provided by Latpay
Statuscode Response status object statuscode value
Accountkey (Secret passphrase provided by Latpay to merchant during account release)

Sample:

Name Description
accountid test_pos
Statuscode 0
Accountkey 9TQvL3Tm7
SHA-512 Hash Value DCD5ACBF9C48878BEE266E10B6D44A5C4A18C45145A353CDA9255663885EC2CD63D0F3F05260DBC0E1B0037AD9AD07B70121B95D979C6A38284F72B9FE8AA264
Object
Authstatuscheck

In case of Authstatuscheck request, the authentication key is “transactionkey” which is a SHA256 hash of the following parameters.

Name Description
currency The 3 digit ISO currency code
amount Purchase amount – 2 decimal places
merchantref transaction reference
datakey (Secret passphrase provided by merchant to Latpay during account setup)

Sample:

Name Description
currency AUD
amount 1.00
merchantref test
datakey bK5NDRFgLv3
SHA-256 Hash Value 1f0df4693d32911a02e82b8b4004f55e0ae4e2bf27b770d3391bacd53b82e894

Object
HPS secure3DPayment

In case of HPS secure3DPayment request, the authentication key is “transkey” which is a SHA256 hash of the following parameters.

Name Description
currency The 3 digit ISO currency code
amount Purchase amount – 2 decimal places
merchantref transaction reference
is3dcheck 'Y’or ‘N’
datakey (Secret passphrase provided by merchant to Latpay during account setup)

**Sample:**
Name Description
currency AUD
amount 1.00
merchantref test
is3dcheck Y
datakey bK5NDRFgLv3
SHA-256 Hash Value e875a6785520c8e5b9e20bb99a6d71c251221bff2bebd44442dcddf8398aa708
Object
3dsecureauth Request

In case of 3dsecureauth request, the authentication key is “authkey” which is a SHA-512 hash of the following parameters.

Name Description
transactionid Unique id provided by Latpay
accountid Merchant accountid
reference Merchant generated reference number
accountkey (Secret passphrase provided by merchant to Latpay during account setup)

Sample:

Name Description
transactionid 5678345
accountid test_pos
reference lpstest123
accountkey 9TQvL3Tm7
SHA-512 Hash Value 495268748ff0b08840bca671536c28354dea20e9460946a23d09efa8ecc5e713c9e9ae6eb95b8e81923442b8a95c5fcdc4a7ee43d3d5bf6aa473e5ab698405da
Object
3dsecureauth Response

In case of 3dsecureauth response, the authentication key is “responsekey” which is a SHA512 hash of the following parameters.

Name Description
accountid Merchant accountid
Statuscode Response status object statuscode value
Accountkey (Secret passphrase provided by Latpay to merchant during account release)

Sample:

Name Description
accountid test_pos
Statuscode 0
Accountkey 9TQvL3Tm7
SHA-512 Hash Value DCD5ACBF9C48878BEE266E10B6D44A5C4A18C45145A353CDA9255663885EC2CD63D0F3F05260DBC0E1B0037AD9AD07B70121B95D979C6A38284F72B9FE8AA264
Object
Notification

All Latpay API requests, on completion, will also generate a callback to merchant server to indicate the status of transaction in addition to the response. The status of the transaction will be received in “notifyurl” which will be given in checkout api call. The response fields sent in notification will be identifical to those of API response fields.

Response Codes
Transaction Types

Transtype:

Code Type
1 Auth
2 Refund
3 Void
Response Types
Value Description
0 LPS / Prescreen response
1 Bank / Service response
2 Pending / Intermediate / 3d Enrolled Response
3 Redirection Response
4 Notification Response
5 Auth Request Response
6 Statuscheck
7 ManageSCSS
8 Acknowledgement
9 Checkout
10 Reports
11 Returns
Status Codes
Value Description
0 Approved
1 Declined / Rejected
2 Pending
Error Codes
Code Description Reason
90 Communication Failure Communication Failure, Unknown error
1001 Authentication failed for Merchant Wrong id, password or IP supplied
1002 Merchant account inactive Merchant account inactive
9000 Unexpected error Incorrect data types, unknown error
9001 Missing required field Mandatory field(s) missing
9004 Bank gateway not enabled Bank gateway not enabled
9005 Amex card transaction blocked Amex card transactions not allowed
CARD
1004 Customer has exceeded allowed transactions number for 24 hours Velocity control on purchases per day reached
1005 Purchase amount check *** Repeated amounts being purchased
1006 Invalid credit card number Incorrect digit length for card type
1007 Invalid credit card expiry details. Card expiry invalid
1008 Luhn’s modulus check failed. CC number is invalid for card type
1009 PO Box error *** Bill address contains a PO Box address
1010 Failed Country lookup Bill country is on a negative country list
1011 Failed IP lookup Customer IP is on a negative IP list
1012 Failed BIN lookup Card BIN is on a negative list
1013 Customer card no. exceeded bank rejection limit Card rejection limit reached
1014 Customer blocked Customer is temporarily blocked pending investigation
1015 Minimum purchase check Purchase amount is below a specified level
1016 Failed IP check. *** Customer IP not in allowed list of IPs’.
1017 Cardtype check failed*** The card type is not allowed
1018 Merchant velocity check failed.*** Merchant exceeded per day total transaction limit.
1019 Merchant velocity check failed.*** Merchant exceeded total transaction limit for configured time interval.
1020 MOTO block MOTO not enabled.
1021 Recurring block Recurring not enabled.
1022 Account not enabled for Zero Auth.*** Merchant account not enabled for Zero Auth.
1024 Allowed bin country check failed.*** The card bin country not allowed.
1025 Merchant country check failed. Merchant registered country disallowed.
1026 Failed Bill state.*** Bill state is on a negative list on specific country.
1027 Failed IP country lookup.*** Customer IP is from a blocked country.
1028 Visa -transaction management, rejections by volume per day/s.*** Exceeded maximum re-attempt threshold.
1029 Mastercard -transaction management, rejections by volume per day/s.*** Exceeded maximum re-attempt threshold.
1030 Merchant Card Block.*** Card blocked for Merchant account.
9002 Mastercard transactions blocked *** MasterCard not enabled
9003 Currency Block*** Currency NOT enabled
9005 Amex card transaction blocked Amex card transactions not allowed
NB. Any response codes that are denoted by *** may not be activated for your account(s)
EMV
1101 Missing emv tags Missing emv tags
1102 Missing serial no Missing serial no
1115 Payload validation failed EMV Payload not unique
1141 Transaction reversed-ChipDecline Transaction reversed-ChipDecline
1142 Transaction reversed-Timeout Transaction reversed-Timeout
1143 Unknown terminal / device serial no not verified Unknown terminal / device serial no not verified
1198 BDK key not configured BDK key not configured
1199 Decrypt failed Decrypt failed
9090 Communication failure Network connectivity error
9091 Transaction not allowed, please try again/ try another card Transaction isn’t allowed, please try again or use another card
9092 Terminal timeout Card hasn’t interacted with the terminal
9093 Card read failed, remove card try again Check card/retry
9094 Reader disconnected Reader disconnected
9095 Terminal not ready for transaction Transaction not yet available in the terminal CONFIDENTIAL 18
9096 Failed to cancel transaction Terminal not allowed to cancel
9097 Please insert your card properly, try again Check card slot/retry
9098 Decryption failed, please try again Invalid card/terminal data
9099 System error, contact LPS Incorrect data types, unknown error
BATCH
2001 Invalid Batch Details Invalid BatchId or batch reference
2002 Duplicate Request Duplicate Request
2003 Batch still in pending / Inprogress Batch still in pending / Inprogress
2004 Max transaction limit exceeded Transaction amount exceeds the Per Transaction Limit
2005 Transaction count exceeded Transaction count exceeds the total Transaction Limit
2006 Batch count invalid No of transaction count values does not match batch count
RECREDITS
4001 Merchant login details incorrect
4003 LPS transaction id is invalid / not found
4004 Transaction has already been canceled / fully refunded
4008 Transaction cannot be canceled, past cutoff period
4005 Refund amount is not equal to transaction amount
4014 Refund currency is not equal to transaction curency
4015 Invalid country code.
4016 Invalid card type.
4017 Duplicate Merchant Reference Number disallowed / Reference number must be unique.
4020 Card type disallowed for requested refund type***.
4021 Card issued corresponds to banned country list. Recredit disallowed.
4022 Card issued corresponds to banned bin list. Recredit disallowed.
4023 Fee deduction failed. Please contact LPS.
4024 Invalid expiry details.
4025 No purchase on card at bank.
4030 Invalid account number.
4031 Invalid sort code.
4032 Insufficient balance to process recredit request.
4033 Invalid Payment direction.
4034 Invalid Wire type.
4035 Wire type not enabled for recredit account.
4036 Invalid Wire Currency.
4037 Wires Customer Block.
4038 Wires Bill country not allowed for merchant.
4039 Wires Bank country not allowed for merchant.
4040 Wires Country is blocked by Counterparty.
4041 Bank Country block requested by Merchant.
DD
5011 Merchant Account inactive
5012 Missing Account Configuration
5013 Invalid BSB Account
5021 Merchant Reference already exists
RETURNS
5051 Invalid BSB Number Invalid BSB Number
5052 Payment Stopped Payment Stopped on the account
5053 Account Closed Account Closed
5054 Customer deceased Customer deceased
5055 No acc/incorrect acc Number No acc/incorrect acc Number
5056 Refer to Customer Refer to Customer
5057 Deleted Account Deleted
5058 Invalid User ID Number Invalid User ID Number
5059 Technically Invalid Technically Invalid
STATUSCHECK
6003 Transaction not found
UNIQUE ERROR CODE AND ERROR DESCRIPTION
N7 Decline for CVV2 failure
R1 Revocation of Authorization Order
00 Approved
01 Issuer Declined
02 Refer to Issuer
03 Invalid merchant or service provider
04 Retain Card
05 Do not honour
06 False Transaction
07 Pickup card, special condition (other than lost/stolen card)
08 Honour with Identification
12 Invalid transaction
13 Invalid amount (currency conversion field overflow) or amount exceeds maximum for card program
14 Invalid account number (no such number)
15 No such issuer
21 No action taken
22 Suspected Malfunction
30 Format error
34 Suspected fraud, capture
39 No credit account
40 Requested function not supported
41 Lost Card
43 Stolen Card
51 Insufficient funds
53 No Savings Account
54 Expired card
55 Incorrect PIN
57 Transaction not permitted to cardholder
58 Transaction not allowed at terminal
59 Suspected Fraud
61 Activity amount limit exceeded
62 Restricted card (for example, in Country Exclusion table)
63 Security violation
65 Activity count limit exceeded
68 Response received too late
75 Allowable number of PIN-entry tries exceeded
76 Unable to locate previous message (no match on Retrieval Ref no)
82 CVV Validation Error
83 Unable to verify PIN
91 Issuer unavailable
92 Financial institution or intermediate network unknown for routing
93 Transaction cannot be completed, violation of law
94 Duplicate Transmission
96 System malfunction, System malfunction or certain field error conditions
104 Billing country blocked
105 Issuing country of card bin blocked
106 Vendor is not registered for currency
201 Bank account configuration error
203 Host timeout
204 Insufficient terminals
301 Declined by Acquirer
L01 UK credit card block
L02 3dsecure authentication failed
Q1 Unknown Buyer
3D Process
5012 Enrollment successfully initiated
API reference
Fees
Name Type Length
processingfee numeric 5
surcharge numeric 5
Object
Address

Address

Name Type Length
line1 string 100
line2 string 100
city string 20
state string 3
country string 2
zipcode string 6
Object
Transaction
Field Type length
transactionid numeric
consumer Consumer
billing Billing
order Order
status Status
Object
Billing

Checkout Request Billing Parameters

Name Type Length
type Type 10
card Card
address Address
fees Fees
authresponse Auth Response
directentry Directentry
emv EMV
3dresponse _3dresponse
paylink Paylink
Object
Card

Card

Name Type Length
name string 100
pan string 30
exp string 20
cvc string 3
token string 50
Object
Callback param

CallbackParams Parameters

Name Type Length
param1 string 200
param2 string 200
param3 string 200
param4 string 200
param5 string 200
Object
Checkout
Name Type Length
accountid string 50
storeid string 50
deviceid string 50
merchantkey string 100
responsekey String 100
consumer Consumer
billing Billing
order Order
callbackparams Callback param
status Status
notifyurl String URL 255
Object
Consumer

Consumer Details

Name Type Length
firstname string 200
lastname string 200
phone string 20
email string 50
Object
Directentry

Directentry

Name Type Length
bsb string 07
accountnumber string 09
accountname string 32
Object
Order

Order Parameters

Name Type Length
reference string 200
currency string 3
amount string 5
purchasesummary string 200
purchasedetail
productid numeric
productname string 200
productsku string 200
productdescription string 200
productcategory string 200
productURL string 200
quantity numeric
priceperunit money
unknown
Reversal Details
Name Type Length
type string 15
reason string 200
Object
Reversal
Name Type Length
accountid string 50
storeid string 50
deviceid string 50
transactionid string 10
merchantkey string 100
responsekey string 100
amount money
currency string 3
reference numeric 200
transtype numeric 1
status Status
reversaldetails Reversal Details
Object
Status

Status

Name Type Length
responsetype numeric 10
statuscode numeric 10
errorcode numeric 10
errordesc string 200
Object
Auth Response
Name Type Length
banktransactionno string 50
authcode string 10
gatewayreference string 100
Object
Return Status
Field Type length
returnid string 20
returncode string 20
returndate string 30
returnreference string 50
Object
Type
Name Type Length
dd string 2
dc string 2
card string 4
emv string 3
paylink string 7
Object
Reversal Transactions
Name Type Length
refundid string 50
amount money
deviceid string 50
currency string 3
refundtype string 1
reference string 200
reversaldate_utc string 50
status Status
Object
EMV

EMV



Name Type Length
payload string 250
Object
_3drequest

_3drequest

Name Type Length
_3dcheck string 1
Object
_3dresponse

_3dresponse

Name Type Length
isenrolled string 1
enrollmentdata enrollmentdata
Object
enrollmentdata

enrollmentdata

Name Type Length
VBV_URL string 200
PAReq string 200
gatewayreference string 50
Object

Paylink

Name Type Length
expireindays string 3
emailnotify string 1
mobilenotify string 1
paylinkurl string 500
Object
Billing

Auth Status Check Request Billing Parameters

Name Type Length
type Type 10
Object