Partner Onboarding Service (without eKYC flow)

 

Version History:

Version

Description

Author

Date

(dd/mm/yyyy)

 1.0.0

 DRAP Onboarding Service (without eKYC flow) Document

 Ajai Antony

07/06/2024

 1.0.1

 Customer updation failure response

Ajai Antony

14/06/2024

1.0.2

AML Alert Closure CallBack API updates

Ajai Antony

15/10/2024

CLASSIFICATION: PUBLIC

 

 

The partner will conduct e-KYC or KYC procedures autonomously and employ the listed APIs to enroll customers onto the Customer Data Platform (CDP). They will supply essential customer details obtained from a trusted data source (such as an e-KYC provider or government database), additional information based on country requirements, along with customer documents, including front and back images of the customer's ID, a facial image, and any e-KYC verification or confirmation reports if applicable using the customer onboard API.

Access Token API

An access token is a key to the gateway to access any other API. The API will return the access token if the user is successfully authenticated and have the authorization to access these services. Every access token is tagged with validity and the expiry duration is echoed in the response for the calling application to manage the state accordingly. Token if used after its validity period restrict access to any services and a new token to be generated in this case.

API

https://{{baseUrl}}/auth/realms/cdp/protocol/openid-connect/token

Method

POST

Headers

Content-Type : application/x-www-form-urlencoded

Access Token Payload

--data-urlencode 'grant_type=password' \ --data-urlencode 'scope=api://3a3f52a1-1b64-4c27-81f0-50a6ca01324d/customer' \ --data-urlencode 'client_id=<<client_id>>' \ --data-urlencode 'client_secret=<<secret>>' \ --data-urlencode 'grant_type=password' \ --data-urlencode 'username=<<username>>' \ --data-urlencode 'password=<<password>>'

Refresh Token Payload

--data-urlencode 'grant_type=password' \ --data-urlencode 'client_id=<<client_id>>' \ --data-urlencode 'client_secret=<<secret>>' \ --data-urlencode 'grant_type=refresh_token' \ --data-urlencode 'refresh_token=<<refreshToken>>' \

Response

{ "token_type": "bearer", "access_token": "<<access_token_value>>", "expires_in": 7199, "refresh_expires_in": 7199, "refresh_token": "<<refresh_token_value>>", "scope": "----", "not-before-policy": 0, "session_state": "<<session_state>>" }

Header

Name

Data Type

Max Length

Mandatory

Description

Name

Data Type

Max Length

Mandatory

Description

Content-Type

String

36

MANDATORY

Content type

 

Payload

Name

Data Type

Max Length

Mandatory

Description

Name

Data Type

Max Length

Mandatory

Description

grant_type

String

10

MANDATORY

Grant type. Will up provided

scope

String

60

MANDATORY

Scope name. Will be provided

client_id

String

60

MANDATORY

Client Id. Will be provided

client_secret

String

60

MANDATORY

Client secret. Will be provided

username

String

60

MANDATORY

Admin user name

password

String

60

MANDATORY

Admin password

 

Response

Name

Data Type

Max Length

Mandatory

Description

Name

Data Type

Max Length

Mandatory

Description

token_type

String

-

MANDATORY

Token type

scope

String

-

MANDATORY

Scope details

access_token

String

600

MANDATORY

Access token to access the APIs

refresh_token

String

600

MANDATORY

refresh token to refresh the Token.

expires_in

Integer

-

MANDATORY

Token expiry time in seconds

refresh_expires_in

Integer

-

MANDATORY

Refresh Token expiry time in seconds

 

Customer Lookup API v2

 

API to be used to look up customer information by ID type and ID number.

API

https://{{baseUrl}}/caas/api/v2/customer/validate

Authorization

 Bearer Token

Method

POST

Headers

Content-Type:application/json

Payload

Success Response

 

HttpStatusCode : 200

Customer Not Found

HttpStatusCode : 200

Subscription Pending Response

HttpStatusCode : 200

Bad Request

HttpStatusCode : 200

Internal Server Error

HttpStatusCode : 200

Validation Failure Response - Customer Under Compliance Investigation

HttpStatusCode : 200

Validation Failure Response - Blocked Customer

HttpStatusCode : 200

Authentication Failure Response

HttpStatusCode : 401

Header

Name

Data Type

Max Length

Mandatory

Description

Name

Data Type

Max Length

Mandatory

Description

Content-Type

String

36

MANDATORY

Content type

Authorization

String

 

MANDATORY

Authorization Token

Payload

Name

Data Type

Max Length

Mandatory

Description

Name

Data Type

Max Length

Mandatory

Description

idType

String

3

MANDATORY

Customer id type code

idNumber

String

30

MANDATORY

Customer id Number

Response

Name

Data Type

Max Length

Description

Name

Data Type

Max Length

Description

status

String

255

status description

statusCode

Integer

 -

Status code

errorCode

Integer

-

Error code if any error encountered.

message

String

255

Message

data

Object

-

Data object

ecrn

String

20

Customer unique identification number

first_name

String

100

Customer first name

middle_name

String

60

Customer middle name

last_name

String

60

Customer last name

agent_location_id

String

10

Onboarded Agent

primary_mobile_number

String

20

Customer mobile no

email_id

String

255

Customer email

customer_status

String

20

Customer Status

ACTIVE / KYC_PENDING / INACTIVE / REJECTED / BLOCKED

aml_scan_status

String

20

AML Scanned Status

“Accepted” / “Rejected“ / “Under Investigation”/ “Failed

id_status

String

20

Possible values : "Active", "Expired",”Inactive”

id_date_of_expiry

String

 50

YYYY-MM-DD format

 

 

Individual Onboarding API

API to be used to onboard a customer.

API

https://{{baseUrl}}/caas-lcm/api/v1/CAAS/onBoarding/customer

Authorization

Bearer Token

Method

POST

Headers

Content-Type:application/json

Payload

Success Response

 

HttpStatusCode : 200

Validation Failure Response - Customer Under Compliance Investigation

HttpStatusCode : 406

Validation Failure Response - Blocked Customer

HttpStatusCode : 406

Validation Failure Response - Invalid Master Data

HttpStatusCode : 400

Validation Failure Response - Mandatory Field Missing

HttpStatusCode : 400

Customer Updation Failure Responce

Authentication Failure Response

HttpStatusCode : 401

Internal Server Error

 

HttpStatusCode : 502

Header

Name

Data Type

Max Length

Mandatory

Description

Name

Data Type

Max Length

Mandatory

Description

Content-Type

String

 

MANDATORY

Content Type

Authorization

String

 

MANDATORY

Authorization Token

Payload

Name

Data Type

Max Length

Mandatory

Description

Name

Data Type

Max Length

Mandatory

Description

 

 

 

 

 

channel

String

20

MANDATORY

Channel

salutation*

String

3

 CONDITIONAL

Salutation(Mr, Ms) , Salutation Id As per SALUTATION master

first_name

String

100

MANDATORY

First Name

middle_name

String

60

 CONDITIONAL

Middle Name

last_name

String

60

 MANDATORY

Last Name

preferred_name

String

255

 

Preferred Name

nationality*

String

2

 MANDATORY

Nationality code as per NATIONALITY Master

second_nationality*

String

2

 CONDITIONAL

Second Nationality code of Customer as per NATIONALITY Master

native_region*

Integer

 

 CONDITIONAL

Native Region code asper NATIVE_REGION Master

date_of_birth

Date

 

 MANDATORY

Date of Birth in “YYYY-MM-DD” Format

country_of_birth*

String

2

 MANDATORY

Country of Birth code as per COUNTRY Master

place_of_birth

String

40

 CONDITIONAL

Place of Birth

resident_type_id*

Long

 

 CONDITIONAL

Resident Type Id as per RESIDENT_TYPE Master

country_of_residence*

String

2

 MANDATORY

Resident Country code as per COUNTRY master

gender

Male

12

 MANDATORY

Gender

mothers_maiden_name

String

255

 CONDITIONAL

Mothers Name

primary_mobile_number

String

20

 MANDATORY

Primary Mobile Number

secondary_mobile_number

String

20

 CONDITIONAL

Secondary Mobile Number

email_id

String

255

 MANDATORY

Email Id

phone_number

String

20

 CONDITIONAL

Phone Number

occupation_id

Long

 

 CONDITIONAL

Occupation Id

political_exposed_person

Boolean

 

 CONDITIONAL

Political Exposed Person

additional_docs

Object

 

 CONDITIONAL

Data Object

document_id*

String

 

CONDITIONAL

Document Id as per DOCUMENT_TYPE master

base64_data

String

 

 CONDITIONAL

Base64 Data

content_type

String

 

 CONDITIONAL

Content Type

id_details

Object

 

 MANDATORY

Data Object

id_type

Long

 

MANDATORY

Id Type

id_number

String

30

MANDATORY

Id Number

name_as_per_id

String

30

 CONDITIONAL

Name as per Id

issued_country

String

3

 CONDITIONAL

Issued Country code as per COUNTRY master

issued_by

String

30

CONDITIONAL 

Issued By

issued_at

String

30

 CONDITIONAL

Issued At

issued_on

Date

 

 CONDITIONAL

Issued On in “YYYY-MM-DD” Format

date_of_expiry

Date

 

 CONDITIONAL

Date of Expiry in “YYYY-MM-DD” Format

visa_number

String

30

 CONDITIONAL

Visa Number

visa_expiry_date

Date

 

 CONDITIONAL

Visa Expiry Date in “YYYY-MM-DD” Format

default_status

String

30

 CONDITIONAL

Default Status

active_status

String

30

 CONDITIONAL

Active Status

id_front

Object

 

CONDITIONAL 

Data Object

base64_data

String

 

 CONDITIONAL

Base 64 Data

content_type

String

 

CONDITIONAL 

Content Type

id_back

Object

 

 CONDITIONAL

Data Object

base64_data

String

 

 CONDITIONAL

Base 64 Data

content_type

String

 

 CONDITIONAL

Content Type

addressList

Object

 

 MANDATORY

Data Object

address_type_id

Long

 

CONDITIONAL

Address Type Id as per ADDRESS_TYPE master

building_name

String

255

 CONDITIONAL

Building Name

street_name

String

255

 CONDITIONAL

Street Name

landmark

String

255

 CONDITIONAL

Landmark

country

String

3

 CONDITIONAL

Country

state

String

255

 CONDITIONAL

State

district

String

255

 CONDITIONAL

District

city

String

60

 CONDITIONAL

City

zip

Long

 

 CONDITIONAL

Zip

mobile_number

String

20

 CONDITIONAL

Mobile Number

status

String

30

 CONDITIONAL

Disable

customer_classification

Object

 

CONDITIONAL 

Data Object

customer_type_id

Long

 

 CONDITIONAL

Customer Type Id

annual_income_range_id

Long

 

 CONDITIONAL

Annual Income Range

annual_income_currency_code

String

30

 CONDITIONAL

Annual Income Currency Code

social_security_number

String

30

CONDITIONAL 

Social Security Number

tax_registration_number

Long

 

 CONDITIONAL

Tax Registration Number

txn_issued_country

String

2

 CONDITIONAL

Tax Issued Country

employer_name

String

30

 CONDITIONAL

Employer Name

employer_address

String

30

 CONDITIONAL

Employer Address

employer_phone

String

20

 CONDITIONAL

Employer Phone

employer_ecrn

String

16

 CONDITIONAL

Employer ECRN

employer_establishment_id

String

30

 CONDITIONAL

Employer Establishment ID

risk_rating_id

Long

 

 CONDITIONAL

Risk Rating ID

compliance_category_id

Long

 

CONDITIONAL 

Compliance Category ID

last_review_date

Date

 

 CONDITIONAL

Last review Date

next_review_date

Date

 

 CONDITIONAL

Next Review Date

pep_category

Integer

 

 CONDITIONAL

Pep Category

personal_mohre_id

String

30

CONDITIONAL 

Personal Mohre Id

customer_cards

String

30

 CONDITIONAL

Customer Cards

card_number

String

30

 CONDITIONAL

Card Number

income_type

String

30

 CONDITIONAL

Income Type

profession_category

String

30

 CONDITIONAL

Profession Category

reason_for_acc

String

30

 CONDITIONAL

Reason for ACC

txn_vol_month

String

30

 CONDITIONAL

Transaction Volume Month

txn_count_month

String

30

CONDITIONAL 

Transaction Count Month

show_remarks_on_txn

Boolean

 

 CONDITIONAL

show Remarks on transaction

customer_remarks

String

30

 CONDITIONAL

Remarks on Transaction

agent_ref_no

String

30

 CONDITIONAL

Agent reference number

social_links

Object

 

 CONDITIONAL

Data Object

social_links_id

Long

 

CONDITIONAL

Social Link Id

text_field

String

30

 CONDITIONAL

Text Field

status

String

30

 CONDITIONAL

Status

first_language

String

3

 CONDITIONAL

Customer Preferred Language

marital_status

Integer

 

 CONDITIONAL

Marital Status

profile_category

Integer

 

 CONDITIONAL

Profile Category

dnfbp

Boolean

 

 CONDITIONAL

Designated Non-Financial Business and Professions

dpms

Boolean

 

 CONDITIONAL

Dealers in Precious Metals and Stones

 

Response

Name

Data Type

Max Length

Description

Name

Data Type

Max Length

Description

status

String

255

status description

status_code

Int

 -

Status code

data

Object

-

Data object

ecrn

String

20

Customer Number

aml_scan_status

String

20

AML Scanned Status

“Accepted”/”Under investigation”/”Failed”/”NA”

customer_status

String

20

Customer Status

 

Get Customer API v2

API to be used to get the customer information by customer number.

API

https://{{baseUrl}}/caas/api/v2/customer/{{ecrn}}

Authorization

 Bearer Token

Method

GET

Headers

Content-Type: application/json

Payload

Success Response

HttpStatusCode: 200

Authentication Failure Response

HttpStatusCode: 401

Customer Not Subscribed Failure Response

HttpStatusCode: 200

Customer not found Failure Response

HttpStatusCode: 200

 Header

Name

Data Type

Max Length

Mandatory

Description

Name

Data Type

Max Length

Mandatory

Description

Content-Type

String

36

MANDATORY

Content type

Ocp-Apim-Subscription-Key

String

32

MANDATORY

Subscription key

 Parameter

Name

Data Type

Max Length

Mandatory

Description

Name

Data Type

Max Length

Mandatory

Description

ecrn

String

16

MANDATORY

Customer unique identification number

 Response

Name

Data Type

Max Length

Description

Name

Data Type

Max Length

Description

agent_location_id

String

30

Agent Location Id

channel

String

30

Channel

salutation

String

3

Salutation(Mr, Ms)

first_name

String

100

First Name

middle_name

String

60

Middle Name

last_name

String

60

Last Name

preferred_name

String

255

Preferred Name

nationality

String

2

Nationality

second_nationality

String

2

Second Nationality of Customer

native_region

Integer

 

Native Region

date_of_birth

Date

 

Date of Birth

country_of_birth

String

2

Country of Birth

place_of_birth

String

100

Place of Birth

resident_type_id

Long

 

Resident Type Id

country_of_residence

String

2

Country of Residence

gender

Male

12

Gender

mothers_maiden_name

String

30

Mothers Name

primary_mobile_number

String

20

Primary Mobile Number

secondary_mobile_number

String

20

Secondary Mobile Number

email_id

String

30

Email Id

phone_number

String

20

Phone Number

occupation_id

Long

 

Occupation Id

political_exposed_person

Boolean

 

Political Exposed Person

additional_docs

Object

 

Data Object

idNameId

String

 

Id name id

base64_data

String

 

 

content_type

String

 

Content Type

id_details

Object

 

Data Object

id_type

Long

 

Id Type

id_number

String

30

Id Number

name_as_per_id

String

30

Name as per Id

issued_country

String

2

Issued Country

issued_by

String

30

Issued By

issued_at

String

30

Issued At

issued_on

Date

 

Issued On

date_of_expiry

Date

 

Date of Expiry

visa_number

String

30

Visa Number

visa_expiry_date

Date

 

Visa Expiry Date

default_status

String

30

Default Status

active_status

String

30

Active Status

id_front

Object

 

Data Object

base64_data

String

 

Base 64 Data

content_type

String

 

Content Type

id_back

Object

 

Data Object

base64_data

String

 

Base 64 Data

content_type

String

 

Content Type

addressList

Object

 

Data Object

address_type_id

Long

 

Address Type Id

building_name

String

255

Building Name

street_name

String

255

Street Name

landmark

String

255

Landmark

country

String

2

Country

state

String

255

State

district

String

255

District

city

String

60

City

zip

Long

 

Zip

mobile_number

String

20

Mobile Number

status

String

30

Disable

customer_classification

Object

 

Data Object

customer_type_id

Long

 

Customer Type Id

annual_income_range_id

Long

 

Annual Income Range

annual_income_currency_code

String

30

Annual Income Currency Code

social_security_number

String

30

Social Security Number

tax_registration_number

Long

 

Tax Registration Number

txn_issued_country

String

2

Tax Issued Country

employer_name

String

30

Employer Name

employer_address

String

30

Employer Address

employer_phone

String

20

Employer Phone

employer_ecrn

String

16

Employer ECRN

employer_establishment_id

String

30

Employer Establishment ID

risk_rating_id

Long

 

Risk Rating ID

compliance_category_id

Long

 

Compliance Category ID

last_review_date

Date

 

Last review Date

next_review_date

Date

 

Next Review Date

pep_category

Integer

 

Pep Category

group_companies

Integer

 

Group Company

group_employer_code

String

30

Group Employee Code

personal_mohre_id

String

30

Personal Mohre Id

customer_cards

String

30

Customer Cards

card_number

String

30

Card Number

income_type

String

30

Income Type

profession_category

String

30

Profession Category

reason_for_acc

String

30

Reason for ACC

referred_by_type

Integer

 

Referred By Type

referred_by

String

30

Reffered By

txn_vol_month

String

30

Transaction Volume Month

txn_count_month

String

30

Transaction Count Month

show_remarks_on_txn

Boolean

 

show Remarks on transaction

customer_remarks

String

30

Remarks on Transaction

agent_ref_no

String

30

Agent reference number

ekyc_provider

String

30

ekyc provider

ekyc_ref_no

String

30

ekyc ref number

social_links

Object

 

Data Object

social_links_id

Long

 

Social Link Id

text_field

String

30

Text Field

subscriptions

Object

 

Data Object

subsciption_type

String

30

Subscription Type

subscription_id

String

30

Subscription Id

status

String

30

Status

first_language

String

3

Customer Preferred Language

marital_status

Integer

 

Marital Status

profile_category

Integer

 

Profile Category

dnfbp

Boolean

 

Designated Non-Financial Business and Professions

dpms

Boolean

 

Dealers in Precious Metals and Stones

 

AML Alert Closure CallBack Api

We will be calling partner API to update the customer status and AML status.

Payload

Name

Data Type

Max Length

Description

Name

Data Type

Max Length

Description

ecrn

String

20

CDP Customer Unique Identification Number will be present if customer is onboarded to CDP

aml_scan_status

String

20

AML Scanned Status will be p[resent if customer is onboarded to CDP

“Accepted” / “Rejected“ / “Under Investigation”/ “Failed” / “N/A” (not available when screening not done)

customer_status

String

20

Customer Status will be present if customer is onboarded to CDP

ACTIVE / KYC PENDING / INACTIVE / REJECTED / BLOCKED

 

Master Data