Saltar al contenido

API DE REVÍSAME. Verificación de solicitantes de arrendamiento para plataformas socias. Revísame informa; el arrendador decide.

Revísame / desarrolladores

Empezar · 04

Sandbox

El sandbox es un entorno aparte para integrar sin datos reales y sin dinero real. Tiene la misma API que producción; cambian la base, las llaves y los datos de las fuentes.

Base del sandbox

https://api-sandbox.revisame.mx

Llaves

Empiezan con rab_test_…. Revísame te las entrega por un canal separado; no funcionan en producción, ni las de producción aquí.

Fuentes

Simuladas: devuelven datos ficticios según el escenario. El motor que clasifica los datos es el real.

Saldo

Ficticio. Lo que ves en GET /v1/cuenta/consumo no es dinero y no se factura.

Tiempo de respuesta

Cerca de 3 minutos por verificación, a propósito: imita la latencia real de las fuentes (1.5 a 3.7 min). Consulta con GET cada 10–15 s o espera el webhook; no reduzcas tus tiempos de espera por lo que veas aquí. NOEX y FALL cierran antes.

export RAB="https://api-sandbox.revisame.mx"
export RAB_LLAVE="rab_test_…"   # la que te entregó Revísame
curl "$RAB/_salud"

Cómo elegir el escenario

Las fuentes simuladas eligen el escenario con las 4 primeras letras de la CURP. Cualquier otra combinación se trata como el escenario «Todo en orden». Las CURPs de esta tabla tienen la forma oficial de 18 posiciones, así que pasan la validación de la API, pero su dígito verificador es inválido a propósito: no pertenecen a nadie. Usa solo estas; nunca la CURP de una persona real.

La clasificación la hace el motor real. Las fuentes devuelven siempre los mismos datos ficticios para cada escenario, pero la acción y los factores los decide el motor sobre esos datos; los textos salen de un catálogo fijo. Programa contra los campos y estados del contrato, no contra un texto o una acción fija por escenario.
4 primeras letrasCURP de ejemploEscenarioQué devuelven las fuentes simuladasResultado habitual
LIMPLIMP900101HDFXXX00Todo en ordenIdentidad válida y ninguna coincidencia en listas ni en la fuente judicial.puede_continuar · nivel alto
MARCMARC900101HDFXXX00Juicios ya terminadosLa fuente judicial reporta dos juicios ya terminados (uno civil y uno mercantil) a nombre de la persona, sin CURP ni otro dato que la identifique.Varía: continuar_con_reservas · medio o no_continuar_todavia · bajo
ROJFROJF900101HDFXXX00Juicio en cursoLa fuente judicial reporta un juicio en curso a nombre de la persona, sin CURP ni otro dato que la identifique.continuar_con_reservas · nivel medio
ROJIROJI900101HDFXXX00CURP de otra personaLa CURP devuelve el nombre de otra persona: la validación del registro de población la marca no válida y la de la credencial para votar no coincide.no_continuar_todavia · nivel bajo
LERTLERT900101HDFXXX00Aparece en listasCoincidencias sintéticas, sin detalle, en listas internacionales (sanciones, personas políticamente expuestas y listas de vigilancia) y en el listado del SAT de operaciones inexistentes.Varía: no_continuar_todavia · bajo o continuar_con_reservas · medio
FALLFALL900101HDFXXX00Falla del proveedorLa fuente simulada falla al entregar su reporte.no_concluyente, sin cobro y sin webhook
NOEXNOEX900101HDFXXX00CURP que no existeLa consulta de la CURP responde que no existe.no_concluyente, sin cobro y sin webhook

La columna Resultado habitual es lo que el motor suele devolver para esos datos, no una garantía: el motor es el real. La API no usa colores de semáforo; responde una acción (accion) y qué tan sólido es el sustento (nivel), con la explicación de cada factor, por_que_este_nivel y siguientes_pasos.

Prueba completa

SOLICITUD=$(uuidgen | tr 'A-Z' 'a-z')
curl -X POST "$RAB/v1/verificaciones" \
  -H "Authorization: Bearer $RAB_LLAVE" \
  -H "Idempotency-Key: $SOLICITUD" \
  -H "Content-Type: application/json" \
  -d '{
    "solicitud_id": "'"$SOLICITUD"'",
    "solicitante": { "curp": "MARC900101HDFXXX00" },
    "consentimiento": { "otorgado": true, "otorgado_en": "2026-09-23T10:00:00-06:00",
                        "version_aviso": "aviso-2026-09", "evidencia_id": "ev-prueba-001" }
  }'
# → { "estado": "en_proceso", "verificacion_id": "…", … }
curl "$RAB/v1/verificaciones/$VERIFICACION_ID" -H "Authorization: Bearer $RAB_LLAVE"

Recorre los siete escenarios y comprueba que tu integración maneja emitida (con webhook) y no_concluyente (sin webhook, solo por consulta). Ver Ciclo de vida.

Qué no cambia respecto a producción

  • Validaciones, códigos de error, idempotencia, consentimiento obligatorio y límites.
  • Webhook firmado verificacion.emitida, con el secreto de sandbox que te entrega Revísame.
  • En modo connect, usa PaymentIntents del modo de prueba de Stripe. Ver Cobro.