Telecommunications and RICA

A simple RICA process, mapped to Section 40.

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.

South African mobile customer completing a SIM registration with a telecom service agent

Scope

The law comes first

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

Collect, verify, store, then activate.

This is the core Section 40 sequence for a South African citizen or permanent-resident registration.

01

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.

02

Verify identity and address

Verify the person’s details and identity from an identification document. Verify the address from the supporting documents allowed by Section 40.

03

Secure the RICA record

Store the registration information and process securely, with access limited to people specifically designated by the provider.

04

Activate only when complete

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

Basic checks, then an optional step-up.

The API results sit inside the operator’s RICA process. They are not the complete registration record.

Basic

SA ID + address cross-check

Use Basic SA ID and Consumer Trace Lite as supporting checks in the normal South African customer journey.

  1. 1Capture the identification document, ID number and required address evidence.
  2. 2Run Basic SA ID to return the core identity fields.
  3. 3Use Consumer Trace Lite to cross-check the recorded address, then compare both results with the RICA record.

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.

Optional step-up

Basic SA ID + Face Match

Add a selfie check when the registration channel or your risk rules require stronger identity binding.

  1. 1Run the Basic SA ID check first.
  2. 2Ask the customer for a JPG/JPEG, PNG, WEBP or TIFF selfie up to 5 MB only when the step-up rule fires.
  3. 3Compare the selfie with the supported Home Affairs reference photo.

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.

Two Basic calls, one optional step-up

Run Basic SA ID and Consumer Trace Lite from your server. Run Face Match only when the step-up condition is true.

Basic: verify the SA ID

POST to /api/external/verify with said_verification.

Basic: cross-check the address

POST the ID number to /api/external/consumer-trace-lite and compare its recorded address fields with the required address evidence.

Step-up: add Face Match

POST the selfie and ID number to /api/external/facematch. Accepted selfie types are JPG/JPEG, PNG, WEBP and TIFF, up to 5 MB.

Apply your own activation rules

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

Use the channel your customers already know

Your website or app

Keep your current screens and call VerifyNow from your backend when the customer submits the registration.

Plan the API integration

Assisted registration

Let an agent collect the required evidence, run the identity check and handle exceptions in the same customer record.

Create a VerifyNow account

White-label onboarding

Use a branded customer journey when you need VerifyNow capability to appear inside your own service.

See white-label onboarding

Current compliance context

Accurate, verifiable SIM registration remains under scrutiny

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

What teams ask before integration

How does VerifyNow support a full RICA registration?

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.

Can this fit into our existing website or app?

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.

Where should the API key be stored?

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.

When should Face Match be added?

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.

Can Consumer Trace Lite replace proof of address?

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.

How do Face Match and Passive Liveness differ?

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.

What happens when the identity result does not match?

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.

Map verification into your current RICA process

Bring your existing customer journey. We will help you place the identity checks, review points and API calls.