Telecommunications and RICA

RICA customer verification that fits your current sign-up flow

Verify South African customer identities from your website, app or assisted sales process before SIM activation.

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

Scope

Identity evidence for your RICA process

VerifyNow checks a South African ID against Home Affairs and can compare a live selfie with the official identity photo. The result gives your system a clear verification reference to use in its decision.

RICA registration covers more than identity. Your business still controls the required address evidence, SIM details, privacy notices, record keeping, exception handling and activation rules.

Example customer flow

Keep your current journey. Add verification at the decision point.

The customer stays in your channel. VerifyNow runs behind your server, and your team keeps control of activation.

Customer

Choose a SIM or service

The customer starts on your website, app, contact centre or assisted retail channel.

Your channel

Collect the registration record

Capture the required customer details, address evidence and privacy notice or consent record.

VerifyNow

Verify the identity

Your server checks the South African ID against Home Affairs and can add face match for remote onboarding.

Your rules

Approve or review

Compare the result with the submitted registration record. Route mismatches or unsupported evidence to a person.

Your system

Store and activate

Keep the verification reference with the SIM record and activate only when your controls are satisfied.

What changes in your existing process?

Your frontend adds the fields and evidence your RICA policy requires. Your backend adds one identity request, an optional face-match request and a review path for mismatches.

The API flow

Make calls from your server. Use a unique idempotency key for each check and reuse it when retrying that same check.

Verify the ID

POST to /api/external/verify with home_affairs_id_photo.

Add face match when needed

POST the selfie and ID number to /api/external/facematch.

Apply your own activation rules

Read the result, compare it with the registration record and route exceptions to review.

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: 'home_affairs_id_photo',
      idNumber: input.idNumber,
      mode: 'production',
    },
    `${input.customerReference}:identity`
  );

  const face = input.selfieBase64
    ? await callVerifyNow(
        '/facematch',
        {
          bundle: 'facematch',
          mode: 'production',
          selfie_image_base64: input.selfieBase64,
          id_number: input.idNumber,
        },
        `${input.customerReference}:face`
      )
    : null;

  return { identity, 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

Does VerifyNow complete the full RICA registration?

No. VerifyNow supplies identity-verification evidence. Your operator or registration-agent process still controls the required customer and address information, SIM details, record retention, exception handling and activation decision.

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.

Should the API key be used in the browser?

No. Keep the API key on your server. The browser sends customer data to your backend, and your backend makes the VerifyNow request.

Is face match required for every customer?

That depends on your channel, policy and legal advice. It is useful for remote onboarding when you need to bind the person holding the phone to the Home Affairs identity photo. Assisted channels may use different controls.

What happens when the identity result does not match?

Do not invent a pass result. Hold activation, show a clear customer message and route the registration to a trained reviewer or your existing exception process.

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.