Sandbox
What the sandbox returns, and where it deliberately behaves badly.
The sandbox returns structurally complete responses that match the production contract exactly. It is not live supplier data and does not represent real availability or real prices. What it is for is building and demonstrating the full flow before commercial agreements close.
Deliberate failures
A sandbox that only ever succeeds teaches you nothing. Specific inputs trigger the failure modes that will eventually happen in production, so you can build for them on purpose rather than discovering them on a Friday night.
| Trigger | Behaviour |
|---|---|
City code TMO | One supplier times out; the response comes back partial: true. |
Rate id ending _GONE | rate_no_longer_available on the rate check. |
Rate id ending _UP | price_changed, with the higher price in details. |
Client reference starting SLOW- | Booking call hangs past your timeout, then confirms — the unknown-outcome path. |
Client reference starting DUP- | Tests idempotent replay: call twice with the same key. |
Holder surname RATELIMIT | Returns 429 with a short Retry-After. |