The sections below highlight key functional areas the exhibit the same behaviors in both the Sandbox and Live environments.
The Upvest system is event driven therefore object status propagation is never instant (i.e when you create an account or account group). Kindly take note that aspects like object status propagation are not instant in either environment. Propagation speed may differ between Sandbox and Live, so integrations should not assume instant availability.
In both environments, clients should implement webhooks to easily and efficiently receive event updates. Webhooks allow your software to automatically receive event data without the need to poll for updates.
The Upvest API is asynchronous, therefore operations of different event types can happen independently and may complete at different times. For example, EXECUTION events and ORDER events can occur in any order. This means that even if Event A logically happens before Event B, the webhook notifications might arrive in reverse order due to network delays, system load, or processing differences.
For example, in a trading system: An EXECUTION.FILLED event (trade completed) might logically happen first. But the ORDER.FILLED event (order status updated) webhook could arrive at your system first.
As best practice, your design should implement payload-based logic using:
- state fields to determine current status
- timestamps to understand chronological order
- identifiers to match related events
This approach ensures your system works correctly regardless of webhook delivery sequence.
Webhooks behave the same across both environments where events may be batched together and delivered in no guaranteed order for different webhook types. If your system doesn’t acknowledge them (HTTP 200), we’ll retry with exponential backoff.
For that reason, it’s important to make your webhook handler able to repeated message attempts and maintain an event log so you don’t process the same event twice.
In Sandbox, webhook subscriptions that continuously fail for 30 days may be automatically removed, while in Live subscriptions remain active.