Recursos Humanos

Background checks for Human Resources

Singula matches the candidate against RENAPO, the SAT and the INE's Lista Nominal. Court records, sanctions lists and digital footprint are added to the same file, with a log of every query.

6
candidate fields matched one by one against RENAPO
10
INE deregistration reasons the Lista Nominal check tells apart
9
sanctions and PEP categories covered by each search
24 h
validity of the biometric verification link
Candidate file

The candidate file is matched field by field against the official source

CURP validation compares six fields against RENAPO. The Lista Nominal returns the credential status and its removal cause. Judicial bulletins come back with court, state and parties. Every query keeps its receipt and its date.

The court search returns files published in judicial bulletins; it is not a criminal-record certificate and does not replace one.

Where it fits in your operation

Background checks before the offer letter goes out
Onboarding: CURP and RFC for the employment contract
Remote hiring: identity without an office visit
Trusted roles: cash handling, keys and access
Vendor and corporate-entity due diligence
Periodic re-screening of active staff

The products behind this solution

CURP and RFC

RENAPO returns the CURP record; the SAT, the RFC standing. Six candidate fields are matched one by one.

INE — Lista Nominal

Front and back OCR, plus a verdict: active, deregistered, duplicate or stolen.

Court records

Docket, court, state and whether the person appears as plaintiff or defendant.

Sanctions and PEP

Nine categories per search, all from public sources, with homonym disambiguation by country.

Identity verification

24-hour link: document, selfie, liveness proof and a face match against the document photo.

Digital footprint

Open sources: news, public profiles and the career history they claim.

How it works

The candidate file is built in four steps, on the same account.

Step 1

Capture consent

The privacy notice and the candidate's acceptance are collected on your side. Singula keeps the log: what was queried, on whom and when.

receipt and date per query

Step 2

Read the ID card

Front and back of the INE. We OCR the fields and query the Lista Nominal, the registry of active credentials.

active · deregistered · duplicate or stolen

Step 3

Cross-check RENAPO and SAT

The CURP comes back with a field-by-field match: given names, surnames, date of birth and sex. The RFC comes back with the SAT's literal wording.

six fields matched

Step 4

Close the file

Sanctions, PEP and court records. The risk engine folds every signal into a 0-100 score and flags the queries that have not run.

one score per file

LFPDPPP + Labour law

What the LFPDPPP and the labour law require before screening.

Candidate screening in Mexico is governed by two laws. The LFPDPPP requires a privacy notice and consent before personal data is processed. The Federal Labour Law forbids using the result to discriminate.

Personal data
LFPDPPP · DOF 20-03-2025
Non-discrimination
LFT / Art. 133
Contract contents
LFT / Art. 25
False credentials
LFT / Art. 47 fr. I

Reference material, not legal advice. Personal-data processing by private parties is governed by the Ley Federal de Protección de Datos Personales en Posesión de los Particulares published in the DOF on 20 March 2025, which repealed the 2010 law; the cited articles belong to the Federal Labour Law. The party answerable to the authority is the employer; have your privacy notice and consent form reviewed by your own legal team.

  1. 01

    Consent before the first query

    The privacy notice states which sources are queried and for what purpose. Biometric data counts as sensitive personal data; the LFPDPPP requires express written consent to process it.

  2. 02

    Non-discrimination in hiring

    Article 133 of the LFT forbids denying employment on grounds of ethnic or national origin, gender, age, disability, social condition, health, religion, opinions, sexual preference or marital status. The verification result feeds a documented decision by the employer.

  3. 03

    We do not return criminal records

    We query court records published in judicial bulletins: docket number, court, state, category and the role the person plays in the case. Criminal-record certificates are issued by the state authority.

  4. 04

    CURP and RFC belong in the contract

    Article 25 of the Federal Labour Law requires the worker's CURP and RFC in the individual employment contract. Validation against RENAPO and the SAT confirms both records before signing.

API REST

One file per candidate, several sources.

The candidate is created once and every query runs on that file. Synchronous tools answer in the same call; asynchronous ones notify through a signed webhook when they finish.

Free test environment, with sample data
Signed webhook for every asynchronous query
No mandatory SDK: any language that speaks HTTP works
background-check.sh
# 1 · Create the candidate file
curl -X POST https://api.singula.mx/customer \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
        "type":              "physical",
        "name":              "MARIA FERNANDA",
        "last_name":         "GARCIA",
        "mothers_last_name": "HERNANDEZ",
        "gender":            "M",
        "birth_day":         "15",
        "birth_month":       "03",
        "birth_year":        "1990",
        "birth_place":       "DF",
        "env":               "production"
      }'

→ { "id": "cus_lzk9m4ab3f" }


# 2 · CURP against RENAPO — synchronous, field by field
curl https://api.singula.mx/app/curp/customer/cus_lzk9m4ab3f/validate \
  -H "Authorization: Bearer sk_live_..."

→ {
    "data": {
      "persona": {
        "curp":            "GAHM900315MDFRRR05",
        "nombres":         "MARIA FERNANDA",
        "primerApellido":  "GARCIA",
        "segundoApellido": "HERNANDEZ",
        "fechaNacimiento": "15/03/1990",
        "statusCurp":      "RCN"
      },
      "match": {
        "confidence": "high",
        "passed":     true,
        "fields": {
          "name":              { "match": true },
          "last_name":         { "match": true },
          "mothers_last_name": { "match": true },
          "date_of_birth":     { "match": true },
          "gender":            { "match": true }
        }
      }
    },
    "request_id": "6821f0c4a9e13b0042d7c918"
  }


# 3 · INE: OCR + Lista Nominal — asynchronous
curl -X POST https://api.singula.mx/app/ine-extraction/customer/cus_lzk9m4ab3f \
  -H "Authorization: Bearer sk_live_..." \
  -F "ine_front=@ine_frente.jpg" \
  -F "ine_back=@ine_reverso.jpg"

→ { "request_id": "6821f0c4a9e13b0042d7c919", "status": "processing" }

// Webhook once the OCR → Lista Nominal chain closes:
{ "event": "ine_extraction.completed", "request_id": "6821f0c4a9e13b0042d7c919" }

// And the full record:
curl https://api.singula.mx/app/ine-extraction/status/6821f0c4a9e13b0042d7c919 \
  -H "Authorization: Bearer sk_live_..."

→ {
    "status": "completed",
    "response": {
      "extract": {
        "ine_model": "E",
        "extracted_data": {
          "clave_de_elector": "GRHRMR00000000M000",
          "seccion":          "1247",
          "vigencia":         "2031"
        }
      },
      "listanominal": {
        "outcome":     "vigente",
        "baja_reason": null,
        "model_used":  "E",
        "queried_at":  "2026-04-30T14:22:08Z"
      }
    }
  }

Frequently asked questions

Yes. Screening a candidate is personal-data processing: the LFPDPPP requires a privacy notice and consent, express consent when biometrics are involved. Consent is collected on your side; Singula records what was queried, when and with what result.

No. The search queries court records published in judicial bulletins: docket number, court, state, category and whether the person appears as plaintiff or defendant. Coverage is whatever each court publishes. Criminal-record certificates are issued by the state authority.

The sanctions search returns how many homonyms it found and in which countries. Court records flag repeated names with their count. Date and country of birth sharpen the disambiguation when they are included in the query.

Yes. Each tool runs separately on the same file. Identity checks run without the rest; sanctions, court records and identity verification are added when requested. The file records what ran and what did not.

The response indicates the record does not exist in the source queried: RENAPO for the CURP, the SAT for the RFC. The result is stored in the file with its receipt and its date. If the provider does not respond, the query is logged as an error.

Yes. The customer is created as a legal entity with its registered name. Company RFC validation, corporate court records and the sanctions search become available. The file and the log are the same as for individuals.

Build your first candidate file today

Create your account and start in the test environment, with sample data in the same structure as production. Sanctions, court records and identity verification open once your company verification is complete.