Fintoc-Signature. Este header te permite verificar que cada evento recibido fue, de hecho, enviado por Fintoc y no por un tercero.
Fintoc genera un secreto que se muestra solo una vez al momento de registrar un endpoint de Webhook. Este secreto es necesario para validar la firma de Fintoc de cada evento.
Verifica que los eventos sean enviados por Fintoc
Cada evento enviado por Fintoc incluye el headerFintoc-Signature. La estructura del header es la misma para cada evento. Contiene un timestamp denotado por la clave t y una firma denotada por la clave v1. Aquí hay un ejemplo de un header Fintoc-Signature:
Validar la firma usando nuestro SDK
Si estás usando Python o Node, la forma más fácil de verificar las firmas de los webhooks es con nuestro SDK de Python o SDK de Node.Python
Node
Validar la firma usando tu propio código
Si quieres escribir tu propia implementación o usar un lenguaje de programación distinto, sigue estos pasos:Extraer el timestamp y la firma del header
Divide el headerFintoc-Signature en un arreglo usando el carácter ,. Luego, divide cada elemento del arreglo generado usando el carácter = para obtener un par clave-valor. Finalmente, obtén los valores correspondientes a cada clave.
Reconstruir el mensaje firmado
El mensaje que Fintoc firmó antes de enviar el webhook corresponde al timestamp concatenado a un carácter. y al body sin procesar de la solicitud. Reconstruyamos ese mismo mensaje usando el timestamp que acabamos de extraer del header Fintoc-Signature y el body sin procesar de la solicitud.
message debería tener sería el siguiente:
Generar la firma
Ahora que tienes el mensaje que necesita ser firmado, hagamos justamente eso, usando la función hash SHA-256 y el secreto generado al crear el endpoint de webhook.Comparar las firmas
Finalmente, comparemos la firma que extrajimos del headerFintoc-Signature con la que recién obtuvimos siguiendo los pasos de la guía. Si ambas firmas coinciden, entonces puedes asumir que el evento fue, de hecho, enviado por Fintoc.