Getting Started
Welcome to Credgenics API Documentation. This document will provide instructions on how to quickly integrate Credgenics APIs. Credgenics APIs are based on REST standards. In order to interact with our API, any HTTP client in any programming language can be used.
Authentication
All the API requests to Credgenics are authenticated via an authentication token.
You can request Credgenics for an authentication token. You need to replace {auth_token} in every request with the authentication token that you get from Credgenics.
Base URLs
For Production: https://apiprod.credgenics.com/recovery
For Testing: https://apiuat.credgenics.com/recovery
Lending APIs
Get Loan API
import requests
url = "{BASE_URL}/loan/{loan_id}?fields={fields}"
payload = {}
headers = {
'authenticationtoken': '{auth_token}'
}
response = requests.request("GET", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
curl --location --request GET '{BASE_URL}/loan/{loan_id}?fields={fields}' \
--header 'authenticationtoken: {auth_token}'
var myHeaders = new Headers();
myHeaders.append("authenticationtoken", "{auth_token}");
var requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
fetch("{BASE_URL}/loan/{loan_id}?fields={fields}", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
The above command returns JSON structured like this:
{
"loan_details": {
"loan_id": "2954",
"loan_type": "Business Loan",
"product_type": "Arbitration",
"applicant_name": "Keval Gor",
"applicant_contact_number": "9706367068",
"applicant_email": "",
"applicant_gender": "Male",
"business_name": "Sathiya Collection",
"emi_amount": null,
"loan_tenure": null,
"applicant_language": "",
"applicant_occupation": "",
"applicant_pan_number": "",
"applicant_cibil_score": null,
"applicant_dob": null,
"payment_link": "",
"client_loan_sanction_date": "2018-02-22",
"loan_end_date": null,
"interest_on_loan": null,
"merchant_name": "",
"security_type": "",
"total_loan_amount": 268500,
"loan_nbfc_name": "HLPL",
"loan_nbfc_cin": "",
"tenure_finished": true,
"backed_by_surety": false,
"credit_bank_name": "",
"applicant_address": [
{
"applicant_address_type": "Home",
"applicant_address_text": "Shopno4, Sarpat Gate Bhuj, Bhuj, Gujarat, 370001",
"applicant_city": "Bhuj",
"applicant_state": "Gujarat",
"applicant_landmark": "",
"applicant_pincode": 370001
}
],
"defaults": [
{
"created": "2020-08-14 14:29:02.660409",
"late_fee": null,
"expected_emi": 127718,
"final_status": "Partially Recovered",
"other_penalty": null,
"recovery_date": "2020-09-12 00:59:51.418571",
"payment_method": "Online",
"date_of_default": "2020-07-05",
"dpd": "225",
"dpd_bracket": "180+",
"tags": [
{
"tag_name": "temporary",
"active": true,
"created": "2021-07-21 07:50:41"
}
],
"recovery_method": "",
"allocation_month": "2020-8-01",
"amount_recovered": 8500,
"settlement_amount": 25000,
"default_emi_number": null,
"total_claim_amount": 127718,
"allocation_dpd_value": 91,
"actual_date_of_default": "2020-05-15",
"allocation_dpd_bracket": "91-120",
"client_amount_recovered": null,
"expected_emi_interest_amount": null,
"principal_outstanding_amount": null,
"expected_emi_principal_amount": null
}
],
"document_details": [],
"references": [
{
"relation_with_applicant": "Colleague",
"name": "Abhishek Kumar",
"contact_number": "8802913432"
}
],
"co_applicant": [
{
"co_applicant_name": "Naveen Shekhawat",
"co_applicant_type": "Individual",
"co_applicant_email": "pravinsingh@gmail.com",
"co_applicant_gender": "Male",
"co_applicant_contact_number": "9814274470",
"co_applicant_dob": "1990-06-29",
"co_applicant_address": [
{
"co_applicant_address_text": "",
"co_applicant_address_type": "Home",
"co_applicant_state": "Rajasthan",
"co_applicant_city": "Alwar",
"co_applicant_pincode": 301024
}
]
}
],
"credit_account_number": "",
"applicant_aadhar_number": "",
"applicant_monthly_income": null,
"credit_account_holder_name": "",
"credit_account_holder_type": "",
"archive": false
},
"communication_details": [
{
"communication_id": 63426,
"type_of_comm": "call",
"comm_dict": {
"to": "9706367068",
"from": "8178041121",
"duration": "0 : 0 : 34",
"called_to": "applicant",
"call_start_time": "2020-11-04 17:16:32",
"call_end_time": "2020-11-04 17:17:06",
"call_response": "Will pay tomorrow",
"recording_url": "",
"applicant_type": "applicant"
}
},
{
"communication_id": 2357,
"type_of_comm": "sms",
"comm_dict": {
"sms_body": "Hi Keval,\n\nPFA legal notice for the non payment of your outstanding dues to Credgenics as per the terms of the loan agreement. \n\nKindly ignore if the matter has already been settled.\n\nhttps://credgenics.com/notices/930b9ecfee7e?t=64bbec02\n\nThanks and Regards,\n\nAdvocates for HLPL\nAR - Abhishek Gupta\nEmail id: abhishek.gupta1@udaan.com\nPhone number: 9513231633 ",
"sms_mobile": "9706367068",
"notice_link": "930b9ecfee7e",
"delivered_time": "2020-08-15 16:57:31",
"clicked_time": "2020-08-18 10:55:04.839459",
"sms_language": "en",
"message_count": 3,
"template_name": "Legal Notice Template",
"character_count": 362,
"notice_click_count": 2
}
}
],
"payment_history": [
{
"payment_id": 123,
"amount_recovered": 2000,
"final_status": "Partially Recovered",
"recovery_method": "Communications",
"allocation_month": "2021-4-01",
"payment_method": "Online",
"payment_mode": "",
"payment_reference_number": "",
"author": "demo.admin@credgenics.com",
"created": "2021-05-15 18:44:15"
},
{
"payment_id": 1234,
"amount_recovered": 1000,
"final_status": "Partially Recovered",
"recovery_method": "Communications",
"allocation_month": "2021-4-01",
"payment_method": "Online",
"payment_mode": "",
"payment_reference_number": "",
"author": "demo.admin@credgenics.com",
"created": "2021-04-15 06:43:50"
}
],
"notice_tracking_details": [
{
"notice_id": 125792,
"case_type": "lrn",
"document_type": "Notice",
"s3_link": "https://s3-ap-south-1.amazonaws.com/credgenics-cases/production/notice_links/930b9ecfee7e.pdf",
"created": "2021-04-15 06:43:50",
"data": {}
},
{
"notice_id": 12543,
"case_type": "lrn",
"document_type": "Speedpost",
"created": "2021-05-15 18:44:15",
"data": {
"events": [
{
"date": "05/10/2020",
"time": "15:27:17",
"office": "Bhuj HO",
"description": "Item Delivery Confirmed"
},
{
"date": "05/10/2020",
"time": "09:17:46",
"office": "Bhuj HO",
"description": "Out for Delivery"
},
{
"date": "05/10/2020",
"time": "08:22:29",
"office": "Bhuj HO",
"description": "Item Received"
},
{
"date": "04/10/2020",
"time": "10:57:04",
"office": "Bhuj ICH",
"description": "Item Dispatched"
},
{
"date": "04/10/2020",
"time": "09:18:22",
"office": "Bhuj ICH",
"description": "Item Bagged"
},
{
"date": "04/10/2020",
"time": "06:17:52",
"office": "Bhuj ICH",
"description": "Item Received"
},
{
"date": "03/10/2020",
"time": "12:30:43",
"office": "Ahmedabad NSH",
"description": "Item Dispatched"
},
{
"date": "03/10/2020",
"time": "11:26:43",
"office": "Ahmedabad NSH",
"description": "Item Bagged"
},
{
"date": "03/10/2020",
"time": "08:40:56",
"office": "Ahmedabad NSH",
"description": "Item Received"
},
{
"date": "29/09/2020",
"time": "17:52:17",
"office": "Rohini Sector7 SO",
"description": "Item Dispatched"
},
{
"date": "29/09/2020",
"time": "17:18:27",
"office": "Rohini Sector7 SO",
"description": "Item Bagged"
},
{
"date": "29/09/2020",
"time": "16:17:42",
"office": "Rohini Sector7 SO",
"description": "Item Booked"
}
],
"booked_at": "Rohini Sector7 SO",
"article_type": "Inland Speed Post",
"speedpost_id": "ED670494304IN",
"applicant_type": "applicant",
"speedpost_tarrif": "41.30",
"delivery_location": "Sonipat HO",
"speedpost_s3_link": "",
"speedpost_booked_on": "29/09/2020 16:17:42",
"applicant_address_type": "home",
"applicant_address_index": 0,
"speedpost_delivery_status": "Delivered",
"co_applicant_address_index": -1,
"speedpost_undelivered_reason": "",
"speedpost_destination_pincode": "131001",
"speedpost_delivery_confirmed_on": "05/10/2020 15:27:17"
}
}
],
"remarks": [
{
"remark_id": 5237,
"remarks": "(Legal Notice Template ) SMS Sent",
"created": "2020-11-15 16:57:26",
"author": "ssingh@credgenics.com"
},
{
"remark_id": 9544,
"remarks": "Will pay settlement amount tomorrow: Call response , Promise to Pay: Call status , 2020-11-24 - Reminder date",
"created": "2020-11-23 12:43:11",
"author": "ssingh@credgenics.com"
}
]
}
Use this API to get all the data for a particular loan.
HTTP Request - GET
GET {BASE_URL}/loan/{loan_id}?fields={fields}
Path Parameters
Parameter | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
loan_id | Loan id of the loan | ||||||||||||
fields | Name of the fields of which you want to get the details of in the response. Eg: fields=loan,payment or fields=notice
|
||||||||||||
start_date / start_time | Specify unix timestamp to retrieve loan details from that date. | ||||||||||||
end_date / end_time | Specify unix timestamp to retrieve loan details up to that date. |
Request Headers
Parameter | Description |
---|---|
authenticationtoken | Auth token given by Credgenics |
Response Structure
Key | Description |
---|---|
loan_details | JSON object containing information provided at the time of loan insertion and payment related details. For all keys included in this, refer the loan upload API parameters. |
communication_details | JSON object containing information about all the communications that are performed on the loan. Communication includes call, sms, email and voice messaging. |
payment_history | JSON object containing information about all the payment that are recovered on the loan. |
notice_tracking_details | JSON object containing information about the legal activities performed on the loan account. It includes legal notice and physical notice tracking. |
remarks | JSON object containing all the activities that are performed on the loan account. It provides a snapshot view of the loan account. |
Response Status Code
200 OK
for a successful request.
401 Unauthorized
if authentication failed. API credentials are incorrect.
400 Bad Request
if the request payload had some error. Specific error is provided in the response.
Upload Loan API
import requests
url = "{BASE_URL}/loan/{loan_id}"
payload = "{\n \"loan_id\": \"283921\",\n \"loan_type\": \"Personal Loan\",\n \"applicant_name\": \"Shri Ram\",\n \"applicant_dob\": \"1992-03-23\",\n \"applicant_email\": \"shriram@gmail.com\",\n \"applicant_gender\": \"Male\",\n \"applicant_contact_number\": \"9805265926\",\n \"applicant_monthly_income\": 40000,\n \"applicant_cibil_score\": 820,\n \"applicant_occupation\": \"Job\",\n \"applicant_aadhar_number\": \"235498671293\",\n \"applicant_language\": \"hi\",\n \"applicant_pan_number\": \"ADJIY-3516-D\",\n \"total_loan_amount\": 50000,\n \"loan_tenure\": 12,\n \"client_loan_sanction_date\": \"2018-04-06\",\n \"loan_end_date\": \"2019-04-06\",\n \"interest_on_loan\": 18,\n \"tenure_finished\": true,\n \"security_type\": \"Secured immovable\",\n \"backed_by_surety\": false,\n \"loan_nbfc_name\": \"AKARA CAPITAL ADVISORS PVT. LTD.\",\n \"loan_nbfc_cin\": \"U65191TN1994PLC079235\",\n \"emi_amount\": 6000,\n \"product_type\": \"\",\n \"credit_account_number\": \"11271000005809\",\n \"credit_account_holder_name\": \"Sri Ram\",\n \"credit_bank_name\": \"HDFC Bank\",\n \"credit_account_holder_type\": \"Current\",\n \"credit_bank_ifsc_code\": \"HDFC0G45B4W\",\n \"tags\": \"tag1,tag2\",\n \"agent_email\": \"demoagent@email.com\",\n \"document_details\": [\n {\n \"security_mode\": \"NACH\",\n \"document_number\": \"757493\",\n \"document_bank_name\": \"HDFC Bank\",\n \"document_bank_ifsc_code\": \"\",\n \"document_amount\": 50000,\n \"document_date\": \"2018-04-10\",\n \"document_dishonour_date\": \"2018-04-12\",\n \"document_signature_name\": \"\",\n \"document_bounce_bank_account_number\": \"\",\n \"document_bounce_bank_ifsc_code\": \"\",\n \"document_bounce_charges\": null,\n \"document_bounce_bank_name\": \"Yes Bank\",\n \"document_bounce_bank_address\": \"\",\n \"document_bounce_memo_date\": null,\n \"reason_of_document_bounce\": \"\"\n \"document_bounce_memo_reference_number\": \"\",\n \"document_sequence_number\": \"\"\n \"document_bounce_memo_return_date\": \"2019-06-23\"\n }\n ],\n \"business_name\": \"\",\n \"applicant_address\": [\n {\n \"applicant_address_type\": \"Home\",\n \"applicant_address_text\": \" 395/13 veer dua colony baldev nager\",\n \"applicant_state\": \"Rajasthan\",\n \"applicant_city\": \"Jodhpur\",\n \"applicant_landmark\": \"\",\n \"applicant_pincode\": 342001\n }\n ],\n \"defaults\": [\n {\n \"allocation_month\":\"2021-7-01\",\n \"total_claim_amount\": 113000,\n \"late_fee\": 59443,\n \"date_of_default\": \"2019-04-07\",\n \"expected_emi\": 54000,\n \"default_emi_number\": 12,\n \"settlement_amount\": 45000,\n \"client_amount_recovered\": 0,\n \"principal_outstanding_amount\": 45000,\n \"expected_emi_interest_amount\": null,\n \"expected_emi_principal_amount\": 45000,\n \"other_penalty\": null\n }\n ],\n \"co_applicant\": [\n {\n \"co_applicant_name\": \"Naveen Shekhawat\",\n \"co_applicant_type\": \"Individual\",\n \"co_applicant_email\": \"pravinsingh@gmail.com\",\n \"co_applicant_gender\": \"Male\",\n \"co_applicant_contact_number\": \"9814274470\",\n \"co_applicant_dob\": \"1990-06-29\",\n \"co_applicant_address\": [\n {\n \"co_applicant_address_text\": \"\",\n \"co_applicant_address_type\": \"Home\",\n \"co_applicant_state\": \"Rajasthan\",\n \"co_applicant_city\": \"Alwar\",\n \"co_applicant_pincode\": 301024\n }\n ],\n \"references\": [\n {\n \"relation_with_applicant\": \"Colleague\",\n \"name\": \"Abhishek Kumar\",\n \"contact_number\": \"8802913432\"\n }\n ],\n \"merchant_name\": \"Intellipaat\",\n \"payment_link\": \"https://rzp.io/i/itKAy2q\",\n \"payment_link_expiry\": 1627390971\n}"
headers = {
'authenticationtoken': '{auth_token}',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
curl --location --request POST '{BASE_URL}/loan/{loan_id}' \
--header 'authenticationtoken: {auth_token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"loan_id": "283921",
"loan_type": "Personal Loan",
"applicant_name": "Shri Ram",
"applicant_dob": "1992-03-23",
"applicant_email": "shriram@gmail.com",
"applicant_gender": "Male",
"applicant_contact_number": "9805265926",
"applicant_monthly_income": 40000,
"applicant_cibil_score": 820,
"applicant_occupation": "Job",
"applicant_aadhar_number": "235498671293",
"applicant_language": "hi",
"applicant_pan_number": "ADJIY-3516-D",
"total_loan_amount": 50000,
"loan_tenure": 12,
"client_loan_sanction_date": "2018-04-06",
"loan_end_date": "2019-04-06",
"interest_on_loan": 18,
"tenure_finished": true,
"security_type": "Secured immovable",
"backed_by_surety": false,
"loan_nbfc_name": "AKARA CAPITAL ADVISORS PVT. LTD.",
"loan_nbfc_cin": "U65191TN1994PLC079235",
"emi_amount": 6000,
"product_type": "",
"credit_account_number": "11271000005809",
"credit_account_holder_name": "Sri Ram",
"credit_bank_name": "HDFC Bank",
"credit_account_holder_type": "Current",
"credit_bank_ifsc_code": "HDFC0G45B4W",
"tags": "tag1,tag2",
"agent_email": "demoagent@email.com,demoagent2@email.com",
"document_details": [
{
"security_mode": "NACH",
"document_number": "757493",
"document_bank_name": "HDFC Bank",
"document_bank_ifsc_code": "",
"document_amount": 50000,
"document_date": "2018-04-10",
"document_dishonour_date": "2018-04-12",
"document_signature_name": "",
"document_bounce_bank_account_number": "",
"document_bounce_bank_ifsc_code": "",
"document_bounce_charges": null,
"document_bounce_bank_name": "Yes Bank",
"document_bounce_bank_address": "",
"document_bounce_memo_date": null,
"reason_of_document_bounce": "",
"document_bounce_memo_reference_number": "",
"document_sequence_number": "",
"document_bounce_memo_return_date": "2019-06-23"
}
],
"business_name": "",
"applicant_address": [
{
"applicant_address_type": "Home",
"applicant_address_text": " 395/13 veer dua colony baldev nager",
"applicant_state": "Rajasthan",
"applicant_city": "Jodhpur",
"applicant_landmark": "",
"applicant_address_latitude":"",
"applicant_address_longitude":"",
"applicant_pincode": 342001
}
],
"defaults": [
{
"allocation_month": "2021-7-01",
"total_claim_amount": 113000,
"late_fee": 59443,
"date_of_default": "2019-04-07",
"expected_emi": 54000,
"default_emi_number": 12,
"settlement_amount": 45000,
"client_amount_recovered": 0,
"principal_outstanding_amount": 45000,
"expected_emi_interest_amount": null,
"expected_emi_principal_amount": 45000,
"other_penalty": null
}
],
"co_applicant": [
{
"co_applicant_name": "Naveen Shekhawat",
"co_applicant_type": "Individual",
"co_applicant_email": "pravinsingh@gmail.com",
"co_applicant_gender": "Male",
"co_applicant_contact_number": "9814274470",
"co_applicant_dob": "1990-06-29",
"co_applicant_address": [
{
"co_applicant_address_text": "",
"co_applicant_address_type": "Home",
"co_applicant_state": "Rajasthan",
"co_applicant_city": "Alwar",
"co_applicant_pincode": 301024
}
]
}
],
"references": [
{
"relation_with_applicant": "Colleague",
"name": "Abhishek Kumar",
"contact_number": "8802913432"
}
],
"merchant_name": "Intellipaat",
"payment_link": "https://rzp.io/i/itKAy2q",
"payment_link_expiry": 1627390971
}'
var myHeaders = new Headers();
myHeaders.append("authenticationtoken", "{auth_token}");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({"loan_id":"283921","loan_type":"Personal Loan","applicant_name":"Shri Ram","applicant_dob":"1992-03-23","applicant_email":"shriram@gmail.com","applicant_gender":"Male","applicant_contact_number":"9805265926","applicant_monthly_income":40000,"applicant_cibil_score":820,"applicant_occupation":"Job","applicant_aadhar_number":"235498671293","applicant_language":"hi","applicant_pan_number":"ADJIY-3516-D","total_loan_amount":50000,"loan_tenure":12,"client_loan_sanction_date":"2018-04-06","loan_end_date":"2019-04-06","interest_on_loan":18,"tenure_finished":true,"security_type":"Secured immovable","backed_by_surety":false,"loan_nbfc_name":"AKARA CAPITAL ADVISORS PVT. LTD.","loan_nbfc_cin":"U65191TN1994PLC079235","emi_amount":6000,"product_type":"","credit_account_number":"11271000005809","credit_account_holder_name":"Sri Ram","credit_bank_name":"HDFC Bank","credit_account_holder_type":"Current","credit_bank_ifsc_code":"HDFC0G45B4W","tags":"tag1,tag2","agent_email":"demoagent@email.com","document_details":[{"security_mode":"NACH","document_number":"757493","document_bank_name":"HDFC Bank","document_bank_ifsc_code":"","document_amount":50000,"document_date":"2018-04-10","document_dishonour_date":"2018-04-12","document_signature_name":"","document_bounce_bank_account_number":"","document_bounce_bank_ifsc_code":"","document_bounce_charges":null,"document_bounce_bank_name":"Yes Bank","document_bounce_bank_address":"","document_bounce_memo_date":null,"reason_of_document_bounce":"","document_bounce_memo_reference_number":"","document_seqeunce_number":"","document_bounce_memo_return_date": "2019-06-23"}],"business_name":"","applicant_address":[{"applicant_address_type":"Home","applicant_address_text":" 395/13 veer dua colony baldev nager","applicant_state":"Rajasthan","applicant_city":"Jodhpur","applicant_landmark": "","applicant_pincode":342001}],"defaults":[{"allocation_month":"2021-7-01","total_claim_amount":113000,"late_fee":59443,"date_of_default":"2019-04-07","expected_emi":54000,"default_emi_number":12,"settlement_amount":45000,"client_amount_recovered":0,"principal_outstanding_amount":45000,"expected_emi_interest_amount":null,"expected_emi_principal_amount":45000,"other_penalty":null}],"co_applicant":[{"co_applicant_name":"Naveen Shekhawat","co_applicant_type":"Individual","co_applicant_email":"pravinsingh@gmail.com","co_applicant_gender":"Male","co_applicant_contact_number":"9814274470","co_applicant_dob":"1990-06-29","co_applicant_address": [{"co_applicant_address_text": "","co_applicant_address_type": "Home","co_applicant_state": "Rajasthan","co_applicant_city": "Alwar","co_applicant_pincode": 301024}]}],"references":[{"relation_with_applicant":"Colleague","name":"Abhishek Kumar","contact_number":"8802913432"}],"merchant_name":"Intellipaat","payment_link":"https://rzp.io/i/itKAy2q","payment_link_expiry": 1627390971});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("{BASE_URL}/loan/{loan_id}", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
The above code returns JSON structured like this:
Sample Success Response
{
"message": "Data uploaded successfully"
}
Sample Failure Response
{
"message": "Data Validation Failed",
"output": {
"errors": {
"applicant_contact_number": "Invalid Mobile numbers, [83849879]",
"applicant_dob": "Value must be of type date with format YYYY-MM-DD",
"applicant_language": "Invalid languages, [feger]",
"co_applicant": {
"0": {
"co_applicant_email": "Invalid Emails, [tempgmail.com]"
}
},
"defaults": {
"0": {
"default_emi_number": "Value must be a number"
}
}
}
}
}
Use this API to add new Loan / EMI to the data. Goes without saying your data is secure with us. :)
HTTP Request - POST
POST {BASE_URL}/loan/{loan_id}
Path Parameters
Parameter | Description |
---|---|
loan_id | Loan id of the loan |
Request Headers
Parameter | Description |
---|---|
authenticationtoken | Auth token assigned by Credgenics |
Request Body Parameters
Key name | Variable Type | Data Type | Description |
---|---|---|---|
loan_id | text | string | The loan_id of the loan provided by the lender |
client_customer_id | text | string | A unique ID provided by the client which uniquely maps to a borrower who may or may not have multiple loans with the client |
loan_type | text | string | The type of loan loan based on the function it serves e.g. - Personal Loan, Business Loan, Vehicle Loan, etc. |
applicant_name | text | string | Full name of the applicant |
applicant_email | email address | string | Email ID of the applicant (should be separated by comma in case of multiple emails, ordering is important) |
applicant_contact_number | mobile_number | string | Contact number of borrower (should be separated by comma in case of multiple contact numbers, ordering is important) |
applicant_gender | gender | string | Gender of the applicant (Options: Male, Female, Non-Binary) |
applicant_dob | date | date | Date of birth of the applicant in the format "YYYY-MM-DD" |
applicant_monthly_income | decimal | float | Last updated monthly income of the applicant |
applicant_cibil_score | number | integer | Last updated bureau score of the borrower |
applicant_aadhar_number | text | string | The Aadhar number of the applicant |
applicant_pan_number | text | string | PAN number of the applicant |
applicant_photo_link | url | string | URL of the profile photo uploaded for the loan applicant |
applicant_notice_reference_number | text | string | Notice reference number of the Applicant |
applicant_occupation | text | string | Last updated occupation of the applicant |
applicant_language | language | string | Language of the applicant as per ISO 639-1 Code standards (Link: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (Options:English,Hindi,Tamil,Punjabi,Telugu,Marathi,Gujarati,Kannada,Bengali,Malayalam,Oriya,Assamese) |
total_loan_amount | amount | float | Total amount that was disbursed by the bank for the given loan account |
vehicle_registration_number | text | string | The vehicle registration number for the vehicle linked to the loan at the time of approval |
loan_tenure | number | integer | Tenure of the loan in months |
client_loan_sanction_date | date | date | The sanction date of the loan in the format 'YYYY-MM-DD' |
loan_end_date | date | date | The date on which the loan was supposed to end as per the amortisation schedule e.g. "YYYY-MM-DD" |
interest_on_loan | percentage | float | The total interest amount that was determined at the time of loan disbursal as per the amortisation schedule |
tenure_finished | bool | boolean | Boolean indicator showing wheher the tenure of the loan is finished or not. (Options: True/False) |
security_type | text | string | The type of security against the loan in case the loan is an secured loan (Options: Secured/Secured Movable/Secured Immovable) otherwise the value will be 'Unsecured' |
backed_by_security | bool | boolean | Boolean variable providing information of whether the loan has a guarantor or not (Options: True/False) |
chassis_number | text | string | Chassis number of vehicle linked to the loan |
loan_nbfc_name | text | string | The name of the NBFC linked to the loan (if applicable) |
loan_nbfc_cin | text | string | The CIN of the NBFC linked to the loan (if applicable) |
tags | text | string | List of tags that need to be applied to the loan at the time of upload [multiple values should be comma separated, order not important] |
agent_email | email address | string | Email of the user to which loan should be allocated to at the time of loan data upload |
emi_amount | amount | float | The amount of a single EMI that was determined at the time of loan disbursal as per the amortisation schedule |
engine_number | text | string | The engine number of the vehicle linked to the loan |
group_id | text | string | The group_id assigned to the linked loan by lender |
product_type | text | string | The financial product type in which the loan falls in, a further classification of loan type e.g. - 4-wheeler loan, 2-wheeler Loan, Overdraft loan, Term Loan etc. |
credit_account_number | number | integer | The account number of the borrower in which he/she recieved the loan amount. Eg - "0000012835" |
credit_account_holder_name | text | string | Full name of the credit account holder e.g - "Ramesh Singh" |
credit_account_holder_type | text | string | The account type of the credit bank account holder e.g - Savings, Current, etc |
credit_bank_name | text | string | The name of the bank in which credit account holder (borrower) received the loan amount |
credit_bank_ifsc_code | text | string | The IFSC code of the bank in which borrower received the loan amount |
business_name | text | string | Last updated name of the business of the applicant |
make_and_model | text | string | The make and model of the vehicle linked to the loan (Applicable in case of vehicle/auto loans) |
merchant_name | text | string | Name of the merchant linked to the loan e.g. the merchant to which |
notice_date | date | date | The date that is to be printed on the draft PDF |
notice_delivery_partner | text | string | The name of the delivery partner merchant that was used to deliver the notice |
payment_link | url | string | The URL corresponding to the given allocation month and loan to send to the borrower through various communications in order to get them to pay through it |
payment_link_expiry | number | integer | The expiry time for the payment link (seconds) |
channel_partner | text | string | Channel partner name of the applicant |
loan_region | text | string | Geographical Region to which the loan belongs to |
loan_regional_manager_name | text | string | Name of the regional manager assigned by the client to the loan |
loan_regional_manager_contact_number | mobile number | string | Contact number of the regional manager assigned by the client to the loan |
loan_regional_manager_contact_email | email address | string | Contact email of the regional manager assigned by the client to the loan |
loan_source_branch_address | text | string | Address of the physical branch which disbured the loan (if applicable) |
Document Keys | |||
document_details | list | list | List of variable containing all the details corresponding to the document that has been uploaded |
security_mode | text | string | The security mode for the loan provided by the borrower at the time of loan approval e.g. - NACH, ECS, ENACH, PDC, Others (Two wheeler, Four wheeler, house) etc. |
document_number | text | string | Document number of the security document e.g. Cheque Number, ECS number etc. |
document_bank_name | text | string | The name of bank/lender that issued the security document e.g. cheque bank name |
document_bank_ifsc_code | text | string | The IFSC code of the bank that has issued the security document |
document_amount | amount | float | The amount mentioned on the security document. Eg. cheque amount |
document_date | date | date | The execution date of the security document submitted by borrower e.g. cheque date |
document_dishonour_date | date | date | The dishonour date of the security document e.g. Cheque dishonour date |
document_signature_name | text | string | The name of the signee on the security document. Eg. Signee name on the Cheque |
document_bounce_bank_account_number | number | integer | The account number of the bank account in which document was bounced |
document_bounce_charges | decimal | float | The charges associated with the document bounce processing |
document_bounce_bank_name | text | string | Bank name in which the security_mode document was bounced |
document_bounce_bank_ifsc_code | text | string | IFSC code of the bank in which document was bounced |
document_bounce_bank_address | text | string | Address of the bank in which document was bounced |
document_bounce_memo_date | date | date | Date of document bounce memo |
reason_of_document_bounce | text | string | Reason behind the security_mode document bounce. Eg. Insufficient balance |
document_micr | text | string | 9 digit Document MICR Code of the document |
document_presented_in_account | text | string | Account in which document is presented |
document_presented_zone | text | string | Zone in which document is presented |
document_bounce_memo_branch_address | text | string | Address of the document bounce memo branch |
document_signature_address_text | text | string | Document signature address |
document_signature_city | text | string | Document signature city |
document_signature_state | text | string | Document signature state |
document_signature_pincode | postal code | integer | Document signature pincode |
document_bounce_memo_reference_number | text | string | Reference number of document bounce memo |
document_sequence_number | text | string | Sequence number of document |
document_bounce_memo_return_date | date | date | Document bounce memo return date |
document_umrn | text | string | Document Unique Mandate Reference Number |
Address Keys | |||
applicant_address | list | list | List of Variable containing all the sub-variables corresponding to the address of the applicant |
applicant_address_type | text | string | The type of address that has been provided for applicant address [Options - Home, Business, Office] |
applicant_address_text | text | string | Entire text body of address of applicant including lane, street, house number, colony etc. |
applicant_state | text | string | State provided in the applicant address |
applicant_city | text | string | City provided in the applicant address |
applicant_landmark | text | string | Nearby Landmark provided in the applicant address |
applicant_pincode | postal code | integer | Pincode provided in the applicant address |
applicant_address_latitude | text | string | The latitude of the location this applicant address points to, this will get used at the time of allocation |
applicant_address_longitude | text | string | The longitude of the location this applicant address points to, this will get used at the time of allocation |
Default Keys | |||
defaults | list | list | List of variable containing all the different allocation month level variables that provide information about the different amounts that are due, recovered and general details of the EMI or allocation in question |
allocation_month | date | date | The month and year for which the loan has been allocated on the CG Platform |
allocation_dpd_value | number | integer | The DPD value of the borrower at the time of allocation of loan onto the CG Platform |
allocation_dpd_bracket | text | string | The DPD bracket of the borrower at the time of allocation of loan onto the CG Platform |
total_claim_amount | amount | float | The DPD bracket of the borrower at the time of allocation of loan onto the CG Platform |
late_fee | amount | float | Late fee that needs to be paid by the borrower |
date_of_default | date | date | Date on which the borrower defaulted on the loan (first default) |
expected_emi | amount | float | The EMI amount without late fees and penalties that is to be recovered for the given month from the borrower |
default_emi_number | number | integer | The serial number of the EMI that the borrower defaulted on as per the amortization schedule created at the time of loan disbursal by the lender |
settlement_amount | amount | float | The settlement amount that is to be recovered from the borrower to in order to generate the settlement NOC by lender |
client_amount_recovered | amount | float | The amount that was already recovered by the client/lender before allocating the loan on CG Platform |
principal_outstanding_amount | amount | float | The principal outstanding amount corresponding to the loan at the time of allocation to CG |
expected_emi_interest_amount | amount | float | The interest amount corresponding to the EMI that is to be recovered for the given month from the borrower |
expected_emi_principal_amount | amount | float | The principal amount corresponding to the EMI that is to be recovered for the given month from the borrower |
other_penalty | decimal | float | The penalty amount corresponding to the EMI that is to be recovered for the given month from the borrower |
Reference Keys | |||
references | list | list | List of Variable containing all the details of the person who has served as a reference for the borrower |
relation_with_applicant | text | string | The relation of the reference to the applicant |
name | text | string | The full name of the reference |
contact_number | mobile number | string | The contact number of the reference |
reference_gender | gender | string | The gender of the reference |
reference_pan_number | text | string | The PAN card number of the reference |
reference_address | list | list | List of Variable containing all the address details of the reference |
reference_address_type | text | string | The address type of the reference |
reference_address_text | text | string | The full address text of the reference |
reference_city | text | string | The city of residence of the reference |
reference_state | text | string | The state of residence of the reference |
reference_pincode | postal code | integer | The pincode of residence of the refernece |
Coapplicant Keys | |||
co_applicant | list | list | List of Variable containing all the sub-variables regarding the details of the co-applicant |
co_applicant_name | text | string | Full name of the co-applicant |
co_applicant_type | text | string | The type of the co-applicant |
co_applicant_language | language | string | The language used by the co-applicant |
co_applicant_email | email address | string | Email ID of the co-applicant [should be separated by comma in case of multiple emails, ordering is important] |
co_applicant_contact_number | mobile number | string | Contact number of borrower [should be separated by comma in case of multiple contact numbers, ordering is important] |
co_applicant_gender | gender | string | Gender of the co-applicant [Options: Male, Female, Other] |
co_applicant_dob | date | date | Date of birth of the co-applicant in the format "YYYY-MM-DD" |
co_applicant_notice_reference_number | text | string | Notice reference number of co-applicant |
co_applicant_photo_link | url | string | URL of the profile photo uploaded for the loan co-applicant |
co_applicant_address | list | list | List of Variable containing all the sub-variables corresponding to the address of the co-applicant |
co_applicant_address_text | text | string | Entire text body of address of co-applicant including lane, street, house number, colony etc. |
co_applicant_address_type | text | string | The type of address that has been provided for co-applicant address [Options - Home, Business, Office] |
co_applicant_state | text | string | State provided in the co-applicant address |
co_applicant_city | text | string | City provided in the co-applicant address |
co_applicant_pincode | postal code | integer | Pincode provided in the co-applicant address |
co_applicant_address_latitude | text | string | The latitude of the location this co-applicant address points to, this will get used at the time of allocation |
co_applicant_address_longitude | text | string | The longitude of the location this co-applicant address points to, this will get used at the time of allocation |
Response Status Code
201 OK
for a successful request.
401 Unauthorized
if authentication failed. API credentials are incorrect.
400 Bad Request
if the request payload had some error. Specific error is provided in the response.
Update Loan API
import requests
url = "{BASE_URL}/loan/{loan_id}"
payload = "{\n \"total_loan_amount\": 60000\n}"
headers = {
'authenticationtoken': '{auth_token}',
'Content-Type': 'application/json'
}
response = requests.request("PATCH", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
curl --location --request PATCH '{BASE_URL}/loan/{loan_id}' \
--header 'authenticationtoken: {auth_token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"total_loan_amount": 60000
}'
var myHeaders = new Headers();
myHeaders.append("authenticationtoken", "{auth_token}");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({"total_loan_amount":60000});
var requestOptions = {
method: 'PATCH',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("{BASE_URL}/loan/{loan_id}", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
The above code returns JSON structured like this:
{
"output": "Loan successfully updated",
"message": "success",
"headers": {
"Content-Type": "application/json"
}
}
Use this API to update the details of a particular loan.
HTTP Request - PATCH
PATCH {BASE_URL}/loan/{loan_id}
Path Parameters
Parameter | Description |
---|---|
loan_id | Loan id of the loan |
Request Headers
Parameter | Description |
---|---|
authenticationtoken | Auth token given by Credgenics |
Response Status Code
200 OK
for a successful request.
401 Unauthorized
if authentication failed. API credentials are incorrect.
400 Bad Request
if the request payload had some error. Specific error is provided in the response.
Update Payment API
import requests
import json
url = "{BASE_URL}/payments/{loan_id}?allocation_month={allocation_month}"
payload = json.dumps({
"final_status": "Closed",
"amount_recovered": 1000,
"recovery_date": "2022-01-08",
"recovery_method": "Communications",
"recovered_by": "shriram@gmail.com",
"payment_method": "Cheque",
"closure_with": "NOC",
"payment_mode": "cash",
"payment_reference_number": "RFN123456",
"payment_received_date" : "2022-01-12"
})
headers = {
'authenticationtoken': '{auth_token}',
'Content-Type': 'application/json'
}
response = requests.request("PATCH", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
curl --location --request PATCH '{BASE_URL}/payments/{loan_id}?allocation_month={allocation_month}' \
--header 'authenticationtoken: {auth_token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"final_status": "Closed",
"amount_recovered": 1000,
"recovery_date": "2022-01-08",
"recovery_method": "Communications",
"recovered_by": "shriram@gmail.com",
"payment_method": "Cheque",
"closure_with": "NOC",
"payment_mode": "cash",
"payment_reference_number": "RFN123456",
"payment_received_date" : "2022-01-12",
}'
var myHeaders = new Headers();
myHeaders.append("authenticationtoken", "{auth_token}");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"final_status": "Closed",
"amount_recovered": 1000,
"recovery_date": "2022-01-08",
"recovery_method": "Communications",
"recovered_by": "shriram@gmail.com",
"payment_method": "Cheque",
"closure_with": "NOC",
"payment_mode": "cash",
"payment_reference_number": "RFN123456",
"payment_received_date" : "2022-01-12"
});
var requestOptions = {
method: 'PATCH',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("{BASE_URL}/payments/{loan_id}?allocation_month={allocation_month}", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
The above code returns JSON structured like this:
{
"output": "Data updated successfully",
"message": "success",
"headers": {
"Content-Type": "application/json"
}
}
Use this API to update the payment details of a customer. This API will create a new entry corresponding to a loan_id.
HTTP Requests - PATCH
PATCH {BASE_URL}/payments/{loan_id}?allocation_month={allocation_month}
Path Parameters
Parameter | Description |
---|---|
loan_id | Loan id of the recovered loan |
allocation_month | Allocation month of the recovered loan. Eg - "2021-2-01" |
Example Json for Recovery Amount Bifurcation
{
"final_status": "Closed",
"amount_recovered": 2200,
"date_of_default": "2022-05-07",
"recovery_date": "2022-06-02 09:30:00",
"recovery_method": "Field collection",
"payment_method": "Cash",
"recovered_expected_emi": 2000, //recovery amount bifurcation key
"recovered_late_fee": 100, //recovery amount bifurcation key
"recovered_penalty": 100 //recovery amount bifurcation key
}
Enabling Recovery Amount Bifurcation can be achieved through Company Details tab on Setting page.
Steps:
- Log in to the platform
- Navigate to the Company details tab in settings page
- Select Variable tab in Company details
- Under Recovery Variables, enable Recovered Amount Bifurcation.
After enabling recovery amount bifurcation, you can add the desired bifurcation variables using Add variable option.
Once the variables are added, you need to add recovered_ as a prefix to all bifurcation variables and add them in the payload at the top-level keys.
For example: if you add late_fee as a bifurcation variable, then the payload key format will be recovered_late_fee
Request Headers
Parameter | Description |
---|---|
authenticationtoken | The authentication token assigned to you by Credgenics |
Content-Type | "application/json" |
Request Body Parameters
Key Name | Type | Required | Description |
---|---|---|---|
final_status | string | True | This variable contains the last dispositon of the loan that has been updated for the given allocation month e.g. Closed, Partially Recovered etc. |
amount_recovered | integer | True | Total amount received in a given payment |
recovery_method | string | False | The recovery method that was used to recover a given payment from the borrower (Options: Field Collection, Communication, Legal) |
payment_method | string | True | The method of payment that was used to complete the transfer of money (Options: Online, Cash, Cheque, Bank Account Transfer, Application, Payment Link) |
payment_received_date | date | False | The date on which the payment was actually received in the lenders account after processing of payment by the payment processor |
closure_with | string | False | In cases where the recovery status is 'Closed', it needs to be specified whether the loan was settled or a complete recovery was made (Options: NOC, Settlement) |
payment_reference_number | string | False | The unique reference number generated by the payment processor at the time of execution of payment e.g. UPI transaction ID |
payment_mode | string | False | The mode of payment that was used to complete the transfer of money e.g. UPI, NEFT, RTGS etc. |
recovered_by | string | False | The name of the user that collected the payment, in case of agent it will be the name, otherwise it will be name of the API |
recovery_date | datetime | False | This is the date on which the recovery was made by the agent/channel i.e. it has been updated on CG system that the recovery has been done. This date might differ from the actual date on which the payment was received from the borrower. |
Response Status Code
200 OK
for a successful request.
401 Unauthorized
if authentication failed. API credentials are incorrect.
400 Bad Request
if the request payload had some error. Specific error is provided in the response.
Credit Line APIs
Get Customer API
import requests
url = "{BASE_URL}/loan/{client_customer_id}?fields={fields}"
payload = {}
headers = {
'authenticationtoken': '{auth_token}',
}
response = requests.request("GET", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
curl --location --request GET '{BASE_URL}/loan/{client_customer_id}?fields={fields}' \
--header 'authenticationtoken: {auth_token}'
var myHeaders = new Headers();
myHeaders.append("authenticationtoken", "{auth_token}");
var requestOptions = {
method: "GET",
headers: myHeaders,
redirect: "follow",
};
fetch(
"{BASE_URL}/loan/{client_customer_id}?fields={fields}",
requestOptions
)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));
The above command returns JSON structured like this:
{
"output": {
"applicant_details": {
"client_customer_id": "189004",
"defaults": [
{
"final_status": "Initiated",
"allocation_month": "2021-1-01",
"amount_recovered": 0,
"settlement_amount": null,
"tags": [
{
"tag_name": "temporary",
"active": true,
"created": "2021-07-21 07:50:41"
},
{
"tag_name": "temporary-tag",
"active": true,
"created": "2021-07-21 09:50:41"
}
],
},
{
"final_status": "Initiated",
"allocation_month": "2021-2-01",
"amount_recovered": 3550,
"settlement_amount": 45000,
"tags": [
{
"tag_name": "demo",
"active": true,
"created": "2021-07-21 10:50:41"
}
],
}
],
"loan_type": "Personal Loan",
"references": [
{
"name": "Shri Ram",
"contact_number": "9999999999",
"relation_with_applicant": "Colleague"
}
],
"co_applicant": [
{
"co_applicant_name": "Naveen Shekhawat",
"co_applicant_type": "Individual",
"co_applicant_email": "pravinsingh@gmail.com",
"co_applicant_gender": "Male",
"co_applicant_contact_number": "9814274470",
"co_applicant_dob": "1990-06-29",
"co_applicant_address": [
{
"co_applicant_address_text": "",
"co_applicant_address_type": "Home",
"co_applicant_state": "Rajasthan",
"co_applicant_city": "Alwar",
"co_applicant_pincode": 301024
}
]
}
],
"payment_link": "",
"product_type": "Payday personal",
"applicant_dob": "1992-03-23",
"business_name": "ABC PVT. LTd.",
"engine_number": "",
"loan_end_date": "2019-04-06",
"loan_nbfc_cin": "U65191TN1994PLC078035",
"merchant_name": "Intellipaat",
"security_type": "Secured immovable",
"applicant_name": "Sri Ram",
"chassis_number": "",
"loan_nbfc_name": "AKARA CAPITAL ADVISORS PVT. LTD.",
"make_and_model": "",
"applicant_email": "shriram@gmail.com",
"applicant_gender": "Male",
"backed_by_surety": false,
"credit_bank_name": "HDFC Bank",
"document_details": [
{
"security_mode": "NACH",
"document_number": "757493",
"document_bank_name": "HDFC Bank",
"document_bank_ifsc_code": "",
"document_amount": 50000,
"document_date": "2018-04-10",
"document_dishonour_date": "2018-04-12",
"document_signature_name": "",
"document_bounce_bank_account_number": "",
"document_bounce_bank_ifsc_code": "",
"document_bounce_charges": null,
"document_bounce_bank_name": "Yes Bank",
"document_bounce_bank_address": "",
"document_bounce_memo_date": null,
"reason_of_document_bounce": "",
"document_bounce_memo_reference_number": "",
"document_sequence_number": "",
}
],
"applicant_address": [
{
"applicant_city": "Jodhpur",
"applicant_state": "Rajasthan",
"applicant_pincode": 342001,
"applicant_landmark": "",
"applicant_address_text": "395/13 Veer Dua Colony Baldev Nager",
"applicant_address_type": "Home"
}
],
"applicant_language": "hi",
"applicant_occupation": "Job",
"applicant_pan_number": "",
"applicant_cibil_score": 820,
"credit_account_number": "",
"credit_bank_ifsc_code": "HDFC0G45B4W",
"applicant_aadhar_number": "",
"applicant_contact_number": "9999999999",
"applicant_monthly_income": 40000,
"credit_account_holder_name": "Sri Ram",
"credit_account_holder_type": "Current",
"loan_regional_manager_name": "",
"vehicle_registration_number": "",
"loan_regional_manager_contact_email": "",
"loan_regional_manager_contact_number": "",
"archive": false
},
"transactions_details": [
{
"transaction_id": "283921",
"data": {
"defaults": [
{
"created": "2021-02-14 20:22:41.889461",
"late_fee": 59443,
"upload_date": null,
"closure_with": "",
"expected_emi": 54000,
"final_status": "Partially Recovered",
"payment_mode": "",
"other_penalty": null,
"recovery_date": "2021-02-26 13:07:22.248235",
"payment_method": "Online",
"date_of_default": "2020-01-23",
"dpd": "30",
"dpd_bracket": "30+",
"recovery_method": "",
"allocation_month": "2021-2-01",
"amount_recovered": 3450,
"payment_reference_number": "",
"default_emi_number": 12,
"total_claim_amount": 113000,
"allocation_dpd_value": 679,
"actual_date_of_default": "2019-04-07",
"allocation_dpd_bracket": "180+",
"client_amount_recovered": 0,
"expected_emi_interest_amount": null,
"principal_outstanding_amount": 45000,
"expected_emi_principal_amount": 45000
}
],
"emi_amount": 6000,
"loan_tenure": 12,
"loan_end_date": "2019-04-06",
"transaction_id": "283921",
"tenure_finished": true,
"interest_on_loan": 18,
"total_loan_amount": 50000,
"client_loan_sanction_date": "2018-04-06"
}
},
{
"transaction_id": "18372",
"data": {
"defaults": [
{
"created": "2021-01-27 18:57:11.514467",
"late_fee": 1000,
"upload_date": "",
"expected_emi": 10001,
"final_status": "Initiated",
"other_penalty": null,
"date_of_default": "2020-03-02",
"dpd": "225",
"dpd_bracket": "180+",
"allocation_month": "2021-1-01",
"amount_recovered": 0,
"default_emi_number": 4,
"total_claim_amount": 9000,
"allocation_dpd_value": 331,
"actual_date_of_default": "2020-03-02",
"allocation_dpd_bracket": "180+",
"client_amount_recovered": null,
"expected_emi_interest_amount": 2000,
"principal_outstanding_amount": 1000,
"expected_emi_principal_amount": 9000
}
],
"emi_amount": 1000,
"loan_tenure": 11,
"loan_end_date": "2020-03-02",
"transaction_id": "283920",
"tenure_finished": true,
"interest_on_loan": 12,
"total_loan_amount": 902929,
"client_loan_sanction_date": "2020-01-29"
}
},
],
"payment_history": [
{
"payment_id": 235,
"client_customer_id": "189004",
"amount_recovered": 1000,
"final_status": "Partially Recovered",
"recovery_method": "Communications",
"allocation_month": "2021-4-01",
"payment_method": "Online",
"payment_mode": "",
"payment_reference_number": "",
"author": "demo.admin@credgenics.com",
"created": "2021-04-15 06:43:50"
},
{
"payment_id": 32432,
"client_customer_id": "189004",
"amount_recovered": 1000,
"final_status": "Partially Recovered",
"recovery_method": "Communications",
"allocation_month": "2021-4-01",
"payment_method": "Online",
"payment_mode": "",
"payment_reference_number": "",
"author": "demo.admin@credgenics.com",
"created": "2021-05-15 18:44:15"
},
],
"communication_details": [
{
"communication_id": 23,
"type_of_comm": "call",
"comm_dict": {
"to": "9706367068",
"from": "8178041121",
"duration": "0 : 0 : 34",
"called_to": "applicant",
"call_start_time": "2020-11-04 17:16:32",
"call_end_time": "2020-11-04 17:17:06",
"call_response": "Will pay tomorrow",
"recording_url": "",
"applicant_type": "applicant"
}
},
{
"communication_id": 23555,
"type_of_comm": "sms",
"comm_dict": {
"sms_body": "Hi Keval,\n\nPFA legal notice for the non payment of your outstanding dues to Credgenics as per the terms of the loan agreement. \n\nKindly ignore if the matter has already been settled.\n\nhttps://credgenics.com/notices/930b9ecfee7e?t=64bbec02\n\nThanks and Regards,\n\nAdvocates for HLPL\nAR - Abhishek Gupta\nEmail id: abhishek.gupta1@udaan.com\nPhone number: 9513231633 ",
"sms_mobile": "9706367068",
"notice_link": "930b9ecfee7e",
"delivered_time": "2020-08-15 16:57:31",
"clicked_time": "2020-08-18 10:55:04.839459",
"sms_language": "en",
"message_count": 3,
"template_name": "Legal Notice Template",
"character_count": 362,
"notice_click_count": 2
}
}
],
"notice_tracking_details": [
{
"notice_id": 4332,
"case_type": "lrn",
"document_type": "Notice",
"s3_link": "https://s3-ap-south-1.amazonaws.com/credgenics-cases/production/notice_links/930b9ecfee7e.pdf",
"created": "2020-08-18 10:55:04",
"data": {}
},
{
"notice_id": 3563,
"case_type": "lrn",
"document_type": "Speedpost",
"created": "2020-08-18 10:55:04",
"data": {
"events": [
{
"date": "05/10/2020",
"time": "15:27:17",
"office": "Bhuj HO",
"description": "Item Delivery Confirmed"
},
{
"date": "05/10/2020",
"time": "09:17:46",
"office": "Bhuj HO",
"description": "Out for Delivery"
},
{
"date": "05/10/2020",
"time": "08:22:29",
"office": "Bhuj HO",
"description": "Item Received"
},
{
"date": "04/10/2020",
"time": "10:57:04",
"office": "Bhuj ICH",
"description": "Item Dispatched"
},
{
"date": "04/10/2020",
"time": "09:18:22",
"office": "Bhuj ICH",
"description": "Item Bagged"
},
{
"date": "04/10/2020",
"time": "06:17:52",
"office": "Bhuj ICH",
"description": "Item Received"
},
{
"date": "03/10/2020",
"time": "12:30:43",
"office": "Ahmedabad NSH",
"description": "Item Dispatched"
},
{
"date": "03/10/2020",
"time": "11:26:43",
"office": "Ahmedabad NSH",
"description": "Item Bagged"
},
{
"date": "03/10/2020",
"time": "08:40:56",
"office": "Ahmedabad NSH",
"description": "Item Received"
},
{
"date": "29/09/2020",
"time": "17:52:17",
"office": "Rohini Sector7 SO",
"description": "Item Dispatched"
},
{
"date": "29/09/2020",
"time": "17:18:27",
"office": "Rohini Sector7 SO",
"description": "Item Bagged"
},
{
"date": "29/09/2020",
"time": "16:17:42",
"office": "Rohini Sector7 SO",
"description": "Item Booked"
}
],
"booked_at": "Rohini Sector7 SO",
"article_type": "Inland Speed Post",
"speedpost_id": "ED670494304IN",
"applicant_type": "applicant",
"speedpost_tarrif": "41.30",
"delivery_location": "Sonipat HO",
"speedpost_s3_link": "",
"speedpost_booked_on": "29/09/2020 16:17:42",
"applicant_address_type": "home",
"applicant_address_index": 0,
"speedpost_delivery_status": "Delivered",
"co_applicant_address_index": -1,
"speedpost_undelivered_reason": "",
"speedpost_destination_pincode": "131001",
"speedpost_delivery_confirmed_on": "05/10/2020 15:27:17"
}
}
],
"remarks": [
{
"remark_id": 4234,
"remarks": "(Legal Notice Template ) SMS Sent",
"created": "2020-11-15 16:57:26",
"author": "ssingh@credgenics.com"
},
{
"remarks_id": 254,
"remarks": "Will pay settlement amount tomorrow: Call response , Promise to Pay: Call status , 2020-11-24 - Reminder date",
"created": "2020-11-23 12:43:11",
"author": "ssingh@credgenics.com"
}
]
},
"message": "success",
"headers": {
"Content-Type": "application/json"
}
}
Use this API to retrieve all details of a particular customer
HTTP Request - GET
GET {BASE_URL}/loan/{client_customer_id}?fields={fields}
Path Parameters
Parameter | Description | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
client_customer_id | Customer id of the customer | ||||||||||||||
fields | Name of the fields of which you want to get the details of in the response. Eg: fields=loan,payment or fields=notice By default, the api will send all the fields in the response.
|
||||||||||||||
start_date / start_time | Specify unix timestamp to retrieve customer details from that date. | ||||||||||||||
end_date / end_time | Specify unix timestamp to retrieve customer details up to that date. |
Request Headers
Parameter | Description |
---|---|
authenticationtoken | Auth token given by Credgenics |
Response Status Code
200 OK
for a successful request.
401 Unauthorized
if authentication failed. API credentials are incorrect.
400 Bad Request
if the request payload had some error. Specific error is provided in the response.
Upload Transaction API
import requests
url = "{BASE_URL}/loan/{transaction_id}"
payload = "{\n \"client_customer_id\": \"189004\",\n \"transaction_id\": \"283921\",\n \"loan_type\": \"Personal Loan\",\n \"applicant_name\": \"Shri Ram\",\n \"applicant_dob\": \"1992-03-23\",\n \"applicant_email\": \"shriram@gmail.com\",\n \"applicant_gender\": \"Male\",\n \"applicant_contact_number\": \"9805265926\",\n \"applicant_monthly_income\": 40000,\n \"applicant_cibil_score\": 820,\n \"applicant_occupation\": \"Job\",\n \"applicant_aadhar_number\": \"235498671293\",\n \"applicant_language\": \"hi\",\n \"applicant_pan_number\": \"ADJIY-3516-D\",\n \"total_loan_amount\": 50000,\n \"loan_tenure\": 12,\n \"client_loan_sanction_date\": \"2018-04-06\",\n \"loan_end_date\": \"2019-04-06\",\n \"interest_on_loan\": 18,\n \"tenure_finished\": true,\n \"security_type\": \"Secured immovable\",\n \"backed_by_surety\": false,\n \"loan_nbfc_name\": \"AKARA CAPITAL ADVISORS PVT. LTD.\",\n \"loan_nbfc_cin\": \"U65191TN1994PLC079235\",\n \"emi_amount\": 6000,\n \"product_type\": \"\",\n \"credit_account_number\": \"11271000005809\",\n \"credit_account_holder_name\": \"Sri Ram\",\n \"credit_bank_name\": \"HDFC Bank\",\n \"credit_account_holder_type\": \"Current\",\n \"credit_bank_ifsc_code\": \"HDFC0G45B4W\",\n \"tags\": \"tag1,tag2\",\n \"agent_email\":\"demoagent@email.com\",\n \"document_details\": [\n {\n \"security_mode\": \"NACH\",\n \"document_number\": \"757493\",\n \"document_bank_name\": \"HDFC Bank\",\n \"document_bank_ifsc_code\": \"\",\n \"document_amount\": 50000,\n \"document_date\": \"2018-04-10\",\n \"document_dishonour_date\": \"2018-04-12\",\n \"document_signature_name\": \"\",\n \"document_bounce_bank_account_number\": \"\",\n \"document_bounce_bank_ifsc_code\": \"\",\n \"document_bounce_charges\": null,\n \"document_bounce_bank_name\": \"Yes Bank\",\n \"document_bounce_bank_address\": \"\",\n \"document_bounce_memo_date\": null,\n \"reason_of_document_bounce\": \"\"\n \"document_bounce_memo_reference_number\": \"\",\n \"document_sequence_number\": \"\"\n \"document_bounce_memo_return_date\": \"2018-02-21\"\n }\n ],\n \"business_name\": \"\",\n \"applicant_address\": [\n {\n \"applicant_address_type\": \"Home\",\n \"applicant_address_text\": \" 395/13 veer dua colony baldev nager\",\n \"applicant_state\": \"Rajasthan\",\n \"applicant_landmark\": \"\",\n \"applicant_city\": \"Jodhpur\",\n \"applicant_pincode\": 342001\n }\n ],\n \"defaults\": [\n {\n \"allocation_month\":\"2021-7-01\",\n \"total_claim_amount\": 113000,\n \"late_fee\": 59443,\n \"date_of_default\": \"2019-04-07\",\n \"expected_emi\": 54000,\n \"default_emi_number\": 12,\n \"settlement_amount\": 45000,\n \"client_amount_recovered\": 0,\n \"principal_outstanding_amount\": 45000,\n \"expected_emi_interest_amount\": null,\n \"expected_emi_principal_amount\": 45000,\n \"other_penalty\": null\n }\n ],\n \"co_applicant\": [\n {\n \"co_applicant_name\": \"Naveen Shekhawat\",\n \"co_applicant_type\": \"Individual\",\n \"co_applicant_email\": \"pravinsingh@gmail.com\",\n \"co_applicant_gender\": \"Male\",\n \"co_applicant_contact_number\": \"9814274470\",\n \"co_applicant_dob\": \"1990-06-29\",\n \"co_applicant_address\": [\n {\n \"co_applicant_address_text\": \"\",\n \"co_applicant_address_type\": \"Home\",\n \"co_applicant_state\": \"Rajasthan\",\n \"co_applicant_city\": \"Alwar\",\n \"co_applicant_pincode\": 301024\n }\n ],\n \"references\": [\n {\n \"relation_with_applicant\": \"Colleague\",\n \"name\": \"Abhishek Kumar\",\n \"contact_number\": \"8802913432\"\n }\n ],\n \"merchant_name\": \"Intellipaat\",\n \"payment_link\": \"https://rzp.io/i/itKAy2q\",\n \"payment_link_expiry\": 1627390971\n}"
headers = {
'authenticationtoken': '{auth_token}',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
curl --location --request POST '{BASE_URL}/loan/{transaction_id}' \
--header 'authenticationtoken: {auth_token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"client_customer_id": "189004",
"transaction_id": "283921",
"loan_type": "Personal Loan",
"applicant_name": "Shri Ram",
"applicant_dob": "1992-03-23",
"applicant_email": "shriram@gmail.com",
"applicant_gender": "Male",
"applicant_contact_number": "9805265926",
"applicant_monthly_income": 40000,
"applicant_cibil_score": 820,
"applicant_occupation": "Job",
"applicant_aadhar_number": "235498671293",
"applicant_language": "hi",
"applicant_pan_number": "ADJIY-3516-D",
"total_loan_amount": 50000,
"loan_tenure": 12,
"client_loan_sanction_date": "2018-04-06",
"loan_end_date": "2019-04-06",
"interest_on_loan": 18,
"tenure_finished": true,
"security_type": "Secured immovable",
"backed_by_surety": false,
"loan_nbfc_name": "AKARA CAPITAL ADVISORS PVT. LTD.",
"loan_nbfc_cin": "U65191TN1994PLC079235",
"emi_amount": 6000,
"product_type": "",
"credit_account_number": "11271000005809",
"credit_account_holder_name": "Sri Ram",
"credit_bank_name": "HDFC Bank",
"credit_account_holder_type": "Current",
"credit_bank_ifsc_code": "HDFC0G45B4W",
"tags": "tag1,tag2",
"agent_email": "demoagent@email.com,demoagent2@email.com",
"document_details": [
{
"security_mode": "NACH",
"document_number": "757493",
"document_bank_name": "HDFC Bank",
"document_bank_ifsc_code": "",
"document_amount": 50000,
"document_date": "2018-04-10",
"document_dishonour_date": "2018-04-12",
"document_signature_name": "",
"document_bounce_bank_account_number": "",
"document_bounce_bank_ifsc_code": "",
"document_bounce_charges": null,
"document_bounce_bank_name": "Yes Bank",
"document_bounce_bank_address": "",
"document_bounce_memo_date": null,
"reason_of_document_bounce": "",
"document_bounce_memo_reference_number": "",
"document_sequence_number": "",
"document_bounce_memo_return_date": "2019-06-23"
}
],
"business_name": "",
"applicant_address": [
{
"applicant_address_type": "Home",
"applicant_address_text": " 395/13 veer dua colony baldev nager",
"applicant_state": "Rajasthan",
"applicant_city": "Jodhpur",
"applicant_landmark": "",
"applicant_pincode": 342001
}
],
"defaults": [
{
"allocation_month": "2021-7-01",
"total_claim_amount": 113000,
"late_fee": 59443,
"date_of_default": "2019-04-07",
"expected_emi": 54000,
"default_emi_number": 12,
"settlement_amount": 45000,
"client_amount_recovered": 0,
"principal_outstanding_amount": 45000,
"expected_emi_interest_amount": null,
"expected_emi_principal_amount": 45000,
"other_penalty": null
}
],
"co_applicant": [
{
"co_applicant_name": "Naveen Shekhawat",
"co_applicant_type": "Individual",
"co_applicant_email": "pravinsingh@gmail.com",
"co_applicant_gender": "Male",
"co_applicant_contact_number": "9814274470",
"co_applicant_dob": "1990-06-29",
"co_applicant_address": [
{
"co_applicant_address_text": "",
"co_applicant_address_type": "Home",
"co_applicant_state": "Rajasthan",
"co_applicant_city": "Alwar",
"co_applicant_pincode": 301024
}
]
}
],
"references": [
{
"relation_with_applicant": "Colleague",
"name": "Abhishek Kumar",
"contact_number": "8802913432"
}
],
"merchant_name": "Intellipaat",
"payment_link": "https://rzp.io/i/itKAy2q",
"payment_link_expiry": 1627390971
}'
var myHeaders = new Headers();
myHeaders.append("authenticationtoken", "{auth_token}");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({"client_customer_id":"189004","transaction_id":"283921","loan_type":"Personal Loan","applicant_name":"Shri Ram","applicant_dob":"1992-03-23","applicant_email":"shriram@gmail.com","applicant_gender":"Male","applicant_contact_number":"9805265926","applicant_monthly_income":40000,"applicant_cibil_score":820,"applicant_occupation":"Job","applicant_aadhar_number":"235498671293","applicant_language":"hi","applicant_pan_number":"ADJIY-3516-D","total_loan_amount":50000,"loan_tenure":12,"client_loan_sanction_date":"2018-04-06","loan_end_date":"2019-04-06","interest_on_loan":18,"tenure_finished":true,"security_type":"Secured immovable","backed_by_surety":false,"loan_nbfc_name":"AKARA CAPITAL ADVISORS PVT. LTD.","loan_nbfc_cin":"U65191TN1994PLC079235","emi_amount":6000,"product_type":"","credit_account_number":"11271000005809","credit_account_holder_name":"Sri Ram","credit_bank_name":"HDFC Bank","credit_account_holder_type":"Current","credit_bank_ifsc_code":"HDFC0G45B4W","tags":"tag1,tag2","agent_email":"demoagent@email.com","document_details":[{"security_mode":"NACH","document_number":"757493","document_bank_name":"HDFC Bank","document_bank_ifsc_code":"","document_amount":50000,"document_date":"2018-04-10","document_dishonour_date":"2018-04-12","document_signature_name":"","document_bounce_bank_account_number":"","document_bounce_bank_ifsc_code":"","document_bounce_charges":null,"document_bounce_bank_name":"Yes Bank","document_bounce_bank_address":"","document_bounce_memo_date":null,"reason_of_document_bounce":"","document_bounce_memo_reference_number":"","document_seqeunce_number":"","document_bounce_memo_return_date": "2019-06-23"}],"business_name":"","applicant_address":[{"applicant_address_type":"Home","applicant_address_text":" 395/13 veer dua colony baldev nager","applicant_state":"Rajasthan","applicant_city":"Jodhpur","applicant_landmark": "","applicant_pincode":342001}],"defaults":[{"allocation_month":"2021-7-01","total_claim_amount":113000,"late_fee":59443,"date_of_default":"2019-04-07","expected_emi":54000,"default_emi_number":12,"settlement_amount":45000,"client_amount_recovered":0,"principal_outstanding_amount":45000,"expected_emi_interest_amount":null,"expected_emi_principal_amount":45000,"other_penalty":null}],"co_applicant":[{"co_applicant_name":"Naveen Shekhawat","co_applicant_type":"Individual","co_applicant_email":"pravinsingh@gmail.com","co_applicant_gender":"Male","co_applicant_contact_number":"9814274470","co_applicant_dob":"1990-06-29","co_applicant_address": [{"co_applicant_address_text": "","co_applicant_address_type": "Home","co_applicant_state": "Rajasthan","co_applicant_city": "Alwar","co_applicant_pincode": 301024}]}],"references":[{"relation_with_applicant":"Colleague","name":"Abhishek Kumar","contact_number":"8802913432"}],"merchant_name":"Intellipaat","payment_link":"https://rzp.io/i/itKAy2q", "payment_link_expiry": 1627390971});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("{BASE_URL}/loan/{transaction_id}", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
The above command returns JSON structured like this:
{
"output": "Transaction added successfully",
"message": "success",
"headers": {
"Content-Type": "application/json"
}
}
Use this API to add new transaction / EMI of any customer.
HTTP Request - POST
POST {BASE_URL}/loan/{transaction_id}
Path Parameters
Parameter | Description |
---|---|
transaction_id | Transaction id of the transaction to upload |
Request Headers
Parameter | Description |
---|---|
authenticationtoken | Auth token given by Credgenics |
Content-Type | application/json |
Response Status Code
201 OK
for a successful request.
401 Unauthorized
if authentication failed. API credentials are incorrect.
400 Bad Request
if the request payload had some error. Specific error is provided in the response.
Update Transaction API
import requests
url = "{BASE_URL}/transaction/{client_customer_id}/{transaction_id}"
payload = "{\n \"total_loan_amount\": 60000\n}"
headers = {
'authenticationtoken': '{auth_token}',
'Content-Type': 'application/json'
}
response = requests.request("PATCH", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
curl --location --request PATCH '{BASE_URL}/transaction/{client_customer_id}/{transaction_id}' \
--header 'authenticationtoken: {auth_token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"total_loan_amount": 60000
}'
var myHeaders = new Headers();
myHeaders.append("authenticationtoken", "{auth_token}");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({"total_loan_amount":60000});
var requestOptions = {
method: 'PATCH',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("{BASE_URL}/transaction/{client_customer_id}/{transaction_id}", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
The above code returns JSON structured like this:
{
"output": "Transaction updated successfully",
"message": "success",
"headers": {
"Content-Type": "application/json"
}
}
Use this API to update the details of any transaction of a customer.
HTTP Request - PATCH
PATCH {BASE_URL}/transaction/{client_customer_id}/{transaction_id}
Path Parameters
Parameter | Description |
---|---|
client_customer_id | Customer id of the customer |
transaction_id | Transaction_id of the transaction to update |
Request Headers
Parameter | Description |
---|---|
authenticationtoken | Auth token given by Credgenics |
Content-Type | application/json |
Response Status Code
200 OK
for a successful request.
401 Unauthorized
if authentication failed. API credentials are incorrect.
400 Bad Request
if the request payload had some error. Specific error is provided in the response.
Update Payment API
import requests
import json
url = "{BASE_URL}/payments/{transaction_id}?allocation_month={allocation_month}"
payload=json.dumps({
"client_customer_id":"189004",
"final_status": "Closed",
"amount_recovered": 1000,
"recovery_date": "2022-01-08",
"recovery_method": "Communications",
"recovered_by": "shriram@gmail.com",
"payment_method": "Cheque",
"closure_with": "NOC",
"payment_mode": "cash",
"payment_reference_number": "RFN123456",
"payment_received_date" : "2022-01-12"
})
headers = {
'authenticationtoken': '{auth_token}',
'Content-Type': 'application/json'
}
response = requests.request("PATCH", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
curl --location --request PATCH '{BASE_URL}/payments/{transaction_id}?allocation_month={allocation_month}' \
--header 'authenticationtoken: {auth_token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"client_customer_id": "189004",
"final_status": "Closed",
"amount_recovered": 1000,
"recovery_date": "2022-01-08",
"recovery_method": "Communications",
"recovered_by": "shriram@gmail.com",
"payment_method": "Cheque",
"closure_with": "NOC",
"payment_mode": "cash",
"payment_reference_number": "RFN123456",
"payment_received_date" : "2022-01-12"
}'
var myHeaders = new Headers();
myHeaders.append("authenticationtoken", "{auth_token}");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"client_customer_id":"189004",
"final_status": "Closed",
"amount_recovered": 1000,
"recovery_date": "2022-01-08",
"recovery_method": "Communications",
"recovered_by": "shriram@gmail.com",
"payment_method": "Cheque",
"closure_with": "NOC",
"payment_mode": "cash",
"payment_reference_number": "RFN123456",
"payment_received_date" : "2022-01-12"
});
var requestOptions = {
method: 'PATCH',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("{BASE_URL}/payments/{transaction_id}?allocation_month={allocation_month}", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
The above code returns JSON structured like this:
{
"output": "Data updated successfully",
"message": "success",
"headers": {
"Content-Type": "application/json"
}
}
Use this API to update the payment details of a customer. This API will create a new entry corresponding to transaction_id.
HTTP Requests - PATCH
PATCH {BASE_URL}/payments/{transaction_id}?allocation_month={allocation_month}
Path Parameters
Parameter | Description |
---|---|
transaction_id | Transaction id of the recovered transaction |
allocation_month | Allocation month of the recovered loan. Eg - "2021-2-01" |
Example Json for Recovery Amount Bifurcation
{
"client_customer_id": "189004",
"final_status": "Closed",
"amount_recovered": 2200,
"date_of_default": "2022-05-07",
"recovery_date": "2022-06-02 09:30:00",
"recovery_method": "Field collection",
"payment_method": "Cash",
"recovered_expected_emi": 2000, //recovery amount bifurcation key
"recovered_late_fee": 100, //recovery amount bifurcation key
"recovered_penalty": 100 //recovery amount bifurcation key
}
Enabling Recovery Amount Bifurcation can be achieved through Company Details tab on Setting page.
Steps:
- Log in to the platform
- Navigate to the Company details tab in settings page
- Select Variable tab in Company details
- Under Recovery Variables, enable Recovered Amount Bifurcation.
After enabling recovery amount bifurcation, you can add the desired bifurcation variables using Add variable option.
Once the variables are added, you need to add recovered_ as a prefix to all bifurcation variables and add them in the payload at the top-level keys.
For example: if you add late_fee as a bifurcation variable, then the payload key format will be recovered_late_fee
Request Headers
Parameter | Description |
---|---|
authenticationtoken | The authentication token assigned to you by Credgenics |
Content-Type | "application/json" |
Request Body Parameters
Key Name | Type | Required | Description |
---|---|---|---|
client_customer_id | string | True | Client customer id of the customer. |
final_status | string | True | This variable contains the last dispositon of the loan that has been updated for the given allocation month e.g. Closed, Partially Recovered etc. |
amount_recovered | integer | True | Total amount received in a given payment |
recovery_method | string | False | The recovery method that was used to recover a given payment from the borrower (Options: Field Collection, Communication, Legal) |
payment_method | string | True | The method of payment that was used to complete the transfer of money (Options: Online, Cash, Cheque, Bank Account Transfer, Application, Payment Link) |
payment_received_date | date | False | The date on which the payment was actually received in the lenders account after processing of payment by the payment processor |
closure_with | string | False | In cases where the recovery status is 'Closed', it needs to be specified whether the loan was settled or a complete recovery was made (Options: NOC, Settlement) |
payment_reference_number | string | False | The unique reference number generated by the payment processor at the time of execution of payment e.g. UPI transaction ID |
payment_mode | string | False | The mode of payment that was used to complete the transfer of money e.g. UPI, NEFT, RTGS etc. |
recovered_by | string | False | The name of the user that collected the payment, in case of agent it will be the name, otherwise it will be name of the API |
recovery_date | datetime | False | This is the date on which the recovery was made by the agent/channel i.e. it has been updated on CG system that the recovery has been done. This date might differ from the actual date on which the payment was received from the borrower. |
Response Status Code
200 OK
for a successful request.
401 Unauthorized
if authentication failed. API credentials are incorrect.
400 Bad Request
if the request payload had some error. Specific error is provided in the response.
Webhook
A webhook (also called a web callback or HTTP push API) is a way for an application to provide other applications with real-time information. Credgenics webhook delivers data to your applications as soon as an event occurs, meaning you get data immediately. Unlike typical APIs where you would need to poll for data very frequently in order to get it real-time. This makes webhooks much more efficient for both Credgenics and Clients.
This documentation will detail configuring webhooks, as well as information about events, retry mechanism and response format.
Starting up with Webhook
When a specified event occurs, Credgenics's Webhook will notify a URL of your choice via HTTP POST with information about the event that occured on our platform, so you can take action and keep your business running smoothly.
Webhook Setup
Setting up a Webhook can be achieved through Event Webhook page on Settings Navigation Bar in the portfolio.
Steps are:
- Log in to the platform
- Navigate to Event webhook tab on the left sidebar.
- Configure the HTTP POST API and select the event on which you want to trigger the Webhook
- Save the details
Webhook Events
Event webhooks can be triggered by several types of events:
Digital Communications
Json response structure
{
"loan_id": "1137",
"event": "email",
"data": {
"response": [
{
"error": null,
"shoot_id": "9018f9bcab894a7f8e36143eb90acc72",
"to": "prasad@yopmail.com",
"applicant_type": "applicant",
"transaction_id": null,
"success": true,
"status_code": 200,
"cc": "sagciusdy@yopmail.com",
"from": "Analog Fintech Credgenics Trademarks <info@credgenics.com>",
"email_reply_to": "info@credgenics.com",
"email_body": "test email<br/>",
"email_subject": "1137_test",
"template_name": "test",
"triggered_time": "2022-12-29 17:38:54.572208"
}
],
"allocation_month": "2022-12-01",
"author": "test@credgenics.com"
},
"event_id": "3a18f534edf3498eb79c9447d8e7466b"
}
- Email : Events Webhook is triggered when any Email is sent to a borrower.
KEYS | TYPE | DESCRIPTION | |
---|---|---|---|
loan_id | String | Loan id of the loan | |
allocation_month | String | Month in which loan was allocated | |
author | String | Email address of the sender of the email | |
triggered_time | Integer | Time when email was triggered | |
Communication keys | |||
from | String | The 'From' email address used to deliver the message. | |
to | String | The intended recipient's email address. | |
cc | String | Recipients who will receives a copy of the email. | |
email_subject | String | The Subject of the email | |
email_body | String | Content of the email | |
email_reply_to | String | Recipients who will receive replies and/or bounces. | |
template_name | String | Template selected for the email. | |
applicant_type | String | Type of the applicant | |
error | Object | ||
error | String | Specific error if email failed | |
notice_link | String | Notice Link | |
notice_type | String | Type of notice sent | |
notice_type_map | Object | Object of notice types sent in the email |
Json response structure
{
"loan_id": "1137",
"event": "sms",
"data": {
"response": [
{
"applicant_type": "applicant",
"transaction_id": null,
"to": "9999999999",
"error": null,
"success": true,
"status_code": 200,
"shoot_id": "fd80b0c1824b41808fe2e95b2a85d3d7",
"sms_body": "Test sms",
"sms_language": "en",
"template_name": "LRN-DLT",
"client_template_id": "1107161827754551896",
"triggered_time": "2022-12-29 17:36:14.374311"
}
],
"allocation_month": "2022-12-01",
"author": "test@credgenics.com"
},
"event_id": "2cf0e0c61ee449b4b1c13cb206f8afcf"
}
- SMS : Events Webhook is triggered when any SMS is sent to a borrower.
KEYS | TYPE | DESCRIPTION |
---|---|---|
loan_id | String | Loan id of the loan |
allocation_month | String | Month in which loan was allocated |
author | String | Sender of the sms |
triggered_time | Integer | Time when sms was triggered |
Communication keys | ||
to | String | Mobile number of receiver |
sms_body | String | Text of the message that will be sent. |
sms_language | String | Language of sms selected while triggering sms |
applicant_type | String | Type of the applicant |
client_template_id | String | Template ID of the client |
template_name | String | Name of the selected sms template |
error | Object | |
error_code | String | Specific error code if sms failed |
Json response structure
{
"loan_id": "1137",
"event": "voice",
"data": {
"response": [
{
"applicant_type": "applicant",
"transaction_id": null,
"to": "9999999999",
"error": null,
"success": true,
"status_code": 200,
"shoot_id": "e15ae043d1a242479d4c24d5e2df34e9",
"voice_body": "test message",
"voice_language": "en-in",
"voice_gender": "female",
"template_name": "English Language",
"triggered_time": "2022-12-29 17:40:35.081658"
},
{
"applicant_type": "co_applicant",
"transaction_id": null,
"to": "8888888888",
"error": null,
"success": true,
"status_code": 200,
"shoot_id": "01cf64e7e530460bbac4d23cf1d7caef",
"voice_body": "test message",
"voice_language": "en-in",
"voice_gender": "female",
"template_name": "English Language",
"triggered_time": "2022-12-29 17:40:35.082180"
}
],
"allocation_month": "2022-12-01",
"author": "test@credgenics.com"
},
"event_id": "93996126a3db4065bb58f220e6c738ba"
}
- Voice Message : Events Webhook is triggered when any Voice Message is sent to a borrower.
KEYS | TYPE | DESCRIPTION |
---|---|---|
loan_id | String | Loan id of the loan |
allocation_month | String | Month in which loan was allocated |
author | String | Sender of the voice message |
triggered_time | Integer | Time when voice message was triggered |
Communication keys | ||
to | String | Mobile number of receiver |
voice_body | String | Body of the voice message |
voice_language | String | Language selected while triggering the voice message |
voice_gender | String | Gender selected for voice message |
template_name | String | Name of the selected voice message template |
applicant_type | String | Type of the applicant |
Json response structure
{
"loan_id": "1137",
"event": "whatsapp",
"data": {
"response": [
{
"applicant_type": "applicant",
"transaction_id": null,
"to": "9999999999",
"error": null,
"success": true,
"status_code": 200,
"shoot_id": "db9a14653c6448b3b16e0ff71a9f8624",
"whatsapp_body": "Hi, this is test message",
"client_template_id": "6416443",
"template_name": "Test Template",
"triggered_time": "2022-12-29 18:04:19.772659"
},
{
"applicant_type": "co_applicant",
"transaction_id": null,
"to": "8888888888",
"error": null,
"success": true,
"status_code": 200,
"shoot_id": "9bda951889364bfc9fb5725d9fb56080",
"whatsapp_body": "Hi, this is test message",
"client_template_id": "6416443",
"template_name": "Test Template",
"triggered_time": "2022-12-29 18:04:19.773291"
}
],
"allocation_month": "2022-12-01",
"author": "test@credgenics.com"
},
"event_id": "f59a7c4897ca4741958684851601f34a"
}
Whatsapp : Events Webhook is triggered when any Whatsapp communication is sent to a borrower.
KEYS TYPE DESCRIPTION loan_id String Loan id of the loan allocation_month String Month in which loan was allocated author String Sender of the whatsapp communication triggered_time Integer Time when whatsapp communication was triggered Communication keys to String Mobile number of receiver whatsapp_body String Body of the whatsapp communication template_name String Name of the selected whatsapp communication template applicant_type String Type of the applicant client_template_id Integer Template ID of the client
Payments
Json response structure for payments
{
"event": "payment",
"data": {
"loan_id": "2954",
"amount_recovered": 2000,
"final_status": "Partially Recovered" ,
"recovery_method": "Field collection",
"payment_method": "Online",
"payment_mode": "Paytm",
"reference_number": "RIO2390",
"closure_with": "",
"recovery_date": "2021-09-12 00:59:51",
"allocation_month": "2021-6-01",
"author": "demo.admin@credgenics.com"
},
"created": "2021-05-15 18:44:15"
}
Payment event webhook is triggered when any amount gets recovered against a loan.
KEYS | TYPE | DESCRIPTION |
---|---|---|
loan_id | string | Loan ID of the loan |
amount_recovered | integer | Amount recovered from the customer. |
final_status | string | The status of the loan. |
recovery_method | string | Recovery method of the loan. |
payment_method | string | Method by which the payment has been made. |
payment_mode | string | Mode of payment used. |
closure_with | string | Choice of closure - NOC, Settlement |
recovery_date | date | Date of recovery |
allocation_month | date | Month in which loan was uploaded Eg : "2021-7-01" |
reference_number | string | Reference number of the payment |
author | string | Email of the Author of the payment |
FOS
Json response structure for collections
{
"event": "fos_collection",
"data": {
"loan_id": "318355",
"allocation_month": "2021-9-01",
"visit_id": "FIFVlJzCOXYb",
"agent_email": "fostest@credgenics.com",
"agent_name": "FOS Test",
"visit_date": "2022-02-16",
"visit_purpose": "Surprise Visit",
"is_visit_done": true,
"is_customer_met": true,
"is_recovery_done": true,
"agent_marked_status": "Partially Recovered by Agent",
"amount_recovered": 4000,
"collection_receipt_url": "https://crdg.in/CSjhLf",
"payment_method": "Cash",
"payment_reference_number": "JSbhXBjQr0tf"
},
"created": "2022-03-28 13:55:32.674091"
}
- Collections events webhook is triggered when any Collection is done by a field agent
KEYS | TYPE | DESCRIPTION |
---|---|---|
loan_id | String | Loan id of the loan |
allocation_month | String | Month in which loan was allocated |
visit_id | String | Unique id of the visit |
agent_email | String | Email id of the agent |
agent_name | String | Name of the agent |
visit_date | String | Date of visit |
visit_purpose | String | Purpose of the visit (Surprise or Promise to Pay) |
is_visit_done | Boolean | True if visit was completed. Else,false. |
is_customer_met | Boolean | True if customer was met. Else,false. |
is_recovery_done | Boolean | True if recovery was done. Else,false. |
agent_marked_status | String | Status of loan marked by agent |
amount_recovered | Integer | Amount recovered from the borrower |
collection_receipt_url | String | Link to collection receipt |
payment_method | String | Mode of payment used for collection |
payment_reference_number | String | Unique id of the payment |
Json response structure for FOS deposits where Branch Type is 'bank'
{
"event":"fos_deposit",
"data":{
"deposit_id":"hCZ67s5Aga9Y",
"agent_email":"fostest@credgenics.com",
"agent_name":"FOS Test",
"total_amount":6000,
"deposit_method":"Cash",
"recovery_method":"Cash",
"branch_type":"bank",
"branch_details":{
"bank_name":"ABC BANK LTD",
"ifsc_code":"ABC0003712",
"branch_name":"XYZ Branch",
"account_name":"Dummy Finance LTD",
"account_type":"Current",
"account_number":"123456789"
},
"deposit_receipt_no":"208828256907",
"deposit_proof_url":"https://dev-credgenics-cases.s3.ap-south-1.amazonaws.com/fos_deposit_proofs/RZ7GO4W4pyHU.jpeg",
"loan_data":[
{
"loan_id":"L1",
"amount":4000
},
{
"loan_id":"L2",
"amount":2000
}
]
},
"created":"2022-03-29 13:55:32.674091"
}
Json response structure for FOS deposits where Branch Type is 'company'
{
"event":"fos_deposit",
"data":{
"deposit_id":"hCZ67s5P9a9Y",
"agent_email":"fostest@credgenics.com",
"agent_name":"FOS Test",
"total_amount":6000,
"deposit_method":"Cash",
"recovery_method":"Cash",
"branch_type":"company",
"branch_details":{
"branch_name":"Palam",
"branch_address":"Manglapuri",
"branch_contact_number":"9999999999"
},
"deposit_receipt_no":"208828256917",
"deposit_proof_url":"https://dev-credgenics-cases.s3.ap-south-1.amazonaws.com/fos_deposit_proofs/RZ7GO4W4pyHU.jpeg",
"loan_data":[
{
"loan_id":"L3",
"amount":4000
},
{
"loan_id":"L6",
"amount":2000
}
]
},
"created":"2022-03-29 13:55:32.674091"
}
- Deposit events webhook is triggered when any Deposit is made by a field agent
KEYS | TYPE | DESCRIPTION |
---|---|---|
deposit_id | String | Unique id of the deposit |
agent_email | String | Email id of the agent |
agent_name | String | Name of the agent |
total_amount | Integer | Amount deposited by agent |
deposit_method | String | Mode of payment used for deposit |
recovery_method | String | Mode of payment used for recovery |
branch_details | Object | Details of branch in which deposit was made |
deposit_receipt_no | String | Unique id of the deposit receipt |
deposit_proof_url | String | Link to deposit proof |
loan_data | Object | Details of loans on which deposit was made |
Universal communication API
Use this API to trigger communication event for a particular loan.
API authentication
Universal communication API is authenticated via a combination of authentication token and the role of that particular user who is trying to access the API.
You can request Credgenics for an authentication token. You need to replace {auth_token} in every request with the authentication token that you get from Credgenics.
API Base URL
For Production: https://apiprod.credgenics.com
For Testing: https://apiuat.credgenics.com
API HTTP Request - POST
POST {API_BASE_URL}/communication/trigger/event
API Request Headers
Parameter | Description |
---|---|
authenticationtoken | Auth token assigned by Credgenics |
role | Role of the user |
API Request Body Parameters
import requests
url = "{API_BASE_URL}/communication/trigger/event"
payload = "{\n \"allocation_month\": {allocation_month},\n \"loan_id\": {loan_id},\n \"company_id\": {company_id},\n \"communication_level\": {communication_level},\n \"source\" : {source},\n \"event_name\": {event_name},\n \"inbound_bot_id\": {inbound_bot_id},\n \"send_to\" : {send_to},\n “co_app_upto” : {co_app_upto} //optional field\n “send_to_closed_acc” : {send_to_closed_acc} //optional field\n}"
headers = {
'authenticationtoken': '{auth_token}',
'role': '{role}',
'content-type': 'application/json',
'accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
curl --location --request POST '{API_BASE_URL}/communication/trigger/event' \
--header 'authenticationtoken: {auth_token}' \
--header 'role: {role}' \
--header 'content-type: application/json' \
--header 'accept: application/json' \
--data-raw '{
"allocation_month": {allocation_month},
"loan_id": {loan_id},
"company_id": {company_id},
"communication_level": {communication_level},
"source" : {source},
"event_name": {event_name},
"inbound_bot_id": {inbound_bot_id},
"send_to" : {send_to},
“co_app_upto” : {co_app_upto} //optional field
“send_to_closed_acc” : {send_to_closed_acc} //optional field
}'
var myHeaders = new Headers();
myHeaders.append("authenticationtoken", "{auth_token}");
myHeaders.append("role", "{role}");
myHeaders.append("content-type", "application/json");
myHeaders.append("accept", "application/json");
var raw = "{\n \"allocation_month\": {allocation_month},\n \"loan_id\": {loan_id},\n \"company_id\": {company_id},\n \"communication_level\": {communication_level},\n \"source\" : {source},\n \"event_name\": {event_name},\n \"inbound_bot_id\": {inbound_bot_id},\n \"send_to\" : {send_to},\n “co_app_upto” : {co_app_upto} //optional field\n “send_to_closed_acc” : {send_to_closed_acc} //optional field\n}";
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("{API_BASE_URL}/communication/trigger/event", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
The above code returns JSON structured like this:
{
"message": "success",
"output": "Successfully triggered communication for event Test",
"data": {
"sms": "Successfully created sms communication",
"email": "Successfully created email communication",
"whatsapp": "Successfully created whatsapp communication"
}
}
Key name | Type | Required | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
loan_id | string | True | Loan id of the loan to which communication will be sent. | ||||||||
company_id | string | True | Company_id of the loan corresponding to which communication will be sent. | ||||||||
inbound_bot_id | string | True | Unique ID of the Bot from which the event is triggered. | ||||||||
allocation_month | string | True | Date information of the loan where date is fixed to be “01”. Default value is “current_year -current_month-01” eg: "2021-8-01" | ||||||||
source | string | True | Source of event. | ||||||||
event_name | string | True | Name of event corresponding to which communication to be sent | ||||||||
send_to | string | True | To whom communication needs to be sent. Values Available:
|
||||||||
communication_level | String | True | “customer” for loan companies and “transaction” for creditline companies | ||||||||
co_app_upto | integer | False | Used to define to how many co_applicants we need to send communication | ||||||||
send_to_closed_acc | boolean | False | value can be either true or false. Used to define whether to send communication on closed loans or not. |
API Response Status Code
201 OK
for a successful request.
401 Unauthorized
if authentication failed. API credentials are incorrect.
400 Bad Request
if the request payload had some error. Specific error is provided in the response.
Errors
The Credgenics API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Authentication failed. API credentials are incorrect. |
403 | Forbidden -- You do not have permission to perform this action. |
404 | Not Found |
405 | Method Not Allowed -- You tried to access an endpoint with an invalid method. |
406 | Not Acceptable -- You requested a format that isn't json. |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |