Latpay API
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.
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
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.
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
{
"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"
}
}
}
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
{
"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 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.
{
"accountid": "test_pos",
"authkey": "c85dd1ab0feda8a08e69fe0c6410437d82ac9e3cfe5ece25c2c860cfe740ef498b9d080704b7372792dab69d84dcee1f733311ae1fe0e58c75e7a305f6ef7e97",
"transactionid": "5507",
"order":
{
"reference": "lpstest123",
"currency": "AUD",
"amount": "0.02",
"purchasesummary": "Ecomm purchase list"
},
"billing":
{
"type": "card"
}
}
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
{
"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"
}
}
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.
-
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.
-
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);
} });
}})
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.
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.
Field | Type | Mandatory |
---|---|---|
merchantid | string | required |
amount | money | required |
currency | string | required |
reference | string | required |
transactionkey | string | required |
lpstransid | string | optional |
{
"merchantid":"test_hps",
"amount":"0.10",
"currency":"AUD",
"reference":"3811b2a16309ba9f20d8e51ebce782b8a09962eb",
"transactionkey":"acbda47903d16b4a9e09d0089bef2091635a3735bdc3b50a7e6362b100c10481",
"lpstransid":
}
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
{
"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": ""
}
}
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.
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.
-
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.
-
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.
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.
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 |
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.
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 |
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 |
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.
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
{
"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
{
"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¤cy=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"
}
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
{
"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¤cy=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"
}
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.
Request
Fields | Type | Mandatory |
---|---|---|
merchant_User_Id | string | Required |
merchantpwd | string | Required |
batchreference | string | Required |
transaction[] | Transaction | Required |
notifyurl | string | Optional |
{
"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"
}
}
Response
Field | type | response |
---|---|---|
batchid | string | required |
batchcount | numeric | required |
status | Status | required |
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"
}
}
}
Response
Field | Type | Mandatory |
---|---|---|
batchid | string | Required |
batchcount | numeric | Required |
batchreference | string | Required |
transaction[] | Transaction | Required |
{
"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"
}
}
]
}
}
Field | Type | Mandatory |
---|---|---|
merchant_User_Id | string | Required |
merchantpwd | string | Required |
batchreference | string | Required |
batchcount | numeric | Required |
batchid | string | Optional |
{
"batchauthorisation":
{
"merchant_User_Id": "test_user",
"merchantpwd": "v!@qst",
"batchreference": "test01",
"batchcount": "10000",
"batchid": "12345"
}
}
Field | Type | Mandatory |
---|---|---|
merchant_User_Id | string | Required |
merchantpwd | string | Required |
batchreference | string | Required |
batchcount | numeric | Required |
batchid | string | Optional |
transaction[] | Transaction | Required |
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"
}
}
}
API | Type | Mandatory |
---|---|---|
accountid | string | Required |
authkey** | string | Required |
startdate | string | Required |
enddate | string | Required |
{"accountid": "test_pos",
"authkey": "86e1ebc503b668e548f966d900e9bfe76f16b0b90bc36c6213f4cd5abe71d049bd347e606a258bce71127363f99256e587a27b1199cc041693235ecf5f279dbc",
"startdate": "01/01/2022",
"enddate": "11/01/2022"
}
API | Type | Mandatory |
---|---|---|
accountid | string | Required |
responsekey | string | Required |
status | Status | Required |
transaction[] | Transaction | Required |
{
"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 - 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>>
-
At the point of checkout, the cardholder selects an appropriate payment method based on the initiatives supported by the Merchant.
-
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.
-
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.
-
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.
-
The Verify Enrolment Response is then passed back to the Directory Server with the corresponding ACS URL, if applicable.
-
The information is then passed back to LPS where it is verified, and the Payment Authentication Request is created.
-
The Lookup response is returned to the merchant with the Payer Authentication Request [PAReq].
-
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.
-
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.
-
The ACS, in conjunction with the Card Issuer, authenticates the cardholder.
-
The Payer Authentication Response [PARes] along with the customer is returned to the LPS gateway, via the web browser.
-
The Payer Authentication Response is then forwarded to the merchant to the backtomerchant url requested in the original redirection (step 8)
-
The merchant initiates the authenticate message, which is sent to the LPS gateway for processing.
-
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.
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.
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
{
"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"
}
}
}
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
{
"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"
}
}
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>
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.
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.
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)
{
"accountid": "test_pos_3d",
"authkey": "fef49a78727aacbdcc0934b58eb02014c0eda9aa7030f5a99ef8ce6dd87e98a6",
"reference": "lpstest123",
"pares": "eNpdUdtuwjAMfc9XID6gCWWTBvIsMZgmhjYhLtNeo8aCSLSFJJ1gXz8n5bItD/Hx8bGd2LDaOqLJkorGEcIbea831LHmsdv/Hs1ePtbGv5pTPvNm65XqIsxHC/JJUPpNVmhnbKV3GTlXOw5eci###j1PBuMLzn/yZegA86NB7XIM###eci###IC8S06YIOCJbvcW0IBw8gr45I/ISCtjscX###eci###a6PPlAZfYcx9uKzwqu2FaTaSMYB5OWx###eci###jPUn8ACROewQ==",
"gatewayreference ": "82631581"
}
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)
{
"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": ""
}
}
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.
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
{
"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"
}
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 |
{
"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"
}
{
"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":""
}
}
{
"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 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.
{
"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"
}
}
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
{
"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"
}
}
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.
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 |
{
"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"
}
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 |
{
"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"
}
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.
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
{
"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"
}
}
}
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
{
"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"
}
]
}
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.
Request
Fields | Type | Mandatory |
---|---|---|
batchreference | string | Required |
notifyurl | string | Required |
batchcount | string | Required |
transactions[] | Transaction | Required |
{
"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"
}
}
}
]
}
Response
Field | type | response |
---|---|---|
batchid | string | required |
batchcount | numeric | required |
status | Status | required |
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"
}
}
Response
Field | Type | Mandatory |
---|---|---|
batchid | string | Required |
batchcount | string | Required |
batchreference | string | Required |
transaction[] | Transaction | Required |
{
"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"
}
}
]
}
Fields | Type | Mandatory |
---|---|---|
batchid | string | Required |
batchreference | string | Required |
notifyurl | string | Required |
batchcount | string | Required |
{
"batchid" :"587567",
"batchreference" :"batch123",
"notifyurl" : "https%3A%2F%2Fmerchantdomain.com%2Fnotify%2F",
"batchcount": "2"
}
Field | Type | Mandatory |
---|---|---|
batchid | string | Required |
batchcount | string | Required |
batchreference | string | Required |
notifyurl | string | Required |
status | Status | required |
transaction[] | Transaction | Required |
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 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.
{
"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"
}
}
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
{
"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"
}
}
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.
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.
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.
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
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"
}
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.
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.
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"
}
Request
API | Type | Mandatory |
---|---|---|
accountid | string | Required |
authkey** | String | Required |
transactionid | string | Required |
** Refer the “authkey” construction details in Authentication section
{
"accountid": "test_pos",
"authkey" :"ba734822b2130ba46cf1ddc0d9d777b3bb99c9ed17c00c7d63d06c05f28e9028a5bcc15705ddc5606e919bcba22fd3bfaf8af039090c5a3eba4534668fe23e3d",
"transactionid": "1567890"
}
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
{
"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": ""
}
}
]
}
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.
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.
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"
}
}
}
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
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 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.
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
{
"accountid": "test_pos",
"storeid": "store1",
"deviceid": "latapydssj5",
"merchantkey": "fcf98b8c805b892077325bac217258dd34d14931a1bd9f5686e622ab55b7a3bc",
"transactionid": "184025"
}
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
{
"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": ""
}
}
]
}
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 |
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 |
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 |
- 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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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.
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 | |
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 |
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 |
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 |
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 |
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 |
_3dresponse
Name | Type | Length |
---|---|---|
isenrolled | string | 1 |
enrollmentdata | enrollmentdata |
Auth Status Check Request Billing Parameters
Name | Type | Length |
---|---|---|
type | Type | 10 |