Consultar match
curl --request GET \
--url https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "<string>",
"message": "<string>",
"data": {
"id": "<string>",
"dni": "<string>",
"status": "<string>",
"score": {},
"result": {},
"error": {},
"created_at": "<string>",
"completed_at": {}
}
}Match de Datos RENIEC
Consultar match
Obtén el resultado de un Match de Datos RENIEC: score general y por campo
GET
/
api
/
v1
/
solutions
/
match-reniec
/
{id}
Consultar match
curl --request GET \
--url https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prd-api.verifica.id/api/v1/solutions/match-reniec/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "<string>",
"message": "<string>",
"data": {
"id": "<string>",
"dni": "<string>",
"status": "<string>",
"score": {},
"result": {},
"error": {},
"created_at": "<string>",
"completed_at": {}
}
}Devuelve el estado de una validación creada en Crear match y, cuando termina, su resultado.
La validación suele resolverse en pocos segundos, pero puede tardar más si RENIEC se demora. Mientras siga en
Este endpoint requiere autenticación Bearer. Incluye tu API key en el header Authorization (si aún no sabes cómo obtener y usar tu API key, consulta la página de Autenticación):
pending, vuelve a consultar cada pocos segundos.
Autenticación
¿Todavía no tienes un API token? El campo
Authorization del panel Try it espera tu token Bearer. Revisa dónde obtener tu API token para conseguirlo.Authorization: Bearer YOUR_API_KEY
Atributos Requeridos
string
required
Identificador devuelto al crear el match.
Respuesta
Responde200 en cualquier estado.
string
success cuando la consulta se resolvió.string
Mensaje legible del resultado.
object
Show propiedades de data
Show propiedades de data
string
Identificador de la validación.
string
DNI validado.
string
pending mientras se valida, completed cuando hay resultado, o failed si la validación no pudo completarse.number | null
Score general de 0 a 100, con dos decimales. Es el promedio de los campos que enviaste: una fecha cuenta como un solo campo. Solo con
completed.object | null
Un objeto por cada campo que enviaste, con su
score de 0 a 100. Solo con completed.Show campos de fecha
Show campos de fecha
Las fechas (
birth_date, issue_date, expiration_date) traen su score, que es el promedio de sus partes, y dentro de parts el score de day, month y year por separado. Así ves exactamente qué parte no coincide.object | null
Solo con
failed: un objeto con message describiendo el motivo. El token de esa validación se te devuelve.string
Fecha de creación, en ISO 8601.
string | null
Fecha en que la validación terminó, en ISO 8601.
Ejemplo de Solicitud
curl --request GET \
--url 'https://prd-api.verifica.id/api/v1/solutions/match-reniec/01a0f583-2f28-72df-835c-b88bd647d92e' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {TU-API-KEY}'
Ejemplo de Respuesta Exitosa
Validación completada. Los nombres coinciden por completo; en la fecha de nacimiento coinciden el mes y el año pero no el día, así que la fecha queda en 66.67 y el score general en 83.33.{
"status": "success",
"message": "Retrieve match.",
"data": {
"id": "01a0f583-2f28-72df-835c-b88bd647d92e",
"dni": "12345678",
"status": "completed",
"score": 83.33,
"result": {
"names": { "score": 100 },
"birth_date": {
"score": 66.67,
"parts": {
"day": { "score": 0 },
"month": { "score": 100 },
"year": { "score": 100 }
}
}
},
"error": null,
"created_at": "2026-09-30T22:30:10-05:00",
"completed_at": "2026-09-30T22:30:13-05:00"
}
}
Ejemplo de Respuesta en Proceso
La validación todavía no termina: vuelve a consultar en unos segundos.{
"status": "success",
"message": "Retrieve match.",
"data": {
"id": "01a0f583-2f28-72df-835c-b88bd647d92e",
"dni": "12345678",
"status": "pending",
"score": null,
"result": null,
"error": null,
"created_at": "2026-09-30T22:30:10-05:00",
"completed_at": null
}
}
Cómo interpretar el score
El score indica qué tan parecido es el dato que enviaste al registrado en RENIEC, de 0 (no coincide) a 100 (coincide por completo). Como referencia, un campo con más de 90 puede considerarse válido. Define en tu sistema los umbrales que apliquen a tu proceso: el servicio no decide por ti si la persona se aprueba o se rechaza.Códigos de Error
| Código | Descripción |
|---|---|
| 401 | Token de autenticación inválido o faltante |
| 404 | La validación no existe o no pertenece a tu cuenta |