A single eKYC record with provider routing, stored session metadata, and an audit trail.
This is the minimum data shape needed for the MVP.
Provider payload or mock payload stored as JSON.
{
"mode": "mock",
"reason": "Mock approval",
"decision": "approved",
"decidedAt": "2026-07-16T15:27:50.133Z",
"sessionId": "mock_198ab1b8-5907-4cd0-b06e-301281624e6d"
}
Every important status change should leave an audit trail.
{
"reason": "Mock approval",
"status": "approved",
"sessionId": "mock_198ab1b8-5907-4cd0-b06e-301281624e6d"
}
{
"reason": "Mock approval",
"status": "approved",
"sessionId": "mock_198ab1b8-5907-4cd0-b06e-301281624e6d"
}
{
"provider": "mock",
"verificationUrl": "http://127.0.0.1:3000/mock-provider/mock_198ab1b8-5907-4cd0-b06e-301281624e6d",
"providerSessionId": "mock_198ab1b8-5907-4cd0-b06e-301281624e6d"
}
{
"reason": "Mock approval",
"status": "approved",
"sessionId": "mock_e56b7929-c499-4e46-9f4d-6da9960e1682"
}
{
"reason": "Mock approval",
"status": "approved",
"sessionId": "mock_e56b7929-c499-4e46-9f4d-6da9960e1682"
}
{
"provider": "mock",
"verificationUrl": "http://127.0.0.1:3000/mock-provider/mock_e56b7929-c499-4e46-9f4d-6da9960e1682",
"providerSessionId": "mock_e56b7929-c499-4e46-9f4d-6da9960e1682"
}
{
"provider": "mock",
"countryCode": "BD",
"dateOfBirth": "1998-12-10T16:00:00.000Z",
"documentType": "passport",
"applicantName": "Umme Nusrat Jahan",
"applicantSurname": "Jahan",
"applicantGivenName": "Umme Nusrat",
"applicantMiddleName": null
}