---
# System prepended metadata

title: Onboarding Task API documentation

---

# Onboarding Task API documentation
## Database Schemas - Lenders



### Clients

 ```json
    {
        "id": String
        "userId": String,
        "name": String,
        "dob":Date,
        "birthplace":String
    }
```


## JSON CONFIG-AGGREGATOR

### Config
 
  ```json
    {
        "id": String,
        "lender_name": String,
        "database_url": String,
        "port": Number,
        "groups": Array,
    }
```
## API Overview - Lenders

The API provides access to CRUD operations on lenders DB:

* Add client 
* Read client
* Update client
* Delete client



<hr>


### Client Routes

#### [POST] /client

Add client into the lenders database



+ **Request Body**

    + userId: (string) - UserId of the user to be added
    + name: (string) - Name of the user to be added
    + dob: (Date) - Date of birth of user
    + birthplace: (string) - Country where the user was born

+ **Example**

```json
{
    "userId": "389de9a9c98c6d78d7d68",
    "name": "Steve",
    "dob":"19-12-2022",
    "birthplace":"India"
    
}
```

+ **Response**
<table>
<tr>
<th>Status Code</th>
<th>Success</th>
<th>Message</th>    
<th>Data</th>
<th>Example</th>
</tr>
<tr>
<td>201</td>
<td>true</td>
<td>Client added successfully</td>
<td>None</td>
<td>

```json
{
    "success": true,
    "message": "Client added successfully"
} 
```
            

<tr>
<td>500</td>
<td>false</td>
<td>Internal Server Error</td>
<td>None</td>
<td>
    
```json
{
    "success": false,
    "message": "Internal Server Error",
} 
```
    
</td>
</tr>
</table>

    
#### [GET] /clients

Get all clients details.



+ **Request Body**

    + None

+ **Response**
<table>
<tr>
<th>Status Code</th>
<th>Success</th>
<th>Message</th>    
<th>Data</th>
<th>Example</th>
</tr>
<tr>
<td>200</td>
<td>true</td>
<td>All clients fetched successfully</td>
<td>

```json
{
"clients": [{
    "id": String,
    "userId": String,
    "name": String,
    "dob": Date,
    "birthplace": String,
    },
    .
    .
    .]
}
```
    
</td>
<td>

```json
{
    "success": true,
    "message": "Clients fetched successfully",
    "data": {
    "clients": [{
        "id": "1",
        "userId":"93J924Hbe82h4"
        "name": "Steve",
        "dob": "19-05-2001",
        "birthplace": "India",
        
    }]
}
```
            
</td>
</tr>
<tr>
<td>500</td>
<td>false</td>
<td>Internal Server Error</td>
<td>None</td>
<td>
    
```json
{
    "success": false,
    "message": "Internal Server Error",
} 
```
    
</td>
</tr>
</table>

    
    
#### [GET] /clients/:clientId

Get details of particular client.



+ **Request Body**

    + None

+ **Response**
<table>
<tr>
<th>Status Code</th>
<th>Success</th>
<th>Message</th>    
<th>Data</th>
<th>Example</th>
</tr>
<tr>
<td>200</td>
<td>true</td>
<td>Client details fetched successfully</td>
<td>

```json
{
"client": {
    "id": String,
    "userId": String,
    "name": String,
    "dob": Date,
    "birthplace": String,
}
```
    
</td>
<td>

```json
{
    "success": true,
    "message": "Client fetched successfully",
    "data": {
    "client": {
        "id": "1",
        "userId":"93J924Hbe82h4"
        "name": "Steve",
        "dob": "19-05-2001",
        "birthplace": "India",
    }
}
```
            
</td>
</tr>
<tr>
<td>500</td>
<td>false</td>
<td>Internal Server Error</td>
<td>None</td>
<td>
    
```json
{
    "success": false,
    "message": "Internal Server Error",
} 
```
    
</td>
</tr>
</table>

    

#### [PATCH] /clients

Update the details of the client.



+ **Request Body**

    + userId: (string) - UserId of the user to be added
    + name: (string) - Name of the user to be added
    + dob: (Date) - Date of birth of user
    + birthplace: (string) - Country where the user was born

+ **Response**
<table>
<tr>
<th>Status Code</th>
<th>Success</th>
<th>Message</th>    
<th>Data</th>
<th>Example</th>
</tr>
<tr>
<td>200</td>
<td>true</td>
<td>Client details updated successfully</td>
<td>
    
```json
{
"client": {
    "id": String,
    "userId": String,
    "name": String,
    "dob": Date,
    "birthplace": String,
}
```
</td>
<td>

```json
{
    "success": true,
    "message": "Client details updated successfully",
    "data": {
        "client": {
            "id": 1,
            "userId": "JO933104nB",
            "name": "Steve",
            "dob": "21-05-2001",
            "birthplace": "India",
    }
    }
}
```
            
</td>
</tr>
<tr>
<td>500</td>
<td>false</td>
<td>Internal Server Error</td>
<td>None</td>
<td>
    
```json
{
    "success": false,
    "message": "Internal Server Error",
} 
```
    
</td>
</tr>
</table>

    

#### [DEL] /clients

Delete a client


+ **Request Body**

    + id: (string) - id of the client to be removed 

+ **Example**

```json
{
    "id": "7",
}
```

+ **Response**
<table>
<tr>
<th>Status Code</th>
<th>Success</th>
<th>Message</th>    
<th>Data</th>
<th>Example</th>
</tr>
<tr>
<td>200</td>
<td>true</td>
<td>Client removed successfully</td>
<td>None</td>
<td>

```json
{
    "success": true,
    "message": "Client removed successfully"
} 
```

</td>
</tr>
<tr>
<td>404</td>
<td>false</td>
<td>id not found</td>
<td>None</td>
<td>
    
```json
{
    "success": false,
    "message": "id not found"
} 
```
    
</td>
</tr>
<tr>
<td>500</td>
<td>false</td>
<td>Internal Server Error</td>
<td>None</td>
<td>
    
```json
{
    "success": false,
    "message": "Internal Server Error",
} 
```
    
</td>
</tr>
</table>
    
    

## API Overview - Aggregators

The API provides access to config of aggregator and allows checking of fraud

* Get config
* Check duplication




<hr>
    

### Config Routes

#### [POST] /config


    
#### [GET] /config

Get config details.

+ **Headers**

```json
{
    "appId": String,
    "appkey": String
}
```

+ **Request Body**

    + None

+ **Response**
<table>
<tr>
<th>Status Code</th>
<th>Success</th>
<th>Message</th>    
<th>Data</th>
<th>Example</th>
</tr>
<tr>
<td>200</td>
<td>true</td>
<td>Config details fetched</td>
<td>

```json
{
"config": [{
    "id": String,
    "lender_name": String,
    "database_url": String,
    "port": Number,
    "groups": Array,
    },
    .
    .
    .]
}
```
    
</td>
<td>

```json
{
    "success": true,
    "message": "Clients fetched successfully",
    "data": [
    {
    "id": "yU4K99"
   "lender_name": "Lender A"
    "database_url": "localhost://postgres:newPassword@postgres:5432/todo-db",
    "port": 5432,
    "groups": ["open","common"]
    
}
]
    }
```
            
</td>
</tr>
<tr>
<td>500</td>
<td>false</td>
<td>Internal Server Error</td>
<td>None</td>
<td>
    
```json
{
    "success": false,
    "message": "Internal Server Error",
} 
```
    
</td>
</tr>
</table>

    


  
    
### Duplication Routes
    
#### [POST] /check_dupication

Check if input details are fraud or not

+ **Headers**

```json
{
    "appId": String,
    "appkey": String
}
```

+ **Request Body**

    + lender_id: (string) - Id of the lender
    + userId: (string) - UserId of the user to be added
    + name: (string) - Name of the user to be added
    + dob: (Date) - Date of birth of user
    + birthplace: (string) - Country where the user was born

+ **Example**

```json
{
    "lender_id":"P0O993"
    "userId": "389de9a9c98c6d78d7d68",
    "name": "Steve",
    "dob":"19-12-2022",
    "birthplace":"India"
    
}
 ```
+ **Response**
<table>
<tr>
<th>Status Code</th>
<th>Success</th>
<th>Message</th>    
<th>Data</th>
<th>Example</th>
</tr>
<tr>
<td>200</td>
<td>true</td>
<td>Fraud detected</td>
<td>
    
```json
{
"matches":{
    "internalCount":Number,
    "externalCount":Number,
    "totalCounts":Number,
    "internal":[
                    {
                    "userId":{
                        "value":String,
                        "match":Boolean
                    },
                    "name":{
                        "value":String,
                        "match":Boolean
                    },
                    "dob":{
                        "value":String,
                        "match":Boolean
                    },
                    "birthplace":{
                        "value":String,
                        "match":Boolean
                    }
                    }
    ],
    "external":[
                    {
                    "userId":{
                        "value":String,
                        "match":Boolean
                    },
                    "name":{
                        "value":String,
                        "match":Boolean
                    },
                    "dob":{
                        "value":Date,
                        "match":Boolean
                    },
                    "birthplace":{
                        "value":String,
                        "match":Boolean
                    }
                    }
    ],
    }
}
```
</td>
<td>

```json
{
    "success": true,
    "message": "Fraud detected"
    "data":{
        "matches":{
            "internalCount":1,
            "externalCount":0,
            "totalCounts":1,
            "internal":[
                            {
                            "userId":{
                                "value":"30OOMWB271",
                                "match":true
                            },
                            "name":{
                                "value":"Steve",
                                "match":true
                            },
                            "dob":{
                                "value":"19-01-2001",
                                "match":"true"
                            },
                            "birthplace":{
                                "value":"Mumbai",
                                "match":"false"
                            }
                            }
            ],
            "external":[],
            }
}
} 
```
            

<tr>
<td>500</td>
<td>false</td>
<td>Internal Server Error</td>
<td>None</td>
<td>
    
```json
{
    "success": false,
    "message": "Internal Server Error",
} 
```
    
</td>
</tr>
</table>
    