Skip to main content
Los RFC de prueba te permiten provocar por API los casos que en producción no puedes elegir: que todo salga bien, que las fuentes públicas no encuentren a la empresa, que fallen por un problema técnico o que un documento no pase sus reglas de validación. Cada RFC crea una verificación KYB México que siempre responde lo mismo. Los escenarios A, B y C son verificaciones completas, con documentos y consultas públicas. D y E reproducen un solo flujo.
Una verificación de prueba no consulta ninguna fuente externa (SAT, SIGER, INE ni RENAPO) y no se cobra. Trébol la marca con la etiqueta prueba-trebol.

Crear una verificación de prueba

Usa POST /verifications con la API key de tu cuenta de prueba, igual que para una verificación real. Manda el cuerpo completo: country, tag, tax_id con uno de los RFC y al menos un ítem válido.
Trébol valida la petición como cualquier otra, así que un cuerpo mal formado recibe el mismo error que en producción. Después reemplaza tus ítems por los del escenario:
  • La respuesta 201 trae 22 ítems en el escenario A, 17 en B y C, 4 en D y 4 en E, todos en pending.
  • country queda en mx aunque mandes otro valor.
  • Los archivos que mandes se ignoran sin fallar. No subas nada a las upload_url que aparecen en los ítems: cada ítem documental se resuelve con un PDF de ejemplo.
  • El mismo RFC devuelve la misma respuesta cada vez. Solo cambian los identificadores (id de la verificación y de los ítems) y las URL firmadas.

Cómo avanza la verificación

La verificación de prueba no nace terminada: sus ítems se completan en el tiempo, igual que en producción. Así puedes probar cómo responde tu integración mientras la verificación todavía está en curso. En los escenarios A, B y C: Los tiempos reales llevan entre 5 y 15 segundos de desfase por el encolado. La verificación pasa a finished unos 2 minutos y medio después de crearla, cuando se completa el último ítem. D y E son más cortos. D termina en 1 minuto, cuando ya se completaron sus cuatro ítems. E termina en menos de 1 minuto, pero dos de sus ítems se completan después de que la verificación pasa a finished. Cada uno detalla sus tiempos en su pestaña. Lo que ves en A, B y C según el momento en que consultes:
Los webhooks funcionan igual que en una verificación real. Si los tienes configurados en tu cuenta de prueba, Trébol te notifica cada cambio de la verificación de prueba sin que configures nada extra. Consulta Webhooks.
Consulta los resultados con los mismos endpoints de siempre:
  • GET /verifications/{verification-id} — la verificación con todos sus ítems.
  • GET /verification-items/{id} — un ítem.
  • GET /v2/verifications/{verification-id}/{entity} — las secciones reconciliadas details, people y shareholders.

Los escenarios

El escenario A es la referencia. B y C se describen por lo que cambia respecto de A. D y E no se comparan con A: cada uno reproduce un flujo distinto.
Una S.A. de C.V. con dos accionistas y seis personas con roles. Los 22 ítems se procesan y las cuatro consultas públicas responden con éxito.Los 22 ítemsAl terminar, los 22 ítems están en item_status: "complete", sin item_error, y cada uno trae su item_value poblado:Los últimos cinco ítems existen solo en este escenario, para que los accionistas también tengan información reconciliada.shareholders. Dos accionistas, una persona moral y una física. La información sale de la asamblea de accionistas (source.item_type: "aa_mx").
Las acciones y los montos llegan como strings. La constancia fiscal de la persona moral se reconcilia por su RFC: aparece en su fiscal y no en details.tax. La persona moral no trae external_identities: RENAPO solo corre cuando hay CURP.people. key_people trae cinco personas y full_list siete.La comisaria (NUÑEZ SALAS PATRICIA) no tiene poderes, así que aparece en full_list pero no en key_people. Un poder con has_power: false significa que se consideró y no se otorgó, que es distinto de no aparecer en la lista.RENAPO. Seis personas traen external_identities.curp con success: true. El administrador único no lo trae porque su identificación es un pasaporte, sin CURP.
details. Llegan pobladas las secciones legal, registration, tax, banking y address. tax.business_tax_id es TRB010101OK1: el RFC de la empresa verificada, no el del accionista persona moral.

Distinguir «no encontrado» de «error técnico»

Comparar B contra C te enseña a decidir qué hacer con cada resultado. En SIGER, item_value llega vacío en los dos casos: la única diferencia está en item_internal_status.
La API responde 200 aunque la consulta externa falle, y item_status es complete en los dos casos. Si tu integración solo revisa el código HTTP, item_status o status: "fail", no puede distinguir B de C.
Qué hacer con cada uno:
  • No encontrado (B): el resultado no va a cambiar. Pide al usuario que corrija el RFC o que cargue otro documento.
  • Error técnico (C): crea el ítem de nuevo con PUT /verifications/{verification-id}/add-items. Como el fallo fue técnico, el nuevo ítem puede completarse bien.
En los dos casos, no puedes reintentar la lectura del mismo ítem. Trébol ya agotó sus reintentos internos antes de emitir el estado, así que lo que recibes es final. Para el catálogo completo de indicadores por fuente, consulta Errores en consultas públicas.