CHANGELOG

What shipped

  1. NEWICAO-generic document coverage

    Added the TD2 format and country-independent document profiles; the engine now handles any ICAO 9303 compliant document through one path.

  2. NEWModule catalogue and per-module pricing

    Every verification module is priced separately and billed only when it actually runs. Per-customer pricing and module switch-off landed with it.

  3. IMPROVEDIssuing country detected from the MRZ

    The document's issuing country is read from the MRZ and checks are adapted to it — scoring against the wrong country profile is gone.

  4. FIXEDGhana Card support and an MRZ check-digit fix

    Added the gh_id_card profile. Fixed the root cause in check-digit computation: the input was corrected rather than the symptom patched.

  5. IMPROVEDMRZ name repair in the passport engine

    Garbled name fields are repaired from the MRZ; date, label and frame checks plus a hard specimen rule were added.

  6. NEWSandbox / production separation

    Test data is now fully separated from real production data via the environment field, and a go-live lifecycle was defined for tenants.

  7. NEWNFC chip reading on Flutter and React Native

    dmrtd was vendored on the Flutter side and a pure-TS BAC/Secure Messaging implementation written for React Native. DG11 and DG12 are read too.

  8. NEWOngoing AML monitoring, reusable KYC and PEP

    Re-screening as lists update, skipping every module on a returning person's second verification, and PEP list support.

  9. FIXEDFalse-rejection rate cut on the ID module

    Against a test set built from real documents, false rejections dropped from 47% to 5.5% — the problem was the measurement, not the thresholds.

  10. NEWML anti-spoofing and biometric face matching

    Passive liveness via a MiniFASNet ensemble, face matching on ArcFace embeddings, and duplicate-face detection over pgvector went live.

BLOG

Notes on verification

  • ENGINEERING · 8 MINPassive authentication: the check forgers can't beatWhy the SOD signature on the chip is stronger evidence than every visual check combined.
  • COMPLIANCE · 6 MINWhy a match is not an automatic rejectionA name resembling a sanctions entry does not make it the same person. The cost, and the case, for keeping a human in the loop.
  • ENGINEERING · 5 MINYou cannot lower a false-rejection rate you never measuredFixing the measurement instead of nudging thresholds: the story of a test set built from real documents.