La API de Fintoc soporta idempotencia para reintentar solicitudes de forma segura sin realizar accidentalmente la misma operación dos veces. Esto puede ser muy útil al crear Charges, Payment Intents, Transfers o cualquier otro recurso que quieras evitar crear dos veces debido a problemas de red.
Si ocurre un error de conexión al crear un objeto junto con una idempotency key, puedes repetir la solicitud de forma segura sin riesgo de crear un segundo objeto.
Para realizar una solicitud idempotente, agrega a la solicitud un header adicional Idempotency-Key: <idempotency-key-value>.
Una idempotency key es un valor único generado por el cliente que el servidor usa para reconocer reintentos posteriores de la misma solicitud. La forma de crear claves únicas depende de ti, pero sugerimos usar UUID V4 u otro string aleatorio con suficiente entropía para evitar colisiones. Las idempotency keys pueden tener hasta 255 caracteres de largo.
La idempotencia de Fintoc funciona guardando el código de estado y el cuerpo de la primera solicitud realizada para una idempotency key dada, sin importar si tuvo éxito o falló. Las solicitudes posteriores con la misma clave devuelven el mismo resultado, incluidos los errores 400 y 500.
Se requiere autenticaciónSi la solicitud entrante falló la autenticación, no se guarda ningún resultado idempotente, ya que ningún endpoint de la API comenzó a ejecutarse.
La capa de idempotencia compara los parámetros entrantes con los de la solicitud original y arroja un error a menos que sean iguales, para evitar un mal uso accidental.
Las claves pueden ser eliminadas automáticamente del sistema una vez que tienen al menos 24 horas de antigüedad, y se genera una nueva solicitud si una clave se reutiliza después de que la original haya sido purgada.
Todas las solicitudes POST aceptan idempotency keys. Enviar idempotency keys en solicitudes GET y DELETE no tiene efecto, ya que estas solicitudes son idempotentes por definición.
A continuación puedes ver un ejemplo de creación de un charge que permite reintentar la solicitud evitando cualquier riesgo de duplicar el charge.