Checkout Finance

💰 Effortlessly integrate and streamline your financial processes with our plug-and-play API stack designed for seamless checkout financing operations

The following block diagram shows how Decentro's lending stack works for checking financing at a high level. The sequence has to be maintained for all loan applications and is specifically designed keeping both customisation as well as compliance in mind.

Note that the sequence of the API calls have to remain same for all sessions, but the user journey doesn't. The following diagram represents an example user flow that a platform might design for the app:

The following block diagram illustrates how a platform can create the above user journey possible using the APIs mentioned in the first block diagram. Note the although APIs are called in the background without the actually needing user input, the sequence of API calls mentioned in the first diagram is maintained.


Step 1: Check Eligibility

This API lets lending institutions complete a eligibility test against an applicant. The initial basic eligibility does not require an amount to complete.

{
    "reference_id": "DEC001",
    "consent": true,
    "purpose": "To check eligibility for BNPL product",
    "email": "[email protected]",
    "mobile": "9999999999",
    "name": {
        "first": "John",
        "middle": "J.",
        "last": "Doe"
    }
}
{
    "decentroTxnId": "XXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "transactionStatus": "success",
        "transactionDescription": "Basic eligibility check completed. Proceed with Updating the application"
    },
    "responseKey": "success_basic_eligibility_check"
}

Step 2: Get Applicant Details

This API lets you get all the details of an applicant using the mobile number as an index.

{
    "decentroTxnId": "XXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "transactionStatus": "success",
        "transactionDescription": "Applicant details extracted",
        "name": "XXXXX",
        "pan": "XXXXXXXXX",
        "dateOfBirth": "YYYY-MM-DD",
        "emailId": "[email protected]",
        "currentAddress": {},
        "permanentAddress": {},
        "areCurrentAndPermanentAddressesIdentical": true
    },
    "responseKey": "success_applicant_details_fetched"
}

📘

Why are the currentAddress and permanentAddress fields empty in the response?

At this point, Decentro has still not triggered the call to retrieve these fields from the underlying repository. This trigger happens after the call to the Update Application API, after which, if the details of the user are found, both the Get Applicant Details and Get Address Details APIs will populate the currentAddress and permanentAddress fields.


Step 3: Update Application

After performing the basic eligibility check, you can update the applicant's profile using the Update Profile API. After updating the profile, you are required to check eligibility one more time.

👍

Important Note

The Update Application API might give a response message stating like the one displayed below:

"message": "PAN number already exists. Please enter a valid unique PAN number."

This could mean one of two things:

  1. The PAN number already exists with the current user. Hence the user is allowed to proceed in the cycle.
  2. The PAN number already exists for a different user. Hence the user needs to go back and create a new profile or enter a different PAN number.

To differentiate these two cases, the platform would have to hit the "Get Applicant Details" API in the Lending Utility APIs with the user's phone number first.

{
    "reference_id": "DEC001",
    "consent": true,
    "purpose": "for some purpose only",
    "date_of_birth": "YYYY-MM-DD",
    "pan": "XXXXXXXXXX",
    "eligibility_check_transaction_id": "XXXXX"
}
{
    "decentroTxnId": "XXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "transactionStatus": "success",
        "transactionDescription": "Profile details updated. Kindly trigger eligibility check API."
    },
    "responseKey": "success_update_application"
}

Step 4: Get Address Details

This API allows users to retrieve the address of an applicant. The API returns the applicant's address details.

{
    "decentroTxnId": "XXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "transactionStatus": "success",
        "transactionDescription": "Address details extracted",
        "currentAddress": {
            "line1": "XXXXX,",
            "city": "XXXXX",
            "district": "XXXXX",
            "state": "XX",
            "country": "XX",
            "pinCode": "XXXXXX"
        },
        "permanentAddress": {
            "line1": "XXXXX,",
            "city": "XXXXX",
            "district": "XXXXX",
            "state": "XX",
            "country": "XX",
            "pinCode": "XXXXXXX"
        },
        "areCurrentAndPermanentAddressesIdentical": true
    },
    "responseKey": "success_address_details_fetched"
}

Step 5: Confirm Address

This API allows users to confirm the accuracy of an applicant's address. The API returns a response indicating whether the address is confirmed by the applicant or not.

{
    "reference_id": "DEC001",
    "consent": true,
    "purpose": "To confirm address for BNPL product",
    "address_type": "CURRENT_ADDRESS",
    "eligibility_check_transaction_id": "XXXXX"
}
{
    "decentroTxnId": "XXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "transactionStatus": "success",
        "transactionDescription": "Address confirmed successfully"
    },
    "responseKey": "success_address_details_confirmed"
}

Step 6: Get Pre-Approved Amount

This API allows users to check their pre-approved amount and to generate a unique URL for an applicant to electronically sign their loan documents.

{
    "reference_id": "DEC001",
    "consent": true,
    "purpose": "To get pre-approved amount",
    "redirection_url": "https://example.com",
    "eligibility_check_transaction_id": "XXXXX"
}
{
    "decentroTxnId": "XXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "transactionStatus": "success",
        "transactionDescription": "ESign URL generated successfully",
        "url": "XXXXX",
        "availableAmount": 20000
    },
    "responseKey": "success_esign_url_generated"
}

Step 7: Check Eligibility with Amount

The request body also accepts an additional amount parameter that is needed after the user completes one full cycle of updating application, confirming details and completing eSign process.

{
    "reference_id": "DEC001",
    "consent": true,
    "purpose": "To check eligibility for BNPL product",
    "email": "[email protected]",
    "mobile": "9999999999",
    "name": {
        "first": "John",
        "middle": "J.",
        "last": "Doe"
    },
  	"amount": 1000
}
{
    "decentroTxnId": "XXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "transactionStatus": "success",
        "transactionDescription": "Facility details extracted",
        "count": 1,
        "facilities": [
            {
                "id": "XXXXX",
                "name": "XXXXX",
                "description": "3 Months - No cost EMIs",
                "durationDays": 90,
                "merchant": "XXXXX",
                "emiCount": 3,
                "emiAmount": 367,
                "minimumLoanRequirement": 1000.0,
                "maximumLoanRequirement": 5000.0,
                "processingFee": 25
            }
        ]
    },
    "responseKey": "success_facility_details_fetched"
}

Step 8: Get Consolidated Facility Details

This API allows users to retrieve a consolidated list of all the lending facilities available to an applicant. The API returns a list of facilities along with their respective details such as EMI counts, loan amounts, and processing fees. This API can be used to provide the applicant with an overview of the available facilities and to help them make an informed decision.

{
    "decentroTxnId": "XXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "transactionStatus": "success",
        "transactionDescription": "Facility details extracted",
        "count": 2,
        "facilities": [
            {
                "id": "XX",
                "name": "XXXXX",
                "description": "3 Months - No cost EMIs",
                "durationDays": 90,
                "merchant": "XXXXX",
                "emiCount": 3,
                "emiAmount": 367,
                "minimumLoanRequirement": 1000.0,
                "maximumLoanRequirement": 5000.0,
                "processingFee": 25
            },
            {
                "id": "XX",
                "name": "XXXXX",
                "description": "3 Months EMI",
                "durationDays": 90,
                "merchant": "XXXXX",
                "emiCount": 3,
                "emiAmount": 367,
                "minimumLoanRequirement": 1000.0,
                "maximumLoanRequirement": 5000.0,
                "processingFee": 25
            },
            {
                "id": "XX",
                "name": "XXXXX",
                "description": "No cost EMIs for 3 months only",
                "durationDays": 90,
                "merchant": "XXXXX",
                "emiCount": 3,
                "emiAmount": 367,
                "minimumLoanRequirement": 1000.0,
                "maximumLoanRequirement": 5000.0,
                "processingFee": 25
            }
        ]
    },
    "responseKey": "success_facility_details_fetched"
}

Step 9: Get Specific Facility Details

This API allows users to retrieve specific details about a particular lending facility. The API takes in the facility ID as a parameter and returns details such as interest rates, loan amounts, and repayment terms for that facility. This API can be used to provide the applicant with more detailed information about a specific facility.

{
    "decentroTxnId": "XXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "transactionStatus": "success",
        "transactionDescription": "Facility detail extracted",
        "count": 1,
        "facilities": [
            {
                "uniqueReferenceNumber": "XXXX",
                "amount": 1001.0
            }
        ]
    },
    "responseKey": "success_facility_details_fetched"
}

Step 10: Select Facility

This API allows users to select a particular lending facility for an applicant. This API can be used to help the applicant move forward with the loan process.

{
    "reference_id": "DEC001",
    "consent": true,
    "purpose": "For selecting facility for applicant",
    "provider_facility_reference_number": "XXXXX",
    "amount": 1001,
    "emi_count": 3,
    "eligibility_check_transaction_id": "XXXXX"
}
{
    "decentroTxnId": "XXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "transactionStatus": "success",
        "transactionDescription": "OTP generated successfully. Please trigger Confirm Facility API.",
        "facilityUniqueReferenceNumber": "XXXXX"
    },
    "responseKey": "success_facility_selected"
}

Step 11: Confirm Facility

This API allows users to confirm the lending facility selected by the applicant by passing an OTP received on the applicant's mobile number.

{
    "reference_id": "DEC001",
    "consent": true,
    "purpose": "For confirming facility for applicant",
    "otp": "123123",
    "eligibility_check_transaction_id": "XXXXX"
}
{
    "decentroTxnId": "XXXXX",
    "status": "SUCCESS",
    "responseCode": "S00000",
    "data": {
        "transactionStatus": "success",
        "transactionDescription": "Facility confirmed successfully"
    },
    "responseKey": "success_facility_confirmed"
}

What’s Next

Take a look at our API reference page.