What Sierrafy does and does not do
Read this before building on Sierrafy. It is the difference between a check that means something and one that does not.
It does not contact NCRA
Phase 1 is entirely offline. Nothing in this SDK queries the national registry, so it cannot tell you that a NIN is registered, active, or belongs to anyone.
A valid: true result means the string is shaped like a NIN. A well-formed NIN
that was never issued still returns valid: true, because structural validity is
all that is being measured.
Live registry lookup is Phase 2, and it depends on a partnership with NCRA. When it arrives it will be a hand-off to NCRA's own service, not a copy of their data.
NCRA remains the authority. Sierrafy is the developer layer that sits above it.
What that means for your product
Use the format check to reject typos before they cost you anything, such as before an upload, a manual review, or a paid lookup. Do not use it as proof of identity on its own.
If you need certainty that a person is who they claim to be, Phase 1 gets you part of the way: the document is well formed, the data on it is internally consistent, and in later milestones the face matches and the chip is cryptographically sound. Registry confirmation is a separate question, and today it needs NCRA directly.
The format is an inference
The NIN format was derived from real eID cards, not from NCRA documentation. The exact character set and whether a checksum exists are unconfirmed. See Configuring the format for how to correct it yourself if you have better information, and please open an issue if you do.
Privacy
No biometric data is persisted anywhere, by design rather than by configuration. Face images and embeddings are processed in memory and discarded once a score is produced. There is no telemetry, and the default OCR engine sends no identity data anywhere: it recognises locally.
The one exception is opt-in and explicit: setting OCR_ENGINE=google-vision
sends card images to Google Cloud Vision. That is the only path that carries
identity data off the machine.
The default engine does make one non-identity network call, once, to fetch the Tesseract language model, which is not bundled in the package. It carries no personal data, and Staying offline covers the one-time setup that removes it so OCR runs air-gapped.
Privacy is the full statement: every field the SDK touches, what it never stores, the laws it is designed to align with, and the obligations that come with integrating it. Responsible use covers what a result means for the person on the other side of it, including exclusion and error rates.
Not an NCRA product
Sierrafy is an independent open-source project. It is not affiliated with, endorsed by, or operated by NCRA.