México — Certificado de estudios (folio)
Valida un certificado electrónico de estudios mexicano por folio contra el registro oficial de certificados. Opcionalmente envía fullName o curp para confirmar que el certificado pertenece a esa persona. Cuando se envían ambos, gana curp. Una discrepancia responde 409 name_mismatch.
Esto comprueba el registro del certificado. No prueba la identidad por sí solo. Para el registro civil por CURP, consulta Ciudadano mexicano (CURP). Para una cédula profesional, consulta Cédula profesional.
API reference
Endpoint
https://api.verifik.co/v2/mx/siged/certificado
Una coincidencia devuelve folio, fullName, status, certificateType, career, institution, level, studyType, average, averageText, periodStart, periodEnd, registrationDate, laborTraining, federalEntity e issueDate. Los campos vacíos son null.
Headers
| Name | Value |
|---|---|
| Accept | application/json |
| Authorization | Bearer <token> |
Parameters
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
folio | string | Sí | Folio impreso en el certificado electrónico. De 4 a 64 caracteres. | SIGED10000001 |
fullName | string | No | Nombre completo esperado. Una discrepancia responde 409 name_mismatch. Se ignora cuando también se envía curp. De 3 a 160 caracteres. | Ana Lopez Ruiz |
curp | string | No | CURP de la persona. Cuando se envía, prevalece sobre fullName. De 17 a 18 caracteres. | LOPE900501HDFGRN01 |
Request
- Node.js
- Python
import axios from "axios";
const { data } = await axios.get("https://api.verifik.co/v2/mx/siged/certificado", {
params: {
folio: "SIGED10000001",
fullName: "Ana Lopez Ruiz",
},
headers: { Accept: "application/json", Authorization: `Bearer ${process.env.VERIFIK_TOKEN}` },
});
console.log(data);
import os, requests
url = "https://api.verifik.co/v2/mx/siged/certificado"
headers = {"Accept": "application/json", "Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"}
params = {"folio": "SIGED10000001", "fullName": "Ana Lopez Ruiz"}
r = requests.get(url, headers=headers, params=params)
print(r.json())
Para comprobar al titular por CURP, envía folio y curp y omite fullName.
Response
- 200
- 404
- 409 (nombre)
- 409 (folio faltante)
- 409 (no disponible)
{
"data": {
"average": "9.1",
"averageText": "NUEVE PUNTO UNO",
"career": "BACHILLERATO TECNOLOGICO",
"certificateType": "CERTIFICADO DE TERMINACION DE ESTUDIOS",
"federalEntity": null,
"firstName": "ANA",
"folio": "SIGED10000001",
"fullName": "ANA LOPEZ RUIZ",
"institution": "DIRECCION GENERAL DE EDUCACION TECNOLOGICA INDUSTRIAL",
"issueDate": null,
"laborTraining": "TECNICO - PROGRAMACION",
"lastName": "LOPEZ RUIZ",
"level": "IEMS",
"periodEnd": "2021",
"periodStart": "2018",
"registrationDate": "2021-07-15",
"status": "Vigente",
"studyType": "EDUCACION MEDIA SUPERIOR"
},
"signature": {
"dateTime": "October 20, 2026 12:00 PM",
"message": "Certified by Verifik.co"
}
}
{
"code": "NotFound",
"message": "Record not found"
}
{
"code": "Conflict",
"message": "name_mismatch"
}
{
"code": "MissingParameter",
"message": "\"folio\" is required"
}
{
"code": "Conflict",
"message": "Endpoint_out_of_service"
}
Notes
folioes obligatorio.fullNameycurpson comprobaciones opcionales del titular. Cuando se envían ambos, se usacurpy se ignorafullName.- Un folio que no está en el registro responde 404. Un nombre o una CURP que no pertenece a ese certificado responde 409
name_mismatch. - Los resultados se almacenan en caché hasta 7 días.
- El folio de sandbox
SIGED10000001devuelve el certificado de ejemplo deANA LOPEZ RUIZ.fullName=Ana Lopez Ruiztambién responde 200. fullName=Maria Perezen ese folio responde 409name_mismatch.- El folio
FOLIO90040401responde 404. curp=LOPE900501HDFGRN01con cualquierfullNameresponde 200, porque gana la CURP.curp=LOPE900404HDFNTF01responde 404.- Un
folioausente responde 409MissingParameter. - Cuando no se puede alcanzar el registro, la respuesta es 409
Endpoint_out_of_service. Reintenta más tarde. - Relacionado: Ciudadano mexicano (CURP), Cédula profesional, Licencia de profesionista de salud.