rate_limit_exceeded
HTTP 429, type rate_limit_error.
Too many requests.
Why it happened
Rate limits protect payment processing from a burst that would otherwise degrade it for every account, including yours. Every response carries your current position against the limit, not just the ones that fail.
How to fix it
Wait for the reset and retry. The headers on every response tell you when. For example, with illustrative values:
RateLimit-Limit: 100
RateLimit-Remaining: 0
RateLimit-Reset: 1767225600
Retry-After: 30
RateLimit-Reset is the moment the window resets, as a Unix timestamp in seconds, not a number
of seconds to wait. Retry-After is sent on this refusal and is the number of seconds to wait.
Back off using these rather than a fixed sleep, and watch RateLimit-Remaining to slow down
before you are refused rather than after.
Retrying: safe to retry unchanged, with the same Idempotency-Key, once the window resets. A
rate-limited request is refused before its key is claimed.
Related codes
internal_error-- a failure on our sideidempotency_key_in_flight-- a retry that overtook its original