Finalizar una transferencia

Notificación síncrona (Widget)

Cuando se termina de realizar una transferencia el widget ejecuta el callback onSuccess. Está función la defines en la configuración del widget.

Con está función puedes decidir qué hacer con el usuario, por ejemplo:

  • redireccionarlo a una página post venta o post transferencia
  • notificarle a tu servidor que la transferencia fue realizada con éxito (validando con un request a Fintoc)

📘

No debes confiar en el onSuccess como una validación de pago exitoso, ya que el frontend es un lugar inseguro donde tu usuario podría ejecutar alguna función de javascript para simular que una transferencia se realizó.

En caso de querer validar, recomendamos que al ejecutarse un onSuccess, se notifique al servidor y desde el servidor se llame a GET PaymentIntent para verificar si el estado del pago es succeeded

Notificación asíncrona (Webhooks)

Para suscribirse a los eventos de Fintoc, debes seguir la guía de webhooks y configurarlos.

Cuando una transferencia es completada, marcada como fallida o rechazada Fintoc envía una evento de tipo payment_intent que se ve así:

{
  "id": "evt_a4xK32BanKWYn",
  "object": "event",
  "type": "payment.succeeded",
  "data": {
    "id": "pi_BO381oEATXonG6bj",
    "object": "payment_intent",
    "amount": 1000,
    "status": "succeeded",
    "widget_token": null,
    "currency": "CLP",
    "reference_id": "90123712",
    "recipient_account": {
      "holder_id": "183917137",
      "number": "123456",
      "type": "checking_account",
      "institution_id": "cl_banco_de_chile"
    },
    "sender_account": {
      "holder_id": "192769065",
      "number": "123456",
      "type": "checking_account",
      "institution_id": "cl_banco_estado"
    },
    "created_at": "2021-10-15T15:23:11.474Z",
  }
}

Existen 3 tipos de eventos para pagos:

Evento

Explicación

payment_intent.succeeded

Evento que se ejecuta cuando una transferencia es validada como exitosa.

payment_intent.failed

Evento que se ejecuta cuando una transferencia falla debido a un problema del banco o de Fintoc.

payment_intent.rejected

Evento que se ejecuta cuando una transferencia es rechazada por el usuario. Rechaza el MFA o ingresa incorrectamente el MFA.