Production API
Polling and safe retries
Retry safely, respect Retry-After, act the moment energy_usable turns true, and stop polling only when both final flags are true.
On this page
Rentron does not send webhooks or callbacks. GET /v1/energy/orders/{id} is the source of truth.
Recommended polling
After creation, poll Location after 1, 2, 5 seconds, then every 10 seconds. Add small jitter when tracking many orders concurrently.
Send your own transaction as soon as energy_usable turns true — the Energy is on the address by then. Keep polling after that, and stop only when lifecycle_final === true and delivery_final === true.
Retry matrix
| Result | Action |
|---|---|
| Network error / GET timeout | Retry with backoff. |
| Order POST timeout | Replay the exact body and client_request_id. |
429 |
Wait the seconds specified by Retry-After. |
500 / 503 on GET |
Retry with backoff and jitter. |
400, 413, 415 |
Fix the request; automatic retry cannot help. |
401 |
Fix the credential, signature, timestamp, or IP allowlist. |
409 idempotency conflict |
Stop and investigate reused client IDs. |
Three signals: one to act on, two to stop on
energy_usable is the one you act on. It turns true in available, about a minute before delivered, and means the Energy is on the address and spendable. Waiting for delivered only spends rental time you have already paid for.
delivery_final and lifecycle_final are the ones you stop on. delivery_final finishes the delivery attempt and stays false while available, because the delivery is not yet independently proven. lifecycle_final finishes the rental duration: after a successful delivery an order remains active until rental_finished. Stopping on energy_usable, on one flag, or on one status ends the loop too early.
Rate limits
Limits are applied separately to public time, authenticated traffic, and order creation. Do not guess limit values; treat 429 and Retry-After as the contract.
Rentron