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.Handling 429
code is the string "429". Branch on the HTTP status.
Back off exponentially with jitter, and cap the number of attempts.
Staying under the limit
Do not poll for payment status
Do not poll for payment status
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.Create links on demand, not in advance
Create links on demand, not in advance
A link created when the customer reaches checkout is one request. Pre-generating batches multiplies request volume for links that may never be used.
Use one key per service
Use one key per service
Separate keys give each integration its own budget, and let you revoke one without taking down the rest.
Cache what does not change
Cache what does not change
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.