Recruitment & HR

South African ID validation for HR & recruitment

Stop mistyped ID numbers from reaching payroll, contracts, and access cards. CheckID checks structure and checksum in under a second. Continue with the screening your role requires.

Check one candidate ID free. No account required.

Where it fits in hiring

  1. Job application captures a 13-digit SA ID number
  2. CheckID checks the checksum, date and citizenship digit
  3. Invalid → candidate corrects it before onboarding
  4. Valid → continue to background or other checks if required
  5. Clean number reaches payroll / HRIS

Catch errors before payroll

Payroll and tax file rejections

A transposed digit in a new-hire file can stall SARS submissions, medical-aid capture, and first-pay runs. CheckID flags impossible dates and failed checksums before HR operations spend hours chasing the candidate.

Duplicate ATS records

Recruiters paste IDs from CVs, WhatsApp, and application forms. Invalid numbers create duplicate people records that never merge cleanly with your HRIS.

Wasted screening spend

Sending an invalid ID to a background-check or qualification vendor wastes budget. Filter format failures first, then pay for deeper checks only on valid numbers.

Two ways HR teams validate IDs

Use the web checker for one-off offer packs. Connect the API to reject invalid numbers inside the ATS.

Validate IDs inside an ATS

Call the REST endpoint when a candidate submits an application. If the number fails checksum or date rules, ask them to correct it before creating the employee file.
Start with the South African ID validation API. API Starter covers single production calls; bulk ATS imports need Professional.

Batch-check candidate spreadsheets

Agencies and high-volume TA teams often receive CSV lists from job boards. Professional includes bulk API and web bulk validation so you can clean a list before it hits screening vendors.
See Bulk ID validation for recruitment teams and Bulk South African ID validation. R99 API Starter does not include bulk.

POPIA considerations for candidate IDs

Minimise what you collect during applications

An application form often only needs to know whether the ID number is valid before you store a people record. Prefer validating at the point of capture over emailing ID-book scans to a shared inbox.

ID retention in your HRIS

CheckID does not keep the candidate number. If you retain IDs for payroll, SARS, or employment equity reporting, that is your lawful-purpose and retention decision. Read POPIA and ID number handling.

What CheckID does not replace in HR

  • Smart-card authenticity checks or proof that the candidate holds the ID
  • Criminal, credit, or qualification background checks. See What a background check is — and is not
  • Right-to-work, visa, or immigration status reviews
  • Reference checks, psychometric tests, or interview scoring

Hiring use cases

Corporate HR operations

Validate IDs on offer acceptance so payroll, medical aid, and access-card forms start with a number that can actually pass checksum rules.

Recruitment agencies

Clean inbound CV lists before submitting candidates to clients. Professional bulk keeps agency volume off one-by-one web checks.

Graduate and volume hiring

Assessment-centre days produce hundreds of forms. Reject invalid IDs at registration instead of discovering them when contracts go out.

Need to confirm who an ID number belongs to?

Check an ID number and name against Home Affairs records for R39.90. For applicant, tenant and customer checks. A match emails you the details as a PDF, and you get a full refund if the name does not match.

Verify with Home Affairs

Checking a company, not a person?

Look up a South African company by registration number against CIPC records, for R299. For supplier, tenant and counterparty checks. You get a PDF by email and a full refund if the company is not on the register.

Check a company

API example

Example: validate a candidate ID from your ATS

After a candidate submits a 13-digit ID, your ATS can call the single-ID endpoint, then create the application only if isValid is true.

8001015009087 is the public sample ID used across CheckID docs, not a live customer number. Replace YOUR_API_KEY with a key from your dashboard. See the South African ID validation API and 5-minute South African ID validation API tutorial.

# ATS webhook after a candidate submits an ID number
curl -s "https://api.checkid.co.za/api/v1/validate/8001015009087" \
  -H "Authorization: Bearer YOUR_API_KEY"

Pricing for recruitment and HR teams

Free checker for offer-pack spot checks. API Starter from R99/month for live ATS calls. Professional for bulk lists and team seats. Compare plans on CheckID pricing for API and bulk plans.

Frequently asked questions

Does CheckID confirm that a candidate is who they say they are?

Not the free validator. It checks a South African ID number and decodes date of birth, age, gender, and citizenship indicator, but does not query Home Affairs or replace background checks, qualification checks, or right-to-work reviews. A paid Home Affairs ID Verification (R39.90) shows whether the candidate's name matches the Home Affairs record for that ID number. It does not prove the person in front of you holds the ID.

Can we batch-check a candidate spreadsheet?

Yes, on Professional. API Starter (R99/month) is for up to 1,000 single production calls. Spreadsheet and bulk API imports are a Professional (or Business) workflow, not part of API Starter.

Does CheckID store candidate ID numbers?

No. ID numbers are processed in memory and discarded after the response is returned. What you keep in your ATS, HRIS, or payroll file remains your organisation’s POPIA responsibility.

Can we validate IDs inside our ATS?

Yes. Call the REST API when a candidate submits an application, then block or flag invalid numbers before the record is created. See the South African ID validation API developer guide.

Keep invalid IDs out of payroll

Check one number free, then automate the same check in your ATS.