Skip to main content
Requests are rate limited per API key and per source IP — whichever limit is reached first applies. Exceeding either returns 429.

Why two limits

A per-key limit protects the account from one runaway integration. A per-IP limit protects the API from a host running many keys.
Sharing one outbound IP across several keys means the IP limit can bite before any individual key’s limit does. If you run multiple integrations from one host, budget against the IP.

Handling 429

The code is the string "429". Branch on the HTTP status. Back off exponentially with jitter, and cap the number of attempts.
Retrying immediately on 429 makes it worse. Every rejected request still counts.

Staying under the limit

GET /v1/payment-link is for reconciliation, not for watching a single link. Polling one link in a tight loop is the fastest way to a 429.Poll on a sensible interval — seconds, not milliseconds — and back off when nothing has changed.
Separate keys give each integration its own budget, and let you revoke one without taking down the rest.
A created link’s id and url never change. Store them rather than re-reading them.

Next

Errors

Which codes retry.

Pagination

Paging without hammering.

Moove API Keys

One key per service.