Entity y completar su onboarding. Una vez aprobada, la entidad puede ser titular de objetos Account sin que uses el Dashboard.
Este flujo es para plataformas que crean una Entity por cada cliente, como marketplaces o billeteras que mantienen saldos bajo la razón social de cada cliente. Para crear objetos Account bajo tu propia Entity raíz, revisa Crea más cuentas.
DisponibilidadEl onboarding por API admite objetos
Entity mexicanos. Para entidades fuera de México, crea la Entity desde el Dashboard.Antes de comenzar
Necesitas una clave secreta del Dashboard, en Developers → API Keys. La clave que envías selecciona el modo:sk_test_... opera en test y sk_live_... opera en live.
Usa el modo test para construir y verificar tu integración. Usa el modo live para hacer el onboarding de cada cliente real. Son actividades distintas, no dos etapas de un mismo flujo. Un onboarding en test es un objeto distinto de uno en live y nunca se convierte en un onboarding en live. Hacer el onboarding de un cliente en test no avanza el onboarding en live de ese cliente. Los ejemplos de esta página usan una clave de prueba.
Paso 1: Crear la entidad
UnaEntity es la persona jurídica titular de la cuenta. Crea una para tu cliente con su razón social y su RFC (identificador fiscal mexicano). Configura country_code con mx y holder_id con el RFC del cliente.
Response
Entity (ent_...), porque cada llamada del onboarding usa este valor. Revisa El objeto Entity para ver la lista completa de atributos.
Paso 2: Crear el onboarding
ElOnboarding contiene la revisión de conocimiento del cliente de una Entity. La revisión incluye la información de la empresa, los representantes legales, el perfil transaccional y los accionistas. Crea un onboarding por Entity y envía los datos estructurados en la solicitud.
Una Entity mantiene como máximo un onboarding por modo, así que la misma Entity puede mantener un onboarding live y uno test al mismo tiempo. Un segundo onboarding en el mismo modo devuelve 409 Conflict, incluso cuando el primero ya está rejected.
Response (abridged)
Response (abridged) muestra solo los campos que cambian en ese paso, no el objeto completo. La respuesta anterior también devuelve data, que repite la información de la empresa y el perfil transaccional que enviaste. Cada representante legal y accionista también incluye los campos de identidad de la solicitud. Revisa El objeto Onboarding para ver la estructura completa.
Cuatro detalles a tener en cuenta en la respuesta:
submittableesfalsehasta que cada campo y documento obligatorio esté completo.documentslista cada slot de documento de la empresa y sustatus, ya seamissingouploaded. Lee este arreglo para identificar los documentos pendientes.- Cada representante legal tiene su propio arreglo
documentscon dos slots. - Cada accionista tiene un único slot
document. Un accionista de tipolegal_entitypuede incluirchildrenanidados.
identification_number del representante legal es una CURP (Clave Única de Registro de Población). El settlement_account es una CLABE (Clave Bancaria Estandarizada) de 18 dígitos. Revisa El objeto Onboarding para ver todos los campos.
Paso 3: Subir los documentos de la empresa
Sube un archivo a cada slot de documento de la empresa del arreglodocuments. Envía el archivo como multipart/form-data en el campo file. El tamaño máximo del archivo es 20 MB. Subir un archivo a un slot que ya tiene uno reemplaza el archivo existente.
Cada slot acepta sus propios tipos de contenido:
Response (abridged)
settlement_bank_statement, proof_of_address, shareholder_structure y articles_of_incorporation.
Paso 4: Subir los documentos de cada representante legal
Cada representante legal necesita dos documentos. Usa elid del representante legal (onblr_...) de la respuesta del paso 2 y envía el slot como último segmento de la ruta. El slot identification acepta application/pdf, image/jpeg e image/png. El slot power_of_attorney acepta solo application/pdf.
Response (abridged)
power_of_attorney y para cada representante legal que hayas declarado.
Paso 5: Subir el documento de cada accionista
Cada accionista declarado necesita un documento. Usa elid del accionista (onbsh_...) de la respuesta del paso 2. Esta ruta no lleva slot, porque Fintoc lo deriva del type del accionista: identification para un natural_person y articles_of_incorporation para un legal_entity. El slot acepta application/pdf, image/jpeg e image/png.
Response (abridged)
Paso 6: Enviar a revisión
Una vez quesubmittable es true, envía el onboarding para que Fintoc lo revise. El onboarding debe estar en in_progress e incluir cada campo y documento obligatorio. Después del envío, el onboarding pasa a submitted y ya no se puede modificar.
Response (abridged)
submittable pasa a false cuando el onboarding queda en submitted, porque un onboarding enviado ya no acepta cambios.
Si falta un campo o documento obligatorio, o el onboarding ya no está en in_progress, la llamada devuelve un error 422 Unprocessable Entity. El campo param indica el slot o campo que bloquea el envío:
Error response
Paso 7: Seguir la revisión
Un onboarding pasa porpending, in_progress, submitted y luego approved, rejected o cancelled. Fintoc envía uno de estos eventos de webhook cuando aprueba o rechaza el onboarding:
Suscríbete a estos eventos en el Dashboard, en Developers → Webhooks, o consulta el onboarding directamente:
Response (abridged)
status para seguir el onboarding. Una vez que status es approved, la Entity está lista para operar.
Paso 8: Crear cuentas después de la aprobación
Después de que laEntity queda aprobada, crea uno o más objetos Account bajo la Entity. Envía el ID de la Entity en entity_id. Cada Account tiene su propio saldo y su account number raíz. Los comprobantes de las transferencias salientes muestran la razón social del cliente. Revisa Crea más cuentas para ver los detalles de creación de cuentas.
Response
Probar la integración
En modotest, ejecuta toda la secuencia anterior con tu clave sk_test_.... Crea la Entity y el onboarding, sube un archivo de ejemplo a cada slot y envía el onboarding. Confirma que submittable pasa a true solo después de que cada slot indica uploaded.
Fintoc selecciona el modo según la clave de API que envías, no según un parámetro de la solicitud. Los cuerpos de solicitud y de respuesta del onboarding no llevan un campo mode. Los onboardings están aislados por modo. Una clave test no puede leer ni operar sobre un onboarding live, y una clave live no puede leer ni operar sobre un onboarding test. Ambos casos devuelven 404 Not Found con el código missing_resource. Fintoc resuelve entity_id en el modo de la clave de API, así que una clave test debe referenciar una Entity que exista en modo test.
Forzar el resultado de la revisión
En modolive, el envío inicia una revisión real de conocimiento del cliente que decide el equipo de cumplimiento de Fintoc. En modo test, el envío dispara una revisión simulada. Usa la revisión simulada para ejercitar los caminos de aprobación y rechazo sin esperar.
Fintoc decide la revisión simulada según el valor de business_activity que enviaste en company_information. Este mecanismo funciona como un número de tarjeta de prueba: un valor mágico fuerza un resultado específico. Tres casos determinan la revisión simulada:
El caso
suspicious deja reviewed_at en null. Úsalo para modelar un onboarding que sigue en revisión y comprobar cómo se comporta tu integración mientras espera una decisión.
Leer el resultado simulado
POST .../submit devuelve 200 OK con status en submitted y reviewed_at en null, en ambos modos. La revisión simulada corre después de la respuesta, así que no tomes la respuesta del envío como el resultado de la revisión. Consulta el onboarding como se muestra en el paso 7, o escucha el evento de webhook.
Fintoc entrega entity.onboarding.approved y entity.onboarding.rejected a los endpoints de webhook registrados en modo test, y el evento lleva "mode": "test".
Webhook event
onboarding_process en object_name, que es el mismo objeto que la API devuelve con "object": "onboarding". El evento de rechazo lleva el mismo payload con "type": "entity.onboarding.rejected" y "status": "rejected".
Qué no simula el modo test
En modotest, Fintoc reproduce el resultado de la revisión y el webhook, y nada más del flujo de cumplimiento:
- Sin motivo de rechazo. Un onboarding rechazado no expone ningún campo que explique la decisión, ni en la API ni en el payload del webhook.
- Sin correos. Fintoc no envía ninguna notificación de envío a los representantes legales en modo
test.
Qué sigue
- Crea más cuentas para una
Entityaprobada. - Revisa El objeto Onboarding y los endpoints de onboarding en la referencia de la API.