API de consultas
Inicia consultas de crédito de persona física, resuelve el NIP con el que el consultado autoriza y descarga el reporte en PDF. Autenticación por API key. Todas las respuestas son JSON, salvo la descarga del reporte, que es application/pdf.
Autenticación
Manda tu API key en el header x-api-key en cada petición. Creas y administras tus keys desde API y MCP en el dashboard.
x-api-key: TU_API_KEY
Requiere plan
El acceso a la API está incluido en los planes Equipo e Ilimitado. Con un plan sin API, todas las peticiones responden 401. Compara los planes en Precios.
Entornos
Hay dos entornos y cada uno tiene su propio host. El entorno de la key debe coincidir con el host en ambos sentidos: una key de sandbox solo funciona en el host con prefijo sandbox. y una key de producción solo en el host pelón. Si no coinciden, la petición responde 401.
https://sandbox.dashboard.consultasnonstop.comKey de sandbox. Datos de prueba: no consulta al buró real, no requiere saldo y no descuenta.https://dashboard.consultasnonstop.comKey certificada. Datos reales. Requiere certificar el servicio.Toda cuenta empieza únicamente con keys de sandbox. Para consultar en producción, cada servicio debe certificarse desde Certificación en el dashboard: envías las evidencias de tu proceso y las revisamos para liberarlo. Una key sin certificación nunca llega al buró real, aunque apunte a producción.
Flujo de una consulta
Una consulta se completa en varios pasos. El consultado autoriza con un NIP: un solo código que el buró pide dos veces, una para ingresarlo y otra para confirmarlo.
POST /v1/consultas con el tipo, el canal del NIP y los datos del consultado. Devuelve el id y nipPhase: "CREATE_ACCOUNT". En producción requiere saldo del tipo; en sandbox no.POST /v1/consultas/:id/nip/send. El consultado recibe el NIP por el canal elegido y nipPhase pasa a VALIDATE.POST /v1/consultas/:id/nip/validate con el código. nipPhase pasa a VALIDATE_2./nip/validate con el mismo código. Esta segunda llamada cierra el ciclo: estado: "COMPLETADA" más el reporteId. Aquí se descuenta el crédito del saldo (solo en producción).GET /v1/consultas/:id/reporte devuelve el PDF del reporte de buró.Importante
El ciclo lo cierran los NIP, no el GET. GET /v1/consultas/:id es de solo lectura: nunca finaliza la consulta ni descuenta saldo.
Valores de nipPhase: CREATE_ACCOUNT → VALIDATE → VALIDATE_2 → "" (vacío al terminar). Valores de estado: EN_PROGRESO, COMPLETADA, ERROR.
Endpoints
/v1/consultasInicia una consulta. En producción requiere saldo del tipo y se descuenta al completarse; en sandbox es gratis./v1/consultas/:idEstado guardado de la consulta más la fase del NIP en vivo. Solo lectura./v1/consultas/:id/nip/sendEnvía el NIP al consultado por el canal elegido./v1/consultas/:id/nip/validateValida y confirma el NIP. Se llama dos veces con el mismo código./v1/consultas/:id/reporteDescarga el PDF del reporte de buró. Solo si la consulta está COMPLETADA./v1/saldosSaldo de consultas disponible por tipo de reporte./v1/paquetesCatálogo de paquetes de consultas vigentes.Crear una consulta
https://sandbox.dashboard.consultasnonstop.com/v1/consultasInicia una consulta. El body lleva el tipo de reporte, el canal por el que se entrega el NIP y los datos del consultado.
Parámetros
{
"tipo": "ORDINARIO",
"canal": "SMS",
"sujeto": {
"primerNombre": "JUAN",
"segundoNombre": "",
"apellidoPaterno": "PEREZ",
"apellidoMaterno": "LOPEZ",
"rfc": "PXLJ850101H12",
"calleNumero": "AV REFORMA 123",
"cp": "06600",
"celular": "5555555555",
"correo": "juan@example.com",
"fechaNacimiento": "1985-01-01"
}
}tipostringSíTipo de reporte: ORDINARIO o ESPECIAL.canalstringNoMedio por el que el consultado recibe el NIP: SMS (default), EMAIL o WHATSAPP.sujeto.primerNombrestringSíPrimer nombre del consultado.sujeto.segundoNombrestringNoSegundo nombre del consultado.sujeto.apellidoPaternostringSíApellido paterno del consultado.sujeto.apellidoMaternostringNoApellido materno del consultado.sujeto.rfcstringSíRFC de persona física con homoclave (13 caracteres).sujeto.calleNumerostringSíDomicilio del consultado: calle y número.sujeto.cpstringSíCódigo postal a 5 dígitos.sujeto.celularstringSíCelular a 10 dígitos (LADA +52 por defecto).sujeto.correostringCondicionalRequerido para tipo ESPECIAL o canal EMAIL.sujeto.fechaNacimientostringCondicionalRequerido para tipo ESPECIAL. Formato AAAA-MM-DD.Ejemplo rápido
Coloca tu API key en el header x-api-key y agrega el header Content-Type: application/json para enviar el body como JSON.
curl -X POST https://sandbox.dashboard.consultasnonstop.com/v1/consultas \
-H "x-api-key: TU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tipo": "ORDINARIO",
"canal": "SMS",
"sujeto": {
"primerNombre": "JUAN",
"segundoNombre": "",
"apellidoPaterno": "PEREZ",
"apellidoMaterno": "LOPEZ",
"rfc": "PXLJ850101H12",
"calleNumero": "AV REFORMA 123",
"cp": "06600",
"celular": "5555555555",
"correo": "juan@example.com",
"fechaNacimiento": "1985-01-01"
}
}'Tip
¿Sabías que al pegar un cURL en Postman te crea automáticamente la llamada con todos los elementos?
Respuesta
{
"id": "6a7f1c2e9b3d4a5f6e7d8c90",
"tipo": "ORDINARIO",
"estado": "EN_PROGRESO",
"nipPhase": "CREATE_ACCOUNT",
"reporteId": "",
"errorMensaje": "",
"creadoEn": "2026-07-07T18:00:00Z"
}Enviar el NIP
https://sandbox.dashboard.consultasnonstop.com/v1/consultas/:id/nip/sendEnvía el NIP al consultado por el canal que elegiste al crear la consulta. No lleva body. nipPhase pasa a VALIDATE.
curl -X POST https://sandbox.dashboard.consultasnonstop.com/v1/consultas/CONSULTA_ID/nip/send \ -H "x-api-key: TU_API_KEY"
Validar y confirmar el NIP
https://sandbox.dashboard.consultasnonstop.com/v1/consultas/:id/nip/validateValida el código. Llámalo dos veces con el mismo NIP: la primera pasa a VALIDATE_2, la segunda cierra el ciclo y deja la consulta en COMPLETADA con su reporteId. No es un segundo código distinto: es el mismo, como cuando el buró te pide "ingresa nuevamente tu NIP".
curl -X POST https://sandbox.dashboard.consultasnonstop.com/v1/consultas/CONSULTA_ID/nip/validate \
-H "x-api-key: TU_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "nip": "123456" }'Respuesta
{
"id": "6a7f1c2e9b3d4a5f6e7d8c90",
"tipo": "ORDINARIO",
"estado": "EN_PROGRESO",
"nipPhase": "VALIDATE_2",
"reporteId": "",
"errorMensaje": "",
"creadoEn": "2026-07-07T18:00:00Z"
}Descargar el reporte
https://sandbox.dashboard.consultasnonstop.com/v1/consultas/:id/reporteDevuelve el PDF del reporte de buró (application/pdf). Solo cuando estado es COMPLETADA; si todavía no lo está responde 409 no_disponible.
curl https://sandbox.dashboard.consultasnonstop.com/v1/consultas/CONSULTA_ID/reporte \ -H "x-api-key: TU_API_KEY" \ -o reporte.pdf
Ventana de visibilidad
La descarga respeta la ventana de visibilidad de tu plan: Acceso 7 días, Equipo 30 días, Ilimitado sin límite. Fuera de ella responde 403 reporte_no_disponible. La ventana se recalcula con el plan vigente, así que subir de plan rehabilita reportes viejos y bajarlo los cierra. El listado del histórico no caduca nunca y el PDF nunca se borra: lo que caduca es el acceso.
Consultar el estado
https://sandbox.dashboard.consultasnonstop.com/v1/consultas/:idDevuelve el estado guardado de la consulta más la fase del NIP en vivo. Es solo lectura: no finaliza la consulta ni descuenta saldo.
curl https://sandbox.dashboard.consultasnonstop.com/v1/consultas/CONSULTA_ID \ -H "x-api-key: TU_API_KEY"
{
"id": "6a7f1c2e9b3d4a5f6e7d8c90",
"tipo": "ORDINARIO",
"estado": "EN_PROGRESO",
"nipPhase": "CREATE_ACCOUNT",
"reporteId": "",
"errorMensaje": "",
"creadoEn": "2026-07-07T18:00:00Z"
}Consultar el saldo
https://sandbox.dashboard.consultasnonstop.com/v1/saldosSaldo de consultas disponible por tipo de reporte. El saldo lo alimentan las consultas incluidas en tu plan cada ciclo y los paquetes adicionales que compres.
curl https://sandbox.dashboard.consultasnonstop.com/v1/saldos \ -H "x-api-key: TU_API_KEY"
{ "ordinario": 12, "especial": 3 }Catálogo de paquetes
https://sandbox.dashboard.consultasnonstop.com/v1/paquetesPaquetes de consultas vigentes por tipo. precio viene en centavos MXN: 49900 son $499.00.
curl https://sandbox.dashboard.consultasnonstop.com/v1/paquetes \ -H "x-api-key: TU_API_KEY"
{
"ordinario": [
{
"id": "6a7f1c2e9b3d4a5f6e7d8c92",
"tipoReporte": "ORDINARIO",
"cantidad": 10,
"precio": 49900,
"vigenteDesde": "2026-01-01T00:00:00Z"
}
],
"especial": [
{
"id": "6a7f1c2e9b3d4a5f6e7d8c93",
"tipoReporte": "ESPECIAL",
"cantidad": 5,
"precio": 129900,
"vigenteDesde": "2026-01-01T00:00:00Z"
}
]
}La API es de consulta: no hay endpoint REST para comprar paquetes. Recargas tu saldo desde Planes y paquetes en el dashboard, o con la herramienta comprar_paquete del servidor MCP.
Formato de errores
Los errores de la aplicación usan un envelope con type (estable, para programar contra él) y message (legible, para mostrar).
{
"error": {
"type": "saldo_insuficiente",
"message": "No tienes saldo de este tipo de reporte."
}
}Autenticación (401)
Los errores de la capa de API key usan un envelope distinto: message más code, sin el objeto error.
{
"message": "api key environment does not match host",
"code": "UNAUTHORIZED"
}Responden 401:
Errores de la aplicación
400invalid_requestJSON malformado o campos faltantes.400campos_invalidosSe rechazaron datos del sujeto (RFC, CP, etc.).400tipo_no_soportadoTipo de reporte no soportado en v1.400nip_invalidoNIP incorrecto o expirado.402saldo_insuficienteSin saldo del tipo solicitado. Solo aplica en producción: sandbox no requiere saldo.403servicio_no_certificadoAPI key de producción sin el servicio certificado.403reporte_no_disponibleEl reporte quedó fuera de la ventana de visibilidad del plan, o la cuenta no tiene plan.404not_foundLa consulta no existe.409no_disponibleEl reporte todavía no está listo.502nip_send_error / reporte_errorFallo temporal al enviar el NIP u obtener el reporte.500internal_errorError interno.Sandbox
En sandbox no se consulta al buró real: los datos son sintéticos y el flujo completo corre igual. Usa una key de sandbox contra el host https://sandbox.dashboard.consultasnonstop.com y el NIP de prueba 123456, el mismo código dos veces (ingresar y confirmar).
Sandbox es gratis
Las consultas de sandbox no requieren saldo para iniciarse y no descuentan al completarse. Solo las consultas de producción exigen y consumen saldo.
Casos de prueba
Caso A — Ordinario por SMS (camino feliz)
tipo: ORDINARIO y canal: SMS usando el ejemplo de arriba, y guarda el id.POST /v1/consultas/{id}/nip/send.POST /v1/consultas/{id}/nip/validate con { "nip": "123456" } → nipPhase: VALIDATE_2.123456 → estado: COMPLETADA más el reporteId.GET /v1/consultas/{id}/reporte → descarga el PDF.Caso B — Especial por correo
Igual que el Caso A pero con tipo: ESPECIAL y canal: EMAIL. Recuerda que correo y fechaNacimiento son obligatorios en este caso; si faltan, responde 400 campos_invalidos.
Caso C — Errores esperados
402 saldo_insuficiente400 nip_invalido409 no_disponible401 UnauthorizedNota: si el consultado de prueba ya existe en el sandbox (la misma identidad repetida), el escenario puede completar la consulta sin pedir el NIP interactivo. Usa un RFC nuevo para forzar el flujo completo del NIP.