- Configura las llaves de firma JSON Web Signature (JWS) y genera una firma JWS.
- Agrega fondos al
root_account_numberde la cuenta. - Desde tu backend, crea una transferencia usando tu Secret Key y una firma JWS.
- Monitorea el estado de la transferencia.

Paso 1: Configurar las llaves de firma JWS y generar una firma JWS
Cada solicitud a los endpoints de la API de Business Accounts de Fintoc requiere una firma JWS. JWS es un mecanismo estándar utilizado para firmar digitalmente una pieza de datos con el fin de garantizar su integridad y autenticidad. Para aprender a firmar una llamada a la API, sigue los pasos de la guía de firma JWS.Paso 2: Agregar fondos a Fintoc
Para crear transferencias, primero fondea tuAccount agregando fondos al root_account_number. El depósito aparece como una transferencia entrante.
Paso 3: Crear una transferencia
Después de agregar fondos a tu cuenta, crea una transferencia desde tu backend. Incluye tu Secret Key de prueba, firma JWS, cuenta de origen, monto, moneda y contraparte. Los ejemplos siguientes muestran respuestas exitosas de transferencia. Para probar resultados fallidos, usa la tabla de estados terminales en la sección Probar la integración más abajo.Usa una clave de idempotencia
Fintoc admite idempotencia para reintentar transferencias de manera segura sin crear una transferencia duplicada. Al crear una transferencia, usa una clave de idempotencia. Si ocurre un error de conexión, repite la solicitud de manera segura. Para realizar una solicitud idempotente, proporciona un headerIdempotency-Key en la solicitud. Aprende más sobre solicitudes idempotentes en esta guía.
Crear una transferencia para México 🇲🇽
A continuación se muestra un ejemplo que crea una transferencia de $590.13 MXN. El campoamount está en la unidad mínima de la moneda, por lo que $590.13 es el entero 59013. Una solicitud exitosa devuelve la Transfer creada:
Recuerda agregar el
institution_idAl transferir a una CLABE, no es necesario un institution_id de contraparte. Fintoc deduce la institución a partir del número de CLABE. Si tu contraparte es un número de teléfono móvil o una tarjeta de débito, incluye el institution_id como un número de 5 dígitos, como se muestra aquí. De lo contrario, obtendrás un error 400 Bad Request.Counterparty requiere un atributo:
Crear una transferencia para Chile 🇨🇱
A continuación se muestra un ejemplo que crea una transferencia de $1,869 CLP. Como CLP no tiene unidad menor, el campoamount es el mismo entero, 1869. Una solicitud exitosa devuelve la Transfer creada:
Counterparty requiere cinco atributos:
Transferencias grandes en Chile
Algunos bancos chilenos limitan las transferencias entrantes a $7.000.000 CLP. Para enviar más, crea una sola transferencia por el monto total. Fintoc divide toda transferencia saliente sobre $7.000.000 CLP en partes de hasta $7.000.000 CLP, sin importar el banco de la contraparte, y envía cada parte a la contraparte.- Trabajas con una sola transferencia. La API devuelve un único
Transfercon elamounttotal. Los webhooks, el comprobante y el movimiento de la cuenta pertenecen a esa transferencia. Las partes no aparecen en la API. - La contraparte recibe una transferencia por cada parte. Cada parte es de $7.000.000 CLP, salvo la última, que puede ser menor. Por ejemplo, $15.000.000 CLP llegan como $7.000.000, $7.000.000 y $1.000.000 CLP.
- El comentario de cada parte indica su posición. Fintoc agrega
X de Na tucommentpara que la contraparte pueda conciliar las partes. Por ejemplo,Factura 1042se convierte enFactura 1042 2 de 3en la segunda de tres partes. Sincomment, el comentario de la parte es solo2 de 3. Para que el comentario de cada parte no supere los 40 caracteres, Fintoc trunca tucommenty deja espacio para el sufijo. Una transferencia dividida en 2 a 9 partes conserva los primeros 33 caracteres. ElcommentdelTransferqueda tal como lo enviaste. - Tu saldo debe cubrir el monto total. Fintoc retiene el
amounttotal al crear la transferencia. Si tu saldo es menor, la solicitud falla y Fintoc no envía ninguna parte. - Las partes salen una tras otra. Una transferencia dividida queda en
pendingmás tiempo que una transferencia simple.
pending hasta que todas las partes terminan. Una parte puede fallar si, por ejemplo, el banco de la contraparte se cae mientras Fintoc todavía está enviando las partes. Cuando todas las partes terminan, la transferencia llega a uno de estos estados:
Fintoc devuelve a tu saldo disponible el monto de cada parte que no se liquida, y no reintenta esas partes. Para enviar el resto de una transferencia
partially_succeeded, crea una nueva transferencia por amount menos settled_amount.
Para recibir una notificación cuando una transferencia dividida llega a
partially_succeeded, suscribe tu webhook endpoint a transfer.outbound.partially_succeeded.Paso 4: Monitorear el estado de la transferencia
Flujo de estados de la transferencia
El estado de una transferencia es uno depending, succeeded, failed, returned, return_pending, rejected o reject_failed. Las transferencias chilenas suman partially_succeeded, reverse_pending y reversed. Para más detalles sobre los estados de transferencia, consulta el modelo de datos de Transfer.
Monitorear el estado usando webhooks
Fintoc envía un eventotransfer.outbound.succeeded cuando la transferencia se liquida. Usa la guía de webhooks para recibir estos eventos y ejecutar acciones, como enviar un correo de notificación a tu cliente o registrar la transferencia en tu ERP.
Suscribe tu webhook endpoint a estos eventos y maneja cada uno, incluido transfer.outbound.partially_succeeded si envías transferencias chilenas sobre $7.000.000 CLP:
Los webhooks pueden llegar en desordenPor ejemplo: un evento de webhook
transfer.outbound.rejected podría llegar antes que el webhook transfer.outbound.succeeded de la misma transferencia, aunque la transferencia primero haya tenido éxito y luego haya sido rechazada.Probar la integración
Usa tu Secret Key de prueba (sk_test_...) para ejecutar transferencias en modo test sin mover dinero real. Cada respuesta incluye "mode": "test".
En modo test, una transferencia alcanza los mismos estados terminales que en producción. El resultado no se fuerza mediante una entrada predefinida. Depende de cómo la parte receptora resuelva la transferencia. Usa estos estados terminales para confirmar tu manejo de webhooks: