Skip to main content

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.