This API is used to onboard a customer via eKYC by authorized entities associated with Lulu. The API provides encrypted HTML page content with a unique eKYC request Id as a response. The sequence diagram below provides further insight into the rich customer onboarding experience.
Customer onboarding
API | /api/v1_0/ras/onboarding |
Authorization | Bearer Token |
Method | POST |
Headers | Content-Type:application/json sender : <<sender_name>> company: <<company_code>> branch: <<branch_code>>
|
Payload | { "salutation": "Mr", "first_name": "rahul", "middle_name": "krishna", "last_name": "kumar", "nationality": "IN", "date_of_birth": "1986-12-10", "country_of_birth": "IN", "visa_type_code": "101", "gender": "M", "mobile_number": "+96858792858", "email": "rahul.k2754@gmail.com", "profession_code": "547", "country_code": "IN", "country_of_residence":"OM", "sender_id": [ { "id_code": "9", "id": "225522338", "issued_country_code": "IN", "issued_by": "Govt.", "issued_on": "2010-12-10", "valid_through": "2030-12-10", "id_front": { "base64_data": "....", "content_type": "application/pdf", "document_type": "passport front page" }, "id_back": { "base64_data": ".....", "content_type": "application/pdf", "document_type": "passport back page" } } ], "sender_address": [ { "address_type": "PERMANENT", "building_number": "123/5", "street_name": "Chittatumukk", "address_line": "abc", "country_code": "IN", "country_subdivision": "KOKOKOKOKK", "town_name": "THRISSUR", "post_code": "695301" }, { "address_type": "PRESENT", "building_number": "102/6", "street_name": "Chittatumukk", "address_line": "abc", "country_code": "OM", "country_subdivision": "KOKOKOKOKK", "town_name": "Test town", "post_code": "695301" } ], "customer_classification": { "annual_income_range_id": "1", "employer_name": "Lulu", "income_type": 1, "txvol_month": 100, "txn_count_month": 10 } }
|
Response | { "status": "success", "status_code": 200, "data": { "customer_number": "1000001220000001", "customer_status": "ACTIVE", "aml_scan_status": "Accepted" } } |
Header
Name | Data Type | Max Length | Mandatory | Description |
---|---|---|---|---|
Content-Type | String | 36 | Yes | Content type |
sender | String | 60 | Yes | Agent / Partner name. |
channel | String | 30 | Yes | Ripple / Direct |
company | String | 6 | Yes | Will be shared |
branch | String | 6 | Yes | Will be shared |
Ocp-Apim-Subscription-Key | String | 32 | Yes | Subscription key |
Payload
Name | Data Type | Max Length | Mandatory | Description |
---|---|---|---|---|
salutation | String | 3 | Yes | Customer salutation |
first_name | String | 255 | Yes | Customer first name |
middle_name | String | 255 | No | Customer middle name |
last_name | String | 255 | Yes | Customer last name |
nationality | String | 2 | Yes | Customer nationality |
date_of_birth | String | - | Yes | Customer date of birth |
country_of_birth | String | 2 | Yes | Customer country of birth |
visa_type_code | String | 3 | Yes | Sender visa type code |
gender | String | 1 | Yes | Customer gender. Possible values are M and F |
mobile_number | String | 20 | Yes | Customer mobile no |
String | 30 | Yes | Customer email | |
profession_code | String | 4 | Yes | Profession code |
country_code | String | 2 | Yes | Customer Country code |
country_of_residence | String | 2 | Yes | Country of residence |
sender_id | object | - | Yes | Sender details |
id_code | String | 3 | Yes | Customer id type code. Example : 4 for emirates ID |
id | String | 30 | Yes | Customer ID / number. Example : Emirates ID |
issued_country_code | String | 2 | Optional | Customer id issued country |
issued_by | String | 255 | Optional | Customer id issued by |
issued_on | String | - | Optional | YYYY-MM-DD format |
valid_through | String | - | Optional | YYYY-MM-DD format |
id_front | Object | - | Optional |
|
base64_data | String | - | Yes | PDF content base 64 data |
content_type | String | 30 | Yes | Content type. application/pdf |
document_type | String | 255 | Yes | Document type description |
id_back | Object | - | Optional |
|
base64_data | String | - | Yes | PDF content base 64 data |
content_type | String | 30 | Yes | Content type. application/pdf |
document_type | String | 255 | Yes |
|
sender_address | Object | - | Yes | Data object |
address_type | String | 20 | Yes | Sender address type like Present, Permanent |
address_line | String | 70 | Yes | Building name |
street_name | String | 70 | Yes | Street name |
country_code | String | 2 | Yes | Country |
country_subdivision | String | 35 | Yes | Sender country sub division |
town_name | String | 35 | Yes | Sender town name |
post_code | String | 12 | Yes | Sender postal area code. Example: Zipcode, Pincode |
customer_classification | Object | - | Yes | Data object |
annual_income_range_id | String | 3 | Yes | Customer annual income range id |
employer_name | String | 255 | Yes | Employer name(eg:LULU) |
income_type | Integer | - | Yes | Customer Income Type |
txvol_month | Integer | - | Yes | Transaction volume per month |
txn_count_month | Integer | - | Yes | Transaction count per month |
Response
Name | Data Type | Max Length | Name | Description |
---|
Name | Data Type | Max Length | Name | Description |
---|---|---|---|---|
status | String | 255 | Yes | status description |
status_code | Int | - | Yes | Status code |
data | Object | - | Yes | Data object |
customer_number | String | 16 | Yes | Customer unique identification number |
customer_status | String | 20 | Yes | Customer status. Possible status : "ACTIVE", "KYC_PENDING" "INACTIVE" "BLOCKED" |
aml_scan_status | String | 20 | Yes | AML status. Possible Status : "Accepted" , "Under Investigation" , "Rejected" |
EKYC Presentation Request
API | /api/v1/request |
Authorization | Bearer Token |
Method | POST |
Headers | Content-Type:application/json |
Payload | { "channel": "BRANCH", "agentLocationId": "784101", "ekycProvider": "EFR", "ecrn": "123456789", "primaryMobileNumber": "+971502106707", "emailId": "irfanmtp1@gmail.com" } |
Success Response | { "status": "success", "statusCode": 200, "data": { "ekyc_request_id": "4e41d40a-6f16-4874-977b-017798d1e583", "ekyc_request_data": { "ekyc_portal_html": "<<encrypted_base_64_ekyc_portal_html_if_any>>" } } } |
Authentication Failure | { "timestamp": "2022-12-05T13:44:31.557+00:00", "status": 401, "error": "Unauthorized", "path": "/api/v1/request" } |
Other Failure Response | { "status": "failure", "statusCode": 400, "errorCode": 40000, "message": "Payload not readable or corrupt" } |
Header
Name | Data Type | Max Length | Mandatory | Description |
---|---|---|---|---|
Content-Type | String | 36 | Yes | Content type |
Payload
Name | Data Type | Max Length | Mandatory | Description |
---|---|---|---|---|
channel | String | 20 | Yes | Channel |
agentLocationId | String | 6 | Yes | Unique Identifier to identify the requester |
ekycProvider | String | 30 | Yes | EKYC Provider |
ecrn | String | 255 | Yes | Customer Number |
primaryMobileNumber | String | 20 | No | Primary Mobile Number |
emailId | String | 120 | No | Email ID |
Response
Name | Data Type | Max Length | Description |
---|
Name | Data Type | Max Length | Description |
---|---|---|---|
status | String | 255 | status description |
status_code | Int | - | Status code |
message | String | 255 | Message |
data | Object | - | Data object |
ekyc_request_id | String | 50 | EKYC Request unique identification number |
ekyc_request_data | Object | - | Data object |
ekyc_portal_html | String | 4000 | Base 64 Encrypted EKYC Portal Html content |
Lookup
API to be used to look up customer information by id type, id number and mobile number.
API | /api/v1_0/ras/lookup |
Authorization | Bearer Token |
Method | POST |
Headers | Content-Type:application/json sender : <<sender_name>> company: <<company_code>> branch: <<branch_code>>
|
Payload | { "mobile_number": "+96864313460", "id_code": "15", "id": "225522319" }
|
Response | { "status": "success", "status_code": 200, "data": { "customer_number": "5121121220000006", "first_name": "CHOCKY", "middle_name": "NAIR", "last_name": "DO", "mobile_number": "+96864313460", "email": "CHOCKY.96864313460@gmail.com", "customer_status": "ACTIVE", "aml_scan_status": "Accepted", "id_status" : "Active", "id_details": [ { "id_code": "15", "id": "225522319", "valid_through": "2030-12-10" } ] } } |
Response (No customer found) | { "status": "failure", "status_code": 404, "error_code": 40100, "message": "Customer not found" } |
Response (Mobile number NOT matched) | { "status": "failure", "status_code": 404, "error_code": 40100, "message": "ID matched, but mobile number not matched" } |
Header
Name | Data Type | Max Length | Mandatory | Description |
---|---|---|---|---|
Content-Type | String | 36 | Yes | Content type |
sender | String | 60 | Yes | Agent / Partner name. |
channel | String | 30 | Yes | Ripple / Direct |
company | String | 6 | Yes | Will be shared |
branch | String | 6 | Yes | Will be shared |
Ocp-Apim-Subscription-Key | String | 32 | Yes | Subscription key |
Payload
Name | Data Type | Max Length | Mandatory | Description |
---|---|---|---|---|
mobile_number | String | 20 | Yes | Customer mobile no |
id_code | String | 3 | Yes | Customer id type code |
id | String | 30 | Yes | Customer id/Number |
Response
Name | Data Type | Max Length | Name | Description |
---|
Name | Data Type | Max Length | Name | Description |
---|---|---|---|---|
status | String | 255 | Yes | status description |
status_code | Int | - | Yes | Status code |
data | Object | - | Yes | Data object |
customer_number | String | 16 | Yes | Customer unique identification number |
first_name | String | 255 | Yes | Customer first name |
middle_name | String | 255 | Yes | Customer middle name |
last_name | String | 255 | Yes | Customer last name |
mobile_number | String | 20 | Yes | Customer mobile no |
String | 30 | Yes | Customer email | |
customer_status | String | 20 | Yes | Possible values : "ACTIVE", "KYC_PENDING", "INACTIVE", "BLOCKED", "DISABLED", "SUBSCRIPTION_PENDING" |
aml_scan_status | String | 20 | Yes | Possible values : "Accepted" , "Under Investigation" , "Rejected", "Failed" |
id_status | String | 20 | Yes | Possible values : "Active", "Expired" |
id_details | Object |
| Yes | id details |
id_code | String | 3 | Yes | Customer id type code |
id | String | 30 | Yes | customer id/Number |
valid_through | String |
| Yes | YYYY-MM-DD format |
Add Comment