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 de clientes en Chile y México. Esta guía cubre el tipo account_holder, que abre una empresa como titular de cuenta. Una Entity que solo recibe su parte de los pagos divididos usa el tipo settlement_recipient. Revisa Aceptar pagos divididos.data, los slots de documentos y el formato del número de cuenta. Los onboardings chilenos no tienen documentos de accionistas, así que se saltan el paso 5.
Antes de comenzar
Necesitas una secret key del Dashboard, en Developers → API keys. La secret key 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.
Tu organización también necesita su propia Entity raíz (con is_root en true) en el mismo modo que la clave que envías. Fintoc verifica este requisito cuando creas una Entity para un cliente. Para hacer el onboarding de clientes en live, tu organización necesita una Entity raíz en live. Para construir en test, tu organización necesita una Entity raíz en test.
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 identificador fiscal. El tipo account_holder solo admite empresas, así que holder_id debe identificar a una empresa.
- Chile
- México
Configura Fintoc guarda el RUT sin puntos ni guion. Un RUT de persona natural crea la
country_code con cl y holder_id con el Rol Único Tributario (RUT) de la empresa. holder_id es obligatorio y debe ser un RUT válido, con o sin puntos y guion. Un RUT inválido devuelve 400 Bad Request con el código invalid_holder_id.Entity, pero crear su onboarding account_holder devuelve 422 Unprocessable Entity con el código holder_type_not_supported.Entity (ent_...), porque cada llamada del onboarding usa este valor. Revisa El objeto Entity para ver la lista completa de atributos.
Si tu organización no tiene una Entity raíz en el modo de tu clave de API, Fintoc rechaza la solicitud con 422 Unprocessable Entity, type en invalid_request_error y code en organization_without_operational_root_entity:
Error response
Entity raíz en ese modo, contacta al soporte de Fintoc antes de crear objetos Entity para clientes.
Paso 2: Crear el onboarding
ElOnboarding contiene la revisión de conocimiento del cliente de una Entity. La revisión cubre la empresa, sus representantes legales, su perfil transaccional y sus accionistas. Crea un onboarding por Entity.
El cuerpo de la solicitud tiene dos campos de primer nivel, ambos obligatorios. Envía type en account_holder, el tipo que cubre esta guía. El otro valor aceptado, settlement_recipient, tiene su propio flujo en Aceptar pagos divididos. Envía los datos de la revisión en data. Las claves de data dependen del país de la Entity, y todas son obligatorias. Revisa Onboarding de account holder para ver cada campo, valor de enum y regla de validación.
Omitir type o data devuelve 400 Bad Request con el código missing_parameter. Un type que no esté entre los valores aceptados devuelve 400 Bad Request con el código invalid_enum. El mensaje de error indica los valores aceptados.
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.
- Chile
- México
Un onboarding chileno envía siete claves en Cuatro detalles a tener en cuenta en la respuesta chilena:
data: company_basics, company_information, senior_management, legal_representatives, shareholders, transactional_profile y plaft.documentsdepende decompany_basics.incorporation_type. Una empresatraditionalabre los slots de arriba. Unaone_day_company(Empresa en un Día) abrecurrent_shareholders_certificateen lugar deactivities_start_certificateygood_standing_certificate.documentssiempre listauaf_registration_certificateyplaft_manual_and_policies. Solo los subes cuandoplaft.uaf_obligatedestrue.- Cada representante legal tiene su propio arreglo
documentscon dos slots: el anverso y el reverso del documento de identidad. - Cada accionista tiene
documentennull, porque Chile no exige un documento por accionista.
identification_number del representante legal y el holder_id de los accionistas llevan un RUT cuando nationality es cl. Un representante legal extranjero usa su número de pasaporte.Response (abridged) muestra solo los campos que cambian en ese paso, no el objeto completo. La respuesta completa también devuelve data, que repite los datos de cada paso que enviaste, salvo legal_representatives y shareholders. Cada representante legal y accionista también incluye los campos de identidad de la solicitud. Revisa El objeto Onboarding para ver la estructura completa.
Tres detalles aplican en ambos países:
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.- Un accionista de tipo
legal_entitypuede incluirchildrenanidados.
Paso 3: Subir los documentos de la empresa
Sube un archivo a cada slot de documento de la empresa del arreglodocuments con PUT .../documents/{slot_key}. Envía el archivo como multipart/form-data en el campo file. El tamaño máximo del archivo es 20 MB.
Un slot acepta un archivo o múltiples archivos. En un slot de un solo archivo, PUT reemplaza el archivo existente. En un slot multiarchivo, PUT agrega un archivo y conserva los que ya subiste. Revisa Administrar los archivos de un slot.
- Chile
- México
Cada slot de la empresa chilena acepta solo Repite el proceso para cada slot obligatorio restante. Agrega los archivos de
application/pdf. Los slots que debes completar dependen de los datos que enviaste en el paso 2:Un
PUT a un slot que el onboarding no abre, como current_shareholders_certificate en una empresa traditional, devuelve 422 Unprocessable Entity con el código unknown_document_slot.incorporation_amendments y plaft_manual_and_policies de a uno, como muestra Administrar los archivos de un slot.422 Unprocessable Entity con el código unsupported_content_type. El mensaje de error lista los tipos de contenido que acepta el slot.
Administrar los archivos de un slot
El arreglodocuments devuelve una entrada por cada archivo subido. Cada entrada subida lleva su propio id. Un slot multiarchivo con tres archivos aparece tres veces en documents, una vez por archivo, con el mismo slot_key. Un slot sin archivos aparece una vez, con status en missing y sin id.
Para agregar un archivo a un slot multiarchivo, llama a POST .../documents/{slot_key} con el mismo cuerpo multipart/form-data que PUT. El ejemplo usa incorporation_amendments, un slot multiarchivo de un onboarding chileno que acepta solo application/pdf. Un onboarding account_holder mexicano no tiene slots multiarchivo:
POST en un slot de un solo archivo devuelve 422 Unprocessable Entity con el código single_file_document_slot. Usa PUT para reemplazar el archivo de un slot de un solo archivo.
Para eliminar un archivo, llama a DELETE .../documents/{slot_key}/{document_id} con el id del archivo del arreglo documents:
POST y DELETE devuelven el onboarding actualizado. Un id que no pertenece a ese slot devuelve 404 Not Found con el código missing_resource. Una vez que envías el onboarding, ya no puedes agregar ni eliminar archivos.
Para reemplazar un archivo de un slot multiarchivo, llama a DELETE para ese archivo y luego a POST con el archivo nuevo.
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. Los dos slots dependen del país:
- Chile
- México
Sube el anverso y el reverso del documento de identidad como dos archivos. En Chile, la personería no es un slot del representante legal. Súbela al slot de la empresa
power_of_attorney en el paso 3.422 Unprocessable Entity con el código unknown_document_slot. El ejemplo sube el slot mexicano identification. Un onboarding chileno usa la misma ruta con identification_front o identification_back.
Paso 5: Subir el documento de cada accionista
Solo los onboardings mexicanos exigen un documento por accionista. Un onboarding chileno se salta este paso: cada accionista chileno tienedocument en null, y subir un archivo a ese accionista devuelve 422 Unprocessable Entity con el código shareholder_document_not_required.
En México, cada accionista declarado necesita un documento. Usa el id 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.
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.
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
- Estado de Empresa en un Día. Cuando
incorporation_typeesone_day_company, Fintoc verifica que el RUT de la empresa esté registrado como Empresa en un Día. Si la empresa no lo está, o Fintoc no puede confirmarlo, la llamada devuelve el códigonot_one_day_companyconparamenincorporation_type. Si el registro rechaza el RUT de laEntitypor inválido, la llamada devuelve el códigoinvalid_rutconparamenrut. - Controlador efectivo. Al menos un accionista debe tener
effective_controllerentrue. Si no, la llamada devuelve el códigoeffective_controller_requiredconparamenshareholders.
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. Cada evento lleva el onboarding revisado completo, incluidos los datos de cada paso en
data, los documents y los legal_representatives y shareholders declarados, así que no necesitas llamar a la API para leer lo que Fintoc revisó. Revisa el payload de onboarding de una Entity.
No puedes reintentar un onboarding rechazado con la API. Crear un onboarding nuevo para la misma Entity devuelve 409 Conflict, como explica el paso 2. Fintoc puede volver a revisar un onboarding rechazado y aprobarlo, así que tu handler puede recibir entity.onboarding.approved después de entity.onboarding.rejected para el mismo onboarding. Revisa Reintentar tras un rechazo.
Si no usas webhooks, consulta el onboarding directamente:
status para seguir el onboarding. Una vez que status es approved, la Entity está lista para operar.
Paso 8: Obtener la cuenta principal
Cuando el onboarding llega aapproved, Fintoc crea la Account principal de la Entity con estado active, junto con su account number raíz. No necesitas crear la Account principal. Antes de la aprobación, la Entity no tiene ninguna Account, así que ninguna Account queda nunca en pending.
Ambos modos funcionan igual: un onboarding test aprobado crea una Account principal en test, y un onboarding live aprobado crea una en live.
Lista las cuentas de la entidad para obtener la Account principal y guarda el id (acc_...) y el root_account_number de ese cliente. El formato del número de cuenta y la moneda dependen del país:
- Chile
- México
Una
Account principal chilena mantiene CLP, y su root_account_number es un número de cuenta bancaria chileno.Crear cuentas adicionales
LaAccount principal basta para enviar y recibir dinero. Crea más objetos Account bajo la misma Entity cuando el cliente necesite saldos separados, uno por centro de costo. 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.
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 obligatorio y envía el onboarding. Confirma que submittable pasa a true solo después de que cada slot obligatorio 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 un valor mágico de los datos que enviaste. Este mecanismo funciona como un número de tarjeta de prueba: un valor mágico fuerza un resultado específico. El campo que lleva el valor depende del país:
- Chile
- México
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.
Un onboarding test sigue la misma regla de uno por modo, así que después de un rechazo simulado la Entity no puede iniciar un nuevo onboarding test. Para repetir el flujo, crea otra Entity.
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 (abridged)
data del evento lleva el onboarding revisado con los mismos campos que el objeto Onboarding, salvo submittable. También mantiene object_name y entity por compatibilidad hacia atrás. El ejemplo muestra un onboarding mexicano y recorta data, legal_representatives, shareholders y documents. Revisa el payload de onboarding de una Entity para ver el payload completo. El evento de rechazo lleva el mismo payload, con el type del evento en entity.onboarding.rejected y data.status en 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
- Onboarding de account holder para el esquema de
datay los slots de documentos del tipoaccount_holder, en Chile y México. - Requisitos de KYC en Chile y Requisitos de KYC en México para los documentos que revisa el equipo de cumplimiento de Fintoc.
- Crea más cuentas para una
Entityaprobada. - Revisa El objeto Onboarding y los endpoints de onboarding en la referencia de la API.