Skip to main content

Incentive Disbursement Process

Dependencies:

This process sends incentive (mobile cash) to caregivers. IncentiveStatusPusherJob.java runs every 20 minutes, fetches 200 'AVAILABLE' transactions from the database, marks them as 'DISPATCHED,' and sends them to ITS via a REST API. ITS returns a transaction ID, system updates the status to 'WAITING,' and stores the ID in the database.
Another job i.e. IncentiveStatusUpdaterJob.java runs every 30 minutes, retrieves 'WAITING' transactions from the database, queries ITS for the final status using the transaction ID, and updates the status accordingly.

Schedule:

This job is scheduled to run after each 20 minutes.

Job NameSchedule
IncentiveStatusPusherJob.javaEvery 20 mins
IncentiveStatusUpdaterJob.javaEvery 30 mins

Schema:

Below are the key table(s) used by incentive disbursement process:

  • visitincentive

Dependencies:

  • IncentiveUtils.java::sendIncentive()
  • IncentiveUtils.java::getIncentiveStatus()

Process Flow:

Disbursement Process