Latpay-Ecomm
Lateral Payment Solutions provide an online credit card/debit card processing solution for e-commerce businesses. We provide a highly sophisticated fraud screening process to reduce the risk posed to online merchants in the ‘card not present’ environment.
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.
The merchant’s server makes a request through a HTTP POST and receives the result of the processing request as the response to the POST request. Both the request & response are made through a single TCP/IP connection. Your server opens an SSL protected socket connection to the LPS payment engine and the LPS system posts the result of the transaction back on the same connection.
MERCHANT SERVER TO LPS SERVER
To process a payment, request all mandatory fields found in Schedule 2A need to be posted via SSL to LPS payment gateway URL which will be provided by LPS. All communication between LPS and the merchant is via SSL only. The merchant server makes a request through an HTTP POST to the LPS server LPS receives the payment request, performs fraud screening and returns to the merchant a result of either fraudscreening (failed) or the bank response (if passed fraud screening).
Points to note about the POST to LPS
- LPS provide the merchant_user_id and merchantpwd
- Replace spaces in the user details with +. You do not however have to do a full URL-encode of the request string.
- Post amounts as 2 decimal places only. Applies to amount field. i.e. 125.03
- A payment request will not be accepted for processing if the mandatory fields in Schedule 2A are missing. If a payment request does not contain all the mandatory fields then the system will return the fraudscreening_status value of 9001 and an LPS_Transaction_id of –1.
LPS SERVER BACK TO MERCHANT SERVER
Using the synchronous method your server opens an SSL protected connection to the LPS server and awaits a HTTP response from the server. If the data is sent successfully (HTTP Status 200) you need to retrieve the Response to the payment request. This will be returned as a query string with the variables described in Schedule 2B. Two response types may be returned; either fraud screening failed or bank transaction status.
Points to note about the LPS return POST
- LPS generates a unique transaction id for each transaction. This is returned to the merchant’s server along with the merchant reference number.
- Merchants must use the LPS_transaction_id for any transaction enquiries with LPS
- LPS response includes an id and password in the string for merchant server authentication purposes; this is the user name & password you supply to LPS and is different from the LPS supplied pair in the original post to Schedule 2A.
- If mandatory fields are missing then the system will not accept the transaction for processing. The details will be logged, and the system will return a Fraudscreening_status of 9001 & an LPS_transaction_id of –1.
LPS TO END USER
LPS send an e‐mail receipt to the customer for each authorised payment request. The receipt contains all transaction details and an email address for customer enquiries. The email is sent from the merchants chosen address and not from LPS e.g. support@merchant.com. The merchant can receive a copy of the receipt sent to the customer.
Schedule 2A – LPS POST Specification for Payment Request using CARD
Field | Description | Mandatory | Data Type | Length |
---|---|---|---|---|
merchant_User_Id | Merchant’s user id provided by LPS | Required | varchar | 50 |
merchantpwd | Merchant’s PWD provided by LPS | Required | varchar | 50 |
merchant_ipaddress | Static IP address of the Merchant server | Required , As provided by merchant | ||
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 | First line of street address for billing the CC | Required | varchar | 100 |
bill_address2 | Second line of street address for billing the CC | Optional | varchar | 100 |
bill_city | City for the billing the credit card | Required | varchar | 50 |
bill_country | Country for the billing the credit card | Required | See LPS Standard Codes | |
bill_state | State for the billing the credit card | 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 |
customer_cc_expmo | Expiration month(mm) of the credit card | Required | varchar | 50 |
customer_cc_expyr | Expiration year(yyyy) of the credit card | Required | varchar | 50 |
customer_cc_number | Credit card/Debit card number of the customer | Required | numeric | 50 |
customer_dc_issue | Debit card issue number | Required (for debit cards only) | numeric | 2 |
customer_dc_startmo | Debit card start month or valid from month (mm) | Required (for debit cards only) | varchar | 50 |
customer_dc_startyr | Debit card start year or valid from year (yyyy) | Required (for debit cards only) | varchar | 50 |
customer_cc_type | Credit Card type of the customer either VISA, MAST, SWITCH, SOLO, DELTA, AMEX, MAESTRO (Case Sensitive, upper case only) | Required | varchar | 10 |
customer_cc_cvc | CVC number of the bank of customer card | Required | numeric | 3 |
customer_bank_name | Name of issuing bank of customer card | Optional | ||
ship_to_address1 | First line of the street address to ship the product | Optional | varchar | 50 |
ship_to_address2 | Second line of the street address to ship the product | Optional | varchar | 50 |
ship_to_city | City to which the ship the product | Optional | varchar | 50 |
ship_to_country | Country to which the ship the product | 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 | Merchant generated reference number | Required | varchar | 50 |
currencydesc=”XXX” | XXX is the currency code you are transacting in i.e., USD, GBP, EUR | Required | See LPS Standard Codes | |
amount | Purchase Amount – 2 decimal places only | Required | 2 decimal places | |
fees | Merchant processing fee Optional | 2 decimal places |
Schedule 2B – LPS POST Specification for Payment Response
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
ResponseType | Transaction response type | int | 4 |
LPS_transaction_id | Unique Identifier for the transaction generated by LPS | int | 8 |
Merchant_ref_number | Merchant reference number generated for the order | varchar | 50 |
Lpsid | Login id of merchant site for authentication | varchar | 50 |
Lpspwd | Password for LPS on Merchant site | varchar | 50 |
Fraudscreening_status | Fraud screening response code from LPS | int | 4 |
Bank status | Status of the transaction at the bank | int | 4 |
Amount | Transaction amount | 2 decimal places | |
Currency | Transaction currency as per ISO code | varchar | 4 |
Bank_transaction_no | Unique Bank ID | varchar | 50 |
Bank_authorisation_no | Bank authorization number, save for your records | varchar | 50 |
Bank_date | Date of bank transaction | varchar | 50 |
Bank_time | Time of bank transaction | varchar | 50 |
Bank_original_code | Original Bank Status code | varchar | 255 |
Field | Description | Data Type | Length |
---|---|---|---|
AVS_Result | Customer Address verification result for the address line1 value posted by merchant. Values: Empty or 2: Not verified / Not checked; 1: Failed; 0: Successful | Int | 4 |
ZIP_Result | Customer Zip code verification result for the bill_zip value posted by merchant. Values: Empty or 2: Not verified / Not checked; 1: Failed; 0: Successful | Int | 4 |
CVN_Result | Result of CVC entered by customer. Values: Empty or 2: Not verified / Not checked; 1: Failed; 0: Successful | Int | 4 |
CardBin | First 6 digit of customer card | Int | 6 |
CardLast4 | Last 4 digit of customer card | Int | 4 |
CardType | Card Scheme of customer card | String | 10 |
CardIssuingCountry | Country code of the Card Issuing country | String | 2 |
CardIssuer | Card Issuer name | String | 100 |
BankIdentifier | Identifier name of the bank which transaction processed | String | 10 |
bank_code | Common LPS unique bank code indicating reason for transaction decline | String | 10 |
bank_message | bank code description | String | 100 |
This document provides integration and usage instructions for using the LPS 3D SECURE integration specification using an asynchronous connectivity model. Integrating with LPS 3D SECURE integration specification will enable participation in payment authentication initiatives such as Verified by Visa (Visa 3D-Secure), Master Card Secure Code and JCB J/Secure. This document assumes you have familiarity with your website and payment processing procedures as well as a proficiency using the technologies and programming languages that your website implements.
The aim of the document is NOT to break any existing compatibility modes if the merchant has already integrated with LPS Payment Gateway. All the post data which if merchant has integrated with synchronous connection model has been retained and minimum customer redirection is proposed.
Since the purpose of 3D SECURE initiative is to reduce the chargebacks by customers authenticating with their issuing bank, which involves customers being navigated out of merchant’s websites, the status of the transaction will NOT be in real time but through separate connection between LPS gateway and merchant servers.
TRANSACTION FLOW DIAGRAM
Transactions are sent via a Synchronous HTTP POST; the response is received on the same TCP/IP connection. The transaction flow is depicted in the following diagram given below:
- CUSTOMER TO MERCHANTS WEBSITE
Customer submits payment request encrypted over SSL; - CUSTOMER TO MERCHANTS WEBSITE
Contains all the necessary card data and card holder details. This is sent over secure encrypted SSL; - LPS SERVER TO MERCHANTS SERVER
LPS gateway performs data, velocity, and fraud checks. If any fail, the transaction process is stopped, and a failure code is returned; - LPS SERVER TO BANK
The transaction is sent from the LPS gateway to the bank; - LPS TO MERCHANTS SERVER
LPS sends the bank response details to merchant server; - MERCHANT SERVER TO END USER
Merchant updates database and notifies customer of success or failure of the transaction; - LPS SERVER TO END USER
LPS can send an e-mail receipt to customers where the transaction is successful. Merchant can receive a copy of the e-mail for customer support or account management purposes; - 3D SECURE AUTHENTICATION
LPS payment gateway can also perform 3D secure authentication for participating cardholders against their issuing bank before authorizing the transactions. The 3D secure flow is depicted in section 3.
THE 3D SECURE TRANSACTION
A pictorial representation of different stages that are involved in a 3DSecure Transaction is given below:
- 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.
- 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 cardholder enters their authentication data and initiates the authentication process directly with the ACS Server.
- 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.
- 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.
LPS 3D SECURE INTEGRATION FLOW
NB. For questions or help at any stage of integration, please send an email to technical@lpsmail.com
1. OVERVIEW
The merchant’s server makes a request for authorisation passing all the mandatory fields and relevant optional fields through a synchronous secure HTTP POST as per table given in Schedule 2A. If the merchant has already integrated with LPS Payment Gateway, the post parameters remain the sameto maintain backward compatibility except for one additional optional parameter “3dSecureCheck”. By setting this parameter to “Y”, the merchant can force the transaction to be verified by 3d secure before authorisation. LPS Payment Gateway will check if the customer is enrolled for 3D SECURE
verification. If the customer is enrolled, LPS Payment Gateway responds on the same synchronous connection the URL for customer’s issuing bank 3D SECURE verification URL along with 3D SECURE verification request. If the customer is NOT enrolled, LPS Payment Gateway proceeds with normal authorisation without 3D SECURE checks or rejects the transaction as per card scheme rules.
The rest of the document illustrates only in the case of if the customer is enrolled with their issuing bank for 3D SECURE checks. As explained above, if the customer is NOT enrolled the transaction will continue as normal synchronous authentication to the bank gateway and the AUTH response will be returned (if card scheme allows the normal authorisation).
NOTE:
The new parameter “3dSecureCheck” value will be overridden by any mandatory card scheme rules. Please consult with LPS for further information. Also, the default value for this new parameter is “N” implying that if the parameter is not sent, the transaction will be directly sent for authorisation provided there is no restriction by the card schemes.
2. REDIRECTING CUSTOMER IF ENROLLED
If the customer is enrolled for 3D SECURE checks, then LPS Payment Gateway will return the information as per table given in Schedule 2C. 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.
If the customer is enrolled for 3D SECURE checks, then LPS Payment Gateway will return the information as per table given in Schedule 2C. 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.
2.1 “BackToMerchantURL” Identifier
The table 2D in post fields section explains the parameters to be sent as part of redirecting the customer to their issuing bank 3dsecure page for authentication.
This contains a field called “BackToMerchantURL” which should be a numeric value as issued by Latpay. Merchants can provide any number of return URL’s to which they’d like to get customers landing back after completing the 3dsecure authentication. Each URL will be whitelisted by Latpay and a unique identifier issued which can then be used in the construction of MD parameter
2.2 LPS OPTIONAL REDIRECTION
LPS as an optional feature can also provide the redirection so that the customer is navigated to the 3D SECURE URL. To use this feature, the merchants should post back response received in schedule 2C as per schedule 2D(o) to the URL specified by LPS. This post must be from the browser and LPS will navigate the customer to their issuing bank 3D SECURE page. IN THIS SCHENARIO, SCHEDULE 2D(o) WILL REPLACE SCHEDULE 2D.
3. 3D SECURE AUTHENTICATION RESPONSE
When the customer is redirected to a URL on LPS Gateway after 3D SECURE authentication, it will match the transaction Id passed with the existing pending transaction. The status of the transaction will be updated to “3D SECURE Response Returned” and the 3D SECURE response will then be transferred back to a merchant’s URL which will return the customer back to the merchant site along with the details given in Table 2E.
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 Table 2F.
4. ACQUIRER AUTHENTICATION
LPS Payment gateway on receiving the payment request as per table 2F will send the 3D SECURE authentication response back to the 3D SECURE provider to validate if the 3D SECURE authentication was successful. 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.
Schedule 2A – LPS POST Specification for Payment Request using CARD
Field | Description | Mandatory | Data Type | Length |
---|---|---|---|---|
merchant_User_Id | Merchant’s user id provided by LPS | Required | varchar | 50 |
merchantpwd | Merchant’s PWD provided by LPS | Required | varchar | 50 |
merchant_ipaddress | Static IP address of the Merchant server | Required, As provided by merchant | ||
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 | First line of street address for billing the CC | Required | varchar | 100 |
bill_address2 | Second line of street address for billing the CC | Optional | varchar | 100 |
bill_city | City for the billing the credit card | Required | varchar | 50 |
bill_country | Country for the billing the credit card | Required | See LPS Standard Codes | |
bill_state | State for the billing the credit card | 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 |
customer_cc_expmo | Expiration month(mm) of the credit card | Required | varchar | 50 |
customer_cc_expyr | Expiration year(yyyy) of the credit card | Required | varchar | 50 |
customer_cc_number | Credit card/Debit card number of the customer | Required | numeric | 50 |
customer_dc_issue | Debit card issue number | Required (for debit cards only) | numeric | 2 |
customer_dc_startmo | Debit card start month or valid from month (mm) | Required (for debit cards only) | varchar | 50 |
customer_dc_startyr | Debit card start year or valid from year (yyyy) | Required (for debit cards only) | varchar | 50 |
customer_cc_type | Credit Card type of the customer either VISA, MAST, SWITCH, SOLO, DELTA, AMEX, MAESTRO (Case Sensitive, upper case only) | Required | varchar | 10 |
customer_cc_cvc | CVC number of the bank of customer card | Required | numeric | 3 |
customer_bank_name | Name of issuing bank of customer card | Optional | ||
ship_to_address1 | First line of the street address to ship the product | Optional | varchar | 50 |
ship_to_address2 | Second line of the street address to ship the product | Optional | varchar | 50 |
ship_to_city | City to which the ship the product | Optional | varchar | 50 |
ship_to_country | Country to which the ship the product | 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 | Merchant generated reference number | Required | varchar | 50 |
currencydesc=”XXX” | XXX is the currency code you are transacting in i.e., USD, GBP, EUR | Required | See LPS Standard Codes | |
amount | Purchase Amount – 2 decimal places only | Required | 2 decimal places | |
fees | Merchant processing fee | Optional | 2 decimal places | |
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 | Conditional*** (Only if SCSS options are required). ***If set to Y or N, then CrdStrg_Token field will be ignored even if sent | varchar | 1 |
Schedule 2A(T) – LPS POST Specification for Payment Request using CARD TOKEN
Field | Description | Mandatory | 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 |
merchant_ipaddress | Static IP address of the Merchant server | Required, As provided by merchant | ||
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 | Optional | varchar | 50 |
bill_lastname | Last name of the card holder | Optional | varchar | 50 |
bill_address1 | First line of street address for billing the CC | Optional | varchar | 100 |
bill_address2 | Second line of street address for billing the CC | Optional | varchar | 100 |
bill_city City | for the billing the credit card | Optional | varchar | 50 |
bill_country | Country for the billing the credit card | Optional | See LPS Standard Codes | |
bill_state | State for the billing the credit card | Optional | See LPS Standard Codes | |
bill_zip | Postal code for the billing the credit card | Optional | varchar | 50 |
dateregistered | Date customer setup an account with your site | Optional | varchar | 50 |
CrdStrg_Token | Unique card details identifier from LPS SCSS system | Required | varchar | 100 |
customer_cc_cvc | Card security code / CVN / CVV2 | Required | numeric | 3 |
ship_to_address1 | Shipping address line 1 | Optional | varchar | 50 |
ship_to_address2 | Shipping address line 2 | Optional | varchar | 50 |
ship_to_city | Shipping address city | Optional | varchar | 50 |
ship_to_country | Shipping address 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 | Merchant generated reference number | Required | varchar | 50 |
currencydesc | Transaction currency in ISO 3-digit format. For e.g. USD, GBP, EUR | Required | See LPS Standard Codes | |
amount | Purchase Amount – 2 decimal places only | Required | 2 decimal places | |
fees | Merchant processing fee | Optional | 2 decimal places | |
scsscheck | Flag to indicate SCSS. Values: D D: Done, token posted with the request. For token processing, set it to D | Required | varchar | 1 |
3dSecureCheck | Flag to indicate whether 3d secure code check to be performed. Valid values Y, N. Default: N | Optional | varchar | 1 |
Schedule 2B – LPS POST Specification for Payment Response
This response will be returned to the merchant if the customer is NOT enrolled for 3D SECURE checks
or after passing the 3D SECURE authentication request to LPS payment gateway. The ResponseType will either
be 0 or 1. This response indicates the fraud screening or bank response.
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
ResponseType | Transaction response type -Point A | int | 4 |
LPS_transaction_id | Unique Identifier for the transaction generated by LPS | int | 4 |
Merchant_ref_number | Merchant reference number generated for the order | varchar | 50 |
Lpsid | LPS Response Authentication User Id | varchar | 50 |
Lpspwd | LPS Response Authentication User Password | varchar | 50 |
Fraudscreening_status | Fraud screening response code from LPS – Point B | int | 4 |
Bank_status | Status of the transaction at the bank - Point C | int | 4 |
Amount | Transaction amount | 2 decimal places | |
Currency | Transaction currency as per ISO code | varchar | 4 |
Bank_transaction_no | Unique Bank ID | varchar | 50 |
Bank_authorisation_no | Bank authorization number, save for your records | varchar | 50 |
Bank_date | Date of bank transaction | varchar | 50 |
Bank_time | Time of bank transaction | varchar | 50 |
Bank_original_code | Original Bank Status code | varchar | 255 |
AVS_Result | Customer Address verification result for the address line1 value posted by merchant Values:Empty or 2: Not verified / Not checked; 1: Failed; 0: Successful. | Int | 4 |
CVN_Result | Result of CVC entered by customer Values: Empty or 2: Not verified / Not checked; 1: Failed; 0: Successful | int | 4 |
CrdStrg_Token*** | Unique card token generated for the card posted | varchar | 100 |
Note:
- The entire Schedule 2B is always returned regardless of the transaction status.
- The variables highlighted above in blue are always returned with values regardless of the ResponseType.
- With a ResponseType=0 (fraudscreening status) then the variables in green will be blank. With a ResponseType=1 then all variables will be returned with appropriate values.
- ***CrdStrg_Token: Will be returned only if SCSScheck was set to Y on request post (or) the token itself was posted on request along with SCSScheck set to D.
Schedule 2C – LPS POST Specification for 3D SECURE Enrolment Response
This response will be returned to the merchant if the customer is enrolled for 3D SECURE checks. The ResponseType will be 2. This response indicates the 3D SECURE enrolment response.
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
ResponseType | Transaction response type - Point A | int | 4 |
LPS_transaction_id | Unique Identifier for the transaction generated by LPS | int | 4 |
Merchant_ref_number | Merchant reference number generated for the order | varchar | 50 |
Lpsid | LPS Response Authentication User Id | varchar | 50 |
Lpspwd | LPS Response Authentication User Password | varchar | 50 |
VBV_URL | Fraud screening response code from LPS Customer’s Issuing Bank 3D SECURE Authentication URL | varchar | 500 |
PAReq | 3D SECURE Provider Payment Authentication Request | Text |
The entire Schedule 2C is always returned if the customer is enrolled for 3D SECURE. The merchant must check for a valid value in VBV_URL before redirecting the customer along with PAReq and other hidden field details as given in Schedule 2D.
Schedule 2D – Merchant Redirection POST parameters
On receiving a ResponseType=2 from LPS payment gateway, the merchant needs to redirect the customer to the VBV_URL along with the following hidden post variables.
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
PaReq | 3D SECURE Provider Payment Authentication Request returned in 2C | Text | |
TermUrl | The “target” page on LPS payment gateway to which the customer is redirected after 3D SECURE authentication | varchar | 500 |
MD | Merchant Details. The following post variables must be concantenated together: a. TransactionId (LPS Transaction Id) b. Merchant_ref_number (Merchant Ref Number) c. BackToMerchantURL (a numeric value) | Text |
Note that all the fields are mandatory and must be sent as hidden variables.
IF SCHEDULE 2D(o) IS OPTED THE ABOVE POST SHOULD NOT BE IMPLEMENTED.
Schedule 2D(o) – OPTIONAL LPS Redirection POST parameters
On receiving a ResponseType=2 from LPS payment gateway and if the merchant wishes to redirect the
customer through LPS they need to post to a predefined LPS URL along with the following hidden post
variables.
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
PaReq | 3D SECURE Provider Payment Authentication Request returned in 2C | Text | |
VBVUrl | The “target” page on LPS payment gateway to which the customer is redirected after 3D SECURE authentication | varchar | 500 |
TermUrl | The “target” page on LPS payment gateway to which the customer is redirected after 3D SECURE authentication | varchar | 500 |
MD | Merchant Details | The following post variables must be concantenated together: a. TransactionId (LPS Transaction Id) b. Merchant_ref_number(Merchant Ref Number) c. BackToMerchantURL(a numeric value) | Text |
Note that all the fields are mandatory and must be sent as hidden variables.
THIS POST MUST BE BROWSER TO SERVER POST
Schedule 2E – LPS POST Specification for 3D SECURE Authentication Response
This response will be returned to a specified URL at the merchant server after 3D SECURE authentication by the customer at their issuing bank. The ResponseType will be 3. This response indicates the 3D SECURE authentication response.
Field | Description | Data Type | Length |
---|---|---|---|
ResponseType | Transaction response type - Point A | int | 4 |
LPS_transaction_id | Unique Identifier for the transaction generated by LPS | int | 4 |
Merchant_ref_number | Merchant reference number generated for the order | varchar | 50 |
Lpsid | LPS Response Authentication User Id | varchar | 50 |
Lpspwd | LPS Response Authentication User Password | varchar | 50 |
PARes | 3D SECURE Authentication Response | Text |
The entire Schedule 2E is always returned after 3D SECURE authentication response has been received by LPS Payment Gateway. The customer is also transferred along with this response and the merchant should then open a back-door synchronous connection for transaction authorisation with 3D SECURE response.
SCHEDULE 2F – MERCHANT AUTHENTICATION REQUEST WITH 3D SECURE AUTHENTICATION RESPONSE
After receiving the 3D SECURE response and customer back to their website, the merchant should open a synchronous connection back to LPS payment gateway with the following details which include the 3D SECURE response.
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
LPS_Transaction_id | Unique Identifier for the transaction generated by LPS | int | 4 |
Merchant_ref_number | Merchant reference number generated for the order | varchar | 50 |
PARes | 3D SECURE Authentication Response | Text |
All the above fields are mandatory. After authentication, the details specified in Table 2B will be
returned with a ResponseType of 0 or 1
a. LPS RESPONSE TYPE CODES (ResponseType)
Description | Code |
---|---|
Fraud screening response | 0 |
Bank transaction response | 1 |
3D SECURE Enrolled Response | 2 |
3D SECURE Authentication Response | 3 |
b. LPS FRAUD SCREENING RESPONSE CODES (Fraudscreening_status)
Code | Description | Description |
---|---|---|
0 | Fraud screening passed | |
1001 | Authentication failed for Merchant | Wrong id, password or IP supplied |
1002 | Merchant account inactive | Merchant account inactive |
1004 | Customer has exceeded allowed transactions number for 24 hours | Velocity control on purchases per day |
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. | |
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 | Customer CC BIN is on a negative list |
1013 | Customer card no. exceeded bank rejection limit | Customer credit card has reached its |
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 |
1020 | MOTO block | MOTO not enabled. |
1021 | Recurring block | Recurring not enabled |
5001 | 3D SECURE Authentication Failed | Customer card enrolled for 3D SECURE, but 3D SECURE authentication failed |
5002 | Intermediate 3d Secure Response code | Returned in schedule 2C Response if card is enrolled for 3d Secure |
5003 | Intermediate 3d Secure Response code** | Internal to LPS, indicating customer has completed authentication in ACS URL and landed back to LPS server. |
5004 | Intermediate 3d Secure Response code** | Internal to LPS, indicating merchant has sent PARES to LPS Server. |
5005 | Intermediate 3dsecure response code** | Internal to LPS, indicating customer redirection to ACS URL completed and awaiting return back to TermURL. |
5006 | 3dsecure authentication status code | Unable to verify PaRes as 3dsecure not available |
5007 | 3dsecure authentication status code | Invalid 3dsecure parameters |
5008 | 3dsecure processing only | Account supports 3d only, send 3dsecurecheck = Y |
9000 | Unexpected error. | Incorrect data types, unknown error |
9001 | Missing required field. | A transaction id of –1 will also be returned |
9002 | Mastercard transactions blocked *** | MasterCard not enabled |
9003 | Currency Block*** | Currency NOT enabled. |
9004 | Bank gateway not enabled. | Bank gateway not enabled. |
9005 | Amex card transaction blocked | Amex card transactions not allowed. |
9009 | SCSS service not enabled | MasterCard not enabled |
9010 | SCSS unique identifier error | SCSS token not found or error. |
NB
***May not be activated for your account(s)
**Internal to LPS, will not be returned on standard response.
*Code returned when strict 3dsecure is enforced - can be enabled on explicit request - default is when card not enrolled, a standard authorisation will be attempted and a 2B response will be returned
c. LPS BANK RESPONSE CODES (Bank_status)
Description | Code |
---|---|
Accepted | 00 |
Rejected | 05 |
Communication failure | 90 |
d.CVN/AVS/ZIP RESULT CODES (CVN_Result, AVS_Result & ZIP_Result)
Description | Code |
---|---|
Data matched | 0 |
Data not matched | 1 |
Not verified by Bank | 2 |
e. UNIQUE BANK CODE AND MESSAGE (bank_code & bank_message)
LPS Unique Bank Code | LPS Bank Message |
---|---|
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 |
40 | Requested function not supported |
41 | Lost Card |
43 | Stolen Card |
51 | Insufficient funds |
54 | Expired card |
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 |
75 | Allowable number of PIN-entry tries exceeded |
76 | Unable to locate previous message (no match on Retrieval Ref no) |
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 |
Testing
The system is currently in production and any testing must be informed well in advance to LPS.
APPENDIX C: MANAGING CARD TOKENS FROM LPS SCSS SYSTEM
When merchants process recredits using SCSS system and generate card tokens corresponding to
the customer card details, they can use the token as the reference for all subsequent transactions
for that customer. The SCSS system provides two layers of encapsulation and hence it will not be
possible to derive card details from token in anyway. To provide options for merchants to manage
the details of card tokens, LPS SCSS system provides API which will enable merchants to
automatically manage their card tokens. For example, if the expiry dates need to be changed due
to card renewal it will not be necessary to post the whole details, but just the new changed details
to the manage SCSS API functionality which will selectively update required information.
Currently LPS SCSS manage API provides three functionalities:
- Querying of card details linked to a token;
- Updating of card details linked to a token;
- Deletion of a token;
A1. POSTING PARAMETERS
Form Field | Description | Details |
---|---|---|
Merchant_id | LPS Provided value | Mandatory |
merchantpwd | Password used for authenticating the refund account. | Mandatory |
AccountType | Type of account. Valid values are: a. A: Auth account (default); b. R: Recredit account; |
Mandatory |
RequestType | SCSS manage card token request type. It should be one of the following: SCSS_Q: Querying card token details; SCSS_U: Update card token details; SCSS_D: Delete card token details; |
Mandatory |
CrdStrg_Token | Unique card details identifier from LPS SCSS system | Mandatory |
Bill_firstname | Billing customer first name | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Bill_lastname | Last name of the card holder | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Bill_address1 | First line of street address for billing the CC | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Bill_address2 | Second line of street address for billing the CC | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Bill_city | City for the billing the credit card | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Bill_state | State for the billing the credit card | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Customer_cc_type | Credit Card type of the customer either VISA, MAST, SWITCH, SOLO, DELTA, AMEX, MAESTRO (Case Sensitive, upper case only) | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Customer_cc_expmo | Expiration month(mm) of the credit card | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. NOTE: If this value is sent then Customer_cc_expyr must be sent as well |
Customer_cc_expyr | Expiration year(yyyy) of the credit card | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. NOTE: If this value is sent then Customer_cc_expmo must be sent as well. |
Customer_dc_startmo | Debit card start month or valid from month(mm) | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. NOTE: If this value is sent then Customer_cc_startyr must be sent as well. |
Customer_dc_issue | Debit card issue number | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated |
A2. RESPONSE PARAMETERS
Form Field | Description |
---|---|
ResponseType | Response type code. See A3 below. |
RequestType | Unique code for the request process |
Requestid | Unique Identifier for the request generated by LPS |
CrdStrg_Token | SCSS system unique card identifier sent in request |
Bill_firstname | First name of the card holder stored for the unique identifier sent. |
Bill_lastname | Last name of the card holder stored for the unique identifier sent |
Bill_address1 | Billing customer first line of address stored for the unique identifier sent. |
Bill_address2 | Billing customer second line of address stored for the unique identifier sent. |
Bill_city | Billing customer city stored for the unique identifier sent. |
Bill_state | Billing customer state stored for the unique identifier sent. |
Bill_country | Billing customer country code stored for the unique identifier sent. |
Bill_zip | Billing customer postal code / zip code stored for the unique identifier sent. |
CardBin | Bin number of the card stored for the unique identifier sent. |
CardLast4 | Last 4 digit of the card number stored for the unique identifier sent |
Customer_cc_type | Credit Card type stored for the unique identifier sent. |
Customer_cc_expmo | Expiration month(mm) of the credit card stored for the unique identifier sent. |
Customer_cc_expyr | Expiration year(yyyy) of the credit card stored for the unique identifier sent. |
Customer_dc_startmo | Debit card start month or valid from month (mm) stored for the unique identifier sent. |
Customer_dc_startyr | Debit card start year or valid from year (yyyy) stored for the unique identifier sent |
Customer_dc_issue | Debit card issue number stored for the unique identifier sent. |
Status | Status code to indicate the request status. |
A3. RESPONSETYPE CODE
Description | Code |
---|---|
SCSS manage card token API response | 7 |
A4. STATUS CODE
Description | Code |
---|---|
0 | Request completed successfully |
1001 | User authentication failed, or account not enabled for SCSS manage card token processing |
1002 | Merchant account inactive. |
9000 | Unexpected system error |
9001 | Mandatory field missing |
9009 | Merchant account not enabled for SCSS |
9010 | SCSS unique identifier incorrect or not found. |
9011 | Token creation failed as card number already exists in SCSS. |
Examples return response
1. sample response for querying existing the card token details.
1.sample response for querying existing the card tokendetails.ResponseType=7&RequestType=SCSS_Q&Requestid=1003&Bill_firstname=Ian&Bill_lastname=Vidamour&Bill_address1=34,Millersstreet&Bill_address2=Northlaneroad&Bill_city=London&Bill_state=Manchester&Bill_country=GB&Bill_zip=SE1&CardBin=420000&CardLast4=0000&Customer_cc_type=VISA&Customer_cc_expmo=11&Customer_cc_expyr=2011&Customer_dc_startmo=&Customer_dc_startyr=&Customer_dc_issue=&CrdStrg_Token=0x1375bb33612cd9cb18c52f33e748f4db&Status=0
APPENDIX D: TRANSACTION STATUS CHECK API
LPS Payment Gateway provides an API call to check the status of transaction sent for authorisation.
This API call can be used in the event of communication failures. The API provides option to query
for status in Realtime i.e. as soon the transaction is submitted. Due to security reasons, there is a
threshold of ten minutes within which the same transaction should not be queried, or else a prescreening code will be returned.
D1. POSTING PARAMETERS
Field | Description | Required/ Optional | Data Type | Length |
---|---|---|---|---|
merchant_user_id | Merchant’s user id provided by LPS | Required | varchar | 50 |
merchantpwd | Merchant’s PWD provided by LPS | Required | varchar | 50 |
merchant_ipaddress | Static IP address of the Merchant server | Required, as provided by merchant | ||
merchant_ref_number | Merchant generated reference number | Required | varchar | 50 |
currencydesc=” XXX” | XXX is the currency code you are transacting in i.e., USD, GBP, EUR | Required | varchar | 3 |
amount | Purchase Amount – 2 decimal places only | Required | 2 decimal places | |
lps_transaction_id | Original transaction unique identifier generated by LPS | Optional | Int | 10 |
realtime | Flag to indicate if transaction processed within last 60 mins. Values: Y, N (default) Y: Yes; (recent transactions within last 60 mins) N: No; [past transactions processed 1 hour before] |
Optional | varchar | 1 |
D2. POSTING PARAMETERS
Fields | Description | Data Type | Length |
---|---|---|---|
responsetype | Transaction response type -Point d3 | int | 4 |
authstatuscheck_id | Unique Identifier for the Status check request generated by LPS | ||
merchant_ref_number | Merchant reference number generated for the order | varchar | 50 |
amount | Transaction amount | 2 decimal places | |
currency | Transaction currency as per ISO code | varchar | 4 |
authstatuscheck_status | Pre-screening response code from LPS – Point d4 | int | 4 |
lps_transaction_id | Original transaction Identifier which already generated for the transaction by LPS. | int | 4 |
transaction_status | Status of the transaction at the LPS - Point d5 | int | 4 |
bank_transaction_no | Unique Bank ID | varchar | 50 |
bank_authorisation_no | Bank authorization number, save for your records | varchar | 50 |
transactiondate | Date and time of transaction processed | varchar | 255 |
crdstrg_token*** | Unique card token generated for the card posted | varchar | 100 |
D3. LPS Response Type Codes (responsetype)
Description | Code |
---|---|
Pre-screening response | 0 |
Status Check response | 5 |
D4. Response Codes (authstatuscheck_status)
Code | Description | Reason |
---|---|---|
0 | Pre-screening passed | |
1001 | Authentication failed for Merchant | Wrong id, password or IP supplied |
1002 | Merchant account inactive | Merchant account inactive |
6003 | Transactions not found | Specified fields merchant ref number/currency/amount not matched or transactions not found. |
6009 | Repeated request within 10 mins | Repeated status check query request (within 10 minutes) |
9000 | Unexpected error. | Incorrect data types, unknown error |
9001 | Missing required field | A LPS_AuthStatusCheck_Id of –1 will also be returned |
D5. LPS Transaction Response Codes (transaction_status)
Code | Description | Reason |
---|---|---|
00 | Bank Accepted | |
05 | Bank Rejected | |
90 | Communication Failure (Pending) | Communication failure between LPS & bank, pending investigation and status update |
91 | Communication Failure | Communication failure, transaction not processed by bank |
1003 | Transaction amount exceeds the Per Transaction Limit. | Transaction is greater than the allowed value for the day |
1004 | Customer has exceeded allowed transactions number for 24 hours | Velocity control on purchases per day |
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 | |
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 | Customer CC BIN is on a negative list |
1013 | Customer card no. exceeded bank rejection limit | Customer credit card has reached its |
1014 | Customer blocked | Customer is temporarily blocked pending investigation |
1015 | Minimum purchase check | Purchase amount is below a specified level |
1016 | CFailed IP check.*** | Customer IP not in allowed list of IP’s. |
1017 | Cardtype check failed*** | The card type is not allowed |
1020 | MOTO block | MOTO not enabled. |
1021 | Recurring block | Recurring not enabled. |
5001 | 3D SECURE Authentication Failed | Customer card enrolled for 3D SECURE, but 3D SECURE authentication failed |
5002 | Intermediate 3d Secure Response code | Returned in schedule 2C Response if card is enrolled for 3d Secure |
5003 | Intermediate 3d Secure Response code** | Internal to LPS, indicating customer has completed authentication in ACS URL and landed back to LPS server. |
5004 | Intermediate 3d Secure Response code** | Internal to LPS, indicating merchant has sent PARES to LPS Server. |
5005 | 3dsecure processing only | Account supports 3d only, send 3dsecurecheck = Y |
5006 | 3dsecure authentication status code | Unable to verify PaRes as 3dsecure not available |
5007 | 3dsecure authentication status code | Invalid 3dsecure parameters |
5010 | Customer not enrolled or Issuer not participating in 3dsecure * | Card not enrolled |
9000 | Unexpected error. | Incorrect data types, unknown error |
9001 | Missing required field. | A transactionid of –1 will also be returned |
9002 | Mastercard transactions blocked *** | MasterCard not enabled |
9003 | Currency Block*** | Currency NOT enabled. |
9004 | Bank gateway not enabled | Bank gateway not enabled. |
9005 | Amex card transaction blocked | Amex card transactions not allowed. |
9005 | Amex card transaction blocked | Amex card transactions not allowed. |
9009 | SCSS service not enabled | Account not enabled for SCSS. |
9010 | SCSS unique identifier error | SCSS token not found or error. |
NB:
*** May not be activated for your account(s)
** Internal to LPS, will not be returned on standard response.
*Code returned when strict 3dsecure is enforced - can be enabled on explicit request - default is when card not enrolled, a standard authorisation will be attempted and a 2B response will be returned
Schedule 2F – Merchant Authentication Request with 3D SECURE Authentication Response
After receiving the 3D SECURE response and customer back to their web site, the merchant should open a synchronous connection back to LPS payment gateway with the following details which include the 3D SECURE response
Field | Description | Data Type | Length |
---|---|---|---|
LPS_Transaction_id | Unique Identifier for the transaction generated by LPS | int | 4 |
Merchant_ref_number | Merchant reference number generated for the order | varchar | 50 |
PARes | 3D SECURE Authentication Response | Text |
All the above fields are mandatory. After authentication the details specified in Table 2B will be returned with a ResponseType of 0 or 1.
APPENDIX B: Additional Post Response Fields
Depending on the merchant's account setup status, LPS enterprise payment gateway can respond additional fields in addition to the fields specified in the "schedule 2B" which is the response to confirm the results of the transaction. These fields will NOT be enabled by default and cannot be guaranteed to be returned even if enabled. Depending on the outcome of the transaction and on the gateway on which the merchant is setup, these fields can be returned. LPS will continue to add these additional response fields as required in future releases/upgrades of the gateway. If merchants wish to get these fields returned, they would need to contact LPS to get their accounts configured.
Field | Description | Data Type | Length |
---|---|---|---|
AVS_Result | Customer address verification result for the address line1 value posted by merchant Values: Empty or 2: Not verified / Not checked; 1: Failed; 0: Successful | Int | 4 |
ZIP_Result | Customer Zip code verification result for the bill_zip value posted by merchant Values: Empty or 2: Not verified / Not checked; 1: Failed; 0: Successful. | Int | 4 |
CVN_Result | Result of CVC entered by customer Values: Empty or 2: Not verified / Not checked; 1: Failed; 0: Successful | Int | 4 |
CardBin | First 6 digit of customer card | Int | 6 |
CardLast4 | Last 4 digit of customer card | Int | 4 |
CardType | Card Scheme of customer card | String | 10 |
CardIssuingCountry | Country code of the Card Issuing country | String | 2 |
CardIssuer | Card Issuer name | String | 100 |
BankIdentifier | Identifier name of the bank which transaction processed | String | 10 |
IsEnrolled | Flag indicating either cardholder or the issuer participating in 3d secure program. Possible values: Y: Card enrolled N: Card not enrolled Empty or U: Unable to verify | varchar | 1 |
ECI | Electronic commerce indicator as returned by card schemes | varchar | 2 |
bank_code | Common LPS unique bank code indicating reason for transaction decline | String | 10 |
bank_message | bank code description | String | 100 |
LPS Hosted Payment System (HPS) is a simple integration method suitable for all e-commerce merchants. It allows real-time transaction processing and at the same time can remove the problems involved in collecting and storing of cardholder details on merchant systems. The HPS is fully secure and linked to the LPS enterprise payment gateway which provides sophisticated fraud and risk assessment in addition to authorising the transaction. The HPS uses HTML redirect messages to pass information between merchant e-commerce site and LPS.
This method does not involve installation of any files at merchant site and hence is very simple to implement. We provide a 256-bit SSL interface for secure transmission of data over the internet. A secure reporting and administration system to provide real time information is also made available to the merchant. This document serves to explains the technical integration requirements and procedures. It is of a technical nature and should be read as such.
HPS WORKFLOW
This integration method uses HTML forms to pass information to LPS payment gateway for payment processing. Merchants should create a purchase order form which describes the details of goods or service purchased by the customer
- When a shopper is ready to pay for their goods, the merchants website should submit the order details to our hosted payment page.
- 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
3D SECURE
The LPS HPS Payment page is integrated with 3dsecure transaction payment processing. The merchant can indicate if the transaction should be processed as 3DSecure by setting theappropriate flag when redirecting the customer to the HPS payment system.
SECURE CARD STORAGE SERVICES (SCSS)
LPS HPS system is also linked with “Secure Card Storage Services (SCSS)” system which will help merchants to comply with PCI DSS audit requirements by removing the necessity to store card details in their system. SCSS system reduces the overhead of storing, managing and transmitting credit card details and card holder data.
LPS HPS standard redirection post fields provide an option to flag a transaction to be part of SCSS and it automatically stores the card details and a corresponding token is returned in the response.
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 as per Schedule 2A.
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.
PAYMENT CALLBACK NOTIFICATION
LPS HPS system provides payment callback notification which effectively calls a listening URL at merchant server as soon as a transaction is completed. This helps merchants to get notified instantly of transaction statuses instead of relying on customer getting redirected back to their server along with status fields. Though this is optional, LPS strongly recommends merchants to enable this feature so that in cases where customer accidentally closes the browser after transaction is completed at LPS HPS, merchants are still able to update the account details before
customer returns to the site.
However, it is important for merchant NOT to have long business processes running on this listening URL. LPS HPS effectively waits only 30 seconds for the notification process to complete.
Merchant must quickly respond back the response string “RECEIVED OK” as soon as the notification is received. They should then proceed with updating their business process asynchronously. The reason being, since customer are effectively held in LPS HPS whilst notification is being delivered, it’s important for Merchant to respond quickly, so that we can then start the process of returning customer back to merchant website. If LPS HPS doesn’t get the response string within 30 seconds, it closes the connection and marks the notification as failed. However, we will still redirect the customer back to merchant site along with the usual response fields.
MULTILANGUAGE SUPPORT AND AMOUNT FORMAT
LPS HPS System support Multilanguage display wherein the payment page can be customised and displayed in the language of choice requested by merchant. The merchant can capture the culture locale of customer and accordingly can display the payment page. The language required to be displayed is to be sent as a request parameter when sending the initial form post request.
It is important to understand the implications of culture format on the amount field. Different cultures format the amount differently.
When sending the amount field on the initial post, it is very important that the amount is formatted as “culture independent” which uses decimal point for separating the major and minor units. For e.g. EUR 500.50, SEK 2575.75 etc.
Any request to use other languages on the payment page will be handled only after the request is received by the main payment form and thus it is important that when submitting the amount field, it is not formatted according any specific locale but always using decimal point with 2 decimal digits.
For more information on language supported, please refer to Appendix D.
FUNCTIONAL FLOW DIAGRAM
INTEGRATION IN DETAIL
NB. For questions or help at any stage of integration, please send an email to technical@lpsmail.com
OVERVIEW
Integrating with LPS Hosted Payment System is a very simple process. The points below describe the process of setting up an integration using a sample HTML form.
ORDER DETAILS TO LPS HPS
Order details submission from merchant to LPS HPS is simply a HTML form with a number of post
fields. It should contain a list of mandatory fields as specified in Appendix A “Authorisation Post
Fields & Response Fields”. It can also contain a range of optional fields. The merchant system
should “POST” this form to the LPS HPS URL when the customer has selected to proceed with
making payment on merchant site.
A sample order details submission form is given below:
<!--Authentication details-->
<input type="hidden" name="Merchant_User_Id" value="" />
<!--Customer Details-->
<input type="hidden" name="customer_firstname" value="" />
<input type="hidden" name="customer_lastname" value="" />
<input type="hidden" name="customer_phone" value="" />
<input type="hidden" name="customer_email" value=""/>
<input type="hidden" name="customer_ipaddress" value="" />
<!--Billing details-->
<input type="hidden" name="bill_firstname" value=""/>
<input type="hidden" name="bill_lastname" value=""/>
<input type="hidden" name="bill_address1" value="" />
<input type="hidden" name="bill_address2" value="" />
<input type="hidden" name="bill_city" value="" />
<input type="hidden" name="bill_country" value="" />
<input type="hidden" name="bill_state" value="" />
<input type="hidden" name="bill_zip" value="" />
<!--Delivery details-->
<input type="hidden" name="ship_to_address1" value="" />
<input type="hidden" name="ship_to_address2" value="" />
<input type="hidden" name="ship_to_city" value="" />
<input type="hidden" name="ship_to_country" value="" />
<input type="hidden" name="ship_to_phone" value="" />
<input type="hidden" name="ship_to_state" value="" />
<input type="hidden" name="ship_to_zip" value="" />
<input type="hidden" name="ship_to_method" value="" />
<input type="hidden" name="merchant_ref_number" value="" />
<!--Purchase details-->
<input type="hidden" name="Purchase_summary" Value="" />
<input type="hidden" name="currencydesc" Value="" />
<input type="hidden" name="amount" Value= "" />
<!--Security details-->
<input type="hidden" name="transactionkey" Value="" />
</form>
CARDHOLDER DETAILS CAPTURE
The HPS will display a payment page to the customer on successful redirection by the merchant using the order details form. The HPS will first authenticate to make sure the merchant is validated before allowing the payment page to be shown to customer. The customer will be able to enter the card details and to verify his purchase details. Finally, once all fields have been entered the customer will be able to make the payment.
PAYMENT PROCESSING STATUS
Once customer has clicked to pay for the transaction, the HPS system will send the request to the
Acquiring bank and wait for authorisation response. The customer browser will NOT be redirected,
and it will be server-to-server synchronous post request send to bank. Once receiving the
response, HPS will display the status of the transaction result
PAYMENT CALLBACK NOTIFICATION
This is a feature in HPS. If the merchant has opted for payment callback notification, the HPS will automatically call a URL on the merchant server and post transaction status fields. This will make sure the merchants back office system is updated directly on response from the HPS and is not reliant on customer returning to merchant website along with the status. Merchant notification URL should quickly respond with “RECEIVED OK” on receiving the notification. An email confirming the payment authorisation will also be sent out to the customers on all successful authorisation
requests.
CUSTOMER REDIRECTION BACK TO MERCHANT SITE
Once the transaction has been processed, the customer will be able to navigate back to merchant site from the HPS. The transaction status post fields will be posted back along with the redirection. This process also signals the end of transaction.
INFORMATION TO BE SUPPLIED BY MERCHANT
The following information is required:
- User name & Password:
The user name and password used for authentication on the return post from the LPS server to the merchant server. - IP address of server:
The IP address of the merchant web server needs to be provided. Please notify LPS before changing your IP address. - Technical Contact:
Technical contacts details. - Email address for Sending Email receipts:
Please provide the “sent from” e-mail address for e-mails sent to customers. i.e. orders@merchant.com. - Email Address for Receipt of Email receipts:
The merchant is Bcc’d on all receipts sent to customers. Please provide an e-mail address for these mails to be sent to. E.g.accounts@merchant.com - Secret key for generating one-way hash transaction key post field:
TESTING
Once the relevant information has been supplied to LPS, a test account will be created. The details of which will be returned by email to the merchant.
All test transactions should be sent to the URL as specified by LPS. The LPS test platform will respond, as it will do in a live environment.
The following rules must apply to testing:
- Use CC numbers as given in the test cards document.
- Use any expiry date but must be valid i.e. a date in the future
- Use any CVC code but must be valid i.e. three digits in length.
NB. No authorisations will be made on your credit card.
Once testing is complete, LPS will provide a live URL and/or live account details for you to finalise end-to-end testing with the bank. At this stage authorisations will be made on your card.
APPENDIX A: MERCHANT POSTED FIELDS TO LPS HOSTED PAYMENT SYSTEM
Field | Description | Required/ Optional | Data Type | Length |
---|---|---|---|---|
merchant_User_Id | Merchant’s user id 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 | MBill 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, DY: 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 | |
logoidUnique 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 |
surcharge | Surcharge processing fee | Optional | 2 decimal places | |
defaultview | Default payment option view to present to customer i.e., card or wallet. Valid values: ”card”, “wallet”Default: ”card” |
Optional | varchar | 6 |
APPENDIX B: POSTED FIELDS FROM LPS HOSTED PAYMENT SYSTEM TO ECOMMERCE SYSTEM
Field | Description | Data Type | Len |
---|---|---|---|
Merchant_User_Id | Merchant’s user id provided by LPS | Varchar | 50 |
Merchant_ref_number | Purchase order number | Varchar | 50 |
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 | 50 |
bill_lastname | Last name of the card holder | Varchar | 50 |
Purchase_summary | Summary details of the purchase details | Varchar | 1000 |
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 digits 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. | Date Time | |
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 |
APPENDIX C: POSTED FILEDS FROM LPS HOSTED PAYMENT SYSTEM TO REDIRECT URL
Field | Description | Data Type | Len |
---|---|---|---|
Merchant_User_Id | Merchant’s user id provided by LPS | Varchar | 50 |
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=” XXX” | XXX is the currency code you are transacting in i.e., USD, GBP, EUR | 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 digits 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. | Date Time | |
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 |
APPENDIX D: Language codes
Language Code | Language |
---|---|
fr | French |
de | German |
es | Spanish |
da | Danish |
fi | Finnish |
it | Italian |
sv | Swedish |
no | Norwegian |
APPENDIX E: LPS RESPONSE CODES
Code | Description | Reason |
---|---|---|
00 | Transaction Approved | |
05 | Transaction Rejected | Bank Declined |
90 | Communication Failure, Status Unknown | Contact LPS |
92 | Customer payment cancellation | Customer cancelled before payment |
1001 | Authentication failed for Merchant | Wrong id, password or IP supplied |
1002 | Merchant account inactive | Merchant account inactive |
1003 | Transaction amount exceeds the Per Transaction Limit. | Purchase amount is above a specified level |
1004 | Customer has exceeded allowed transactions number for 24 hours | Velocity control on purchases per day |
1005 | Code not in use | |
1006 | Invalid credit card number | Incorrect digit length for card type |
1007 | Invalid credit card expiry details | |
1008 | Luhn’s modulus check failed | Card number invalid |
1009 | Code not in use | |
1010 | Failed Country lookup | Bill country is not accepted by the bank |
1011 | Failed IP lookup | Customer IP is blocked |
1012 | Failed BIN lookup | Customer card BIN is blocked |
1013 | Bank rejection limit exceeded | |
1014 | Customer blocked | Customer details are blocked |
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 |
1022 | Account not enabled for HPS | Merchant account not enabled for HPS. |
5001 | 3D SECURE Authentication Failed | Customer card enrolled for 3D SECURE,but 3D SECURE authentication failed |
5002 | Intermediate 3d Secure Response code | Returned in schedule 2C Response if card is enrolled for 3d Secure |
5003 | Intermediate 3d Secure Response code** | Internal to LPS, indicating customer has completed authentication in ACS URL and landed back to LPS server |
5004 | Intermediate 3d Secure Response code** | Internal to LPS, indicating merchant has sent PARES to LPS Server |
5005 | 3dsecure processing only | Account supports 3d only, send 3dsecurecheck = Y |
5006 | Unable to verify PaRes as 3dsecure not available | Unable to verify PaRes as 3dsecure not available |
5007 | Invalid 3dsecure parameters | Invalid 3dsecure parameters |
5010 | Customer not enrolled or Issuer not participating in 3dsecure * | Card not enrolled |
9000 | Unexpected error | Incorrect data types, unknown error |
9001 | Missing required field | A transaction id of –1 will also be returned |
9002 | Code not in use | Code not in use |
9003 | Currency Block*** | Currency NOT enabled |
NB. Any response codes that are denoted by *** may not be activated for your account(s).
APPENDIX F: UNIQUE BANK CODE AND MESSAGE (BANK_CODE & BANK_MESSAGE)
LPS Unique Bank Code | LPS Bank Message |
---|---|
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 |
40 | Requested function not supported |
41 | Lost Card |
43 | Stolen Card |
51 | Insufficient funds |
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 |
75 | Allowable number of PIN-entry tries exceeded |
76 | Unable to locate previous message (no match on Retrieval Ref no) |
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 | Declined by Acquirer |
The SCSS system can be used as a standalone system wherein merchants can add cards and generate mapped tokens independently to transactions. Alternatively, the SCSS is also linked with both authorisation & credit systems of LPS payment gateway wherein the merchants have the option to store the card number and generate token at the point of transaction processing.
INTRODUCTION
Lateral Payment Solutions provide an online credit card/debit card processing solution for e‐commerce businesses. We provide a highly sophisticated fraud screening process to reduce the risk posed to online merchants in the ‘card not present’ environment. 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 explains the technical integration requirements and procedures. It is of a technical nature and should be read as such.
SECURE CARD STORAGE SERVICES (SCSS)
The SCSS system can be used as a standalone system wherein merchants can add cards and generate
mapped tokens independently to transactions. Alternatively, the SCSS is also linked with both
authorisation & credit systems of LPS payment gateway wherein the merchants have the option to
store the card number and generate token at the point of transaction processing.
SCSS AS A STANDALONE SYSTEM:
In the case of a standalone system, the merchants can send customer billing details with card number to generate a token.The system will store the details and will generate a unique token corresponding to the customer details linked specifically to the merchant.
The generated token can then be used in a transaction authorisation or OCT request by passing the
token details and specifically setting a flag to indicate to the LPS payment gateway that a card token
is used.
If a generated token details needs to be modified or to be validated again, the manage SCSS system
can be used.
Once a token is generated the system flow will be as follows:
a. Merchant sends normal authorisation request with SCSS flag set to D (implying already done).
b. If SCSS flag is set to D, then instead of card number, the SCSS token should be posted.
SCSS AS A MODULE TO AUTH/CREDIT SYSTEM:
LPS Authorisation API system is also linked with “Secure Card Storage Services (SCSS)” system which
will help merchants to comply with PCI DSS audit requirements by removing the necessity to store
card details in their system.
LPS standard integration post fields provides an option to flag a transaction to be part of SCSS and it automatically stores the card details and a corresponding token is returned on the response. In addition to storing the card details, SCSS system also keeps references of billing details. Hence card details and billing details need not be posted when sending a transactions request for authorisation using a previously generated card store token. SCSS system will automatically extract the card details and its corresponding billing details and will use it for authorisation request.
MANAGE SCSS SYSTEM:
In the event the billing details or card details needs to be updated, then merchants can make use of
manage SCSS subsystem API to update or delete the card details.
The way the system works is as follows:
- Merchants send normal authorisation request with SCSS flag set to Y.
- A unique identifier is generated and returned along with the authorisation response.
- The unique identifier acts as the reference for all subsequent transactions
- The identifier also references complete billing details of the card holder. Hence apart from the card The identifier also references complete billing details of the card holder. Hence apart from the card
Once a token is generated the system flow will be as follows:
- Merchant sends normal authorisation request with SCSS flag set to D (implying already done).
- If SCSS flag is set to D, then instead of card number, the SCSS token should be posted.
Points to note when posting token with SCSS flag set to D:
- When posting with SCSS flag set to D, the token must always be posted or else the transactions will be rejected with a prescreening code.
- If card number is also sent along with SCSS flag set to D and token also present, card number will be ignored.
- If billing details as well as other card details are posted along with token, the details posted in the request will take precedence over the details stored in SCSS for that token. Hence the posted values will be utilised for authorisation processing. However, note that the details stored in SCSS will not have been updated. If it should be updated, then a separate update request on manage SCSS system API should be sent.
The unique identifier is of no value to anyone who attempts to steal sensitive information because the secure credit card information can never be obtained by using the identifier. Technically, the identifier is a hash pointer reference to a token value which is then referenced to the card holder data in our data store. Hence our SCSS system provides robust security in protecting card holder information.
SCSS system comprises of four main building blocks:
a. Card Token Generation:
This phase consists of the generation of unique identifier for the card holder data. The unique
identifier is linked to the merchant account issued by LPS. In case of standalone SCSS system, if the
card number already exists on the system then the system will reject, and new token generation will
fail. However, in case of SCSS linked to authorisation, if an existing card number is used, then the same
identifier will be returned if the card details has been previously posted by the client and an identifier
generated previously.
b. Card Token Details Update:
This phase consists of an independent API which will enable merchants to be in control of their secure
card data. In the event the card details need updating, for example if the expire dates have changed
due to card renewal or the customer’s address details have changed. The merchants can send the
token as well the new details which will be automatically updated into the SCSS system. All the usual
process of validating the credentials will be necessary before the details can be updated.
c. Card Token Details Query:
This phase is similar to “Token Update” phase, except that it will just return the details stored for that
token rather than altering any information. This will be useful if the merchants wish to recheck the
details stored in our SCSS system before posting transactions.
d. Card Token Delete:
If customer details are to be removed due to various reasons such as customer has closed their
account or audit retention policy or customer deemed fraudulent etc, merchants can send the “Token
Delete” request and the card details will be completely removed and cannot be used further.
APPENDIX A: NEW CARD TOKEN GENERATION
A1. POSTING PARAMETERS
Form Field | Description | Details |
---|---|---|
Merchant_id | LPS Provided value. | Mandatory |
merchantpwd | Password used for authenticating the refund account. | Mandatory |
AccountType | Type of account. Valid values are: a.A:Auth account(default); b.R:Recredit account; |
Mandatory |
RequestType | SCSS manage card token request type. It should be one of the following: SCSS_A : Adding card details; |
Mandatory |
Customer_ccno | Customer card number. | Mandatory |
Bill_firstname | Billing customer first name. | Mandatory |
Bill_lastname | Last name of the card holder. | Mandatory |
Bill_address1 | First line of street address for billing the CC. | Mandatory |
Bill_address2 | Second line of street address for billing the CC. | Optional *** |
Bill_city | City for the billing the credit card. | Mandatory |
Bill_state | State for the billing the credit card. | Optional *** NOTE: If Bill_country is US or CA,Bill_state must be sent as well. |
Bill_country | Country for the billing the credit card, (2‐digit ISO country Code). | Mandatory |
Bill_zip | Postal code for the billing the credit card. | Mandatory |
Customer_cc_type | Credit Card type of the customer either VISA, MAST, SWITCH, SOLO, DELTA, AMEX, MAESTRO (Case Sensitive, upper case only) | Mandatory |
Customer_cc_expmo | Expiration month(mm) of the credit card. | Mandatory |
Customer_cc_expyr | Expiration year(yyyy) of the credit card. | Mandatory |
Customer_dc_startmo | Debit card start month or valid from month (mm). | Optional ***** NOTE: If this value is sent then Customer_cc_startyr must be sent as well. |
Customer_dc_startyr | Debit card start year or valid from year (yyyy). | Optional ***** NOTE: If this value is sent then Customer_cc_startmo must be sent as well. |
Customer_dc_issue | Debit card issue number. | Optional *** |
A2. RESPONSE PARAMETERS
Form Field | Description |
---|---|
ResponseType | Response type code. See C1 below |
RequestType | Unique code for the request process |
Requestid | Unique Identifier for the request generated by LPS |
CrdStrg_Token | SCSS system unique card identifier sent in request |
Bill_firstname | First name of the card holder stored for the unique identifier sent. |
Bill_lastname | Last name of the card holder stored for the unique identifier sent. |
Bill_address1 | Billing customer first line of address stored for the unique identifier sent |
Bill_address2 | Billing customer second line of address stored for the unique identifier sent |
Bill_city | Billing customer city stored for the unique identifier sent. |
Bill_state | Billing customer state stored for the unique identifier sent. |
Bill_country | Billing customer country code stored for the unique identifier sent. |
Bill_zip | Billing customer postal code / zip code stored for the unique identifier sent. |
CardBin | Bin number of the card stored for the unique identifier sent. |
CardLast4 | Last 4 digit of the card number stored for the unique identifier sent. |
Customer_cc_type | Credit Card type stored for the unique identifier sent. |
Customer_cc_expmo | Expiration month(mm) of the credit card stored for the unique identifier sent. |
Customer_cc_expyr | Expiration year(yyyy) of the credit card stored for the unique identifier sent. |
Customer_dc_startmo | Debit card start month or valid from month (mm) stored for the unique identifier sent. |
Customer_dc_startyr | Debit card start year or valid from year (yyyy) stored for the unique identifier sent |
Customer_dc_issue | Debit card issue number stored for the unique identifier sent. |
Status | Status code to indicate the request status. See C2 below |
Note:
The fields in blue will always be returned.
The fields in green will be returned if request is successful, i.e., Status=0
APPENDIX B: MANAGING CARD TOKENS FROM LPS SCSS SYSTEM
When merchants process recredits using SCSS system and generate card tokens corresponding to
the customer card details, they can use the token as the reference for all subsequent transactions
for that customer. The SCSS system provides two layers of encapsulation and hence it will not be
possible to derive card details from token in anyway. To provide options for merchants to manage
the details of card tokens, LPS SCSS system provides API which will enable merchants to
automatically manage their card tokens. For example, if the expiry dates need to be changed due
to card renewal it will not be necessary to post the whole details, but just the new changed details
to the manage SCSS API functionality which will selectively update required information.
Currently LPS SCSS manage API provides three functionalities:
- Querying of card details linked to a token;
- Updating of card details linked to a token;
- Deletion of a token;
B1. POSTING PARAMETERS
Form Field | Description | Details |
---|---|---|
Merchant_id | LPS Provided value | Mandatory |
merchantpwd | Password used for authenticating the refund account. | Mandatory |
AccountType | Type of account. Valid values are: a. A: Auth account (default); b. R: Recredit account; |
Mandatory |
RequestType | SCSS manage card token request type. It should be one of the following: SCSS_Q: Querying card token details; SCSS_U: Update card token details; SCSS_D: Delete card token details; |
Mandatory |
CrdStrg_Token | Unique card details identifier from LPS SCSS system | Mandatory |
Bill_firstname | Billing customer first name | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Bill_lastname | Last name of the card holder | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Bill_address1 | First line of street address for billing the CC | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Bill_address2 | Second line of street address for billing the CC | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Bill_city | City for the billing the credit card | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Bill_state | State for the billing the credit card | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Customer_cc_type | Credit Card type of the customer either VISA, MAST, SWITCH, SOLO, DELTA, AMEX, MAESTRO (Case Sensitive, upper case only) | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. |
Customer_cc_expmo | Expiration month(mm) of the credit card | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. NOTE: If this value is sent then Customer_cc_expyr must be sent as well |
Customer_cc_expyr | Expiration year(yyyy) of the credit card | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. NOTE: If this value is sent then Customer_cc_expmo must be sent as well. |
Customer_dc_startmo | Debit card start month or valid from month(mm) | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated. NOTE: If this value is sent then Customer_cc_startyr must be sent as well. |
Customer_dc_issue | Debit card issue number | Optional *** To be sent only for RequestType SCSS_U and if value need to be updated |
B2. RESPONSE PARAMETERS
Form Field | Description |
---|---|
ResponseType | Response type code. See C1 below. |
RequestType | Unique code for the request process |
Requestid | Unique Identifier for the request generated by LPS |
CrdStrg_Token | SCSS system unique card identifier sent in request |
Bill_firstname | First name of the card holder stored for the unique identifier sent. |
Bill_lastname | Last name of the card holder stored for the unique identifier sent |
Bill_address1 | Billing customer first line of address stored for the unique identifier sent. |
Bill_address2 | Billing customer second line of address stored for the unique identifier sent. |
Bill_city | Billing customer city stored for the unique identifier sent. |
Bill_state | Billing customer state stored for the unique identifier sent. |
Bill_country | Billing customer country code stored for the unique identifier sent. |
Bill_zip | Billing customer postal code / zip code stored for the unique identifier sent. |
CardBin | Bin number of the card stored for the unique identifier sent. |
CardLast4 | Last 4 digit of the card number stored for the unique identifier sent |
Customer_cc_type | Credit Card type stored for the unique identifier sent. |
Customer_cc_expmo | Expiration month(mm) of the credit card stored for the unique identifier sent. |
Customer_cc_expyr | Expiration year(yyyy) of the credit card stored for the unique identifier sent. |
Customer_dc_startmo | Debit card start month or valid from month (mm) stored for the unique identifier sent. |
Customer_dc_startyr | Debit card start year or valid from year (yyyy) stored for the unique identifier sent |
Customer_dc_issue | Debit card issue number stored for the unique identifier sent. |
Status | Status code to indicate the request status. See C2 below. |
Note: The fields in blue will always be returned. The fields in green will be returned if request is successful, i.e., Status=0
APPENDIX C: RESPONSE CODES
C1. RESPONSETYPE CODE
Description | Code |
---|---|
SCSS manage card token API response | 7 |
C2. STATUS CODE
Description | Code |
---|---|
0 | Request completed successfully |
1001 | User authentication failed, or account not enabled for SCSS manage card token processing |
1002 | Merchant account inactive. |
9000 | Unexpected system error |
9001 | Mandatory field missing |
9009 | Merchant account not enabled for SCSS |
9010 | SCSS unique identifier incorrect or not found. |
9011 | Token creation failed as card number already exists in SCSS. |
Examples return response
1. sample response for querying existing the card token details.
ResponseType=7&RequestType=SCSS_Q&Requestid=1003&Bill_firstname=Ian&Bill_lastname=Vidamour&Bill_address1=34,Millersstreet&Bill_address2=Northlaneroad&Bill_city=London&Bill_state=Manchester&Bill_country=GB&Bill_zip=SE1&CardBin=420000&CardLast4=0000&Customer_cc_type=VISA&Customer_cc_expmo=11&Customer_cc_expyr=2011&Customer_dc_startmo=&Customer_dc_startyr=&Customer_dc_issue=&CrdStrg_Token=0x1375bb33612cd9cb18c52f33e748f4db&Status=0
APPENDIX D: SECURE CARD DATA SFTP TRANSFER
As an alternative option to generate card tokens, merchants can also use our secure card data SFTP transfer facility, wherein they will be able to bulk import customer card details. The generated tokens corresponding to the imported data will be appended to the file and returned through the same channel. On the outbound file, the original full details will be stripped out for security.
This feature provides a convenient way to securely generate tokens for existing payment instructions already present in another secure system and where API call additional development is an overhead.
The preferred format of file import will be csv and the column header and values are as follows.
Form Field | Description | Details |
---|---|---|
Customer_ccno | Customer card number. | Mandatory |
Bill_firstname | Billing customer first name | Mandatory |
Bill_lastname | Last name of the card holder | Mandatory |
Bill_address1 | First line of street address for billing the CC | Mandatory |
Bill_address2 | Second line of street address for billing the CC | Optional |
Bill_city | City for the billing the credit card | Mandatory |
Bill_state | State for the billing the credit card | Optional *** NOTE: If Bill_country is US or CA,Bill_state must be sent as well |
Bill_country | Country for the billing the credit card, (2 digit ISO country Code) | Mandatory |
Bill_zip | Postal code for the billing the credit card | Mandatory |
Customer_cc_type | Credit Card type VISA, MAST, DELTA, MAESTRO (Case Sensitive, upper case only) | Mandatory |
Customer_cc_expmo | Expiration month(mm) of the credit card | Mandatory |
Customer_cc_expyr | Expiration year(yyyy) of the credit card | Mandatory |
UniqueIdentifier | Unique identifier for the row | Mandatory Note: Must be unique per file |
Custom1 | Additional custom parameter | Optional |
Custom2 | Additional custom parameter | Optional |
INTRODUCTION
The purpose of this technical specification is to give an in‐depth description of the Lateral Payment
Solutions (LPS) Enterprise Payment Gateway – Card Processing API. LPS Card Gateway is a proprietary
platform for processing payments online. It exposes multiple API’s for performing various types of
online financial transactions. This specific document explains the Card Processing API which enables
payments online using debit and credits cards.
The platform data exchange is a secure and yet simple name/value pair data format based on HTML POST form‐URL encoded data. The API operates on a securely authenticated request / response method where an authorised client instructs the gateway to perform an operation and the gateway replies back with the status of the operation.
TRANSACTION FLOW DIAGRAM
A simple transaction process flow is depicted in fig‐1 below.
-
CUSTOMER TO MERCHANTS WEBSITE
Customer confirms payment request in a client app or browser securely submitted back to merchant web server;
-
MERCHANTS SERVER TO LPS SERVER
Opens web request containing all the necessary card data and card holder details submitted over secure encrypted SSL;
-
LPS SERVER TO MERCHANTS SERVER
LPS gateway performs data, velocity and fraud checks. If any fail, the transaction process is stopped and a failure code is returned;
-
LPS SERVER TO BANK
The transaction after risk/fraud screening is sent from the LPS gateway to the bank and receives the response back from bank;
-
LPS TO MERCHANTS SERVER
LPS sends the bank response details to merchant server;
-
MERCHANT SERVER TO END USER
Merchant updates database and notifies customer of success or failure of the transaction;
-
LPS SERVER TO END USER
LPS can send an e‐mail receipt to customers where the transaction is successful. Merchant can receive a copy of the e‐mail for customer support or account management purposes;
Card Gateway – API
The LPS Enterprise Payment Gateway – Card Processing API provides a real‐time, synchronous
interface to execute debit / credit card transactions. Transaction requests are sent online, in real‐time,using HTTPS (Hypertext Transfer Protocol Secure).
Addresses
Integration Endpoint URL:
- Note: This will be issued along with account credentials after approval.
Production Endpoint URL:
- Note: This will be issued along with account credentials after approval.
HTTP Specification
- Protocol: https
- Method: POST
- Content‐Type: [application/www‐form‐urlencoded] or [application/x‐www‐formurlencoded]
Security/Authentication
All HTTP requests must be sent over SSL, a secure channel should be used. The LPS Payment Gateway
does not authenticate the SSL session using a certificate from the client, thus a non‐authenticated SSL
session is used. Instead the client is first authenticated using source IP plus a secondary authentication
check using the account credentials verification which is sent in the request payload is used to verify
before processing.
Integration Steps
Overview
The merchant’s server makes a request through a HTTP POST over a secure SSL connection and
receives the result of the processing request as the response to the POST request. The request payload
carries the necessary details for processing the payment request and the response contains
parameters whose values represent the result of the payment request.
MERCHANT SERVER TO LPS SERVER
To process a payment, request all mandatory fields found in Schedule 2A need to be posted via SSL to
LPS payment gateway URL which will be provided by LPS. All communication between LPS and the
merchant is via SSL only. The merchant server makes a request through an HTTP POST to the LPS
server, LPS receives the payment request, performs fraud screening and returns to the merchant a
result of either fraudscreening (failed) or the bank response (if passed fraud screening).
Points to note about the POST to LPS
- LPS provide the merchant_user_id and merchantpwd
- Replace spaces in the user details with +. You do not however have to do a full URL‐encode of the request string.
- Post amounts as 2 decimal places only. Applies to amount field. i.e. 125.03
- A payment request will not be accepted for processing if the mandatory fields in Schedule 2A are missing.
- If a payment request does not contain all the mandatory fields then the system will return the fraudscreening_status value of 9001 and an LPS_Transaction_id of –1.
LPS SERVER BACK TO MERCHANT SERVER
Using the synchronous method your server opens an SSL protected connection to the LPS server and
awaits a HTTP response from the server. If the data is sent successfully (HTTP Status 200) you need to
retrieve the Response to the payment request. This will be returned as a query string with the variables
described in Schedule 2B. Two response types may be returned; either fraud screening failed or bank
transaction status.
Points to note about the LPS return POST
- LPS generates a unique transaction id for each transaction. This is returned to the merchant’s server along with the merchant reference number.
- Merchants must use the LPS_transaction_id for any transaction enquiries with LPS
- LPS response includes an id and password in the string for merchant server authentication purposes; this is the user name & password you supply to LPS and is different from the LPS supplied pair in the original post to Schedule 2A.
- If mandatory fields are missing then the system will not accept the transaction for processing. The details will be logged and the system will return a Fraudscreening_status of 9001 & an LPS_transaction_id of –1.
LPS TO END USER
LPS send an e‐mail receipt to the customer for each authorised payment request. The receipt contains
all transaction details and an email address for customer enquiries. The email is sent from the
merchants chosen address and not from LPS e.g. support@merchant.com. The merchant can receive
a copy of the receipt sent to the customer.
Account Setup Process
Once the necessary due diligence has been completed on your application by the LPS compliance team, a test MID will be approved. To setup the test MID, merchants will be asked to provide a set of details which are required by the LPS technical team. This will be communicated at the time of MID setup
Testing & QA
As part of integration verification, merchants will be required to perform a set of test transactions as listed out by the LPS integrations verification team and submit the results. This will be validated and if any tests are not found to be satisfactory, the merchants will be requested to perform the test cases again until all outstanding issues are cleared.
Once the integration is signed off, a live production MID approval will need to be obtained.
Going Live
On approval from bank, the live MID will be loaded into LPS payment gateway by LPS tech team and connectivity tests performed to ensure the transactions are processed correctly. A new production account will be issued to merchant which they can seamlessly swap their test account credentials for and initiate live tests. The merchants will need to submit live tests using real card details before they can switch their production traffic to LPS payment gateway.
Technical Support
At any stage during the integration process or beyond, merchants will be able to contact the LPS tech team using a dedicated support email. This email is automatically linked to a ticket queuing system which will generate a support ticket on merchant’s behalf and assigned to LPS Level 1 support team.
APPENDIX A: AUTHORISATION POST FIELDS & RESPONSES Schedule 2A – LPS POST Specification for Payment Request using CARD
Field | Description | Required/ Optional | Data Type | Len |
---|---|---|---|---|
merchant_User_Id | Merchant’s user id provided by LPS | Required | String | 50 |
merchantpwd | Merchant’s PWD provided by LPS | Required | String | 50 |
merchant_ipaddress | Static IP address of the Merchant server | Required, as provided by merchant | ||
customer_firstname | First name of the customer | Required | String | 50 |
customer_lastname | Last name of the customer | Required | String | 50 |
customer_phone | Telephone number of the customer | Required | String | 50 |
customer_email | Email address of the customer | Required | String | 50 |
customer_ipaddress | IP address of the customer | Required | String | 50 |
bill_firstname | First name of the card holder | Required | String | 50 |
bill_lastname | Last name of the card holder | Required | String | 50 |
bill_address1 | Cardholder first line address as registered in card | Required | String | 100 |
bill_address2 | Cardholder second line address as registered in card | Required | String | 100 |
bill_city | Cardholder city as registered in card | Required | String | 50 |
bill_country | Cardholder country as registered in card,specified in 2‐digit ISO country code | Required | See ISO Codes | |
bill_state | Cardholder city as registered in card | Optional | See ISO Codes | |
bill_zip | Cardholder zip / postcode as registered in card | Required | String | 50 |
dateregistered | Customer registered date with merchant | Optional | String | 50 |
customer_cc_expmo | Card expiration month (mm) | Required | numeric | 2 |
customer_cc_expyr | Card expiration year (yyyy) | Required | numeric | 50 |
customer_cc_number | Card number / PAN | Required | numeric | 19 |
customer_cc_type | Card type /card schemes.Allowed values:VISA,MAST,SWITCH,SOLO,DELTA,AMEX,MAESTRO (Case Sensitive, upper case only) | Required | numeric | 10 |
customer_cc_cvc | Card verification code (CVC/CVV) | Required | numeric | 3 |
customer_bank_name | Name of issuing bank of customer card | Optional | ||
ship_to_address1 | First line of the street address to ship the order | Optional | String | 50 |
ship_to_address2 | Second line of the street address to ship the order | Optional | String | 50 |
ship_to_city | City to which the ship the order | Optional | String | 50 |
ship_to_country | Country to which the ship the order,specified in 2‐digit ISO country code | Optional | String | 2 |
ship_to_phone | Telephone number of shipping destination | Optional | String | 50 |
ship_to_state | State or province to which the ship the product | Optional | String | 50 |
ship_to_zip | Zip / Postal code to which to the ship the product | Optional | String | 50 |
ship_to_method | Shipping method | Optional | String | 50 |
merchant_ref_number | Merchant generated reference number,ideally to be unique | Required | String | 50 |
currencydesc | Transaction processing currency,specified as 3‐digit ISO Currency code | Required | See ISO Codes | |
amount | Purchase Amount – 2 decimal places only | Required | 2 decimal places | |
fees | Merchant processing fee | Optional | 2 decimal places | |
currencydesc | Transaction processing currency,specified as 3‐digit ISO Currency code | Required | See ISO Codes | |
scsscheck | Flag to indicate if SCSS is required. Values: Y, N Y: Yes; N: No; [default if not sent] |
Conditional (Only if SCSS options are required). | String | 1 |
RecurringCheck | Flag to indicate if transaction to be processed as recurring. Values: Y, N Y: Yes; N: No; [default if not sent] |
Conditional (Only if recurring). |
String | 1 |
motocheck | Flag to indicate if transaction to be processed as MOTO. Values: Y, N Y: Yes; N: No; [default if not sent] |
Conditional (Only if MOTO). |
String | 1 |
SAMPLE REQUEST STRING
Merchant_User_Id=test_merchant_account&merchantpwd=te****s!&merchant_ipaddress=1.1.1.1&customer_firstname=Thirlok&customer_lastname=shankar&customer_phone=1236798848&customer_email=testuser%40lateralpaymentsolutions.com&customer_ipaddress=2.2.2.2&bill_firstname=Thirlok&bill_lastname=Shankar&Bill_address1=34%2c+Millers+street&bill_address2=North+lane+road&bill_city=London&bill_country=GB&bill_state=Manchester&bill_zip=SE1&customer_cc_expmo=11&customer_cc_expyr=2018&customer_cc_number=420000######0000&customer_cc_type=VISA&customer_cc_cvc=000&merchant_ref_number=lpstest123¤cydesc=GBP&amount=0.10
Schedule 2A (T)– LPS POST Specification for Payment Request using CARD TOKEN
Field | Description | Required/ Optional | **Data Type | Len** |
---|---|---|---|---|
merchant_User_Id | Merchant’s user id provided by LPS | Required | String | 50 |
merchantpwd | Merchant’s PWD provided by LPS | Required | String | 50 |
merchant_ipaddress | Static IP address of the Merchant server | Required, as provided by merchant | ||
customer_firstname | First name of the customer | Required | String | 50 |
customer_lastname | Last name of the customer | Required | String | 50 |
customer_phone | Telephone number of the customer | Required | String | 50 |
customer_email | Email address of the customer | Required | String | 50 |
customer_ipaddress | IP address of the customer | Required | String | 50 |
bill_firstname | First name of the card holder | Required | String | 50 |
bill_lastname | Last name of the card holder | Required | String | 50 |
bill_address1 | Cardholder first line address as registered in card | Required | String | 50 |
bill_address2 | Cardholder second line address as registered in card | Optional | String | 100 |
bill_city | Cardholder city as registered in card | Required | String | 50 |
bill_country | Cardholder country as registered in card,specified in 2‐digit ISO country code | Required | See ISO Codes | |
bill_state | Cardholder state as registered in card,if applicable | Optional | See ISO Codes | |
bill_zip | Cardholder zip / postcode as registered in card | Required | String | 50 |
dateregistered | Customer registered date with merchant | Optional | String | 50 |
CrdStrg_Token | Unique card details identifier from LPS SCSS system | Required | String | 100 |
customer_cc_cvc | Card security code / CVN / CVV2 | Required | numeric | 3 |
ship_to_address1 | First line of the street address to ship the order | Optional | String | 50 |
ship_to_address2 | Second line of the street address to ship the order | Optional | String | 50 |
ship_to_city | City to which the ship the order | Optional | String | 50 |
ship_to_country | Country to which the ship the order,specified in 2‐digit ISO country code | Optional | String | 2 |
ship_to_phone | Telephone number of shipping destination | Optional | String | 50 |
ship_to_state | State or province to which the ship the product | Optional | String | 50 |
ship_to_zip | Zip / Postal code to which to the ship the product | Optional | String | 50 |
ship_to_method | Shipping method | Optional | String | 50 |
merchant_ref_number | Merchant generated reference number,ideally to be unique | Required | String | 50 |
currencydesc | Transaction processing currency,specified as 3‐digit ISO Currency code (for e.g. USD,GBP etc) | Required | See LPS Standard Codes | |
amount | Purchase Amount – 2 decimal places only | Required | 2 decimal places | |
fees | Merchant processing fee | optional | 2 decimal places | |
scsscheck | Flag to indicate if SCSS is required. Values: Y, N Y: Yes; N: No; [default if not sent] |
Conditional (Only if SCSS options are required). | String | 1 |
RecurringCheck | Flag to indicate if transaction to be processed as recurring. | Conditional (Only if recurring) | String | 1 |
Values:Y,N Y: Yes; N: No; [default if not sent] |
||||
motocheck | Flag to indicate if transaction to be processed as MOTO. Values: Y, N Y: Yes; N: No; [default if not sent] |
Conditional (Only if MOTO) |
String | 1 |
SAMPLE REQUEST STRING
Merchant_User_Id=lps_Account&merchantpwd=***&merchant_ipaddress=1.1.1.1&customer_
firstname=Thirlok&customer_lastname=Shankar&customer_phone=1236798848&customer_email=
testuser%40lateralpaymentsolutions.com&customer_ipaddress=2.2.2.2&bill_firstname=Thirlok&bill
_lastname=Shankar&Bill_address1=Southbank+house&bill_address2=Balck+Prince+road&bill_city=L
ondon&bill_country=GB&bill_state=Greater+London&bill_zip=SE1&customer_cc_expmo=11&custo
mer_cc_expyr=&customer_cc_cvc=000&merchant_ref_number=lpstest123¤cydesc=GBP
&amount=0.10&scsscheck=D&CrdStrg_Token=0xda749cc60382e4af0cfb7e4dbb2ab33139840443
Schedule 2B – LPS POST Specification for Payment Response
Field | Description | Datatype | Length |
---|---|---|---|
ResponseType | Transaction response type | Numeric | 2 |
LPS_transaction_id | Unique Identifier for the transaction generated by LPS | Numeric | 10 |
Merchant_ref_number | Merchant reference number generated for the order | String | 50 |
Lpsid | Response authentication id, as provided by merchant | String | 50 |
Lpspwd | Response authentication password, as provided by merchant | String | 50 |
Fraudscreening_status | Fraud screening response code from LPS | Numeric | 4 |
Bank_status | Status of the transaction at the bank | Numeric | 4 |
Amount | Transaction amount | 2 decimal places | |
Currency | Transaction currency as per ISO code | String | 4 |
Bank_transaction_no | Unique Bank ID | String | 50 |
Bank_authorisation_no | Bank authorization number, save for your records | String | 50 |
Bank_date | Transaction date | String | 50 |
Bank_time | Transaction time | String | 50 |
Bank_original_code | Original Bank code (currently unused, always empty) | String | 255 |
Note
- The entire Schedule 2B is always returned regardless of the transaction status.
- The variables highlighted above in blue are always returned with values regardless of the ResponseType.
- With a ResponseType=0 (indicating it’s a fraudscreening response) then the variables in green will be blank. With a ResponseType=1 (indicating it’s a bank response) then all variables will be returned with appropriate values.
SAMPLE RESPONSE STRINGS
Result of fraudscreening failed response (ResponseType=0)
ResponseType=0&LPS_merchant_account=67392733&Merchant_ref_number=*******&Lpsid=test &Lpspwd=test&Fraudscreening_status=1003&Bank_status=&Amount=2&Currency=USD&Bank_tran saction_no=&Bank_authorisation_no=&Bank_date=12/05/2017&Bank_time=14:06&Bank_original_c ode=
Result of bank transaction response (ResponseType=1)
Accepted Sample
ResponseType=1&LPS_transaction_id=67392741&Merchant_ref_number=lpstest123&Lpsid=test&L
pspwd=test&Fraudscreening_status=0&Bank_status=00&Amount=2&Currency=GBP&Bank_transacti
on_no=67392741&Bank_authorisation_no=test&Bank_date=12/05/2017&Bank_time=14:06&Bank_
original_code=
Rejected Sample
ResponseType=1&LPS_transaction_id=40473433&Merchant_ref_number=lpstest123&Lpsid=test&L
pspwd=test&Fraudscreening_status=0&Bank_status=05&Amount=0.1&Currency=GBP&Bank_transa
ction_no=678691488&Bank_authorisation_no=&Bank_date=11/06/2012&Bank_time=12:08&Bank_
original_code=&AVS_Result=0&ZIP_Result=1&CVN_Result=0&CardBin=420000&CardLast4=2345
APPENDIX B: ADDITIONAL POST RESPONSE FIELDS
Depending on the merchant’s account setup status, LPS enterprise payment gateway can respond with
extra fields in addition to the fields specified in the “schedule 2B”, which is the response to confirm
the results of the transaction. These fields will NOT be enabled by default and cannot be guaranteed
to be returned even if enabled. Depending on the outcome of the transaction and on the Acquiring
bank on which the merchant is setup, these fields can be returned. LPS will continue to add these
additional response fields as required in future releases/upgrades of the gateway. If a merchant would
like to receive these additional fields they should contact LPS.
Field | Description | Data type | Length |
---|---|---|---|
AVS_Result | Customer Address verification result for the address line1, refer codes for possible values | Numeric | 4 |
ZIP_Result | Customer Zip code verification result for the bill_zip value posted,refer codes for possible values | Numeric | 4 |
CVN_Result | Result of CVC entered by customer, refet codes for possible values | Numeric | 4 |
CardBin | First 6 digit of customer card | Numeric | 6 |
CardLast4 | Last 4 digit of customer card | Numeric | 4 |
CardType | Card Type of customer card, refer codes below | String | 10 |
CardIssuingCountry | Country code of the Card Issuing country, in 2‐digit ISO format | String | 2 |
CardIssuer | Card Issuer name | String | 100 |
BankIdentifier | Bank through which transaction was processed | String | 10 |
bank_code | Common LPS unique bank code indicating reason for transaction decline | String | 10 |
bank_message | Bank code description | String | 100 |
APPENDIX C: LPS RESPONSE CODES
"ResponseType" response Codes
Description | Code |
---|---|
Fraud screening response | 0 |
Bank transaction response | 1 |
“Fraudscreening_status” response codes
Code | Description | Reason |
---|---|---|
0 | Fraudscreening passed | |
1001 | Authentication failed for Merchant | Wrong id, password or IP supplied |
1002 | Merchant account inactive | Merchant account inactive |
1003 | Transaction amount exceeds the per Transaction Limit. | Transaction is greater than the allowed value for the day |
1004 | Customer has exceeded allowed transactions number for 24 hours | TVelocity 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’. |
1020 | MOTO block | MOTO not enabled. |
1021 | Recurring block | Recurring not enabled. |
9000 | Unexpected error | System / Unknown Error. |
9001 | Missing required field. | Customer IP not in allowed list of IPs’. |
9002 | Mastercard transactions blocked *** | MOTO not enabled. |
9003 | Currency Block*** | Currency NOT enabled. |
9004 | Bank gateway not enabled. | Bank gateway not enabled. |
*** These codes may not be active for your account(s)
“Bank_status” response codes
Description | Code |
---|---|
Accepted | 00 |
Rejected | 05 |
Communication failure | 90 |
CVN/AVS/ZIP (“CVN_Result”, “AVS_Result” & “ZIP_Result”) response codes
Description | Code |
---|---|
Data matched | 0 |
Data not matched | 1 |
Not verified by bank | 2 |
NB. The CVN/AVS/ZIP result fields above can also be returned blank or empty which should be treated as “Not verified by bank”
BankIdentifier codes (“BankIdentifier”)
This will be confirmed at the time of going live after MID approval with the respective acquiring bank.
Unique Bank code and Message (“bank_code” & “bank_message”)
LPS Unique Bank Code | 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 honor |
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 |
40 | Requested function not supported |
41 | Lost Card |
43 | Stolen Card |
51 | Insufficient funds |
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 |
75 | Allowable number of PIN‐entry tries exceeded |
76 | Unable to locate previous message (no match on Retrieval Reference number) |
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 |
105 | Host timeout |
106 | Insufficient terminals |
301 | Declined by Acquirer |
APPENDIX D: TRANSACTION STATUS CHECK API
LPS Payment Gateway – card processing provides an API call to check the status of transactions sent
for authorisation. This API call can be used in the event of communication failures. The API provides
the option to query the status soon after the transaction is submitted. Due to security reasons, there
is a threshold of ten minutes within which the same transaction should not be queried, or else a
prescreening code will be returned.
Schedule 2G – LPS POST Specification for Status Check Request
Field | Description | Required | Data type | Length |
---|---|---|---|---|
merchant_user_id | Merchant user id provided by LPS | Required | String | 50 |
merchantpwd | Merchant password provided by LPS | Required | String | 50 |
merchant_ipaddress | Static IP address of the Merchant server | Required | ||
merchant_ref_number | Original merchant reference of transaction being checked | Required | String | 50 |
currencydesc | Currency of transaction being checked, in 2‐digit ISO code format | Required | String | 3 |
amount | Purchase Amount of transaction being checked – 2 decimal places only | Required | numeric | |
lps_transaction_id | Original transaction unique identifier generated by LPS | Optional | Numeric | 10 |
realtime | Flag to indicate if transaction processed within last 60 mins. Values: Y, N Y: Yes; (recent transactions within last 60 mins) N: No; [past transactions processed 1 hour before, if not provided this will be the default] |
Optional | String | 1 |
Schedule 2H – LPS POST Specification for Status Check Response
Field | Description | Data type | Length |
---|---|---|---|
responsetype | Transaction response type, see codes below | Numeric | 4 |
authstatuscheck_id | Unique Identifier for the Status check request generated by LPS | ||
merchant_ref_number | Merchant reference number sent along with status check request | String | 50 |
amount | Transaction amount of transaction being checked | numeric | |
currency | Transaction currency of transaction being checked,in 2‐digit ISO code format | String | 4 |
authstatuscheck_status | Pre‐screening response code, see codes below | Numeric | 4 |
lps_transaction_id | Unique LPS transaction id of the transaction being checked | Numeric | 4 |
transaction_status | Transaction status code – see codes below | Numeric | 4 |
bank_transaction_no | Unique Bank ID | String | 50 |
bank_authorisation_no | Bank authorization number, save for your records | String | 50 |
transactiondate | Date and time of transaction processed | String | 255 |
crdstrg_token*** | Unique card token generated for the card posted | String | 100 |
*** Only returned if transaction being checked is a token transaction
Status Check “responsetype” response codes
Description | Code |
---|---|
Pre‐screening response | 0 |
Status check response | 1 |
Status Check “authstatuscheck_status” response codes
Code | Description | Reason |
---|---|---|
0 | Prescreening passed | |
1001 | Authentication failed for Merchant | Wrong id, password or IP supplied |
1002 | Merchant account inactive | Merchant account inactive |
6003 | Merchant account inactive | Specified fields merchant ref number / currency /amount not matched or transactions not found. |
6009 | Repeated request within 10 mins | Repeated status check query request (within 10minutes) |
9000 | Unexpected error. | Incorrect data types, unknown error |
9001 | Missing required field. | A LPS_AuthStatusCheck_Id of –1 will also be returned |
Status Check “transaction_status” response codes
Code | Description | Reason |
---|---|---|
00 | Bank Accepted | |
05 | Bank Rejected | |
90 | Communication Failure (Pending) | Communication failure between LPS & bank,pending investigation and status update |
91 | Communication Failure | Communication failure, transaction not processed by bank |
1003 | Transaction amount exceeds the per Transaction Limit. | Transaction is greater than the allowed value for the day |
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 | |
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 | Customer CC BIN is on a negative list |
1013 | Customer card no. exceeded bank rejection limit | Customer credit card has reached its |
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 |
1020 | MOTO block | MOTO not enabled |
1021 | Recurring block | Recurring not enabled. |
5001 | 3D SECURE Authentication Failed | Customer card enrolled for 3D SECURE but 3D |
5002 | Intermediate 3d Secure Response code | Returned in schedule 2C Response if card is enrolled for 3d Secure |
5003 | Intermediate 3d Secure Response code** | Internal to LPS, indicating customer has completed authentication in ACS URL and landed back to LPS server |
5004 | Intermediate 3d Secure Response code** | Internal to LPS, indicating merchant has sent PARES to LPS Server |
9000 | Unexpected error | Incorrect data types, unknown error |
9001 | Missing required field. | A transaction id of –1 will also be returned |
9002 | Mastercard transactions blocked *** | CC number is invalid for card type |
9003 | Currency Block*** | Currency NOT enabled. |
9004 | Bank gateway not enabled. | Bank gateway not enabled. |
9009 | SCSS service not enabled | Account not enabled for SCSS. |
9010 | SCSS unique identifier error | SCSS token not found or error. |
*** These codes may not be active for your account(s).
APPENDIX E: MANAGE CARD TOKENS
When merchants process recredits using SCSS system and generate card tokens corresponding to the
customer card details, they can use the token as the reference for all subsequent transactions for that
customer. The SCSS system provides two layers of encapsulation and hence it will not be possible to
derive card details from token in anyway. To provide options for merchants to manage the details of
card tokens, LPS SCSS system provides API which will enable merchants to automatically manage their
card tokens. For example, if the expiry dates need to be changed due to card renewal it will not be
necessary to post the whole details, but just the new changed details to the manage SCSS API
functionality which will selectively update required information.
Currently LPS SCSS manage API provides three functionalities:
a. Querying of card details linked to a token;
b. Updating of card details linked to a token;
c. Deletion of a token;
Schedule 2I – LPS POST Specification for Manage Tokens Request
Field | Description | Required / Optional |
---|---|---|
Merchant_id | LPS Provided value. | Required |
merchantpwd | Password used for authenticating the refund account | Required |
AccountType | Type of account. Valid values are: a. A: Auth account (default); b. R: Recredit account; |
Required |
RequestType | SCSS manage card token request type. It should be one of the following: SCSS_Q: Querying card token details; SCSS_U: Update card token details; SCSS_D: Delete card token details; |
Required |
CrdStrg_Token | Unique card details identifier from LPS SCSS system | Required |
Bill_firstname | Card holder first name | Optional *** |
Bill_lastname | Card holder last name | Optional *** |
Bill_address1 | Card holder address line 1 | Optional *** |
Bill_address2 | Card holder address line 2 | Optional *** |
Bill_city | Card holder address city | Optional *** |
Bill_country | Card holder address country | Optional *** |
Bill_zip | Card holder address zip / postal code | Optional *** |
Customer_cc_type | Card scheme name. Valid values: VISA, MAST, MAESTRO (Case Sensitive, upper case only) |
Optional *** |
Customer_cc_expmo | Expiration month(mm) of the credit / debit card | Optional *** NOTE: If this value is sent then Customer_cc_expyr must be sent as well. |
Customer_cc_expyr | Expiration year(yyyy) of the credit / debit card | Optional *** NOTE: If this value is sent then Customer_cc_expmo must be sent as well. |
*** Optional – To be sent only when the updating the corresponding field value stored in LPS Token System.
Schedule 2J – LPS POST Specification for Manage Tokens Response
Field | Description | Data type | Length |
---|---|---|---|
ResponseType | Response type code | Numeric | 2 |
RequestType | Unique code for the request process | String | 10 |
Requestid | Unique Identifier for the request generated by LPS | Numeric | 10 |
CrdStrg_Token | SCSS system unique card identifier sent in request | String | 100 |
Bill_firstname | First name of the card holder stored for the unique identifier sent | String | 50 |
Bill_lastname | Last name of the card holder stored for the unique identifier sent | String | 50 |
Bill_address1 | Billing customer first line of address stored for the unique identifier sent | String | 100 |
Bill_address2 | Billing customer first line of address stored for the unique identifier sent | String | 100 |
Bill_city | Billing customer city stored for the unique identifier sent | String | 50 |
Bill_state | Billing customer state stored for the unique identifier sent | String | 50 |
Bill_country | Billing customer country code stored for the unique identifier sent (in ISO 2 digit format) | String | 2 |
Bill_zip | Billing customer postal code / zip code stored for the unique identifier sent | String | 100 |
CardBin | Bin number of the card stored for the unique identifier sent | Numeric | 6 |
CardLast4 | Last 4 digits of the card number stored for the unique identifier sent | Numeric | 4 |
Customer_cc_type | Card type stored for the unique identifier sent | String | 10 |
Customer_cc_expmo | Expiration month(mm) of the card stored for the unique identifier sent | Numeric | 2 |
Customer_cc_expyr | Expiration year(yyyy) of the card stored for the unique identifier sent | Numeric | 4 |
Status | Status code to indicate the request status | Numeric | 10 |
Manage Tokens “ResponseType” response codes
Description | Code |
---|---|
Manage Token Response | 7 |
Manage Tokens “Status” response codes
Code | Description |
---|---|
0 | Request completed successfully |
9010 | SCSS unique identifier incorrect or not found |
1001 | User authentication failed or account not enabled for SCSS |
1002 | Merchant account inactive |
9000 | Unexpected system error |
9001 | Mandatory field missing |
In the event the billing details or card details needs to be updated, then merchants can make use of manage SCSS subsystem API to update or delete the card details.
The way the system works is as follows:
- Merchants send normal authorisation request with SCSS flag set to Y.
- A unique identifier is generated and returned along with the authorisation response.
- The unique identifier acts as the reference for all subsequent transactions.
- The identifier also references complete billing details of the card holder. Hence apart from the card details, billing details also will not be necessary when posting the identifier.
Once a token is generated the system flow will be as follows:
- Merchant sends normal authorisation request with SCSS flag set to D (implying already done).
- If SCSS flag is set to D, then instead of card number, the SCSS token should be posted.
Points to note when posting token with SCSS flag set to D:
- When posting with SCSS flag set to D, the token must always be posted or else the transactions will be rejected with a prescreening code.
- If card number is also sent along with SCSS flag set to D and token also present, card number will be ignored.
- If billing details as well as other card details are posted along with token, the details posted in the request will take precedence over the details stored in SCSS for that token. Hence the posted values will be utilised for authorisation processing. However, note that the details stored in SCSS will not have been updated. If it should be updated, then a separate update request on manage SCSS system API should be sent.
The unique identifier is of no value to anyone who attempts to steal sensitive information because the secure credit card information can never be obtained by using the identifier. Technically, the identifier is a hash pointer reference to a token value which is then referenced to the card holder data in our data store. Hence our SCSS system provides robust security in protecting card holder information.
SCSS system comprises of four main building blocks:
a. Card Token Generation:
This phase consists of the generation of unique identifier for the card holder data. The unique identifier is linked to the merchant account issued by LPS. In case of standalone SCSS system, if the card number already exists on the system then the system will reject and new token generation will fail. However, in case of SCSS linked to authorisation, if an existing card number is used, then the same identifier will be returned if the card details has been previously posted by the client and an identifier generated previously.
b. Card Token Details Update:
This phase consists of an independent API which will enable merchants to be in control of their secure card data. In the event the card details need updating, for example if the expire dates have changed due to card renewal or the customer’s address details have changed. The merchants can send the token as well the new details which will be automatically updated into the SCSS system. All the usual process of validating the credentials will be necessary before the details can be updated.
c. Card Token Details Query:
This phase is similar to “Token Update” phase, except that it will just return the details stored for that token rather than altering any information. This will be useful if the merchants wish to recheck the details stored in our SCSS system before posting transactions.
d. Card Token Delete:
If customer details are to be removed due to various reasons such as customer has closed their account or audit retention policy or customer deemed fraudulent etc, merchants can send the “Token Delete” request and the card details will be completely removed and cannot be used further.
Schedule 2A – LPS Common Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Length |
---|---|---|---|---|
merchant_id | Merchant account user id provided by LPS | Required | String | 50 |
merchant_pwd | Merchant account password provided by LPS | Required | String | 50 |
merchant_ref_number | Merchant generated reference number | Required | alphanumeric | 50 |
merchant_ip | Static IP address of the merchant server | Required, as provided by merchant | ||
customer_phone | Telephone number of the customer | Optional | Numeric | 20 |
customer_email | Email address of the customer | Optional | String | 50 |
currencydesc | The 3 digit ISO currency code (e.g. EUR) | Required | String | 3 |
amount | Purchase amount – 2 decimal places | Required | Numeric | 8 |
countrycode | The 2 digit ISO country code (e.g. DE) | Required | String | 2 |
servicecode | Service Code for which service needed.Refer code on Appendix C | Required | Numeric, as provided by LPS | |
preferredlanguage | The 2 digit language code (e.g. de) that is preferred when presenting payment pages to the customer | Optional | String | 2 |
accountholdername | The account holder name | Required | String | 100 |
sellingpoint | Point of sale (for merchant use) | Optional | String | 50 |
soldservice | Service sold to the customer (for merchant use) | Optional | String | 50 |
merchantredirecturl_id | The url identifier of URL to which customer will be redirected after authentication | Required | String | 50 |
merchanterrorurl_id | The url identifier of URL to which customer will be redirected in case of a fatal error or unable to process request | Required | String | 50 |
notificationurl_id | The url identifier of URL to which LPS should send transaction notification. Refer notification process in document | Required | String | 50 |
Schedule 2B – LPS Common Post Specification for Payment Response
This response will be returned back to the merchant if the payment service processed the transaction synchronously and transaction status immediately available. This response will also be returned if transaction is processed asynchronously and transaction status is still pending (final_status = 2) and no customer authentication is needed. The transaction status will be notified using notification process as explained in Section 5. The responsetype will be either 0 or 1.
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
responsetype | Transaction response type (refer Appendix B Section A) | Numeric | 4 |
lps_apid | Unique Identifier for the transaction generated by LPS | Numeric | 8 |
merchant_ref_number | Merchant reference number generated for the order | String | 50 |
replypwd | SHA1 hash value of reply_password provided by Merchant to LPS during account setup, to validate response | String | 100 |
currencycode | Transaction currency as per ISO code | String | 3 |
amount | Transaction amount | Numeric | 8 |
process_status | Status of the service process (refer Appendix B Section B) | Numeric | 4 |
final_status | Final status of the transactions (refer Appendix B Section C) | Numeric | 4 |
bankreference | Unique bank reference number | String | 4 |
transactiondate | Date of bank transaction | String | 50 |
error_code | Error code if errors occurred | String | 50 |
Schedule 2B – Payment Response
responsetype=1&lps_apid=10545&merchant_ref_number=lpstest123&replypwd=d802b9d79fadd6cbd1d830
3619739b3ed124ef22¤cycode=EUR&amount=1.00&process_status=0&final_status=0&bankreference
=24307494&transactiondate=&error_code=
Schedule 2C – LPS POST Specification for Enrolment Response
This response will be returned if the request payment service requires customer authentication. The responsetype will be 2. The customer must be redirect to the url specified in “redirecturl” post field.
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
responsetype | Transaction response type (refer Appendix B Section A) | Numeric | 4 |
lps_apid | Unique Identifier for the transaction generated by LPS | Numeric | 4 |
merchant_ref_number | Merchant reference number generated for the order | String | 50 |
replypwd | SHA1 hash value of reply_password provided by Merchant to LPS during account setup, to validate response | String | 100 |
redirecturl | URL to redirect the customer to only available in PENDING asynchronous transactions | String | 255 |
Schedule 2C – Payment Response
responsetype=2&lps_apid=10544&merchant_ref_number=lpstest123&replypwd=d802b9d79fadd6cbd1d8303
619739b3ed124ef22&redirecturl=https://trusted.girogate.de/ti/dumbdummy?tx=24307484&rs=JCb3h0cL
S6FgTm8WC8sPqkHpzDR44ZCk&cs=dddc8a95b1bda86153f14df2bab82c975a31b7508cc2569115c09d3677
31f967
Schedule 2D – LPS POST Specification for ACS Redirect Request
On receiving Schedule 2C response (responstype=2) from LPS AP Gateway, merchants must redirect customer to the “redirecturl” along with the following “hidden” fields. Note that all fields are mandatory.
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
lps_apid | Unique Identifier for the transaction generated by LPS | Numeric | 4 |
merchant_ref_number | Merchant reference number generated for the order | String | 50 |
Schedule 2E – LPS POST Specification for ACS Redirect Response
This response will be returned back to the URL assigned to merchantredirecturl_id which merchant had posted on the original transaction request (Schedule 2A). The responsetype is 3.
The customer is also transferred along with this response back to merchant site.
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
responsetype | Transaction response type (refer Appendix B Section A) | Numeric | 4 |
lps_apid | Unique Identifier for the transaction generated by LPS | Numeric | 8 |
merchant_ref_number | Merchant reference number generated for the order | String | 50 |
replypwd | SHA1 hash value of reply_password provided by Merchant to LPS during account setup, to validate response | String | 100 |
currencycode | Transaction currency as per ISO code | String | 3 |
amount | Transaction amount | Numeric | 8 |
process_status | Status of the service process (refer Appendix B Section B) | Numeric | 4 |
final_status | Final Status of the transactions (refer Appendix B Section C) | Numeric | 4 |
bankreference | Unique Bank reference number | String | 4 |
transactiondate | Date of bank transaction | String | 50 |
error_code | Error code if errors occurred | String | 50 |
Schedule 2F – LPS POST Specification for Auth Request
After receiving customer back on Schedule 2E, if the transaction status is still pending, merchants can check for transaction status by opening synchronous connection post with following fields.
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
merchant_id | Merchant account user id provided by LPS | String | 50 |
merchant_pwd | Merchant account password provided by LPS | String | 50 |
merchant_ip | Static IP address of the merchant server | As provided by merchant | |
lps_apid | Unique Identifier for the transaction generated by LPS | Numeric | 4 |
merchant_ref_number | Merchant reference number generated for the order | String | 50 |
~~~ The response for this request will be Schedule 2B with a responsetype of either 0 or 5. ~~~
APPENDIX D: Additional post fields per payment services
All payment services will have the same set of common input parameters as specified in Schedule 2A to Schedule 2F. For any payment services which require additional post fields in addition to the common post fields, it will be defined in individual sections below.
Schedule A – LPS Post Specification for Payment Request
There are no specific input parameters for this payment method. For standard input parameters check Schedule 2A.
Country code: AR, AT, BE, BG, CA, CH, CY, CZ, DE, ES, FI, FR, GB, GR, HR, HU, IR, IT, LT, LU, LV, MA, MX, NL, NO, PE, PL, PT, RO, SE, SK, SL, UY, AU, DK Currency: AUD, GBP, EUR, CAD, NOK, PLN, SEK, USD
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
There are no specific input parameters for this payment method. For standard input parameters check Schedule 2A.
Country code: DE
Currency: EUR
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
There are no specific input parameters for this payment method. For standard input parameters check Schedule 2A.
Country code: AT, BE, DE, NL
Currency: EUR
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
accountnumber | Customer mobile number | Required | Numeric | 10 |
countrycode | Customer mobile country code in 2-digit ISO code format. Example: US, GB, FR etc. | Required | String | 2 |
Country code: KZ, RU, UA
Currency: EUR, RUB, USD
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
There are no specific input parameters for this payment method. For standard input parameters check Schedule 2A.
TrustPay works for the following country code/currency combinations:
Country code: BG, CZ, DK, EE, FI, GR, HU, LV, LT, NO, RO, SK, SI, SE
Currency: EUR, BGN, CZK, DKK, HUF, NOK, RON, SEK
The currencies available to you may depend on your contract.
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
accountnumber | Customer bank account number | Required | String | 50 |
bankcode | Customer bank code | Required | String | 50 |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
There are no specific input parameters for this payment method. For standard input parameters check Schedule 2A.
EPS works for the following country code/currency combinations:
countrycode | currencycode |
---|---|
AT | EUR |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
There are no specific input parameters for this payment method. For standard input parameters check Schedule 2A.
iDEAL only works for the following country code/currency combinations:
countrycode | currencycode |
---|---|
NL | EUR |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
There are no specific input parameters for this payment method. For standard input parameters check Schedule 2A.
POLi only works for the following country code/currency combinations:
countrycode | currencycode |
---|---|
NZ | NZD |
AU | AUD |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
customer_email | Customer email address | Required | String | 50 |
For standard request fields check Schedule 2A. Przelewy24 only works for the following country code/currency combinations:
countrycode | currencycode |
---|---|
PL | PLN & EUR |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
customer_address1 | Customer’s address line 1 | Optional | String | 50 |
customer_address2 | Customer’s address line 2 | Optional | String | 50 |
customer_city | Customer’s city | Optional | String | 50 |
customer_state | Customer’s state | Optional | String | 50 |
customer_zipcode | Customer’s postalcode | Optional | String | 10 |
countrycode | currencycode |
---|---|
ES | EUR |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
customer_email | Customer email address | Required | String | 50 |
customer_address1 | Customer’s address line 1 | Required | String | 50 |
customer_address2 | Customer’s address line 2 | Optional | String | 50 |
customer_city | Customer’s city | Required | String | 50 |
customer_state | Customer’s state | Optional | String | 50 |
customer_zipcode | Customer’s postalcode | Required | String | 10 |
Country code: International
Currency: International
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
There are no specific input parameters for this payment method. For standard input parameters check Schedule 2A.
Country code: AT, BR, CA, CO, CR, DE, MX, NI, PA, PE, ES, NL, US
Currency: EUR, USD
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
cardnumber | Customer card number | Required | String | 20 |
cardcvc | Customer card security code | Required | String | 3 |
cardexpirydate | 2 digit of card expiry month | Required | String | 2 |
cardexpiryyear | Card expiry year | Required | String | 4 |
Country code: AR, BO, BR, CL, CO, CR, MX, PE, UY, VE
Currency: USD
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
ukash_consumerref | Ukash Customer Reference | Required | String | 100 |
Country code: International
Currency: International
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
customer_email | Customer email address | Required | String | 50 |
customer_address1 | Customer’s address line 1 | Required | String | 50 |
customer_address2 | Customer’s address line 2 | Optional | String | 50 |
customer_city | Customer’s city | Required | String | 50 |
customer_state | Customer’s state | Required | String | 50 |
customer_zipcode | Customer’s postalcode | Optional | String | 10 |
customer_idtype | Customer’s identification type. Values: 1: National Id | Required | Integer | 4 |
customer_idnumber | Customer’s identification number (CPF/CNPJ) | Required | String | 250 |
consumerid | Unique id to identify the consumer | Required | String | 50 |
customer_dob | Date of birth, format YYYYMMDD | Required | String | 30 |
For standard request fields check Schedule 2A. Boleto only works for the following country code/currency
combinations:
countrycode | currencycode |
---|---|
BR | USD |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
customer_email | Customer email address | Required | String | 50 |
customer_address1 | Customer’s address line 1 | Required | String | 50 |
customer_address2 | Customer’s address line 2 | Optional | String | 50 |
customer_city | Customer’s city | Required | String | 50 |
customer_state | Customer’s state | Required | String | 50 |
customer_zipcode | Customer’s postalcode | Optional | String | 10 |
customer_idtype | Customer’s identification type. Values: 1 : National Id | Required | Integer | 4 |
customer_idnumber | Customer’s identification number | Required | String | 250 |
For standard request fields check Schedule 2A. TicketOnline (Raberil) only works for the following country code/currency combinations:
countrycode | currencycode |
---|---|
MX | USD |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
customer_email | Customer email address | Required | String | 50 |
accountnumber | Customer bank account number | Required | String | 50 |
bankcode | Customer bank code | Required | String | 50 |
consumerid | Unique id to identify the consumer | Required | String | 50 |
Schedule A.1 – For SEPA
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
customer_email | Customer email address | Required | String | 50 |
account_iban | Valid German IBAN (starts with “DE”,followed by 20 numeric digits) | Required | String | 50 |
account_bic | Valid BIC (8 or 11 alphanumeric digits) | Required | String | 50 |
consumerid | Unique id to identify the consumer | Required | String | 50 |
For standard request fields check Schedule 2A
Instant Transfer only works for the following country code/currency combinations:
countrycode | currencycode |
---|---|
DE | EUR |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
verificationcode | Neteller Secure id uniquely assigned by neteller to customer | Required | String | 25 |
For standard request fields check Schedule 2A.
Country code: International
Currency: International
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
There are no specific input parameters for this payment method. For standard input parameters check Schedule 2A.
Alipay only works for the following country code/currency combinations:
countrycode | currencycode |
---|---|
CN | EUR |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
purchase_summary | Description of the purchase displayed to the customer on the payment page | Optional | String | 512 |
Country code: International
Currency: International
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
consumerid | Unique id to identify the consumer. | Required | String | 50 |
customer_email | Valid email of customer | Required | String | 50 |
customer_nationalid | Unique national identification number issued by designated country where customer resides | Required | String | 30 |
customer_dob | Date of birth, format YYYYMMDD | Required | String | 30 |
countrycode | currencycode |
---|---|
MX | USD |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
consumerid | Unique id to identify the consumer. | Required | String | 50 |
customer_email | Valid email of customer | Required | String | 50 |
customer_nationalid | Unique national identification number issued by designated country where customer resides | Required | String | 30 |
customer_dob | Date of birth, format YYYYMMDD | Required | String | 30 |
countrycode | currencycode |
---|---|
BR | USD |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
consumerid | Unique id to identify the consumer. | Required | String | 50 |
customer_email | Valid email of customer | Required | String | 50 |
customer_nationalid | Unique national identification number issued by designated country where customer resides | Required | String | 30 |
customer_dob | Date of birth, format YYYYMMDD | Required | String | 30 |
countrycode | currencycode |
---|---|
CO | USD |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
consumerid | Unique id to identify the consumer | Required | String | 50 |
customer_email | Valid email of customer | Required | String | 50 |
customer_nationalid | Unique national identification number issued by designated country where customer resides | Required | String | 30 |
customer_dob | Date of birth, format YYYYMMDD | Required | String | 30 |
countrycode | currencycode |
---|---|
BR | USD |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
consumerid | Unique id to identify the consumer | Required | String | 50 |
customer_email | Valid email of customer | Required | String | 50 |
customer_nationalid | Unique national identification number issued by designated country where customer resides | Required | String | 30 |
customer_dob | Date of birth, format YYYYMMDD | Required | String | 30 |
countrycode | currencycode |
---|---|
CO | USD |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
consumerid | Unique id to identify the consumer. | Required | String | 50 |
customer_email | Valid email of customer | Required | String | 50 |
customer_nationalid | Unique national identification number issued by designated country where customer resides | Required | String | 30 |
customer_dob | Date of birth, format YYYYMMDD | Required | String | 30 |
countrycode | currencycode |
---|---|
UY | USD |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
consumerid | Unique id to identify the consumer | Required | String | 50 |
customer_email | Valid email of customer | Required | String | 50 |
customer_nationalid | Unique national identification number issued by designated country where customer resides | Required | String | 30 |
customer_dob | Date of birth, format YYYYMMDD | Required | String | 30 |
countrycode | currencycode |
---|---|
BR | USD |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
consumerid | Unique id to identify the consumer | Required | String | 50 |
countrycode | currencycode |
---|---|
AT | EUR |
DE | EUR |
FI | EUR |
SE | SEK |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
customer_email | Valid email of customer | Required | String | 50 |
countrycode | currencycode |
---|---|
FI | EUR |
SE | SEK |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule A – LPS Post Specification for Payment Request
Field | Description | Mandatory | Data Type | Len |
---|---|---|---|---|
customer_email | Customer email address | Required | String | 50 |
consumerid | Unique id to identify the consumer | Required | String | 50 |
customer_address1 | Customer’s address line 1 | Required | String | 50 |
customer_zipcode | Customer’s postalcode | Required | String | 10 |
customer_dob | Date of birth, format YYYYMMDD | Optional | String | 30 |
customer_nationalid | Unique national identification number issued by designated country where customer resides | Required | String | 30 |
countrycode | currencycode |
---|---|
BR | USD |
Schedule B – LPS Post Specification for Payment Response
There are no specific response fields for this payment method. For standard response fields check Schedule 2B.
Schedule 2A – LPS Common Post Specification for Refund Request
Field | Description | Mandatory | Data Type | Length |
---|---|---|---|---|
merchant_id | Merchant account user id provided by LPS | Required | String | 50 |
merchant_pwd | Merchant account password provided by LPS | Required | String | 50 |
merchant_ref_number | Merchant reference number provided for the original purchase transaction | Required | alphanumeric | 50 |
merchant_ip | Static IP address of Merchant server | Required | ||
lps_apid | Unique LPS transaction id as provided for the original purchase transaction | Required | Numeric, refer Appendix C | |
currencydesc | The 3 digit ISO currency code (e.g. EUR) of the original purchase transaction | Required | String | 3 |
amount | Refund amount (to match the purchase amount) | Required | Numeric | 16 |
refund_comment | The reason or any note which needs to be added to the refund request | Optional | String | 500 |
Schedule 2B – LPS Common Post Specification for Refund Response
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
responsetype | Transaction response type (refer Appendix B section A) | Numeric | 4 |
lps_refund_apid | Unique Identifier for the refund transaction generated by LPS | Numeric | 10 |
merchant_ref_number | Merchant generated reference number posted along with refund request | String | 50 |
refund_replypwd | Hash value of the secret password given to LPS | String | 100 |
currencycode | Transaction currency ISO code | String | 3 |
amount | Transaction amount | Numeric | 8 |
process_status | Status of refund request (refer appendix B) | Numeric | 4 |
final_status | Final status of transaction (refer appendix B) | Numeric | 4 |
bankreference | Unique bank/service reference number | String | 50 |
transactiondate | Transaction date in UK timezone | Date time | 50 |
error_code | Error code (if available) | String | 50 |
Schedule 2C – LPS Common Post Specification for Refund Status Check Request
Field | Description | Mandatory | Data Type | Length |
---|---|---|---|---|
merchant_id | Merchant account user id provided by LPS | Required | String | 50 |
merchant_pwd | Merchant account password provided by LPS | Required | String | 50 |
merchant_ref_number | Merchant generated reference number | Required | alphanumeric | 50 |
merchant_ip | Static IP address of Merchant server | Required | ||
lps_refund_apid | Unique LPS AP refund identifier returned on initial refund request (schedule 2B) | Required | Numeric | 10 |
Schedule 2D – LPS Common Post Specification for Payout Status Check Response
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
lps_refundstatuscheck_id | Unique Identifier generated for the status check request | Numeric | 4 |
lps_refund_apid | Unique Identifier for the transaction generated by LPS | Numeric | 8 |
merchant_ref_number | Merchant generated reference number posted along with original refund request | String | 50 |
refund_status | Refund status code (refer appendix B) | String | 100 |
Schedule 2A – LPS Common Post Specification for Payout Request
Field | Description | Mandatory | Data Type | Length |
---|---|---|---|---|
merchant_id | Merchant account user id provided by LPS | Required | String | 50 |
merchant_pwd | Merchant account password provided by LPS | Required | String | 50 |
merchant_ref_number | Merchant generated reference number | Required | alphanumeric | 50 |
merchant_ip | Static IP address of Merchant server | Required | ||
servicecode | Service Code for which service needed. Refer code on Appendix C | Required | Numeric, refer Appendix C | |
currencydesc | The 3 digit ISO currency code (e.g. EUR) | Required | String | 3 |
amount | Purchase amount – 2 decimal places | Required | Numeric | 16 |
payout_comment | The reason or any note which needs to be added to the Payout request. | Required | String | 500 |
Schedule 2B – LPS Common Post Specification for Payout Response
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
responsetype | Transaction response type (refer Appendix B section A). | Numeric | 4 |
lps_payout_apid | Unique Identifier for the transaction generated by LPS. | Numeric | 10 |
merchant_ref_number | Merchant generated reference number posted along with payout request. | String | 50 |
merchant_ip | Static IP address of Merchant server | Required | |
payout_replypwd | Hash value of the secret password given by LPS. | String | 100 |
currencycode | Transaction currency ISO code | String | 3 |
amount | Transaction amount | Numeric 8 | |
process_status | Status of payout request (refer appendix B) | Numeric | 4 |
final_status | Final status of transaction (refer appendix B) | Numeric | 4 |
bankreference | Unique bank/service reference number | String | 50 |
transactiondate | Transaction date in UK timezone | Date time | 50 |
error_code | Error code (if available) | String | 50 |
Schedule 2C – LPS Common Post Specification for Payout Status Check Request
Field | Description | Mandatory | Data Type | Length |
---|---|---|---|---|
merchant_id | Merchant account user id provided by LPS | Required | String | 50 |
merchant_pwd | Merchant account password provided by LPS | Required | String | 50 |
merchant_ref_number | Merchant generated reference number | Required | alphanumeric | 50 |
merchant_ip | Static IP address of Merchant server | Required | ||
lps_payout_apid | Unique LPS AP payout identifier returned on initial payout request (schedule 2B) | Required | Numeric | 10 |
Schedule 2D – LPS Common Post Specification for Payout Status Check Response
METHOD – POST | |||
---|---|---|---|
Field | Description | Data Type | Length |
lps_payoutstatuscheck_id | Transaction response type (refer Appendix B section A) | Numeric | 4 |
lps_payout_apid | Unique Identifier for the transaction generated by LPS | Numeric | 8 |
merchant_ref_number | Merchant generated reference number posted along with original payout request | String | 50 |
payout_status | Payout status code (refer appendix B) | String | 100 |
Code | Description | Reason |
---|---|---|
0 | Process status succeed | Payment process accepted, but either payment accepted or pending |
1 | Process status failed | Payment process failed or aborted |
2 | Pending process | Payment process pending |
1001 | Authentication failed for Merchant | Wrong id, password or IP supplied |
1002 | Merchant account inactive | Merchant account inactive |
1003 | Merchant account not enabled for payouts | Merchant account should be enabled and configured for payouts. Contact LPS. |
1004 | Service not enabled for payouts | Service does not offer or is not enabled for payouts |
1005 | Payout Id incorrect | Payout Id specified is incorrect or not found |
9000 | Unexpected error | Incorrect data types, unknown error |
9001 | Missing required field | A transactionid of –1 will also be returned |
9004 | Invalid service code | Wrong service code posted |
90 | Communication failure | Request was sent to service, but not response received. Merchant should check transaction status or contact LPS |
This document describes the integration process for the LPS Recredits system. Recredits include the
processing of voids (before settlement), refunds (after settlement) and OCT’s.
Voids
Merchants can post a request to the LPS gateway to be void/reverse an authorisation. When a request is submitted, the gateway performs a series of checks and then directly forwards a void request to the bank for transaction reversal. A response is sent back to the merchant in real time to acknowledge the request and confirm if it’s been accepted or declined. The status of the request can also be viewed by logging onto the merchants reporting system on the LPS website
Refunds
Merchants can post a request to the LPS gateway to refund a settled transaction. When a request is submitted, the gateway performs a series of checks and then responds back to the merchant. Refunds are checked by LPS Admin staff before they are sent to the bank. Depending on the banks rules, this API can be used to perform partial refunds as well. The status of the request can be viewed by logging onto the merchants reporting system on the LPS website.
OCT’s
Merchants can post a request to the LPS gateway to make a payment to a customer’s card number via the recredits system. When a request is submitted, the gateway performs a series of checks and responds back to the merchant. The submitted transactions are checked by LPS Admin staff before they are sent to the bank. The status of request can be viewed by logging onto the merchants reporting system on the LPS website.
REALTIME PROCESSING
LPS Recredits API offers the ability to perform real time reversals / refunds i.e. as soon as the authorisation has been performed. To take advantage of this, the request needsto carry the post field “realtime” parameter with value set as Y. Do note that as a general rule, this is best to set only for processing voids/refunds of any auth’s done in the last one hour. If attempting to void or refunds of transactions whose auth time is older than an hour, its best to ignore this flag.
Form Field | Description | Details |
---|---|---|
merchant_refund_id | LPS Provided value. It will be used to process refunds on all sites in your group, so if you have multiple authorisation accounts (merchant_user_id’s) with LPS, then this single merchant_refund_id will be used to process refunds for the entire group | Mandatory |
merchant_pwd | Password used for authenticating the refund account | Mandatory |
refund_type | This field indicates the type of refund. It should contain one of the following depending on the request: 1 – Standard Refund 2 – Fraud Refund 3 – Standard Cancellation 4 – Fraud Cancellation 5 - OCT 6 – Bacs 7- Faster Payments 8 – Wires 9 - BacsPay (bureau processing) | Mandatory |
lps_transaction_id | Original LPS transaction id of the authorisation transaction you wish to refund/void. | Conditional (Only for refund_type 1 to 4) |
merchant_ref_number | Merchant Reference number generated and sent to LPS by merchant with the original authorisation. NB: This should match only for refunds/voids. | Mandatory |
refund_comment | The reason or any note which needs to be added to the recredit request. NB: mandatory in case of fraud refunds. It’s a free text and ideally should indicate why the transaction is deemed fraud |
Optional*** ***Mandatory for fraud refunds. |
merchant_pwd | Password used for authenticating the refund account | Mandatory |
Form Field | Description |
---|---|
LPSReply_pwd | Password provided by merchant to LPS to authenticate return post fields. |
Request_Id | Request Id generated for the recredit request. |
LPS_refund_id | Refund Id generated for the recredit request. |
RefundSubmit_status | The status of the recredit request. See codes below. |
Bank_status | The submitted status of payback in LPS. |
All recredit status can be checked in the LPS Hub reporting portal. However, the LPS recredits gateway also provides an API call to check the status of Refund/cancellation submitted. This API call can be used to check in the event of communication failures on original Refund/Cancellation submissions. Or if the merchant wishes to check the status of Refund/Cancellation, or if they would like to know if the Refund/Cancellation is fully settled after being accepted by LPS initially
The data in the table below should be posted to a URL that will be confirmed by LPS.
Form Field | Description | Details |
---|---|---|
merchant_refund_id | LPS Provided value… | Mandatory |
merchant_pwd | Password used for authenticating the refund account. | Mandatory |
merchant_ref_number | Merchant Reference number sent along with the original recredit request. | Mandatory |
refund_id | Refund Id obtained in response from original recredit request | Mandatory |
refund_currency | Transaction Currency as sent in original recredit request | Mandatory |
refund_amount | Transaction amount as sent in original recredit request | Mandatory |
Form Field | Description |
---|---|
LPSReply_pwd | Password provided by merchant to LPS to authenticate return post fields. |
LPS_refund_id | Refund Id generated for the original recredit request. |
Request_Id | Request Id generated for the original recredit request. |
refund_type | Type of recredit processed for the transaction. |
Refund_amount | Refund amount |
Refund_currency | Refund currency |
RefundStatusCheckId | Unique Id generated for the status check request. |
RefundStatusCheck_status | The status of Recredit status check request |
RefundSubmit_status | The submitted status of Recredit in LPS. Please refer schedule E1. |
Bank_status | The settlement status of Recredit in LPS. |
Refundstatuscheck_Status | Description |
---|---|
0 | Status check request completed. Please check refund submit status and bank status to know the final status of the Recredit. |
4001 | Merchant login details incorrect. |
4002 | Merchant login details incorrect. |
4003 | Recredit request not found. |
9001 | Required mandatory field missing in the Recredit status check request. |
9000 | System error while processing the Recredit status check request. Please contact LPS. |
Bank_Status*** | Description |
---|---|
00 | Recredit accepted by bank. |
05 | Recredit rejected by bank. |
90 | Communication Failure. Please contact LPS |
*** Depending upon how your recredit account is configured, the “Bank_status” may also be returned empty instead of any of the above values. In that scenario, if “Refund Submit_status” is 0 and “Bank_Status” is empty, then it implies request accepted by LPS but pending submission to bank. If “Refund Submit_status” is NOT 0, then “Bank_status” will always be empty, implying that the request has failed LPS checks.
Sample Request for Refund/Void
merchant_refund_id=test_lpsv2&merchant_pwd=test&merchant_ref_number=lpstest123&refund_type=1&LPS_transaction_id=80905626&refund_amount=0.10&refund_comment=test status check
Sample Response for Refund/Void
LPSReply_pwd=mgstest&LPS_refund_id=886087&Request_Id=619322&RefundSubmit_status=0&Bank_status=00
Sample Request for Refund Status Check
merchant_refund_id=Test_lpsv2&merchant_pwd=test&merchant_ref_number=lpstest123&refund_id=838037&refund_amount=0.10&refund_currency=GBP
Sample Response for Refund Status Check
LPSReply_pwd=mgstest&LPS_refund_id=838037&Request_id=577781&refund_type=1&Refund_amount=0.1&Refund_currency=GBP&RefundStatusCheckId=30402&RefundStatusCheck_status=0&RefundSubmit_status=0&Bank_status=00
Form Field | Description | Details |
---|---|---|
merchant_refund_id | LPS Provided value. It will be used to process refunds on all sites in your group, so if you have multiple authorisation accounts (merchant_user_id’s) with LPS, then this single merchant_refund_id will be used to process refunds for the entire group. | Mandatory |
merchant_pwd | Password used for authenticating the refund account. | Mandatory |
refund_type | This field indicates the type of refund. 5 - OCT |
Mandatory |
merchant_ref_number | Merchant Reference number generated and sent to LPS by merchant. | Mandatory |
firstname | Customer First Name | Mandatory |
lastname | Customer Last Name | Mandatory |
phone | Customer Phone | Optional |
Customer Email | Optional | |
bill_firstname | Billing Customer First Name | Mandatory |
bill_lastname | Billing Customer Last Name | Mandatory |
bill_address1 | Billing Customer first line address | Mandatory |
bill_address2 | Billing Customer second line address | Optional |
bill_city | Billing Customer city | Mandatory |
bill_state | Billing Customer state | Conditional. Required for CA |
bill_zip | Billing Customer zip | Mandatory |
bill_country | Billing customer country in ISO 2-digit alpha format. | Mandatory |
pan | Card Number | Mandatory |
pan_expmo | Card expiry month in format mm | Mandatory |
pan_expyr | Card expiry year in format yyyy | Mandatory |
pan_startmo | Card start month in format mm | Optional |
pan_startyr | Card start year in format yyyy | Optional |
pan_type | Card type should contain one of the following values: VISA MAST SWITCH SOLO DELTA AMEX MAESTRO (Case sensitive, upper case only) |
Mandatory |
pan_issue | Card issue number. | Optional |
refund_currency | Transaction Currency in ISO 3-digit alpha format | Mandatory |
refund_amount | Transaction amount with two decimal places only | Mandatory |
scsscheck | Unique card details identifier from LPS SCSS system | S SCSS systemConditional*** (if scsscheck is set to D) ***If this field is not sent and scsscheck is set to D, a 9010-errorcode will occur |
Form Field | Description |
---|---|
LPSReply_pwd | Password provided by merchant to LPS to authenticate return post fields. |
Request_Id | Request Id generated for the recredit request. |
LPS_refund_id | Refund Id generated for the recredit request. |
RefundSubmit_status | The submitted status of payback in LPS. Please refer schedule E1. |
Bank_status | The settlement status of payback in LPS |
Bank_Status*** | Description |
---|---|
00 | Payback accepted by bank. |
05 | Payback rejected by bank. |
90 | Communication Failure. Please contact LPS. |
*** Depending upon how your recredit account is configured, the “Bank_status” may also be returned empty instead of any of the above values. In that scenario, if “Refund Submit_status” is 0 and “Bank_Status” is empty, then it implies request accepted by LPS but pending submission to bank. If “Refund Submit_status” is NOT 0, then “Bank_status” will always be empty, implying that the request has failed LPS checks.
Sample Request for OCT
merchant_refund_id=Test_Payback&Merchant_pwd=test&merchant_ref_number=lpstest123_Jun29_3&Firstname=TestName&Bill_Zip=SE1&PAN=420000######0000&refund_type=5&bill_FirstName=TestName&Bill_City=London&LPS_transaction_id=&Phone=123&PAN_expyr=2022&PAN_Issue=&Lastname=TestName&bill_address1=SouthBankHouse&Bill_address2=&bill_LastName=TestName&CrdStrg_Token=&Bill
_Country=GB&PAN_expmo=11&Bill_State=GreaterLondon&PAN_cvc=&refund_amount=0.10&Email=dss@digisource.co.in&PAN_StartMo=&PAN_StartYr=&PAN_TYPE=VISA&refund_currency=GBP
Sample Response for OCT
LPSReply_pwd=Test&LPS_refund_id=2827767&Request_Id=2619331&RefundSubmit_status=0&Bank_status=
Depending on the merchant’s account setup status, LPS Recredits API gateway can respond additional fields in addition to the fields specified in the “schedule B2” which is the response to confirm the results of the transaction. These fields will NOT be enabled by default and cannot be guaranteed to be returned even if enabled. Depending on the outcome of the transaction and on the gateway on which the merchant is setup, these fields can be returned. LPS will continue to add these additional response fields as required in future releases/upgrades of the gateway. If merchants wish to get these
fields returned, they will need to contact LPS to get their accounts configured.
Form Field | Description |
---|---|
merchant_ref_number | Returned merchant’s reference number |
cardbin | First 6 digit of customer card |
cardlast4 | Last 4 digit of customer card |
All recredit status can be checked in the LPS Hub reporting portal. However, the LPS recredits gateway also provides an API call to check the status of OCT’s submitted. This API call can be used to check in the event of communication failures on original OCT submissions. Or if the merchant wishes to check the status of OCT’s, or if they would like to know if the OCT is fully settled after being accepted by LPS initially.
Form Field | Description | Details |
---|---|---|
merchant_refund_id | LPS Provided value. | Mandatory |
merchant_pwd | Password used for authenticating the refund account. | Mandatory |
merchant_ref_number | Merchant Reference number sent along with the original OCT request. | Mandatory |
refund_currency | Transaction Currency in ISO 3-digit alpha format | Mandatory |
refund_amount | Transaction amount with two decimal places only | Mandatory |
card_bin | Card number bin (first 6 digits) | Mandatory |
card_last4 | Card number last 4 digits | Mandatory |
Form Field | Description |
---|---|
LPSReply_pwd | Password provided by merchant to LPS to authenticate return post fields. |
PaybackStatusCheckId | Unique ID generated for the status check request. |
PaybackStatusCheck_status | The status of OCT status check request |
Request_Id | Request Id generated for the recredit request. |
Request_Id | Request Id generated for the recredit request. |
LPS_refund_id | Refund Id generated for the recredit request. |
RefundSubmit_status | The submitted status of OCT in LPS. Please refer schedule E1. |
Bank_status | The settlement status of OCT in LPS. |
Paybackstatuscheck_Status | Description |
---|---|
0 | Status check request completed. Please check refund submit status and bank status to know the final status of the OCT. |
4001 | Merchant login details incorrect. |
4002 | Merchant recredit account is not active. |
4003 | OCT request not found. |
9001 | Required mandatory field missing in the OCT status check request. |
9000 | System error while processing the OCT status check request.Please contact LPS. |
Bank_Status*** | Description |
---|---|
00 | Recredit accepted by bank. |
05 | Recredit rejected by bank. |
07 | Insufficient balance to process recredit request. Recredit in pending |
10 | Recredit returned by bank. |
90 | Communication Failure. Please contact LPS. |
*** Depending upon how your recredit account is configured, the “Bank_status” may also be
returned empty instead of any of the above values. In that scenario, if “Refund Submit_status”
is 0 and “Bank_Status” is empty, then it implies request accepted by LPS but pending submission
to bank. If “Refund Submit_status” is NOT 0, then “Bank_status” will always be empty, implying
that the request has failed LPS checks.
Sample Request for OCT Status Check
merchant_refund_id=Test_Payback&merchant_pwd=test&merchant_ref_number=lpstest123_Jun29_3&refund_amount=0.10&refund_currency=GBP&Card_Bin=420000&Card_Last4=0000
Sample Response for OCT Status Check
PSReply_pwd=Test&LPS_refund_id=2827767&Request_Id=2619331&PaybackStatusCheckId=238805&PaybackStatusCheck_status=0&RefundSubmit_status=0&Bank_status=00
Form Field | Description | Details |
---|---|---|
merchant_refund_id | LPS Provided value. It will be used to process refunds on all sites in your group, so if you have multiple authorisation accounts (merchant_user_id’s) with LPS, then this single merchant_refund_id will be used to process refunds for the entire group. | Mandatory |
merchant_pwd | Password used for authenticating the refund account. | Mandatory |
refund_type | This field indicates the type of refund8 – Wires | Mandatory |
merchant_ref_number | Merchant Reference number generated and sent to LPS by merchant with the original authorisation. NB: This should match only for refunds/voids. | Mandatory |
firstname | Customer First Name | Mandatory |
lastname | Customer Last Name | Mandatory |
phone | Customer Phone | Optional |
Customer Email | Optional | |
bill_address1 | Billing Customer first line address | Mandatory |
bill_address2 | Billing Customer second line address | Optional |
bill_state | Billing Customer state | Conditional. Required for CA |
bill_zip | Billing Customer zip | Mandatory |
bill_country | Billing customer country in ISO 2-digit alpha format | Mandatory |
refund_currency | Transaction Currency in ISO 3-digit alpha format | Mandatory |
refund_amount | Transaction amount with two decimal places only | Mandatory |
refund_comment | The reason or any note which needs to be added to the wires request. | Optional*** |
cust_dateofbirth | Customer’s Date of Birth in format dd/mm/yyyy | Mandatory |
cust_bankname | Customer’s Bank Name | Mandatory |
cust_accountnumber | Customer’s Account Number | Conditional. For countries outside of EEA eg. AU, CA, NZ and UK |
cust_accountiban | Customer’s Account IBAN | Conditional (country is in EEA) |
cust_bankswiftcode | Customer’s Bank Swift Code | Mandatory |
cust_bankcode | Customer’s Bank Code | Conditional. For countries outside of EEA eg. AU, CA, NZ and UK |
cust_bankaddress1 | Customer’s Bank Address line1 | Optional |
cust_bankaddress2 | Customer’s Bank Address line2 | Optional |
cust_bankcity | Customer’s Bank city | Optional |
cust_bankstate | Customer’s Bank state | Optional |
cust_bankzip | Customer’s Bank zipcode | Optional |
cust_bankcountry | Customer’s Bank country in ISO 2-digit alpha format | Mandatory |
cust_intermediarybankname | Customer’s Intermediary Bank Name | Optional |
cust_intermediaryaccountiban | Customer’s Intermediary Account IBAN | Optional |
cust_intermediarybankswiftcode | Customer’s Intermediary Bank Swift Code | Optional |
cust_intermediarybankaddress1 | Customer’s Intermediary Bank Address line1 | Optional |
cust_intermediarybankaddress2 | Customer’s Intermediary Bank Address line2 | Optional |
cust_intermediarybankcity | Customer’s Intermediary Bank city | Optional |
cust_intermediarybankstate | Customer’s Intermediary Bank state | Optional |
cust_intermediarybankzip | Customer’s Intermediary Bank zipcode | Optional |
cust_intermediarybankcountry | Customer’s Intermediary Bank country in ISO 2-digit alpha format | Optional |
settle_currency | Settlement Currency Code in ISO 3-digit alpha format | Mandatory |
wire_direction | The direction of wire transfer currency exchange trade. Values: S; B S: Sell; B: Buy |
Mandatory |
wire_paymenttype | Wire payment type.Values: Standard; Express Standard: Normal transfer which can take upto 3 days; Express: Next day transfer*** *** Business working day for both request received and processed. |
Mandatory |
wire_type | Wire type.Values: 1: Standard Wires. 2: Salary Wires. 3: Invoice Wires. 4: Affiliates Wires if not posted, default value: 1 |
Optional |
payment_reference | Payment reference to be shown on customer bank account statement. | Mandatory |
Form Field | Description |
---|---|
LPSReply_pwd | Password provided by merchant to LPS to authenticate return post fields. |
Request_Id | Request Id generated for the recredit request. |
LPS_refund_id | Refund Id generated for the recredit request. |
RefundSubmit_status | The status of the recredit request. See codes below. |
Bank_status | The submitted status of payback in LPS |
Sample Request for Wires
merchant_refund_id=Test_wires_live&Merchant_pwd=test&merchant_ref_number=lpstest123&payment_reference=testreference&firstname=Thirlok&bill_zip=test123&refund_type=8&bill_firstname=&bill_city=test&Wire_PaymentType=Standard&lastname=Shankar&bill_address1=SouthBankHouse&bill_address2=&phone=&Cust_BankName=testbank&Cust_SortCode=&Cust_BankSwiftCode=&Cust_BankCode=&Cust_BankAddress1=testadd1&Cust_BankAddres2=&Cust_BankCity=Belgium&Cust_BankState=ss&cust_BankZip=se123&Cust_BankCountry=GB&wire_category=1&email=&bill_lastname=&Cust_IntermediaryBankName=&Cust_IntermediaryAccountIBAN=&Cust_IntermediaryBankSwiftCode=&Cust_IntermediaryBankAddress1=&Cust_IntermediaryBankAddres2=&Cust_IntermediaryBankCity=&Cust_IntermediaryBankState=&cust_IntermediaryBankZip=&Cust_IntermediaryBankCountry=&bill_state=&wire_type=1&Refund_Amount=1&bill_country=GB&Cust_AccountName=&Cust_AccountNumber=&Cust_AccountIBAN=&Refund_Currency=GBP&Settle_Currency=USD&refund_commen=&Cust_dateofbirth=04/03/2022&Wire_Direction=B
Sample Response for Wires
LPSReply_pwd=test123&LPS_refund_id=23042&Request_Id=23042&RefundSubmit_status=0&Bank_status=
There are three different ways to update wires that are in a pending status:
- Individual Wire Status update request. The merchant will make a call to request an update on the status of each pending wire.
- Wire status broadcast. The Latpay Gateway will push a Wire status batch update every day at around 14.30 (GMT/BST) to a URL that has been provided by the merchant.
- Wire Batch Status update request. The merchant will make a call to request a batch update on the status of all pending wires. Therefore, all pending wires will be updated in one request
Field | Description | Required/Optional | Data Type | Len |
---|---|---|---|---|
merchant_refund_id | Merchant account user id provided by LPS | Required | String | 50 |
merchant_pwd | Merchant account password provided by LPS | Required | String | 50 |
merchant_ref_number | Merchant generated reference number | Required | alphanumeric | 50 |
refund_id | Returned from LPS on Wires request | Required | Int | 8 |
refund_currency | Wires requested currency | Required | String | 4 |
refund_amount | Wires requested amount | Required | 2 decimal places |
Field | Description |
---|---|
LPSReply_pwd | Password provided by merchant to LPS to authenticate return post fields |
LPS_refund_id | Returned from LPS on Wires request |
Merchant_ref_number | Merchant generated reference number |
Refund_amount | Wires requested amount |
ProcessedDate | Date of wires processed at bank in format of “dd/mm/yyyy” |
Refund_currency | Wires requested currency |
WiresCheck_Id | Unique ID generated for the status check request |
WiresCheck_status | The status of Wires status check request (see table below) |
RefundSubmit_status | The submitted status of Wires in LPS [SCHEDULE A4: RESPONSE CODES ON PAGE 12] |
Bank_status | The settlement status of Wires in LPS. [SCHEDULE A4: RESPONSE CODES ON PAGE 12] |
Reason | Bank decline reason if wire rejected |
WiresCheck_status | Description |
---|---|
0 | Status check request completed. Please check refund submit status and bank status for the final status of the Wire |
4001 | Merchant login details incorrect |
4002 | Merchant recredit account is not active |
4003 | Wire request not found |
9001 | Required mandatory field is missing in the Wire status check request |
9000 | System error while processing the Wire status check request. Please contact LPS |
Sample Request for accepted wire
merchant_refund_id=test_wires&merchant_pwd=test&merchant_ref_number=lpstest123&refund_id=22965&refund_amount=2&refund_currency=GBP
Sample response for accepted wire
LPSReply_pwd=test123&LPS_refund_id=22965&Merchant_ref_numbe=lpstest123&Refund_amount=2&Processeddate=27/05/2022&Refund_currency=GBP&WiresCheck_Id=29708&WiresCheck_status=0&RefundSubmit_status=0&Bank_status=00&Reason=””
The Latpay Gateway will push a Wire status batch update every day at around 14.30 (GMT/BST) to
a notification URL that has been provided by the merchant. It is sent as a standard HTTP POST
request and contains the fields as below. The notification is in a JSON format which contains the
batch of wires processed on that day. The merchant will provide the notification URL to Latpay
during integration.
LPS treats a Push notification as successfully received by the merchant’s server if:
- The response is received within 60 seconds after initiating the connection.
- A HTTP OK (200) is received.
- The document body contains the content: RECEIVED OK
Field | Description |
---|---|
Description | Returned from LPS on Wires request |
Merchant_ref_number | Merchant generated reference number |
Refund_amount | Wires requested amount |
Processeddate | Date of wires processed at bank in format of “dd/mm/yyyy” |
Refund_currency | Wires requested currency |
RefundSubmit_status | The submitted status of wires in LPS. Please refer schedule E1. |
Bank_status | The settlement status of Wires in LPS. |
Reason | Bank decline reason if wires is rejected |
Sample of a push notification:
{
“headers": [
{
"MerchantAccount": "Test_Wires",
"countOfTransaction": 3
}
],
"details": [
{
"LPS_refund_id": "22970",
"Merchant_ref_number": "lpstest123",
"Refund_amount": "1.00", “Processeddate”:”27/05/2022”,
"Refund_currency": "GBP", "RefundSubmit_status": "0",
"Bank_status": "00"
"Reason": ""
}
,
{
"LPS_refund_id": "22986",
"Merchant_ref_number": "lpstest123",
"Refund_amount": "1.00",
“Processeddate”:”27/05/2022”,
"Refund_currency": "GBP",
"RefundSubmit_status": "0",
"Bank_status": "00"
“Reason” : “”
}
,
{
"LPS_refund_id": "22985",
"Merchant_ref_number": "lpstest123",
"Refund_amount": "1.00",
“Processeddate”:”27/05/2022”,
"Refund_currency": "GBP",
"RefundSubmit_status": "0",
"Bank_status": "00"
“Reason”: ””
}
] }
The merchant will make a call to request a batch update on the status of all pending wires. Therefore, all pending wires will be updated in one request. Any Batch request date can be sent, and a confirmation of the wires processed in the batch on that date will be provided. To update the current pending wires, today’s date would be sent after 2pm (BST/GMT)
Field | Description | Required/Optional | Data Type | Len |
---|---|---|---|---|
merchant_refund_id | Merchant account user id provided by LPS | Required | String | 50 |
merchant_pwd | Merchant account password provided by LPS | Required | String | 50 |
Batchrequestdate | Wires processed at Bank. Date in format “dd/mm/yyyy” | Required | String | 50 |
Field | Description |
---|---|
LPS_refund_id | Returned from LPS on Wires request |
Merchant_ref_number | Merchant generated reference number. |
Processeddate | Date of wires processed at bank in format of “dd/mm/yyyy” |
Refund_amount | Wires requested amount |
Refund_currency | Wires requested currency |
RefundSubmit_status | The submitted status of Wires in LPS [SCHEDULE A4: RESPONSE CODES ON PAGE 12] |
Bank_status | The settlement status of Wires in LPS. [SCHEDULE A4: RESPONSE CODES ON PAGE 12] |
Reason | Bank decline reason if wire rejected |
Sample Request for Wire Batch Status update
merchant_refund_id=test_wires&merchant_pwd=test& Batchrequestdate=”01/05/2022”
Sample response for Wire Batch Status update
{
“headers": [
{
"MerchantAccount": "Test_Wires",
"countOfTransaction": 3
}
],
"details": [
{
"LPS_refund_id": "22970",
"Merchant_ref_number": "lpstest123",
“Processeddate”:”27/05/2022”,
"Refund_amount": "1.00",
"Refund_currency": "GBP",
"RefundSubmit_status": "0",
"Bank_status": "00"
"Reason": ""
} ,
{
"LPS_refund_id": "22986",
"Merchant_ref_number": "lpstest123",
“Processeddate”:”27/05/2022”,
"Refund_amount": "1.00",
"Refund_currency": "GBP",
"RefundSubmit_status": "0",
"Bank_status": "00"
"Reason": ""
},
{
"LPS_refund_id": "22985",
"Merchant_ref_number": "lpstest123",
“Processeddate”:”27/05/2022”,
"Refund_amount": "1.00",
"Refund_currency": "GBP",
"RefundSubmit_status": "0",
"Bank_status": "00"
"Reason": ""
}
] }
To cancel an authorised transaction:
- Submit the correct value in the LPS_transaction_id and merchant_ref_number fields.
- Make sure the transaction is not past the cut-off date for its scheduled payment cycle.
- Set “refund_type” post variable as either 3 or 4.
To refund a settled transaction:
- To refund a settled transaction:
- Make sure the transaction value is not more than allowed limit per OCT transaction. Also make sure that the daily limit on that card number hasn’t been exceeded either. Please contact LPS for OCT transaction limits.
- Set “refund_type” post variable as 5.
To send a Wires payment:
- Submit the correct value in Merchant_ref_number and billing fields
- Make sure the transaction value is not more than allowed limit per wires transaction. Also make sure that the daily limit on that account hasn’t been exceeded either. Please contact LPS for wires transaction limits.
- Set “refund_type” post variable as 8.
Refundsubmit_Status | Description |
---|---|
0 | If request – Successfully accepted by LPS. |
4001 | Merchant login details incorrect. |
4002 | Merchant recredit account is not active |
4003 | LPS transaction id is invalid / not found. |
4004 | Transaction has already been cancelled / fully refunded. |
4005 | Recredit request amount is invalid. |
4006 | Partial Recredit request disallowed***. |
4007 | Refund type invalid. |
4008 | Transaction cannot be cancelled, past cut off period. |
4009 | Transaction cannot be refunded as within the cancellation period – send cancellation request***. |
4010 | Transaction cannot be refunded, past cut off period***. |
4011 | Recredit value greater than allowed limit. Please contact LPS. |
4012 | Recredit value to the card exceeded per day limit. Please contact LPS. |
4014 | Invalid OCT currency. |
4015 | Invalid card issuing country. |
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. |
9001 | Required mandatory field missing in the recredit request. |
9000 | System error while processing the recredit request. Please contact LPS. |
9009 | Account not enabled for SCSS |
9010 | SCSS token not found or error. |
90 | Communication Failure. Please contact LPS |
*** The rules for these codes are governed by the bank gateway through which the original authorization transaction was processed.
Bank_Status*** | Description |
---|---|
00 | Recredit accepted by bank. |
05 | Recredit rejected by bank. |
07 | Insufficient balance to process recredit request. Recredit in pending |
90 | Communication Failure. Please contact LPS. |
*** Depending upon how your recredit account is configured, the “Bank_status” may also be returned empty instead of any of the above values. In that scenario, if “Refund Submit_status” is 0 and “Bank_Status” is empty, then it implies request accepted by LPS but pending submission to bank. If “Refund Submit_status” is NOT 0, then “Bank_status” will always be empty, implying that the request has failed LPS checks
SCHEDULE A1: POSTING PARAMETERS
Form Field | Description | Details |
---|---|---|
merchant_refund_id | LPS Provided value. It will be used to process refunds on all sites in your group, so if you have multiple authorisation accounts (merchant_user_id’s) with LPS, then this single merchant_refund_id will be used to process refunds for the entire group | Mandatory |
merchant_pwd | Password used for authenticating the refund account | Mandatory |
refund_type | This field indicates the type of refund. It should contain one of the following depending on the request: 1 – Standard Refund 2 – Fraud Refund 3 – Standard Cancellation 4 – Fraud Cancellation 5 - OCT 6 – Bacs 7- Faster Payments 8 – Wires 9 - BacsPay (bureau processing) | Mandatory |
lps_transaction_id | Original LPS transaction id of the authorisation transaction you wish to refund/void. | Conditional (Only for refund_type 1 to 4) |
merchant_ref_number | Merchant Reference number generated and sent to LPS by merchant with the original authorisation. NB: This should match only for refunds/voids. | Mandatory |
firstname | Customer First Name | Conditional (Only for refund_type 5,6,7,8,9) |
lastname | Customer Last Name | Conditional (Only for refund_type 5,6,7,8,9) |
phone | Customer Phone | Optional (Only for refund_type 5,6,7,8,9) |
Customer Email | Optional (Only for refund_type 5,6,7,8,9) | |
bill_firstname | Billing Customer First Name | Conditional (Only for refund_type 5,6) |
bill_lastname | Billing Customer Last Name | Conditional (Only for refund_type 5,6) |
bill_address1 | Billing Customer first line address | Conditional (Only for refund_type 5,6,8) |
bill_address2 | Billing Customer second line address | Optional (Only for refund_type 5,6,8) |
bill_city | Billing Customer city | Conditional (Only for refund_type 5,6,8) |
bill_state | Billing Customer state | Optional (Only for refund_type 5,6,8) |
bill_zip | Billing Customer zip | Conditional (Only for refund_type 5,6,8) |
bill_country | Billing customer country in ISO 2-digit alpha format | Conditional (Only for refund_type 5,6,8) |
pan | Card Number | Conditional (Only for refund_type 5,6) |
pan_expmo | Card expiry month in format mm | Conditional (Only for refund_type 5,6) |
pan_expyr | Card expiry year in format yyyy | Conditional (Only for refund_type 5,6) |
pan_startmo | Card start month in format mm | Optional (Only for refund_type 5,6) |
pan_startyr | Card start year in format yyyy | Optional (Only for refund_type 5,6) |
pan_type | Card type should contain one of the following values: VISA MAST SWITCH SOLO DELTA AMEX MAESTRO (Case sensitive, upper case only) | Conditional (Only for refund_type 5,6) |
pan_issue | Card issue number | Optional (Only for refund_type 5,6) |
refund_currency | Transaction Currency in ISO 3- digit alpha format | Conditional (Only for refund_type 5,6,7,8,9) |
refund_amount | Transaction amount with two decimal places only | Conditional (Only for refund_type 5,6,7,8,9) |
refund_comment | The reason or any note which needs to be added to the recredit request. NB: mandatory in case of fraud refunds. It’s a free text and ideally should indicate why the transaction is deemed fraud. | Optional*** ***Mandatory for fraud refunds. |
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. | Conditional*** (Only for refund_type 5,6. Only if SCSS options are required). ***If set to Y or N, then crdStr_token field will be ignored even if sent. |
crdstrg_token | Unique card details identifier from LPS SCSS system | Conditional*** (Only for refund_type 5,6. Only if scsscheck is set to D) ***If this field is not sent and scsscheck is set to D, a 9010 error code will occur. |
cust_bankname | Customer’s Bank Name | Conditional (Only for refund_type 8) |
cust_accountname | Customer’s Account Name | Conditional (Only for refund_type 7,8,9) |
cust_sortcode | Customer’s Sort Code | Conditional (Only for refund_type 7,9) |
cust_accountnumber | Customer’s Account Number | Conditional** (Only for refund_type 7,8,9) **Ignored, if cust_accountiban posted for refund_type 8 |
cust_accountiban | Customer’s Account IBAN | Conditional (Only for refund_type 8) |
cust_bankswiftcode | Customer’s Bank Swift Code | Conditional (Only for refund_type 8) |
cust_bankcode | Customer’s Bank Code | Optional (Only for refund_type 8) |
cust_bankaddress1 | Customer’s Bank Address line1 | Conditional (Only for refund_type 8) |
cust_bankaddress2 | Customer’s Bank Address line2 | Optional (Only for refund_type 8) |
cust_bankcity | Customer’s Bank city | Conditional (Only for refund_type 8) |
cust_bankstate | Customer’s Bank state | Optional (Only for refund_type 8) |
cust_bankzip | Customer’s Bank zipcode | Conditional (Only for refund_type 8) |
cust_bankcountry | Customer’s Bank country in ISO 2-digit alpha format | Conditional (Only for refund_type 8) |
cust_intermediarybankname | Customer’s Intermediary Bank Name | Optional (Only for refund_type 8) |
cust_intermediaryaccountiban | Customer’s Intermediary Account IBAN | Optional (Only for refund_type 8) |
cust_intermediarybankswiftcode | Customer’s Intermediary Bank Swift Code | Optional (Only for refund_type 8) |
cust_intermediarybankaddress1 | Customer’s Intermediary Bank Address line1 | Optional (Only for refund_type 8) |
cust_intermediarybankaddress2 | Customer’s Intermediary Bank Address line2 | Optional (Only for refund_type 8) |
cust_intermediarybankcity | Customer’s Intermediary Bank city | Optional (Only for refund_type 8) |
cust_intermediarybankstate | Customer’s Intermediary Bank state | Optional (Only for refund_type 8) |
cust_intermediarybankzip | Customer’s Intermediary Bank zipcode | Optional (Only for refund_type 8) |
cust_intermediarybankcountry | Customer’s Intermediary Bank country in ISO 2-digit alpha format | Optional (Only for refund_type 8) |
settle_currency | Settlement Currency Code in ISO 3-digit alpha format | Conditional (Only for refund_type 8) |
wire_direction | The direction of wire transfer currency exchange trade. Values: S; B S: Sell; B: Buy | Conditional (Only for refund_type 8) |
wire_paymenttype | Wire payment type. Values: Standard; Express Standard: Normal transfer which can take upto 3 days; Express: Next day transfer*** *** Business working day for both request received and processed | Conditional (Only for refund_type 8) |
wire_type | Wire type. Values: 1: Standard Wires. 2: Salary Wires. 3: Invoice Wires. 4: Affiliates Wires. if not posted, default value: 1 | Conditional (Only for refund_type 8) |
payment_reference | Payment reference to be shown on customer bank account statement. | Conditional (Only for refund_type 7,8,9) |
realtime | Flag to indicate if transaction is to be checked in realtime *** | Conditional (Only for refund type 1, 2, 3, 4) |
*** Please see section above on “REALTIME PROCESSING”
All recredit status can be checked in the LPS Hub reporting portal. However, the LPS recredits gateway also provides an API call to check the status of OCT’s submitted. This API call can be used to check in the event of communication failures on original OCT submissions. Or if the merchant wishes to check the status of OCT’s, or if they would like to know if the OCT is fully settled after being accepted by LPS initially.
SCHEDULE B1: POSTING PARAMETERS
Form Field | Description | Details |
---|---|---|
merchant_refund_id | LPS Provided value | Mandatory |
merchant_pwd | Password used for authenticating the refund account | Mandatory |
merchant_ref_number | Merchant Reference number sent along with the original OCT request | Mandatory |
refund_currency | Transaction Currency in ISO 3-digit alpha format | Mandatory |
refund_amount | Transaction amount with two decimal places only | Mandatory |
card_bin | Card number bin (first 6 digits) | Mandatory |
card_last4 | Card number last 4 digits | Mandatory |
Form Field | Description |
---|---|
LPSReply_pwd | Password provided by merchant to LPS to authenticate return post fields |
PaybackStatusCheckId | Unique ID generated for the status check request |
PaybackStatusCheck_status | The status of OCT status check request |
Request_Id | Request Id generated for the recredit request |
LPS_refund_id | Refund Id generated for the recredit request |
RefundSubmit_status | The submitted status of OCT in LPS. Please refer schedule A4 |
Bank_status | The settlement status of OCT in LPS. Please refer schedule A4 |
SCHEDULE A2: Response Parameters
Form Field | Description |
---|---|
LPSReply_pwd | Password provided by merchant to LPS to authenticate return post fields. |
Request_Id | Request Id generated for the recredit request. |
LPS_refund_id | Refund Id generated for the recredit request. |
RefundSubmit_status | The status of the recredit request. See codes below. |
Bank_status | The submitted status of payback in LPS. |
SCHEDULE A3: Additional Response Parameters
Depending on the merchant's account setup status, LPS Recredits API gateway can respond additional fields in addition to the fields specified in the "schedule A2" which is the response to confirm the results of the transaction. These fields will NOT be enabled by default and cannot be guaranteed to be returned even if enabled. Depending on the outcome of the transaction and on the gateway on which the merchant is setup, these fields can be returned. LPS will continue to add these additional response fields as required in future releases/upgrades of the gateway. If merchants wish to get these fields returned, they would need to contact LPS to get their accounts configured.
Form Field | Description |
---|---|
merchant_ref_number | Returned merchant’s reference number |
cardbin | First 6 digit of customer card |
cardlast4 | Last 4 digit of customer card |
To cancel an authorised transaction
- Submit the correct value in the LPS_transaction_id and merchant_ref_number fields.
- Make sure the transaction is not past the cut-off date for its scheduled payment cycle.
- Set “refund_type” post variable as either 3 or 4.
To refund a settled transaction
- Submit the correct value in the LPS_transaction_id and merchant_ref_number fields.
- Make sure the transaction is already settled and transaction is not older than 90 days.
- Set “refund_type” post variable as either 1 or 2.
To send a OCT payment
- Submit the correct value in Merchant_ref_number and billing fields.
- Make sure the transaction value is not more than allowed limit per OCT transaction. Also make sure that the daily limit on that card number hasn’t been exceeded either. Please contact LPS for OCT transaction limits.
- Set “refund_type” post variable as 5.
To send a Bacs payment
- Submit the correct value in Merchant_ref_number and billing fields.
- Make sure the transaction value is not more than allowed limit per Bacs transaction. Also make sure that the daily limit on that card number hasn’t been exceeded either. Please contact LPS for Bacs transaction limits.
- Set “refund_type” post variable as 6.
To send a Wires payment
- Submit the correct value in Merchant_ref_number and billing fields.
- Make sure the transaction value is not more than allowed limit per wires transaction. Also make sure that the daily limit on that account hasn’t been exceeded either. Please contact LPS for wires transaction limits.
- Set “refund_type” post variable as 8.
To send a BacsPay payment
- Submit the correct value in Merchant_ref_number and billing fields.
- Make sure the transaction value is not more than allowed limit per bacspay transaction. Also make sure that the daily limit on that account hasn’t been exceeded either. Please contact LPS for bacs bureau transaction limits.
- Set “refund_type” post variable as 9.
To send a FasterPayment payment
- Submit the correct value in Merchant_ref_number and billing fields. Make sure payment_reference is set.
- Make sure the transaction value is not more than allowed limit per FP transaction. Also make sure that the daily limit on that account hasn’t been exceeded either. Please contact LPS for FasterPayment transaction limits. - Set “refund_type” post variable as 7.
Currency | Code |
---|---|
Afghanistan Afghani | AFN |
Albanian Lek | ALL |
Algerian Dinar | DZD |
Angolan Kwanza | AOA |
Arab Emirates Dirham | AED |
Argentine Peso | ARS |
Armenian Dram | AMD |
Aruban Guilder | AWG |
Australian Dollar | AUD |
Azerbaijan New Manat | AZN |
Bahamian Dollar | BSD |
Bahraini Dinar | BHD |
Bangladeshi Taka | BDT |
Barbados Dollar | BBD |
Belarussian Ruble | BYR |
Belize Dollar | BZD |
Bermudian Dollar | BMD |
Bhutan Ngultrum | BTN |
Boliviano | BOB |
Botswana Pula | BWP |
Brazilian Real | BRL |
Brunei Dollar | BND |
Bulgarian Lev | BGN |
Burundi Franc | BIF |
Canadian Dollar | CAD |
Cape Verde Escudo | CVE |
Cayman Islands Dollar | KYD |
CFA Franc BCEAO | XOF |
CFA Franc BEAC | XAF |
CFP Franc | XPF |
Chilean Peso | CLP |
Colombian Peso | COP |
Comoros Franc | KMF |
Costa Rican Colon | CRC |
Croatian Kuna | HRK |
Cuban Peso | CUP |
Czech Koruna | CZK |
Danish Krone | DKK |
Denar | MKD |
Dinar | RSD |
Djibouti Franc | DJF |
Dobra | STD |
Dominican Peso | DOP |
East Caribbean Dollar | XCD |
East Carribean Dollar | XCD |
Ecuador Sucre | ECS |
Egyptian Pound | EGP |
El Salvador Colon | SVC |
Eritrean Nakfa | ERN |
Ethiopian Birr | ETB |
Euro | EUR |
Falkland Islands Pound | FKP |
Fiji Dollar | FJD |
Francs | CDF |
Gambian Dalasi | GMD |
Georgian Lari | GEL |
Ghanaian Cedi | GHS |
Gibraltar Pound | GIP |
Guatemalan Quetzal | QTQ |
Guinea Franc | GNF |
Guinea-Bissau Peso | GWP |
Guyana Dollar | GYD |
Haitian Gourde | HTG |
Honduran Lempira | HNL |
Hong Kong Dollar | HKD |
Hungarian Forint | HUF |
Iceland Krona | ISK |
Indian Rupee | INR |
Indonesian Rupiah | IDR |
Iranian Rial | IRR |
Iraqi Dinar | IQD |
Israeli New Shekel | ILS |
Jamaican Dollar | JMD |
Japanese Yen | JPY |
Jordanian Dinar | JOD |
Kampuchean Riel | KHR |
Kazakhstan Tenge | KZT |
Kenyan Shilling | KES |
Korean Won | KRW |
Kuwaiti Dinar | KWD |
Lao Kip | LAK |
Latvian Lats | LVL |
Lebanese Pound | LBP |
Lesotho Loti | LSL |
Liberian Dollar | LRD |
Libyan Dinar | LYD |
Lithuanian Litas | LTL |
Macau Pataca | MOP |
alagasy Franc | MGF |
Malawi Kwacha | MWK |
Malaysian Ringgit | MYR |
Maldive Rufiyaa | MVR |
Manat | TMT |
Marka | BAM |
Mauritanian Ouguiya | MRO |
Mauritius Rupee | MUR |
Mexican Nuevo Peso | MXN |
Moldovan Leu | MDL |
Mongolian Tugrik | MNT |
Moroccan Dirham | MAD |
Mozambique Metical | MZN |
Myanmar Kyat | MMK |
Namibian Dollar | NAD |
Nepalese Rupee | NPR |
Netherlands Antillean Guilder | ANG |
New Zealand Dollar | NZD |
Nicaraguan Cordoba Oro | NIO |
Nigerian Naira | NGN |
North Korean Won | KPW |
Norwegian Krone | NOK |
Omani Rial | OMR |
Pakistan Rupee | PKR |
Panamanian Balboa | PAB |
Papua New Guinea Kina | PGK |
Paraguay Guarani | PYG |
Peruvian Nuevo Sol | PEN |
Philippine Peso | PHP |
Polish Zloty | PLN |
Pound Sterling | GBP |
Pound Sterling | GGP |
Qatari Rial | QAR |
Romanian New Leu | RON |
Russian Ruble | RUB |
Rwanda Franc | RWF |
Samoan Tala | WST |
Saudi Riyal | SAR |
Seychelles Rupee | SCR |
Sierra Leone Leone | SLL |
Singapore Dollar | SGD |
Solomon Islands Dollar | SBD |
Som | KGS |
Somali Shilling | SOS |
South African Rand | ZAR |
South Sudan Pound | SSP |
Sri Lanka Rupee | LKR |
St. Helena Pound | SHP |
Sudanese Pound | SDG |
Surinam Dollar | SRD |
Swaziland Lilangeni | SZL |
Swedish Krona | SEK |
Swiss Franc | CHF |
Syrian Pound | SYP |
Taiwan Dollar | TWD |
Tajik Somoni | TJS |
Tanzanian Shilling | TZS |
Thai Baht | THB |
Tongan Pa anga | TOP |
Trinidad and Tobago Dollar | TTD |
Tunisian Dollar | TND |
Turkish Lira | TRY |
Uganda Shilling | UGX |
Ukraine Hryvnia | UAH |
Uruguayan Peso | UYU |
US Dollar | USD |
Uzbekistan Sum | UZS |
Vanuatu Vatu | VUV |
Venezuelan Bolivar | VEF |
Vietnamese Dong | VND |
Yemeni Rial | YER |
Yuan Renminbi | CNY |
Zambian Kwacha | ZMW |
Zimbabwe Dollar | ZWD |
Country | Code |
---|---|
AFGHANISTAN | AF |
ÅLAND ISLANDS | AX |
ALBANIA | AL |
ALDERNEY | |
ALGERIA (El Djazaïr) | DZ |
AMERICAN SAMOA | AS |
ANDORRA | AD |
ANGOLA | AO |
ANGUILLA | AI |
ANTARCTICA | AQ |
ANTIGUA AND BARBUDA | AG |
ARGENTINA | AR |
ARMENIA | AM |
ARUBA | AW |
ASCENSION ISLAND | |
AUSTRALIA | AU |
AUSTRIA | AT |
AZERBAIJAN | AZ |
BAHAMAS | BS |
BAHRAIN | BH |
BANGLADESH | BD |
BARBADOS | BB |
BELARUS | BY |
BELGIUM | BE |
BELIZE | BZ |
BENIN | BJ |
BERMUDA | BM |
BHUTAN | |
BOLIVIA | BO |
BOSNIA AND HERZEGOVINA | BA |
BOTSWANA | BW |
BOUVET ISLAND | BV |
BRAZIL | BR |
BRITISH INDIAN OCEAN TERRITORY | IO |
BRUNEI DARUSSALAM | BN |
BULGARIA | BG |
BURKINA FASO | BF |
BURUNDI | BI |
CAMBODIA | KH |
CAMEROON | CM |
CANADA | CA |
CAPE VERDE | CV |
CAYMAN ISLANDS | KY |
CENTRAL AFRICAN REPUBLIC | CF |
CHAD (Tchad) | TD |
CHANNEL ISLANDS | |
CHILE | CL |
CHINA | CN |
CHRISTMAS ISLAND | CX |
COCOS (KEELING) ISLANDS | CC |
COLOMBIA | CO |
COMOROS | KM |
CONGO, REPUBLIC OF | CG |
CONGO, THE DEMOCRATIC REPUBLIC OF THE (formerly Za | CD |
COOK ISLANDS | CK |
COSTA RICA | CR |
CÔTE D’IVOIRE (Ivory Coast) | CI |
CROATIA (Hrvatska) | HR |
CUBA | CU |
CYPRUS | CY |
CZECH REPUBLIC | CZ |
DENMARK | DK |
DJIBOUTI | DJ |
DOMINICA | DM |
DOMINICAN REPUBLIC | DO |
ECUADOR | EC |
EGYPT | EG |
EL SALVADOR | SV |
EQUATORIAL GUINEA | GQ |
ERITREA | ER |
ESTONIA | EE |
ETHIOPIA | ET |
FAEROE ISLANDS | FO |
FALKLAND ISLANDS (MALVINAS) | FK |
FIJI | FJ |
FINLAND | FI |
FRANCE | FR |
France, Metropolitan | FX |
FRENCH GUIANA | GF |
FRENCH POLYNESIA | PF |
FRENCH SOUTHERN TERRITORIES | TF |
GABON | GA |
GAMBIA, THE | GM |
GEORGIA | GE |
GERMANY (Deutschland) | DE |
GHANA | GH |
GIBRALTAR | GI |
GREAT BRITAIN | GB |
GREECE | GR |
GREENLAND | GL |
GRENADA | GD |
GUADELOUPE | GP |
GUAM | GU |
GUATEMALA | GT |
GUERNSEY | GG |
GUINEA | GN |
GUINEA-BISSAU | GW |
GUYANA | GY |
HAITI | HT |
HEARD ISLAND AND MCDONALD ISLANDS | HM |
HONDURAS | HN |
HONG KONG (Special Administrative Region of China) | HK |
HUNGARY | HU |
ICELAND | IS |
INDIA | IN |
INDONESIA | ID |
IRAN (Islamic Republic of Iran) | IR |
IRAQ | IQ |
IRELAND | IE |
ISLE OF MAN | IM |
ISRAEL | IL |
ITALY | IT |
JAMAICA | JM |
JAPAN | JP |
JERSEY | JE |
JERSEY | JE |
JORDAN (Hashemite Kingdom of Jordan) | JO |
KAZAKHSTAN | KZ |
KENYA | KE |
KIRIBATI | KI |
KOREA (Democratic People’s Republic of [North] Kore | KP |
KOREA (Republic of [South] Korea) | KR |
KUWAIT | KW |
KYRGYZSTAN | KG |
LAO PEOPLE’S DEMOCRATIC REPUBLIC LA LATVIA | LV |
LEBANON | LB |
LESOTHO | LS |
LIBERIA | LR |
LIBYA (Libyan Arab Jamahirya) | LY |
LIECHTENSTEIN (Fürstentum Liechtenstein) | LI |
LITHUANIA | LT |
LUXEMBOURG | LU |
MACAO (Special Administrative Region of China) | MO |
MACEDONIA (Former Yugoslav Republic of Macedonia) | MK |
MADAGASCAR | MG |
MALAWI | MW |
MALAYSIA | MY |
MALDIVES | MV |
MALI | ML |
MALTA | MT |
MARSHALL ISLANDS | MH |
MARTINIQUE | MQ |
MAURITANIA | MR |
MAURITIUS | MU |
MAYOTTE | YT |
MEXICO | MX |
MICRONESIA (Federated States of Micronesia) | FM |
MOLDOVA | MD |
MONACO | MC |
MONGOLIA | MN |
MONTSERRAT | MS |
MOROCCO | MA |
MOZAMBIQUE (Moçambique) | MZ |
MYANMAR (formerly Burma) | MM |
NAMIBIA | NA |
NAURU | NR |
NEPAL | NP |
NETHERLANDS | NL |
NETHERLANDS ANTILLES | AN |
NEW CALEDONIA | NC |
NEW ZEALAND | NZ |
NICARAGUA | NI |
NIGER | NE |
NIGERIA | NG |
NIUE | NU |
NORFOLK ISLAND | NF |
NORTHERN MARIANA ISLANDS | MP |
NORWAY | NO |
OMAN | OM |
PAKISTAN | PK |
PALAU | PW |
PALESTINIAN TERRITORIES | PS |
PANAMA | PA |
PAPUA NEW GUINEA | PG |
PARAGUAY | PY |
PERU | PE |
PHILIPPINES | PH |
PITCAIRN | PN |
POLAND | PL |
PORTUGAL | PT |
PUERTO RICO | PR |
QATAR | QA |
RÉUNION | RE |
ROMANIA | RO |
RUSSIAN FEDERATION | RU |
RWANDA | RW |
SAINT HELENA | SH |
SAINT KITTS AND NEVIS | KN |
SAINT LUCIA | LC |
SAINT PIERRE AND MIQUELON | PM |
SAINT VINCENT AND THE GRENADINES | VC |
SAMOA (formerly Western Samoa) | WS |
SAN MARINO (Republic of) | SM |
SAO TOME AND PRINCIPE | ST |
SAUDI ARABIA (Kingdom of Saudi Arabia) | SA |
SENEGAL | SN |
SERBIA AND MONTENEGRO (formerly Yugoslavia) | CS |
SEYCHELLES | SC |
SIERRA LEONE | SL |
SINGAPORE | SG |
SLOVAKIA (Slovak Republic) | SK |
SLOVENIA | SI |
SOLOMON ISLANDS | SB |
SOMALIA | SO |
SOUTH AFRICA (Zuid Afrika) | ZA |
SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS | GS |
SPAIN (España) | ES |
SRILANKA | LK |
SUDAN | SD |
SURINAME | SR |
SVALBARD AND JAN MAYEN | SJ |
SWAZILAND | SZ |
SWEDEN | SE |
SWITZERLAND (Confederation of Helvetia) | CH |
SYRIAN ARAB REPUBLIC | SY |
TAIWAN (“Chinese Taipei” for IOC) | TW |
TAJIKISTAN | TJ |
TANZANIA | TZ |
THAILAND | TH |
TIMOR-LESTE (formerly East Timor) | TL |
TOGO | TG |
TOKELAU | TK |
TONGA | TO |
TRINIDAD AND TOBAGO | TT |
TUNISIA | TN |
TURKEY | TR |
TURKMENISTAN | TM |
TURKS AND CAICOS ISLANDS | TC |
TUVALU | TV |
UGANDA | UG |
UKRAINE | UA |
UNITED ARAB EMIRATES | AE |
UNITED KINGDOM (Great Britain) | GB |
UNITED STATES | US |
UNITED STATES MINOR OUTLYING ISLANDS | UM |
URUGUAY | UY |
UZBEKISTAN | UZ |
VANUATU | VU |
VATICAN CITY(Holy See) | VA |
VENEZUELA | VE |
VIETNAM | VN |
VIRGIN ISLANDS ,BRITISH | VG |
VIRGIN ISLANDS, U.S. | VI |
WALLIS AND FUTUNA | WF |
WESTERN SAHARA (formerly Spanish Sahara) | EH |
YEMEN (Arab Republic) | YE |
ZAMBIA | ZM |
ZIMBABWE | ZW |
US State Codes
State | Code |
---|---|
ALABAMA | AL |
ALASKA | AK |
AMERICAN SAMOA | AS |
ARIZONA | AZ |
ARKANSAS | AR |
CALIFORNIA | CA |
COLORADO | CO |
CONNECTICUT | CT |
DELAWARE | DE |
DISTRICT OF COLUMBIA | DC |
FLORIDA | FL |
GEORGIA | GA |
GUAM | GU |
HAWAII | HI |
IDAHO | ID |
ILLINOIS | IL |
INDIANA | IN |
IOWA | IA |
KANSAS | KS |
KENTUCKY | KY |
LOUISIANA | LA |
MAINE | ME |
MARYLAND | MD |
MASSACHUSETTS | MA |
MICHIGAN | MI |
MINNESOTA | MN |
MISSISSIPPI | MS |
MISSOURI | MO |
MONTANA | MT |
NEBRASKA | NE |
NEVADA | NV |
NEW HAMPSHIRE | NH |
NEW JERSEY | NJ |
NEW MEXICO | NM |
NEW YORK | NY |
NORTH CAROLINA | NC |
NORTH DAKOTA | ND |
NORTHERN MARIANA ISLANDS | MP |
OHIO | OH |
OKLAHOMA | OK |
OREGON | OR |
PENNSYLVANIA | PA |
PUERTO RICO | PR |
RHODE ISLAND | RI |
SOUTH CAROLINA | SC |
SOUTH DAKOTA | SD |
TENNESSEE | TN |
TEXAS | TX |
UTAH | UT |
VERMONT | VT |
VIRGIN ISLANDS | VI |
VIRGINIA | VA |
WASHINGTON | WA |
WEST VIRGINIA | WV |
WISCONSIN | WI |
WYOMING | WY |
Canada State Codes
State | Code |
---|---|
ALBERTA | AB |
BRITISH COLUMBIA | BC |
MANITOBA | MB |
NEW BRUNSWICK | NB |
NEWFOUNDLAND | NF |
NORTHWEST TERRITORIES | NT |
NOVA SCOTIA | NS |
ONTARIO | ON |
PRINCE EDWARD ISLAND | PE |
QUEBEC | QC |
SASKATCHEWAN | SK |
YUKON TERRITORY | YT |
*** For other currencies, please check ISO website.