Loans - Webhook Payload Documentation

This document outlines the structure and examples of the payloads received by key webhooks in the Kona Finance system.


Webhooks

Examples

Loan Rejected

{
  "created_at": "YYYY-MM-DDTHH:MM:SSZ",
  "event": "loan_status_changed",
  "payload": {
    "uuid": "<loan_uuid>",
    "status": "Loan Rejected",
    "result": "Borrower does not qualify in KYC validation: Suspected Fraud",
    "reasons": ["suspected_fraud"]
  }
}

The result and reasons fields can return for example:

  • Rejected Due to Eligibility Criteria:
    result = "Borrower does not qualify in KYC validation: Rejected Due to Eligibility Criteria"
    reasons = ["eligibility_criteria"]
  • Suspected Fraud:
    result = "Borrower does not qualify in KYC validation: Suspected Fraud"
    reasons = ["suspected_fraud"]
  • Irregular Tax ID:
    result = "Borrower does not qualify in KYC validation: Irregular Tax ID"
    reasons = ["irregular_tax_id"]

In some very specific situations you can receive more than one rejection reason, like:
result = "Borrower does not qualify in KYC validation: Irregular Tax ID, Suspected Fraud" reasons = ["irregular_tax_id", "suspected_fraud"]


Pending Signature (Contract or CCB)

{
  "created_at": "YYYY-MM-DDTHH:MM:SSZ",
  "event": "loan_status_changed",
  "payload": {
    "uuid": "<loan_uuid>",
    "status": "Contract Sent",
    "signing_links_for_embedding": [
      {
        "name": "<signer_name>",
        "email": "<signer_email>",
        "link": "<signing_link>"
      }
    ]
  }
}

Signed (Contract or CCB)

{
  "created_at": "YYYY-MM-DDTHH:MM:SSZ",
  "event": "loan_status_changed",
  "payload": {
    "uuid": "<loan_uuid>",
    "status": "Signed"
  }
}

Loan Disbursed

{
  "created_at": "YYYY-MM-DDTHH:MM:SSZ",
  "event": "loan_status_changed",
  "payload": {
    "uuid": "<loan_uuid>",
    "status": "Disbursed",
    "loan_sc_id": "<loan_sc_id>",
    "payment_date" "YYYY-MM-DDTHH:MM:SSZ"
  }
}

Loan Error

{
  "created_at": "YYYY-MM-DDTHH:MM:SSZ",
  "event": "loan_status_changed",
  "payload": {
    "uuid": "<loan_uuid>",
    "status": "Error",
    "error_message": "Any error message"
  }
}