Availability
NIN appears as KYC → NIN only when the active license includes the KYC Module and NIN Sub-module. Execution additionally requires a supported NIN service in the installed OneView version and an active vendor connection.
OneView supports these Prembly NIN services when they are available to the installation:
| Service | Version | Verification field |
|---|---|---|
| NIN Basic | 1.0.0 | number |
| NIN Advanced | 1.0.0 | number_nin |
A service appears only when the installed version includes it, it has been published for the installation, and the license includes KYC with the NIN Sub-module. An older installation may need a software update and license refresh before a newly released service appears.
Before integration
- Confirm the installed OneView release lists the required Prembly → NIN Basic or Prembly → NIN Advanced service.
- Obtain the Prembly API secret key through the client's approved provider account and secret-management process.
- Create a Prembly NIN sandbox connection and enter the value in Prembly API Secret Key.
- Make the connection preferred for the sandbox environment.
- Run only Prembly-approved test data while validating the integration.
- Configure a preferred production connection only after provider approval and outbound access to
api.prembly.com.
Saving a connection checks that the required details were supplied. It does not prove that the Prembly account, provider permissions, balance, or outbound network path are ready for a live verification.
Run a verification from the dashboard
- Open KYC → NIN. Its canonical dashboard address is
/app/kyc/nin. - Select New Verification.
- Choose an active Prembly NIN Basic or NIN Advanced connection.
- Optionally enter a safe operational purpose.
- Enter the required 11-digit NIN value.
- Select Run verification and review the normalized result in the same drawer.
Review a stored NIN result
verifications:read provides metadata-only history. A reviewer also needs verifications:results:read, shown as
View verification results, before the table can reveal result-derived fields or open Verification details.
The result-focused NIN table shows the available normalized name, date of birth, gender, state of origin, and suspension status. A supported Smile ID comparison may also show its match outcome and reason. The exact values depend on the selected released provider service; unavailable fields display a placeholder.
Select a row to open the result first and review all available safe normalized fields as labelled values. Use Request for the safe request context. The table preview excludes photos, submitted NIN values, contact details, addresses, and raw provider fields.
OneView records authorised result previews and detail views per verification and records denied attempts. Activity events never contain the result, NIN, identity fields, or other result contents. See Verification history.
Prembly NIN Basic API request
Use the connection ID shown on the NIN Basic connection:
POST /api/verifications/nin
Authorization: Bearer <oneview-service-account-api-key>
Idempotency-Key: customer-check:00000001
Content-Type: application/json
{
"connectionId": "<prembly-nin-basic-connection-id>",
"data": {
"number": "<11-digit-nin>"
}
}
data.number is required and must be a string containing exactly 11 numeric characters.
Prembly NIN Advanced API request
Use the connection ID shown on the NIN Advanced connection:
POST /api/verifications/nin
Authorization: Bearer <oneview-service-account-api-key>
Idempotency-Key: customer-check:00000002
Content-Type: application/json
{
"connectionId": "<prembly-nin-advanced-connection-id>",
"data": {
"number_nin": "<11-digit-nin>"
}
}
data.number_nin is required and must be a string containing exactly 11 numeric characters. Use the exact field name
shown above; NIN Basic and NIN Advanced have different request-field names.
The examples include the optional Idempotency-Key because it is recommended for network retry safety. Omitting it
always creates a fresh Prembly request. Purpose is optional. When required by the client's process, add a safe value
such as "purpose": "Approved customer onboarding identity check".
Both services return a synchronous OneView verification response:
{
"status": true,
"message": "Verification completed",
"data": {
"verification": {
"id": "<verification-id>",
"moduleKey": "kyc",
"subModuleKey": "nin",
"status": "verified",
"result": {
"<normalized-field>": "<provider-approved-synthetic-value>"
},
"createdAt": "<iso-8601-timestamp>",
"completedAt": "<iso-8601-timestamp>"
}
}
}
Exact normalized fields depend on the selected released service. Do not build client logic around undocumented provider fields. A provider response that OneView cannot safely interpret is returned as a safe verification failure; do not assume a particular suspended-NIN response shape until it appears in the released OneView service contract.
Sensitive data
Never include a NIN value in URLs, browser analytics, application logs, idempotency keys, or support bundles. Access to
stored NIN result previews and verification details requires verifications:results:read, shown as View
verification results in the Roles interface. Metadata-only history remains available with verifications:read.
Send the NIN as a quoted JSON string so leading zeroes are preserved. Do not place it in purpose text.
See Synchronous API for authentication, idempotency, safe errors, and response handling.