Record the SIM and subscriber
Record the MSISDN and the required customer particulars. For a South African citizen or permanent resident, this includes full names, surname, ID number and at least one address.
Telecommunications and RICA
Record the subscriber and SIM, verify identity and address, secure the record, then activate. Use VerifyNow for the SA ID and address cross-check, with Face Match as an optional step-up.

Scope
Section 40 requires the provider to record the SIM’s MSISDN and the prescribed subscriber details, verify identity and address from the required documents, keep the process and records secure, and complete that work before activation.
Basic SA ID and Consumer Trace Lite support the identity and address checks. They do not replace the identification document or address evidence required by the Act.
Face Match is an optional additional control for remote or higher-risk registrations. It is not listed as a current Section 40 requirement.
Required RICA process
This is the core Section 40 sequence for a South African citizen or permanent-resident registration.
Record the MSISDN and the required customer particulars. For a South African citizen or permanent resident, this includes full names, surname, ID number and at least one address.
Verify the person’s details and identity from an identification document. Verify the address from the supporting documents allowed by Section 40.
Store the registration information and process securely, with access limited to people specifically designated by the provider.
Do not activate the SIM before the required information has been recorded and verified. Keep the prescribed records for five years after the service ends.
Foreign-national and juristic-person registrations require additional particulars and evidence. If an identification document appears false, Section 40 also requires the employee or agent to report the suspicion to SAPS within 24 hours. Read Section 40 of the Act.
Where VerifyNow fits
The API results sit inside the operator’s RICA process. They are not the complete registration record.
Use Basic SA ID and Consumer Trace Lite as supporting checks in the normal South African customer journey.
Decision
These API results support the process. The operator must still verify the identification document and Section 40 address evidence, record the MSISDN and retain the required RICA record.
Add a selfie check when the registration channel or your risk rules require stronger identity binding.
Decision
Face Match is an additional control. It is not listed as a Section 40 requirement and does not replace identity-document or address verification.
Keep the legal and risk controls separate
Consumer Trace Lite cross-checks recorded address data; your process still verifies the Section 40 address evidence. Face Match is a separate optional step-up for a defined event, such as remote self-registration, a mismatch or a risk flag.
Run Basic SA ID and Consumer Trace Lite from your server. Run Face Match only when the step-up condition is true.
POST to /api/external/verify with said_verification.
POST the ID number to /api/external/consumer-trace-lite and compare its recorded address fields with the required address evidence.
POST the selfie and ID number to /api/external/facematch. Accepted selfie types are JPG/JPEG, PNG, WEBP and TIFF, up to 5 MB.
Read the result, compare it with the registration documents and route exceptions to review. Give each call its own idempotency key. Do not activate until the complete RICA process passes.
Server-side JavaScript example
const API_BASE = 'https://www.verifynow.co.za/api/external';
async function callVerifyNow(path, body, idempotencyKey) {
const response = await fetch(`${API_BASE}${path}`, {
method: 'POST',
headers: {
'x-api-key': process.env.VERIFYNOW_API_KEY,
'Content-Type': 'application/json',
'Idempotency-Key': idempotencyKey,
},
body: JSON.stringify(body),
});
const data = await response.json();
if (!response.ok) throw new Error(data.error || 'Verification failed');
return data;
}
export async function verifyRicaCustomer(input) {
const identity = await callVerifyNow(
'/verify',
{
reportType: 'said_verification',
idNumber: input.idNumber,
mode: 'production',
},
`${input.customerReference}:identity`
);
const address = await callVerifyNow(
'/consumer-trace-lite',
{
idNumber: input.idNumber,
mode: 'production',
},
`${input.customerReference}:address`
);
const face = input.stepUp === true && input.selfieBase64
? await callVerifyNow(
'/facematch',
{
bundle: 'facematch',
mode: 'production',
selfie_image_base64: input.selfieBase64,
id_number: input.idNumber,
},
`${input.customerReference}:face`
)
: null;
return { identity, address, face };
}Integration options
Keep your current screens and call VerifyNow from your backend when the customer submits the registration.
Plan the API integrationLet an agent collect the required evidence, run the identity check and handle exceptions in the same customer record.
Create a VerifyNow accountUse a branded customer journey when you need VerifyNow capability to appear inside your own service.
See white-label onboardingRelated verification services
Run Basic SA ID verification and return the core identity fields without a photo.
Learn moreReturn recorded address and contact fields for the address cross-check in your registration process.
Learn moreCompare a customer selfie with the Home Affairs identity photo for remote onboarding.
Learn moreExtract and assess document data when your process accepts uploaded identity documents.
Learn moreReview authentication, idempotency, request bodies, responses and error handling.
Learn moreFor a broader legal overview, read our guide to RICA in South Africa.
Current compliance context
In March 2026, the Department of Justice highlighted unregistered SIMs and registrations with incorrect or unverifiable information, and pointed to real-time identity verification as part of stronger controls.
Questions
Basic SA ID and Consumer Trace Lite supply supporting identity and address data for the full RICA registration. The operator or registration-agent process then records the SIM and subscriber details, verifies the Section 40 identification document and address evidence, stores the record securely and controls activation.
Yes. Your frontend keeps its current registration experience. Your server sends the identity request to VerifyNow, reads the result, applies your rules and stores the request reference with the customer record.
Keep the API key on your server. The browser sends customer data to your backend, and your backend makes the VerifyNow request. The API key should not be used in the browser.
Add Face Match when a remote channel, a mismatch or another defined risk rule requires stronger identity binding. Face Match is not listed as a Section 40 requirement for every customer.
Treat it as an address cross-check, not an automatic substitute. Section 40 requires the address to be verified from supporting documentation. Your legal and compliance team should approve the evidence used in your registration process.
Face Match compares a customer selfie with a supported reference photo. Passive Liveness is a separate signal that assesses whether the submitted face image appears to show a real, present person. Use the two results together when the workflow needs identity binding and liveness evidence.
Hold activation, show a clear customer message and route the registration to a trained reviewer or the existing exception process. Keep the mismatch result visible in the audit record.
Bring your existing customer journey. We will help you place the identity checks, review points and API calls.