Rate limits and 429
When you exceed a rate limit, PayShare returns 429 Too Many Requests with code: "RATE_LIMIT_EXCEEDED" and a message such as "Rate limit exceeded. Please try again later."
When you might see 429
- Session creation / merchant API: Too many create-session requests per minute per integration (e.g. creating many sessions in a short burst). Stay under roughly 100/min per integration.
- Status polling: The pay page polls
GET /api/payments/unified?sessionId=...to know when payment is done. If the same session is polled very frequently (e.g. multiple tabs, intervals under 1 second), the per-session limit can be hit.
What to do
- Session creation: Throttle requests; avoid creating hundreds of sessions per minute.
- Status polling: If you build your own pay UI, do not poll more than about once per second per session. When you receive 429, back off (e.g. 5–10 seconds) before retrying.
- Always honour
Retry-Afterif we send it; otherwise retry after 2–5 seconds.
Response: 429 Too Many Requests with body { "success": false, "code": "RATE_LIMIT_EXCEEDED", "message": "Rate limit exceeded. Please try again later.", "requestId": "..." }. Headers may include X-RateLimit-Remaining, X-RateLimit-Reset.
See: Error codes