Skip to main content
Completa primero la guía de configuración de Business Accounts. Luego, sigue estos pasos para crear transferencias salientes:
  1. Configura las llaves de firma JSON Web Signature (JWS) y genera una firma JWS.
  2. Agrega fondos al root_account_number de la cuenta.
  3. Desde tu backend, crea una transferencia usando tu Secret Key y una firma JWS.
  4. Monitorea el estado de la transferencia.
El siguiente diagrama muestra cómo Fintoc interactúa contigo y con la contraparte que recibe el payout.

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 tu Account 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 header Idempotency-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 campo amount 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:
Las monedas se representan como enterosPor ejemplo, Fintoc representa MXN $10.29 como 1029.Puedes leer más sobre monedas aquí.
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.
En México, el objeto 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 campo amount es el mismo entero, 1869. Una solicitud exitosa devuelve la Transfer creada:
En Chile, el objeto 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.
Las transferencias entre cuentas de Fintoc no se dividenUna transferencia a otra cuenta de Fintoc se liquida de inmediato por el monto total, sin el límite de $7.000.000 CLP. La contraparte recibe una sola transferencia y no tiene partes que conciliar. Cuando tus proveedores, clientes o socios también tienen cuentas de Fintoc, todos los pagos entre ustedes llegan así.
  • Trabajas con una sola transferencia. La API devuelve un único Transfer con el amount total. 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 N a tu comment para que la contraparte pueda conciliar las partes. Por ejemplo, Factura 1042 se convierte en Factura 1042 2 de 3 en la segunda de tres partes. Sin comment, el comentario de la parte es solo 2 de 3. Para que el comentario de cada parte no supere los 40 caracteres, Fintoc trunca tu comment y deja espacio para el sufijo. Una transferencia dividida en 2 a 9 partes conserva los primeros 33 caracteres. El comment del Transfer queda tal como lo enviaste.
  • Tu saldo debe cubrir el monto total. Fintoc retiene el amount total 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 pending más tiempo que una transferencia simple.
La transferencia queda en 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 de pending, 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 evento transfer.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: