A report passes through six stages from vehicle intake to the seal
Below you can see, for every stage, who does what, where each piece of data comes from and whose approval seals the report.
Every stage has a named owner and a clear output
The stages run in the Ekspertiz centre's panel. The owner, input and output of each stage are listed below.
- 01
Intake
Branch staff
The vehicle arrives at the centre and a work order is opened with the VIN, plate and odometer. The report is attached to that work order.
- Input
- VIN, plate and odometer
- Output
- Work order
- 02
Assignment
Branch manager
The branch manager assigns the work order to a technician. The job appears in that technician's own work list.
- Input
- Work order and an available technician
- Output
- A new job in the technician's list
- 03
Measurement
Technician
The technician fills in the package's modules and attaches photos to the module they belong to. When done, the technician sends the report to quality control.
- Input
- The vehicle and the modules in the package
- Output
- Completed modules and photos
- 04
Quality control
Branch manager
The manager reviews the modules. Anything missing or inconsistent sends the report back to the technician to fix.
- Input
- A report waiting for quality control
- Output
- Approval, or a return to the technician
- 05
Sealing
Branch manager
When the manager approves, the report is signed and linked to the previous report on the same car. From then on it cannot be edited.
- Input
- Approved report
- Output
- Sealed report
- 06
Publication
System
A QR code is generated for the report. A buyer can verify it by report number or QR code without an account.
- Input
- Sealed report
- Output
- QR code and verification address
An Ekspertiz report is filled in module by module
The package the centre chooses decides which modules the report contains. Photos are attached to their module and stored with the report.
| Module | Code |
|---|---|
| Body and paint | body_paint |
| Paint thickness measurement | paint_thickness |
| Engine mechanics | mechanical |
| Engine performance | engine_dyno |
| Brake test | brake |
| Suspension | suspension |
| Side slip | lateral_slip |
| OBD electronics | electronic_obd |
| Tyres and brake pads | tire_wheel |
| Underbody check | undercarriage |
| Road test | road_test |
| Interior check | interior |
| Exterior check | exterior |
| Gasket test | gasket |
| Airbag check | airbag |
After sealing, any change to the report shows up in verification
When the manager approves, the report is signed and linked to the previous report on the same car. If even one field changes after sealing, verification shows the report as altered.
The signing key stays on OtoTasdik's server. Its public half is published, so anyone can check a signature themselves.
Technical verification details
The report's content is turned into JSON with sorted keys. That text is joined with the previous report's digest on the same VIN and the sealing time, then hashed with SHA-256. The digest is signed with Ed25519. The work order behind a Service Statement is signed with the same key, using its own formula.
1. Ekspertiz report: digest
report_hash = sha256(canonical_json(report) + previous_hash + finalized_at) // previous_hash: digest of the latest report on the same VIN2. Ekspertiz report: signature
signature = ed25519_sign(key, report_hash) // a 64-byte signature, checked with the published public key3. Service Statement: content digest
content_hash = sha256(canonical_json(work_order)) // the work order's canonical form, keys sorted4. Service Statement: chained signature
signature = ed25519_sign(key, "v2|" + content_hash + "|" + previous_hash + "|" + chain_index + "|" + chain_epoch + "|" + signed_at_unix) // previous_hash: digest of the previous record on the same VIN, GENESIS for the first5. Verification
valid = recomputed_hash == stored_hash && ed25519_verify(public_key, signed_bytes, signature) // the server recomputes the digest and checks the signature
Which data is kept where?
Records are stored in the EU, in AWS's Frankfurt region (eu-central-1). The legal basis for transfers abroad is set out in the privacy notice.
| Data | Location |
|---|---|
| Reports and work orders | Frankfurt, EU |
| Photos and PDF files | Frankfurt, EU |
| Signing key | OtoTasdik's server in Frankfurt; the public half is published |
| Photos for the document scan | Only with explicit consent, Google Gemini (Google LLC, USA) |
Let us answer your technical team's questions together
For Ekspertiz centres the panel opens as an invitation-only pilot. For questions about security or integration, you can arrange a call.