Propelld

Propelld

  • Docs
  • Help

›Webhooks

API Reference

  • Getting Started

Loan Product

  • Loan Creation Flow
  • Quote

Webhooks

  • Webhooks

NACH

  • NACH

Webhooks

Webhooks allow you to build or set up integrations that subscribe to certain events on Propelld APIs. When one of those events is triggered, we send an HTTP POST payload in JSON to the webhook's configured URL.

You can set up webhooks from your Dashboard and configure separate URLs for live mode and test mode.

A test mode webhook will only receive events for your test transactions.

In URLs, only port numbers 80 and 443 are currently allowed.

When setting up the webhook, you will be asked to specify a secret. Using this secret, you can validate that the webhook is from Propelld. Entering the secret is optional, but recommended. The secret should never be exposed publicly.

Idempotency

Your server should be configured to handle or receive the same event details multiple times. In case you receive the same webhook event again, you should check if the payload is unique or duplicated. If it is duplicate data, you should ignore it.

Deactivation

On failure, a webhook is retried once every hour for 24 hours. If we keep receiving failure responses consecutively for 24 hours, we disable the webhook. You will then need to manually re-enable the webhook from the Dashboard after fixing the errors at your end.

Note: For every failure, we send you an email notification along with the reason and the error code received by us.

Set Up Webhooks

To setup webhooks:

  • Log into your Propelld Dashboard and navigate to Credential Settings → Webhooks.
  • Click Setup Webhook.
  • Enter the following details:
  • Enter the Website URL where you want to receive the webhook payload when an event is triggered.
  • Enter a Secret for the webhook endpoint. The secret is used for validation purposes.

    Note: The secret that you enter here can be used to validate that the webhook is from Propelld. Do not expose the secret publicly.

  • Select the required events from the list of Active Events.
  • Click Save to enable webhooks.

Validation

When your webhook secret is set, Propelld uses it to create a hash signature with each payload.

This hash signature is passed along with each request under the X-Propelld-Signature header that you need to validate at your end.

HeaderDescription
X-Propelld-SignatureThe hash signature is calculated using HMAC with SHA256 algorithm; with your webhook secret set as the key, and the webhook request body as the message.

Entities

Application

fieldtypedesc
ApplicationIdintegerLoan Application Reference Id
QuoteIdstringReference Id of quote. Will be null for non-api cases
StatusstringCREATED, APPROVED, REJECTED, READY_FOR_DISBURSAL, PUSHED_FOR_DISBURSAL, DISBURSED, DROPPED
CourseIdintegerPropelld Course Id
InstitutestringName of the institute for specific application
CourseNamestringName of the course for specific application
NotesobjectNotes object in create quote api. null if not present
ReferenceNumberstringReference number in create quote api. null if not present

Loan

fieldtypedesc
LoanAmountintegerApproved Loan Amount
TotalTenorintegerTotal Tenor in months. Its including moratorium period.
MoratoriumPeriodintegerMoratorium Period in months
DiscountedCourseFeeintegerDiscounted Course Fee as provided

Borrowers

Applicant

fieldtypedesc
NamestringName for Applicant
Mobilestring10 digit mobile number.
EmailstringEmail of Applicant. null if not present

CoApplicant

For those cases which don't have Co-Applicants the CoApplicant Field will be empty array

fieldtypedesc
NamestringName for Applicant
Mobilestring10 digit mobile number.
EmailstringEmail of Applicant. null if not present

Disbursement

fieldtypedesc
TranchNumberintegerTranch Number
DisbursementAmountintegerTotal Tenor in months. Its including moratorium period.
DisbursementDatestringDate of Disbursement in YYYY-MM-DD
LoanReferencestringLoan Reference
DisbursementReferencestringDisbursement Reference Number (UTR Number)

Events Description

Webhook EventDescription
application.status.changeTriggered when an application status changed to CREATED, APPROVED, REJECTED, READY_FOR_DISBURSAL, PUSHED_FOR_DISBURSAL ,DISBURSED, DROPPED.
application.loan.disbursedTriggered when loan has been disbursed.

Status Description

StatusDescription
CREATEDTriggered when Application gets created in Propelld system for review
APPROVEDTriggered when Loan is Approved from Propelld.
REJECTEDTriggered when Application is Rejected from Propelld.
READY_FOR_DISBURSALTriggered when cutomer has completed all loan formalities but Application is yet to be pushed to NBFC/Bank for disbursal
PUSHED_FOR_DISBURSALTriggered when Application has been pushed to NBFC/Bank for disbursal
DISBURSEDTriggered when Loan has been disbursed to Institute
DROPPEDTriggered when Application is Dropped from Propelld.

Test Event

Sample Test Event Payload
{
"Event": "test.event",
"Entities": ["Application"],
"Payload": {
"Application": {
"ApplicationId": 666,
"QuoteId": "5362179f-d56f-40d3-949a-99cf6888cdee",
"Status": "APPROVED",
"CourseId": 541,
"Institute": "Test Institute",
"CourseName": "Artificial Intelligence",
"Notes": null,
"ReferenceNumber": null
}
},
"CreatedOn": "2019-08-06 18:00:00"
}

Application Status Change

Sample Status Change Payload
{
"Event": "application.status.change",
"Entities": ["Application", "Loan", "Borrowers"],
"Payload": {
"Application": {
"ApplicationId": 666,
"QuoteId": "5362179f-d56f-40d3-949a-99cf6888cdee",
"Status": "APPROVED",
"CourseId": 541,
"Institute": "Test Institute",
"CourseName": "Artificial Intelligence",
"Notes": null,
"ReferenceNumber": null
},
"Loan": {
"LoanAmount": 50000,
"TotalTenor": 12,
"MoratoriumPeriod": 6,
"DiscountedCourseFee": 65000
},
"Borrowers": {
"Applicant": {
"Name": "Jane Doe",
"Mobile": "9999999999",
"Email": "jane.doe@test.com"
},
"CoApplicants": [
{
"Name": "John Doe",
"Mobile": "9999999999",
"Email": "john.doe@test.com"
}
]
}
},
"CreatedOn": "2019-08-06 18:00:00"
}

Loan Disbursed

Sample Loan Disbursed Payload
{
"Event": "application.loan.disbursed",
"Entities": ["Application", "Loan", "Borrowers", "Disbursement"],
"Payload": {
"Application": {
"ApplicationId": 666,
"QuoteId": "5362179f-d56f-40d3-949a-99cf6888cdee",
"Status": "APPROVED",
"CourseId": 541,
"Institute": "Test Institute",
"CourseName": "Artificial Intelligence",
"Notes": null,
"ReferenceNumber": null
},
"Loan": {
"LoanAmount": 50000,
"TotalTenor": 12,
"MoratoriumPeriod": 6,
"DiscountedCourseFee": 65000
},
"Borrowers": {
"Applicant": {
"Name": "Jane Doe",
"Mobile": "9999999999",
"Email": "jane.doe@test.com"
},
"CoApplicants": [
{
"Name": "John Doe",
"Mobile": "9999999999",
"Email": "john.doe@test.com"
}
]
},
"Disbursement": [
{
"LoanReference": "DEL00123002104",
"TranchNumber": 1,
"DisbursementAmount": 50000,
"DisbursementDate": "2019-08-20",
"DisbursementReference": "AIASDO311144141"
}
]
},
"CreatedOn": "2019-08-06 18:00:00"
}
← QuoteNACH →
  • Idempotency
  • Deactivation
  • Set Up Webhooks
  • Validation
  • Entities
    • Application
    • Loan
    • Borrowers
    • Disbursement
  • Events Description
  • Status Description
    • Test Event
    • Application Status Change
    • Loan Disbursed
Propelld
Docs
Getting StartedLoan Creation FlowAPI Reference
Community
Twitter
More
Blog
Copyright © 2021 Propelld