Webhook
Enrollment
During enrollment phase, client can specify an url where they want to receive webhook data. For change this url or to insert it at a later time after registration write at [email protected]
Webhook Requests
Webhook POST requests will contain a single payload
object inside body.
payload
is signed through a jwt that must be verified in order to be able to read data.
After the enrollment, each client will receive a public key required to decrypt the payload. The algorithm used is RS256
JWT Verification example
const readWeStudentsWebhook = async (req, res) => {
try {
const { payload } = req.body
// token decode
const decodedData = await jwt.verify(payload, 'webhook_public_key', { algorithms: ['RS256'] })
if (decodedData.eventType === 'STUDENT_VERIFICATION') {
// do something
}
} catch (e) {
console.log("Error in jwt verification")
}
}
Webhook Events
STUDENT VERIFICATION
This event will be fired each time an async process of student verifcation (verification through doucument and verification through email) is completed.
Data inside payload
once decrypted are:
eventType: string
: STUDENT_VERIFICATIONuserId: string
: id of the user associated to the student verification requestverificationMethod: string
: method associated to the student verification request, it can be "EMAIL" or "DOCUMENTS"
Body Example Encrypted
{
"payload": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJ0ZXN0X3VzZXJfaWQiLCJldmVudFR5cGUiOiJTVFVERU5UX1ZFUklGSUNBVElPTiIsInZlcmlmaWNhdGlvbk1ldGhvZCI6IkVNQUlMIiwiaWF0IjoxNjU0ODUwMTg5fQ.Q6hCBqNEiyI2bCi2sShDC2kNZiO1wqw3kCsqEfrUjKUJ_mRZwDvsohUdA9zhmbt6CJHQt6h6GNxnLDc_cIByew"
}
Payload Example Decrypted
{
"eventType": "STUDENT_VERIFICATION",
"verificationMethod": "EMAIL",
"userId": "test_user_id"
}