Status Event Codes
Applies to: Capture API
This page describes possible status event codes that are returned during the identity validation transaction workflow with Capture.
Status event code categories
The codes are categorized as follows:
100s, 10xx. Events for transaction details, URLs, and Telesign events.
11xx Landing. Events for initialization and setup.
12xx Capture Guide and Capture Front. Events that track pre-capture guide instructions and frontside capture.
13xx Capture Back. Events that track the status of the backside capture.
14xx Capture Barcode. Events that track the status of the barcode scan.
15xx Biometrics. Events that track biometric policy review.
16xx Capture Selfie. Events that track the status of selfie capture.
17xx Network. Events for connection-speed and slow-connection handling.
18xx Complete. Events that track the complete page.
19xx, 20xx Failure. Events that track errors, denials, timeouts, and other drop-off events.
Postback responses and polling requests
Status event codes are returned either by a postback response or alternatively by polling requests.
- Postback response (preferred) - The
status_urllocation, as specified in the/startrequest body, provides a postback response endpoint. The advantage to this approach is real-time updates. Your client receives immediate notifications when events occur. This is the preferred method for gathering status event codes. - Polling requests (alternative) - The
get-statusendpoint provides an alternative approach to poll for status event codes. The disadvantage to this approach is its inefficiency. Frequent requests must be made, even when no updates are available.
Example status event code log
Status event codes are returned in reverse chronological order with the newest status event code at the top of the list.
The following text shows a sample status event code log from the get-status endpoint.
{
"public_data": {
"version": "3.12.1",
"endpoint": "get-status"
},
"private_data": {
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"status": [
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": "2026-07-23 16:34:37.348000",
"server_time": "2026-07-23 16:34:37.450320",
"event": 1800,
"message": "User navigates to complete page",
"sequence": "2026-07-23 16:34:37.348000",
"timestamp": "2026-07-23 16:34:37.450320"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": null,
"server_time": "2026-07-23 16:34:36.139888",
"event": 1825,
"message": "Transaction ended - processing results",
"sequence": null,
"timestamp": "2026-07-23 16:34:36.139888"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": null,
"server_time": "2026-07-23 16:34:30.347357",
"event": 1625,
"message": "/submit/selfie API call is made",
"sequence": null,
"timestamp": "2026-07-23 16:34:30.347357"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": "2026-07-23 16:34:13.941000",
"server_time": "2026-07-23 16:34:13.984214",
"event": 1410,
"message": "Barcode is captured",
"sequence": "2026-07-23 16:34:13.941000",
"timestamp": "2026-07-23 16:34:13.984214"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": null,
"server_time": "2026-07-23 16:34:06.589449",
"event": 1225,
"message": "/submit/front API call made",
"sequence": null,
"timestamp": "2026-07-23 16:34:06.589449"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": "2026-07-23 16:34:05.992000",
"server_time": "2026-07-23 16:34:06.103942",
"event": 1226,
"message": "{\"method\":\"manual\",\"attempt_number\":1}",
"sequence": "2026-07-23 16:34:05.992000",
"timestamp": "2026-07-23 16:34:06.103942"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": "2026-07-23 16:34:05.990000",
"server_time": "2026-07-23 16:34:06.097397",
"event": 1210,
"message": "{\"method\":\"manual\",\"attempt_number\":1}",
"sequence": "2026-07-23 16:34:05.990000",
"timestamp": "2026-07-23 16:34:06.097397"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": "2026-07-23 16:33:55.977000",
"server_time": "2026-07-23 16:33:56.064921",
"event": 1213,
"message": "{\"attempt_number\":1}",
"sequence": "2026-07-23 16:33:55.977000",
"timestamp": "2026-07-23 16:33:56.064921"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": "2026-07-23 16:33:49.849000",
"server_time": "2026-07-23 16:33:49.949120",
"event": 1202,
"message": "{\"method\":\"button\",\"dwell_ms\":2763}",
"sequence": "2026-07-23 16:33:49.849000",
"timestamp": "2026-07-23 16:33:49.949120"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": "2026-07-23 16:33:47.087000",
"server_time": "2026-07-23 16:33:47.123971",
"event": 1201,
"message": "User lands on the front pre-capture guide screen",
"sequence": "2026-07-23 16:33:47.087000",
"timestamp": "2026-07-23 16:33:47.123971"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": "2026-07-23 16:33:47.052000",
"server_time": "2026-07-23 16:33:47.092244",
"event": 1190,
"message": "User taps start button",
"sequence": "2026-07-23 16:33:47.052000",
"timestamp": "2026-07-23 16:33:47.092244"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": "2026-07-23 16:33:42.476000",
"server_time": "2026-07-23 16:33:42.623358",
"event": 1105,
"message": "/user/get-config API call made",
"sequence": "2026-07-23 16:33:42.476000",
"timestamp": "2026-07-23 16:33:42.623358"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": null,
"server_time": "2026-07-23 16:33:26.931981",
"event": 100,
"message": "Transaction type: portal",
"sequence": null,
"timestamp": "2026-07-23 16:33:26.931981"
},
{
"transaction_id": "12345678-abcd-1234-abcd-123456789abc",
"customer_id": "00000000-0000-0000-0000-000000000000",
"client_time": null,
"server_time": "2026-07-23 16:33:26.912557",
"event": 505,
"message": "Document type: na_dl",
"sequence": null,
"timestamp": "2026-07-23 16:33:26.912557"
}
]
}
}Event order and repeated codes
Events are returned in reverse chronological order by server_time.
sequence duplicates client_time, and timestamp duplicates server_time. Despite its name, sequence is a timestamp rather than an ordinal, and it is null on events the server originates, so no single field orders every event in a transaction. Order by server_time and treat the result as the order in which the server received events, not as a literal record of what the user did. Events logged within the same few milliseconds can appear in either order.
A status event code can appear more than once in the same transaction for three reasons:
- The client and the server both logged it. For example,
1140,1141,1142,1225,1325, and1425are recorded from both vantage points. The client-logged instance carries aclient_timevalue; the server-logged instance hasclient_time: null. - The step occurred more than once. The camera permission events
1207and1208, for example, are emitted each time a capture component initializes. The component tears down and re-initializes on every retake, so these appear once per capture attempt, not once per side. - The user retried. A retry repeats the capture events with an incremented
attempt_number.
Handle events idempotently, keyed on the event code together with server_time.
Status event code list
The following table shows status event codes and corresponding event messages grouped by page type.
Transaction codes
| Page | Status Event Code | Event Message |
|---|---|---|
| Transaction | 100 | Transaction type: Portal. |
| Transaction | 105 | Transaction type: Capture. |
| Transaction | 110 | Transaction type: Direct. |
| Transaction | 405 | Message type: <(sms, link, whatsapp, etc.)> |
| Transaction | 500 | Document type: Not found. |
| Transaction | 505 | Document type: NA_DL. |
| Transaction | 510 | Document type: Passport. |
| Transaction | 515 | Document type: Other. |
| (Deprecated) | ||
| Transaction | 1001 | URL <client url> |
| Transaction | 1002 | User Agent <client user agent> |
Landing page codes
| Page | Status Event Code | Event Message |
|---|---|---|
| Landing | 1100 | User has opened text link. |
| Landing | 1101 | Company is configured to skip Landing page. |
| Landing | 1105 | /user/get-config API call made. |
| Landing | 1110 | User taps Privacy Policy link. |
| Landing | 1140 | Capture requirements include front. |
| Landing | 1141 | Capture requirements include back. |
| Landing | 1142 | Capture requirements include barcode. |
| Landing | 1143 | Capture requirements include selfie. |
| Landing | 1190 | User taps start button. |
| Landing | 1194 | In IPQS Tracker Initialization useEffect |
| Landing | 1195 | IPQS Tracker Initialized |
| Landing | 1196 | /submit/ipqs-trackerid API call made. |
| Landing | 1197 | Something went wrong initializing IPQS dependency. |
| Landing | 1198 | Exception caught logging IPQS initialization error. |
Capture guide codes
| Page | Status Event Code | Event Message |
|---|---|---|
| Capture Guide | 1201 | User lands on the pre-capture guide screen. |
| Capture Guide | 1202 | User advances from the guide to capture. |
| Capture Guide | 1203 | Guide auto-advanced after idle window. |
Capture front codes
| Page | Status Event Code | Event Message |
|---|---|---|
| Capture Front | 1200 | User navigates to front page. |
| Capture Front | 1205 | Capture component initializes. |
| Capture Front | 1206 | Capture component failed to initialize. |
| Capture Front / Capture Back | 1207 | Capture component camera permissions presented. |
| Capture Front / Capture Back | 1208 | Capture component camera permissions accepted. |
| Capture Front | 1210 | Image is captured. |
| Capture Front | 1213 | Manual capture mode entered on front. |
| Capture Front | 1215 | User taps retake image button. |
| Capture Front | 1220 | User taps use image button. |
| Capture Front | 1225 | /submit/front API call made. |
| Capture Front | 1226 | Front captured manually. |
| Capture Front | 1227 | Front captured automatically. |
| Capture Front | 1235 | Max retries reached on front capture. |
Capture back codes
| Page | Status Event Code | Event Message |
|---|---|---|
| Capture Back | 1300 | User navigates to back page. |
| Capture Back | 1305 | Capture component initializes. |
| Capture Back | 1306 | Capture component failed to initialize. |
| Capture Back | 1310 | Image is captured. |
| Capture Back | 1313 | Manual capture mode entered on back. |
| Capture Back | 1315 | User taps retake image button. |
| Capture Back | 1320 | User taps use image button. |
| Capture Back | 1325 | /submit/back API call made. |
| Capture Back | 1326 | Back captured manually. |
| Capture Back | 1327 | Back captured automatically. |
| Capture Back | 1335 | Max retries reached on back capture. |
Capture barcode codes
| Page | Status Event Code | Event Message |
|---|---|---|
| Capture Barcode | 1400 | User navigates to barcode page. |
| Capture Barcode | 1405 | Capture component initializes. |
| Capture Barcode | 1406 | Capture component failed to initialize. |
| Capture Barcode | 1410 | Barcode is captured. |
| Capture Barcode | 1425 | /submit/barcode API call made. |
Biometrics accept codes
| Page | Status Event Code | Event Message |
|---|---|---|
| Biometrics Accept | 1500 | User navigates to biometrics permission page. |
| Biometrics Accept | 1510 | User taps Biometric Policy link on biometrics permission page. |
| Biometrics Accept | 1515 | User checks box on biometrics permission page. |
| Biometrics Accept | 1520 | User taps Cancel button on biometrics permission page. |
| Biometrics Accept | 1525 | User taps Continue button on biometrics permission page. |
Capture selfie codes
| Page | Status Event Code | Event Message |
|---|---|---|
| Capture Selfie | 1615 | Selfie camera permissions presented. |
| Capture Selfie | 1620 | Selfie camera permissions accepted. |
| Capture Selfie | 1625 | /submit/selfie API call is made. |
| Capture Selfie | 1630 | Missing selfie URL generated from Start Selfie call. |
Network codes
| Page | Status Event Code | Event Message |
|---|---|---|
| Network | 1700 | Slow connection detected. |
| Network | 1701 | Slow connection notice shown. |
Complete codes
| Page | Status Event Code | Event Message |
|---|---|---|
| Complete | 1800 | User navigates to complete page. |
| Complete | 1805 | User navigates to supplied redirect URL. |
| Complete | 1810 | Something went wrong redirecting to the supplied redirect URL. |
| Complete | 1825 | Transaction ended - processing results. |
404, denied, and timeout codes
| Page | Status Event Code | Event Message |
|---|---|---|
| 404 | 1900 | User navigates to 404 page. |
| 404 | 1905 | User taps Go Back button. |
| Camera Access Denied | 1920 | User navigates to Capture Camera Access Denied page. |
| Camera Access Denied | 1925 | User taps Back to Capture button. |
| Camera Access Denied | 1930 | User navigates to Selfie Camera Access Denied page. |
| Camera Access Denied | 1935 | User taps Back to Selfie button. |
| Biometrics Denied | 1940 | User navigates to Biometrics denied page. |
| Biometrics Denied | 1945 | User taps Back to Biometrics button. |
| Timeout | 1990 | User navigates to Timeout page. |
| Timeout | 1995 | User navigates to supplied error redirect URL. |
| Timeout | 2000 | Something went wrong redirecting to supplied error redirect URL. |
Understanding the message field
For most events, message is a fixed description that matches the table above. A handful of events return extra detail, so treat message as free-form text rather than a string you can match against.
Some events return a dynamic string — a label followed by a value. 1001 and 1002 return the capture URL and the browser user-agent; 100 and 105 return the transaction type and 505 the document type.
Two groups of events return a JSON object.
The Capture Guide events 1202 and 1203 report how the user left the guide. Exactly one of the two is emitted.
1202— the user tapped the ready button.methodisbutton, anddwell_msis the time in milliseconds the user spent on the guide.1203— the guide advanced on its own after the idle timeout.methodisauto, anddwell_msis the configured timeout (typically 15 seconds returned as15000milliseconds).
The Capture Guide precedes the first capture. There is no back-side equivalent of 1201, 1202, or 1203.
The capture events report how the image was taken. The document is captured automatically when it is well-positioned and the image is clear; if automatic capture cannot complete, the user takes the photo with the capture button.
method—autowhen the image was captured automatically,manualwhen the user tapped the capture button.attempt_number— the capture attempt this event belongs to, starting at 1 and increasing with each retry.
An automatic front capture produces events like these:
1202 {"method":"button","dwell_ms":2640}
1210 {"method":"auto","attempt_number":1}
1227 {"method":"auto","attempt_number":1}
1220 User taps use image button
1225 /submit/front API call made
A front capture that falls back to manual produces:
1202 {"method":"button","dwell_ms":2763}
1213 {"attempt_number":1}
1210 {"method":"manual","attempt_number":1}
1226 {"method":"manual","attempt_number":1}
1225 /submit/front API call made
Exactly one of 1226 and 1227 is emitted per front capture, and one of 1326 and 1327 per back capture. The two paths also differ in confirmation: an automatic capture is followed by a confirmation screen, where accepting the image emits 1220 and choosing to retake emits 1215 and starts a new attempt. A manual capture is submitted immediately, with no confirmation screen and no 1220. 1213 is emitted only on the manual path.
The back-side capture events mirror the front, offset by 100: 1310 corresponds to 1210, 1326 to 1226, and so on. 1207 and 1208 are shared by both sides rather than mirrored.
For the capture events, message is the JSON object rather than the plain description shown in the table. Parse it as JSON instead of matching against the table text.
Updated 26 days ago

