event
Metadata about the delivery, not about the applicant.
{ "event": { "nounce": "SjG5y60YsKnnTHBxiGWVrI8FDAcXC3", "type": "submit_form", "version": 2, "created_at": "2026-08-26T09:51:56.458646+00:00" }}Fields
Section titled “Fields”| Field | Type | Notes |
|---|---|---|
type | string | Which event triggered the delivery. |
nounce | string | Unique per delivery. |
created_at | stringdate-time | When this delivery was generated — not when the applicant submitted. On a first delivery the two are seconds apart; on a re-delivery they can be far apart. |
version | integer | Payload schema version. Currently 2. |
| Value | Fires when | Setup |
|---|---|---|
submit_form |
The applicant submitted the form. The only type that carries answers and extra. |
Enabled by default |
update_status |
A status on the application changed — for example an operator changed it in the Portal. | Contact support |
drop_off |
The applicant started and did not finish before the form expired. | Contact support |
Only submit_form carries answers and extra. Every other type is a lifecycle
notification carrying event and application — treat answers, extra and
event.version as absent on all of them. Further lifecycle types exist and can be
enabled by support; branch on type and ignore values you do not handle.
nounce
Section titled “nounce”Unique per delivery, not per application.
created_at
Section titled “created_at”The time this delivery was generated.
| First delivery | seconds after application.submitted_at |
| Re-delivery | can be much later — minutes or more |
For when the applicant actually finished, read application.submitted_at.
created_at matters for one other reason: it starts the 15-minute clock on every
signed image URL in the payload. See extra.ekyc.
version
Section titled “version”Payload schema version, currently 2.
Present on submit_form. Absent from lifecycle events — do not require it.