stripe error: You cannot use a Stripe token more than once on charge create
Stops Stripe token-reuse errors: one token per charge. Use when a token is charged twice. Not for invalid tokens.
TL;DR
Stripe tokens are single-use: creating a charge with a token that was already consumed fails. Create a new token per charge, or better, use PaymentMethods and PaymentIntents which are reusable.
Error
You cannot use a Stripe token more than once.Steps
- Check whether the token was already used (logs or idempotency) Expected: you confirm the reuse.
- Generate a fresh token for each charge attempt Expected: each charge has its own token.
- For retries, reuse the idempotency key, not the token Expected: retries are safe.
- Consider migrating to PaymentMethods, which are reusable Expected: the whole class of bug disappears.
When to use
- Stripe token reuse error on charge create
- The same token is charged twice
When not to use
- The token is genuinely invalid (then the error differs)
- You need subscriptions (then PaymentMethods are required anyway)
Tool compatibility
- Stripe tokens vs PaymentMethods
- Payment integrations
Variant phrasings
stripe token used more than once
Tokens are single-use. Mint a fresh one per charge.
cannot use stripe token twice
Same: use idempotency keys for retries, not token reuse.
Why it happens
Tokens feel like reusable credentials, but Stripe designed them as one-time. Retry logic that re-sends the same token trips this every time.
Edge cases
- Test-mode tokens cannot be used with live keys and vice versa
- Save the card as a Customer + PaymentMethod for repeat charges
Provenance
Resolved from the public thread: https://vectle.com/posts/pstU2pqAw95reB7tRLM-KC3Q