Estimated reading time: 12-15 minutes
What's that? JAAK ID?
JAAK ID an Android application for a field operator to enroll KYC of several persons without internet connection. Reforms the flow of KYC and JAAKbut intended for brigades that work in areas with bad coverage: branches, rural communities, mass events or any care place where there isn't always a network.
The operator catches documents, home voucher, life and location of each person, everything's been saved encryption inside phone. When the computer retrieves connection, the app reproduces against the server the same check pipeline as the KYC online (OCR, document checks, monitoring lists, liveness and comparison 1:1) and once confirmed, erase device data irretrievably.
In integration. The capture of document and liveness detection uses SDK natives JAAK (Stamps and Visage); operator and device links are supported by service
jaak-operator-restas expressed by API Gateway. Both pieces are currently integrated with the app.
The problem that resolves
The KYC online needs connection at every step: server does the OCRThat's bad. JAAK ID resolves the connection cut by saving the evidence safely and differentiates the check until there's a network, without losing catch or blocking the operator.
How it works: the complete cycle
| Phase | Connection | What's up? |
|---|---|---|
| 1. Operator login | Required (once) | The operator enters with his or her user and the session lasts 7 days and resold while reconnecting. |
| 2. Linkage of the device | Required (once) | The equipment will be assigned to an undertaking by code or QR and all the engagements of the day go to your file. |
| 3. Field rolling | No connection | N persons are caught and each file will be put on the device with a single key. |
| 4. sync | Required | When recovering network, the app reproduces the pipeline with checkpoints per step. |
| 5. Purga | — | After confirming the server, the evidence will be destroyed from the phone and only the log remains without personal information. |
Operator's login
The operator will be authenticated once with a connection. The session will last seven days and will be re-valid only if there's a network available, so that the rest of the day works without a connection. The screen shows the company to which the device is linked and offers biometric unlock for the following openings.

Linkage of device to an undertaking
Before operating, the device is linked to a company. This is done once, with a connection. There are two options: scan the QR code generated by the administrator from JAAK Console (expires after 15 minutes) or type the company code in the format XXXX-XXXX. Once the company is recognized, the associated watchlists (OFAC, SAT, RENAPO, INE, Interpol) are displayed before you confirm.

The tail of enlargements
It's the main screen of the day. It shows the operator, the brigade, the remaining session days and three metrics: caught today, by synchronization and those that require review. device encryption and mode without connection. Each file appears with its legible folio (for example ENR-0001) and his status.

Capture of document
The capture uses SDK document detection with real time guide: framing, document detection and light conditions. The operator captures face and back and the dark background and progress ring indicates progress. The whole framing processing is local.

Data monitoring
Following the capture, a OCR local (ML Kit, on device) temporarily fills the document fields - name, CURP, Elector key, date of birth and address - for the operator to confirm them against the physical document. That reading is local and by synchronization, the server reremoves the data and both versions are compared.

Review and save
Before closing the encoding, the app sums up the captured pieces (front, back, tester, liveness detection) and the GPS location. When saving, everything is figure with a unique key for that person and remains waiting for synchronization.

Confirmation
Each closed encoding receives a legible folio and is encrypted onto the device, ready to be sent after sign. The operator can continue with the next person without interruption.

Security: what protects and how
JAAK ID's built for that Unlegible get out of the phone until it goes down against the server JAAK.
| Mechanism | What for? |
|---|---|
| AES-256-GCM by enrollment | Each person figure with his own data key (DEK). |
| SQLCypher | The local database (status, data, checkpoints) will be encrypted and the passphrase will be protected with the Android Keylight. |
| Cryptographic purga | When confirming the server, the encoding key is destroyed: evidence becomes irretrievable. |
| Establishment Ed25519 | Signed offline license enabling SDK without connection, locally verified by the app. |
| Bitter without pII | Following purge only an audit record with folio, hour, operator and result remains. |
sync with checkpoints
When there's a network, the app reproduces the check pipeline by encoding: OCR server, document check, monitoring lists, liveness detection, comparison 1:1 and closure. Each step is marked with a CheckpointIf the connection is cut to half, the synchronization will resume at the last confirmed step without repeating what has been sent. The enlargements that the server rejects (for example a 1:1 comparison under the threshold) move to a review plate with the motif and actions available.
Support for tablets and guidance
The interface is adapted to phone and tablet, at vertical and horizontal. On tablets the flow is reorganized into a permanent side panel with a tail and a main capture panel, using space without stretching the contents.

Following
- A reference to API of JAAK ID: endpoints of operator session, device link and entings.
- Document Verify, Liveness, BlackLists and OTO: products that make up the monitoring pipeline that JAAK Id reacts at sync.