Scoring Events#

CasaPay sends webhook events when scoring requests complete or encounter errors.

Event Types#

EventDescription
score_request.processingScore request has started processing
score_request.completedAll scores have been generated
score_request.errorScore request encountered an error
score_report.readyFull score report is available

Event Object#

{
  "id": "evt_score_abc123",
  "object": "event",
  "type": "score_request.completed",
  "data": {
    "object": {
      "id": "sr_abc123def456",
      "object": "score_request",
      "status": "completed",
      "score_report": "scrpt_xyz789",
      "score_types": ["tenant_score", "cash_flow_score", "credit_score"]
    }
  },
  "created": 1706140800
}

Handling Scoring Events#

app.post('/webhooks/casapay', async (req, res) => {
  const event = req.body;

  if (event.type === 'score_request.completed') {
    const scoreReport = await casapay.scoreReports.retrieve(
      event.data.object.score_report
    );

    // Process scores
    for (const score of scoreReport.scores) {
      if (score.risk_indicator === 'high_risk') {
        await flagApplication(event.data.object.id, score);
      }
    }
  }

  res.status(200).send();
});