Proposed defaults — pending product confirmation. The exact rate-limit values and header names below are aligned with industry conventions (AWS, GitHub, Stripe). Concrete numbers for the BlooBank Transactions Engine will be finalized before this page exits “Proposed” status.
How limits are applied
Limits are applied after authentication. An unauthenticated burst will fail with
SIGNATURE_INVALID long before it consumes quota.
When you exceed a limit
The API returnsHTTP 429 with error.status: "RESOURCE_EXHAUSTED":
Retry-After HTTP header carrying the same hint as metadata.retry_after_seconds.
Recommended response
1
Honor Retry-After when present
Use either the
Retry-After header or details[0].metadata.retry_after_seconds. Wait at least that long before retrying.2
Apply exponential backoff with jitter
For repeated
RESOURCE_EXHAUSTED (or in absence of Retry-After), back off exponentially: min(2^attempt × base_delay, max_delay) and add full jitter.3
Bound your retries
Three attempts is a reasonable default. After that, surface the failure to the caller — escalating without backoff would compound the throttling.
4
Keep `idempotencyKey` stable across retries
Throttled creates should retry with the same
idempotencyKey so a partially-succeeded request is not duplicated. See Idempotency.Backoff reference
A canonical exponential backoff with full jitter (AWS guidance):What does not count against quota
- Failed authentication (
SIGNATURE_INVALID,TIMESTAMP_SKEW_EXCEEDED,REPLAY_DETECTED). These are rejected at the edge and do not consume per-endpoint quota — but they do consume an authentication-attempt quota with its own (more permissive) limit. - Webhook acknowledgements (your
2xxresponse to a delivery). Webhooks are server→you; no quota applies on the return path.
Best practices
Increasing your limit
Per-credential limits are configurable for production workloads. To request an increase, contact your BlooBank account team with:- Your
X-Access-Key(the credential needing the bump). - The endpoint(s) and target rate.
- A brief description of the workload (steady vs. bursty, peak hours, etc.).
Next
Retry strategy
Backoff for
UNAVAILABLE and RESOURCE_EXHAUSTED in detail.Webhooks
Reduce polling — receive state changes by push.