Recover a delayed verification callback
Recover a delayed callback without creating duplicate sessions. The runnable local example stores state in SQLite, enforces a deadline and rejects late permission grants. Its callback channel is explicitly synthetic: it is not a live signature verifier.
curl https://gridzen.ai/console/api/quickstart/trial \
-H 'Content-Type: application/json' \
-d '{"task": "identity_onboarding", "scenario": "success"}'What you will build
Recover a delayed callback without creating duplicate sessions. The runnable local example stores state in SQLite, enforces a deadline and rejects late permission grants. Its callback channel is explicitly synthetic: it is not a live signature verifier.
Run and inspect the three outcomes
for scenario in success reject unavailable; do
curl -fsS https://gridzen.ai/console/api/quickstart/trial \
-H 'Content-Type: application/json' \
-d '{"task":"identity_onboarding","scenario":"'"$scenario"'"}'
doneExpected output (synthetic)
{
"mode": "synthetic_fixture",
"source": "local_response_trial",
"task": "identity_onboarding",
"scenario": "success",
"verified": false,
"real_person_verified": false,
"billable": false,
"amount_minor": 0,
"upstream_calls": 0,
"result": {
"status": "Approved",
"reason": "synthetic_scenario",
"hosted_url": null
},
"business_decision": "caller_owned",
"next_step": "connect_verified_account_for_persisted_sandbox",
"production_available_from_this_trial": false
}Local state machine: restart, duplicates and deadlines
The local script uses only fixture identifiers. Run the code and tests in the linked repository; no account or provider key is required. Production callbacks need their own authorized signature verifier.
git clone https://github.com/immurray/gridzen-developer-kit.git
cd gridzen-developer-kit
python3 examples/verification_delivery/delivery.py identity --db /tmp/gridzen-local-delivery.sqlite3
python3 -m venv .venv
.venv/bin/python -m pip install pytest
.venv/bin/python -m pytest examples/verification_delivery/test_delivery.py -qDecide what your app does next
Treat success as a fixture branch, not real-person approval. For reject, show a recoverable message or review path. For unavailable, leave the outcome unknown and avoid silently granting permission. In a real integration, bind tenant, account and session; verify the provider notification, re-read authoritative state and apply your business policy before changing permissions.
Limits and production handoff
No documents, phone numbers, credentials or real users are accepted by this trial. Production is a separate owner-approved free pilot. Current phone production provides basic validity only; hosted identity requires current confirmed free allowance and applicable supplier rights. Real payments remain disabled.