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

Referencia · 06

Endpoints

Cinco rutas bajo una sola base. Todas responden JSON y, ante un error, un objeto {"codigo", "mensaje"} con código estable.

Generado a partir de openapi.yaml (OpenAPI 3.1.0, versión de la API 1.0.0). Base: https://rab-api-production.up.railway.app.

Rutas

POST /v1/verificaciones

Pedir una verificacion

Crea una verificación de un solicitante por su CURP (Ruta CURP). Responde de inmediato con estado: en_proceso; el resultado se obtiene consultando o por webhook. Exige Idempotency-Key igual al solicitud_id.

Autenticación: Authorization: Bearer <llave del socio>

Parámetros

NombreEnTipoRestricciones
Idempotency-Key obligatorioencabezadostring | null
X-Canalencabezado"api" | "mcp"opcional; ausente es api. El canal MCP envía mcp. Otro valor responde 400 peticion_invalida.

Cuerpo

PeticionDeVerificacion (JSON, máximo 64 KB)

Respuesta 200

RespuestaDeVerificacion

Errores posibles

Ejemplo

curl -X POST "$RAB/v1/verificaciones" \
  -H "Authorization: Bearer $RAB_LLAVE" \
  -H "Idempotency-Key: 7f3c2a9e-5b1d-4e8a-9c0f-2d6b8a1e4f70" \
  -H "Content-Type: application/json" \
  -d '{
    "solicitud_id": "7f3c2a9e-5b1d-4e8a-9c0f-2d6b8a1e4f70",
    "solicitante": { "curp": "<CURP del solicitante>" },
    "consentimiento": {
      "otorgado": true,
      "otorgado_en": "2026-09-22T16:05:00-06:00",
      "version_aviso": "aviso-2026-09",
      "evidencia_id": "ev-000123"
    },
    "webhook_url": "https://tu-dominio.mx/revisame/eventos"
  }'

GET /v1/verificaciones/{verificacion_id}

Sondear una verificacion

Devuelve el estado actual de una verificación de tu cuenta. Úsalo para sondear hasta emitida o no_concluyente. Una verificación de otra cuenta responde 404, nunca 403.

Autenticación: Authorization: Bearer <llave del socio>

Parámetros

NombreEnTipoRestricciones
verificacion_id obligatoriorutastringlargo ≤ 200

Respuesta 200

RespuestaDeVerificacion

Errores posibles

Ejemplo

curl "$RAB/v1/verificaciones/$VERIFICACION_ID" \
  -H "Authorization: Bearer $RAB_LLAVE"

GET /v1/verificaciones

Base de reportes emitidos del socio

Lista las verificaciones de tu cuenta, de la más reciente a la más vieja. Filtra por solicitud_id o estado.

Autenticación: Authorization: Bearer <llave del socio>

Parámetros

NombreEnTipoRestricciones
solicitud_idquerystring | nulllargo ≤ 200
estadoquerystring | nulllargo ≤ 200
limitequeryinteger≥ 1, ≤ 100, por omisión 20

Respuesta 200

RespuestaDeLista

Errores posibles

Ejemplo

curl "$RAB/v1/verificaciones?estado=emitida&limite=20" \
  -H "Authorization: Bearer $RAB_LLAVE"

GET /v1/cuenta/consumo

Consumo del socio

Modo de cobro de tu cuenta, precio por verificación y, en modo consumo, el saldo disponible. En modo connect el saldo es null (no aplica; no es un cero).

Autenticación: Authorization: Bearer <llave del socio>

Respuesta 200

RespuestaDeConsumo

Errores posibles

Ejemplo

curl "$RAB/v1/cuenta/consumo" \
  -H "Authorization: Bearer $RAB_LLAVE"

GET /_salud

Gate de readiness del sidecar

Disponibilidad del servicio. Responde 200 solo si el canal está arriba y alcanza su base de datos; si no, 503. No requiere llave.

Autenticación: ninguna

Respuesta 200

RespuestaDeSalud

Errores posibles

Ejemplo

curl "$RAB/_salud"
# {"estado": "arriba", "base": "alcanzable"}

Esquemas

PeticionDeVerificacion

Cuerpo de POST /v1/verificaciones. Esquema cerrado: cualquier campo no declarado se rechaza con campo_desconocido. Aunque consentimiento figure como opcional en el esquema, sin él la petición se rechaza con 422 consentimiento_faltante.

CampoTipoNotas
cobroCobroEntrada | null
consentimientoConsentimiento | null
documentoDocumentoEntrada | nullReservado. No enviar.
propiedad_idstring | nullIdentificador opaco de la propiedad en tu sistema.
largo ≥ 1, largo ≤ 200
solicitante obligatorioSolicitanteEntrada
solicitud_id obligatoriostringTu identificador único y opaco (recomendado: UUID). Debe coincidir con Idempotency-Key. No debe describir a la persona.
largo ≥ 1, largo ≤ 200
webhook_url obligatoriostringURL https donde recibirás verificacion.emitida. Usa una ruta neutra.
largo ≥ 1, largo ≤ 2000

SolicitanteEntrada

Quién se verifica. Solo la CURP es obligatoria; no se piden más datos personales de los necesarios.

CampoTipoNotas
apellido_maternostring | nulllargo ≥ 1, largo ≤ 200
apellido_paternostring | nulllargo ≥ 1, largo ≤ 200
curp obligatoriostringlargo ≥ 1, largo ≤ 32
nombrestring | nulllargo ≥ 1, largo ≤ 200

Consentimiento

El permiso expreso del solicitante, como objeto versionado y auditable (no un booleano suelto).

CampoTipoNotas
evidencia_id obligatoriostringReferencia a la evidencia del consentimiento en tu sistema.
largo ≥ 1, largo ≤ 200
ipstring | nullOpcional; no es necesario enviarlo.
otorgado obligatoriobooleanDebe ser true.
otorgado_en obligatoriostring (date-time)Fecha y hora ISO 8601 con zona horaria.
version_aviso obligatoriostringVersión del aviso de privacidad aceptado.
largo ≥ 1, largo ≤ 200

CobroEntrada

Cómo paga el socio esta verificación. Es informativo para tu conciliación: el modo que rige es el configurado en tu cuenta.

CampoTipoNotas
modo obligatorio"connect" | "consumo"
payment_intent_idstring | nullModo connect: identificador del pago del solicitante en tu plataforma.
largo ≥ 1, largo ≤ 200

DocumentoEntrada

Ruta con documento (INE). Reservada: hoy responde 501 ruta_no_disponible. No la envíes.

CampoTipoNotas
anversostring | nulllargo ≤ 8000
reversostring | nulllargo ≤ 8000
tipo obligatoriostringlargo ≥ 1, largo ≤ 200

RespuestaDeVerificacion

La verificación tal como la ve el socio. estado es en_proceso, emitida o no_concluyente. recomendacion solo existe cuando está emitida.

CampoTipoNotas
cobertura_fuentesCoberturaFuentes | null
cobro obligatorioBloqueDeCobro
consentimiento obligatorioConsentimientoRegistrado
creado_enstring | null
environment"sandbox" | "production" | nullsandbox o production.
estado obligatoriostring
real_motor_e2e"NO_MEDIDO" | nullMarca técnica de medición; ignórala.
recomendacionRecomendacion | null
resuelto_enstring | null
solicitud_idstring | null
source"synthetic_fixture" | "motor_real" | nullOrigen del resultado: motor_real o synthetic_fixture (datos sintéticos de prueba).
verificacion_id obligatoriostring
version_promptstring | nullVersión del motor que produjo la recomendación, para trazabilidad.
vigencia_hastastring | nullHasta cuándo la verificación sigue siendo utilizable sin volver a cobrarse.

Recomendacion

La acción sugerida al arrendador con su respaldo. Nunca es un juicio sobre la persona.

CampoTipoNotas
accion obligatorio"puede_continuar" | "continuar_con_reservas" | "no_continuar_todavia"
mensaje obligatoriostringlargo ≥ 1, largo ≤ 2000
siguientes_pasosarray<PasoSugerido>Pasos sugeridos, de catálogo cerrado; el último es siempre DECISION_DEL_ARRENDADOR.
elementos ≤ 5
sustento_documental obligatorioSustentoDocumental

SustentoDocumental

Qué tan sólido es el respaldo documental de la recomendación (no de la persona), con sus factores.

CampoTipoNotas
factores obligatorioarray<Factor>elementos ≥ 1, elementos ≤ 50
microexplicacionstringTexto fijo que conviene mostrar junto al nivel.
por omisión "Indica qué tan completa y consistente es la información que respalda esta recomendación. No califica a la persona."
nivel obligatorio"alto" | "medio" | "bajo"
por_que_este_nivelExplicacionDelNivel | null

Factor

Elemento concreto que fortalece o limita el sustento documental. codigo es de catálogo cerrado; programa contra él, no contra texto.

CampoTipoNotas
codigo obligatoriostring
efecto obligatorio"fortalece" | "limita"
fuentestring | nullDe qué fuente sale el factor; null en los de cobertura.
largo ≥ 1, largo ≤ 200
que_se_revisostring | nullQué se consultó, en una frase. No incluye el contenido de ningún registro.
largo ≥ 1, largo ≤ 2000
que_significastring | nullQué quiere decir el resultado para la decisión del arrendador.
largo ≥ 1, largo ≤ 2000
texto obligatoriostringlargo ≥ 1, largo ≤ 2000

ExplicacionDelNivel

Por qué el sustento quedó en ese nivel: un texto fijo por caso y los códigos de factor que lo definieron. Ver Acciones.

CampoTipoNotas
determinantesarray<string>Códigos de factor que definieron el nivel; todos aparecen en factores. Puede venir vacía.
elementos ≤ 50
explicacion obligatoriostringlargo ≥ 1, largo ≤ 2000

PasoSugerido

Un paso sugerido al arrendador, de catálogo cerrado. Programa contra codigo; muestra texto.

CampoTipoNotas
codigo obligatoriostring
texto obligatoriostringlargo ≥ 1, largo ≤ 2000

CoberturaFuentes

Cuántas de las fuentes que se intentaron consultar se pudieron consultar. Es independiente del sustento documental.

CampoTipoNotas
consultadas obligatoriointeger≥ 0, ≤ 50
detallearray<FuenteConsultada>elementos ≤ 50
disponibles obligatoriointeger≥ 0, ≤ 50

FuenteConsultada

Una fuente y cómo le fue.

CampoTipoNotas
estado obligatorio"consultada" | "no_disponible"
fuente obligatoriostringlargo ≥ 1, largo ≤ 200

BloqueDeCobro

Estado del cobro de la verificación. monto y moneda pueden venir en null al sondear: el canal no reconstruye montos que no decidió en esa llamada.

CampoTipoNotas
estatusstring | nullcargada (modo consumo), transferencia_encolada (modo connect) o no_aplicada; null mientras está en proceso. transferida está reservado.
modostring | null
monedastring | null
montonumber | null
motivo_no_aplicadastring | nullPor qué no se cobró, p. ej. recomendacion_no_emitida.

ConsentimientoRegistrado

Referencia al consentimiento con el que se trabajó la verificación.

CampoTipoNotas
consentimiento_idstring | null

RespuestaDeLista

Listado de verificaciones del socio, de la más reciente a la más vieja.

CampoTipoNotas
verificaciones obligatorioarray<RespuestaDeVerificacion>

RespuestaDeConsumo

Consumo del socio que presenta la llave, y de nadie más.

CampoTipoNotas
modo obligatoriostring
moneda obligatoriostring
monto_por_verificacion obligatorionumberEl precio de tu plan por verificación emitida.
saldonumber | nullnull en modo connect: no hay saldo que agotar.
tenant obligatoriostring

RespuestaDeError

Todo error trae un codigo estable y un mensaje fijo. El mensaje nunca repite datos de tu petición. Programa contra codigo.

CampoTipoNotas
codigo obligatorio"base_no_alcanzable" | "campo_desconocido" | "cobro_no_verificado" | "conflicto_idempotencia" | "consentimiento_faltante" | "consumo_agotado" | "cuerpo_demasiado_grande" | "curp_invalida" | "error_interno" | "idempotency_key_ausente" | "limite_excedido" | "llave_ausente" | "llave_invalida" | "peticion_invalida" | "respuesta_retenida" | "ruta_no_disponible" | "verificacion_no_encontrada" | "vocabulario_no_permitido"
mensaje obligatoriostring

RespuestaDeSalud

Estado de disponibilidad del servicio.

CampoTipoNotas
base obligatoriostring
esquema"mas_nuevo_que_el_codigo" | nullNormalmente ausente o null. mas_nuevo_que_el_codigo indica que la base va en una revisión posterior y compatible a la del servicio (por ejemplo, tras revertir un despliegue): el servicio sigue atendiendo y no requiere acción de tu parte.
estado obligatoriostring
versionstring | null