Proof Center · Limits

The real limits, and why each one is that number.

Every limit here is enforced by the same object the dashboard reads, so what is shown is what is applied. CONFIGURED_LIMIT != OBSERVED_CAPACITY: these are the policy the deployment enforces, not a measurement of how hard it can be pushed — that lives in your own project's test center.

Free Beta defaults. Free Beta defaults, as the deployed API reports them. A deployment may raise a default, and an operator may raise one limit for one subject, so these are defaults rather than guarantees. A count limit answers HTTP 409 (a standing count has no clock); a rate, window or concurrency limit answers HTTP 429.

Gateway

Request rate

LimitBeta defaultOn refusalWhy this number
Requests a second, per project5 req/sHTTP 429The whole deployment's measured safe sustained rate is 12.1 a second. Five lets two projects run flat out.
Burst, per project10 req/sHTTP 429Twice the sustained rate. The failure above the pool ceiling is a cliff, not a slope, so the burst is deliberately small.
Requests an hour, per project5,000 req/hrHTTP 429Roughly an eighth of the safe hourly rate, leaving headroom for every other project.
Requests in flight, per project4 concurrentHTTP 429The admission pool holds 64 slots and qualification called 22 of them safe. Four per project keeps many projects inside that.
Response bytes an hour, per project256 MiB/hrHTTP 429A window on egress, sized to the Beta host.

Gateway

Account shape

LimitBeta defaultOn refusalWhy this number
Organizations per account2 countHTTP 409One to work in and one to try something in. A third is a conversation, not a default.
Members per organization5 countHTTP 409Sized for a team evaluating the API, not for running an organization on it.
Projects per organization3 countHTTP 409A project's measured in-memory ceiling is 10.62 MiB. Three per org keeps a Beta population inside a gigabyte.
API keys per project5 countHTTP 409Rotation needs two live at once; five leaves room and still makes a leaked one easy to find.
Networks per project6 countHTTP 409Six networks carry a commercially available capability here. A seventh is an absence, not a limit.
Products per project2 countHTTP 409XRPC_NODE and XRPC_WALLET are the two products with availability here.
Capabilities on one key3 countHTTP 409Three methods are commercially available on this deployment.

Payments

Payments

LimitBeta defaultOn refusalWhy this number
Payment watches held, per project1,000 countHTTP 409Watches are held in memory and swept every acquisition pass. Well inside one pass's budget.
Payment watches active, per project200 concurrentHTTP 429An active watch costs upstream calls on every pass across every followed network.
Light acquisition interval12 seconds/passOne bounded read per followed session per pass. No block scan, no history, no local store.
Session late grace7 daysA payment arriving after the deadline is still recognized as a distinct standing, not silently dropped.
Merchant reference200 bytesHTTP 400An opaque reference echoed back on the session; bounded so it cannot become a store.

Payments

Webhooks and streams

LimitBeta defaultOn refusalWhy this number
Webhook endpoints, per project10 countHTTP 409Each endpoint is a destination this deployment retries against. Enough to route by environment.
Delivery attempts, per event6 attemptsSix attempts over roughly half an hour: base 1s, x4 backoff, capped at 15 minutes, with jitter.
Per-attempt timeout10 secondsA slow endpoint is a failed attempt, retried, not a held connection.
Signature timestamp tolerance5 minutesA signed delivery older than this is rejected by the receiver as a replay.
WebSocket subscriptions, per project32 concurrentHTTP 429Eight per connection across four connections.

Payments

Retention

LimitBeta defaultOn refusalWhy this number
Payment sessions365 daysSized to the Beta host's disk budget; bounded by record count as well as age.
Payments365 daysThe occurrence record behind a receipt is kept for a year.
Usage accounting90 daysOne metered event per request, kept a quarter.
Stream cursors7 daysA delivery cursor is short-lived state, not a warehouse.

What a limit is, and is not

A limit reached is not a failure.

Reached, not broken

LIMIT_REACHED != PRODUCT_DEFECT. A count limit answers 409 and a rate limit answers 429, each naming the limit, what is used, and when it resets.

Slowed, not weakened

RATE_LIMITED != SERVER_FAILURE. A rate limit is availability policy, never a worse answer to the question you asked.

Default, not promise

These are Beta defaults. A deployment may raise one, and an operator may raise one for one subject. Nothing here is priced or guaranteed.