Identity verification for real estate
Singula reads the applicant’s ID and checks its standing in the INE Lista Nominal. It validates the CURP with RENAPO and the RFC with the SAT, and searches judicial bulletins for court files. Every query keeps its source and its date.
The tenant file is built from official sources before signing
The ID card is checked against the INE Lista Nominal. The CURP is validated at RENAPO and the RFC with the SAT. Judicial bulletins return prior lawsuits with court, subject matter and dates. Every query keeps its source and its date.
Singula does not query credit bureaus and does not run OCR on pay stubs. It verifies identity, ID validity, court records, watchlists and digital presence. Proof of income is collected outside Singula.
Where it fits in your operation
The products behind this solution
INE + Lista Nominal
Front and back OCR plus a query to the INE roll: active, deregistered, duplicated or not found.
Identity verification
INE or passport plus a selfie with liveness and a face match against the photo on the document. Verdict: verified, partial or rejected.
CURP and RFC
CURP against RENAPO with field-by-field matching, and RFC validated with the SAT.
Court records
Files from judicial bulletins: court, subject matter, plaintiff, defendant and the date of each ruling. In a company we search its legal name and its trade name in a single query.
Watchlists and PEP
Nine categories of public-source lists — sanctions, criminal, PEP, fiscal, adverse media and more — with homonym disambiguation.
Risk score
Aggregates signals from the tools already run into a 0-100 score, with a level and a confidence percentage.
How it works
From the applicant’s ID card to a file where every check carries a source and a timestamp.
Create the file
Full name, date and state of birth open the applicant’s file. Every later query is stored under it.
Dashboard or API
Read the ID card
OCR reads the front and the back and returns the card’s data. The same chain queries the Lista Nominal and returns its standing.
Async result
Cross the sources
CURP against RENAPO with field-by-field matching, RFC with the SAT, watchlists across nine categories and judicial bulletins by name.
RENAPO · SAT · judicial bulletins
Get the verdict
A 0-100 score, a level, a confidence percentage and the coverage gaps still open. Every async result arrives on a signed webhook.
Signed webhook
The leasing frame: personal data, AML and courtroom evidence.
Leasing is governed by each state’s civil code. The LFPDPPP regulates the applicant’s personal data, the LFPIORPI sets an AML threshold on high-value leases and the procedural code defines the weight of electronic evidence. Every query is logged with its date, its source and its literal response.
Orientation only, not legal advice. Leasing is governed by the civil and procedural codes of each Mexican state, and the UMA threshold for the vulnerable activity is updated every year.
- 01
No financial regulator
The lease is governed by each state’s civil code and the lawsuit by its procedural code. The CNBV and Condusef do not supervise leasing.
- 02
Personal and biometric data
The LFPDPPP requires a privacy notice and consent to process an applicant’s data. Biometrics are sensitive personal data: its article 8 calls for express, written consent. Notice and consent are collected before the query; Singula logs what was checked and when.
- 03
AML on high-value leases
The LFPIORPI treats temporary use of real estate as a vulnerable activity above a monthly threshold in UMAs. The obligation: identify the tenant, build a file and submit the reports through the SAT portal, which routes them to the UIF.
- 04
Electronic evidence in court
Whether electronic evidence is admitted follows the applicable procedural code: the national one, still phasing in, or that of the state where the case is heard. Every query is logged with its receipt, its date, its time and the source’s literal response.
One file, three calls.
Create the applicant, upload both sides of the ID and wait for the webhook carrying the OCR output and the Lista Nominal verdict. The aggregated score is readable at any time.
# 1 · Expediente del prospecto
curl -X POST https://api.singula.mx/customer \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "type": "physical",
"name": "JORGE ALBERTO",
"last_name": "MARTINEZ",
"mothers_last_name": "RUEDA",
"birth_day": 12, "birth_month": 4, "birth_year": 1990,
"birth_place": "DF" }'
→ { "id": "cus_lzk9m4ab3f", "env": "production" }
# 2 · Credencial: OCR de anverso y reverso + Lista Nominal
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": "req_8h2ndk4p1x", "status": "processing" }
// Webhook al cerrar la cadena OCR → Lista Nominal:
{
"event": "ine_extraction.completed",
"extract": {
"nombre": "JORGE ALBERTO MARTINEZ RUEDA",
"curp": "MARJ900412HDFRDR09",
"clave_elector": "MRRDJR00000000H000",
"seccion": "1247",
"vigencia": "2031",
"ine_model": "E"
},
"listanominal": {
"outcome": "vigente",
"baja_reason": null,
"queried_at": "2026-07-28T11:04:19Z"
}
}
# 3 · Score agregado del expediente
curl https://api.singula.mx/app/risk/customer/cus_lzk9m4ab3f \
-H "Authorization: Bearer sk_live_..."
→ {
"score": 25,
"risk_level": "low",
"confidence": 43,
"tools_run": ["validateCurp", "checkBlacklist", "getJudicialRecordsOfPerson"],
"coverage_gaps": ["identityVerification", "validateRfc"]
}Frequently asked questions
No. Singula does not OCR pay stubs and has no access to credit bureaus. It verifies that the person exists, that their ID is active, whether they have court records, whether they appear on watchlists and what digital presence they register. Proof of income is collected outside Singula.
The query searches files published in judicial bulletins. Coverage depends on which courts publish and since when, so it is not a single national registry. The response returns court, subject matter, parties and the date of each ruling, plus a homonym flag.
The response returns the cause from the INE catalogue, which registers ten: duplicate, death, cancelled application, forged documents, irregular address and others. An expired card that was replaced also leaves the roll; the cause arrives named in the response.
Yes. The record can be created as a legal entity: its RFC is validated with the SAT and court files are searched by legal name and trade name in a single query (one search when they are the same name). That company search runs only on records registered as legal entities. The signing officer is screened separately as an individual.
Yes. The privacy notice and the consent are collected before the query; Singula does not collect them for you. On Singula’s side, what was checked, when and with what result stays on record; the identity link also logs the device, the IP and the time of submission. The link carries a token that expires in 24 hours, and the person uploads their documents and selfie from their own phone.
The response records that the source answered with no record, with its date and its receipt. If the provider does not respond, the query is logged in error status and can be repeated. In the test environment every response is simulated.
Other solutions
Screen the tenant before signing
Create your account and run the whole flow in the test environment. Court records, watchlists and identity verification switch on once your company verification is complete.