Updated 13.02.2019
POS Loans
Version 1.1.0.1642
Introduction
This document describes the structure of SaltPay's POS loans which enables merchants to offer consumer loans through point of sale systems.
The POS system selects SaltPay consumer loan as payment. The customer receives s sms to self service a loan application during the traditional payment process. An abstract view of the process flow can be seen in Image 1.
Image 1 - Overview of POS loan process from merchant to customer mobile device.
POS loan process
- Customer products have been scanned into POS system and consumer loan is selected as payment. GetPaymentMethods method is called to display available payment options (see Image 2) . Merchant selects the payment option that the customer prefers.
- Merchant enters customer phone number and presses Send SMS button and POS system calls the CreateOnlineLoanTokenSMS method. Loan status is set to CREATED and customer receives SMS with URL that allows temporary access to SaltPay loan application web.
- POS system goes into waiting for payment mode and calls CheckOnlineLoanStatus every 3-5 seconds to monitor loan progress.
- Customer opens the URL and loan status is set to INPROGRESS. Customer then applies for a loan confirming his identity with electronic identification via mobile phone or online bank token.
- a) Customer starts loan evaluation and status is updated to PENDING. Loan is successfully created and loan status is updated to SUCCESS.
b) Customer is not approved for loan or changes is mind and presses the Cancel button. Loan status is updated to CANCELED. - a) POS system receives SUCCESS status from calling CheckOnlineLoanStatus method. The system calls ValidateOnlineLoan method to validate loan and receive loan details (e.g. ContractNumber) to store in POS system as reference id.
b) POS system receives CANCELED status from calling CheckOnlineLoanStatus method. Customer has pressed the cancel button (5.b) in the loan application form. Merchant can choose another payment option to try again
Process deviations
- POS system calls CancelOnlineLoan to cancel the process. Loan status is updated to CANCELED.
- Status is set to TOKENEXPIRED when URL with access to SaltPay loan web has not been used within predefined value (urlValidMinutes input when CreateOnlineLoanTokenSMS method is called). If customer opens an expired URL he will not gain access. POS system needs to issue a new SMS URL and restart the process.
- Status is set to PROGRESSEXPIRED if customer has opened URL but not finished or canceled loan progress within the predefined value (progressValidMinutes input when CreateOnlineLoanTokenSMS method is called). POS system has to issue a new SMS URL and restart the process.
- Status is set to FAILED if ValidateOnlineLoan method call is not successful. Method response will provide necessary details of failure.
Image 2 - Example of POS loan menu that show available payments methods and includes mobile number input.
Webservice functions
Four webservice functions from SaltPay Consumer Loans API are used for the POS loan process:
- GetPaymentMethods to display available payments options to customer.
- CreateOnlineLoanTokenSMS to send SMS with URL to authorize customer to create loan and pre-register merchant information for the loan process.
- CheckOnlineLoanStatus to get loan process status.
- ValidateOnlineLoan to validate that customer has successfully created a loan.
- CancelOnlineLoan for POS system to cancel the loan process. If customer continues with process he will not be able to create a loan contract.
GetPaymentMethods
Used to display payment options in POS system with loan key information like PaymentName and PaymentInfo. Typical options are loan with interest up to 36 months or loan without interests up to 12 months. Returns LoanTypeId and MaxNumberOfPayments that needs to be provided in OnlineLoan object when calling CreateOnlineLoanTokenSMS method.
CreateOnlineLoanTokenSMS
CreateOnlineLoanTokenSMS is called with the OnlineLoan object that holdes information regarding the consumer loan, merchant information and redirect URLs.
SuccessUrl SaltPay provides a success page https://test.borgun.is/radgreidslur/Pos/Success. *TechSheet includes production URL
CancelUrl SaltPay provides a cancel page https://test.borgun.is/radgreidslur/Pos/Cancel. *TechSheet includes production URL
NumberOfPayments and LoanTypeId was acquired when calling the GetPaymentMethods method.
FlexibleNumberOfPayments should be true to allow the customer to choose from available number of payments as high as NumberOfPayments was provided.
Example data for OnlineLoan
proxy.OnlineLoan onlineLoan = new proxy.OnlineLoan
{
Amount = 64995,
Description = "Playstation 4",
LoanTypeId = 24,
MerchantNumber = "9635422",
NumberOfPayments = 12,
FlexibleNumberOfPayments = true,
SuccessUrl = "https://test.borgun.is/radgreidslur/Pos/Success",
CancelUrl = "https://test.borgun.is/radgreidslur/Pos/Cancel",
};
Other parameters required to call the CreateOnlineLoanTokenSMS method include the following.
progressValidMinutes controls how much time customer needs to finish his part of the loan progress before the POS system receives that status is PROGRESSEXPIRED. Ideal time is 5 minutes.
urlValidMinutes controls how long the URL that customer receives is valid. Ideal time is 1-2 minutes.
The function returns a tokenstring that is used to call CheckOnlineLoanStatus, ValidateOnlineLoan and CancelOnlineLoan.
CheckOnlineLoanStatus
The POS system calls the CheckOnlineLoanStatus method to monitor loan process status and responds accordingly to changes in status.
ValidateOnlineLoan
ValidateOnlineLoan is called with three parameters, token, returnUrl and merchantNumber. Note: POS system calls this method (see 6.a in loan process).
token that is the same token received from CreateOnlineLoanTokenSMS.
redirectUrl is the same as SuccessUrl but token is added as query parameter. https://test.borgun.is/radgreidslur/Pos/Success?token=[token]
The validation is successful if the loan has been created.