Skip to content
TrackJet

7-day Pro trial included with every new account — no card, no charge.

Start free with 500 saved shipments. Every new account also gets a 7-day Pro trial — no card required.

Start 7-day Pro trial

The deterministic sandbox

TJTEST-* fixtures for every lifecycle — pin your integration tests on byte-stable responses.

Why a deterministic sandbox

Integration tests that depend on a real parcel are flaky by construction. TrackJet reserves the TJTEST- prefix for synthetic, byte-stable fixtures: same request, same response, forever — safe to pin in your test suite.

The catalogue

| Number | Scenario | | --- | --- | | TJTEST-DELIVERED | Full happy path ending delivered | | TJTEST-IN-TRANSIT | Mid-journey, latest event in_transit | | TJTEST-EXCEPTION | Carrier exception (damaged label) | | TJTEST-CUSTOMS-HOLD | Held at customs awaiting duties | | TJTEST-RETURNED | Refused and returned to sender | | TJTEST-STALE | No scans for 14 days — exercise staleness logic | | TJTEST-NOT-FOUND | Always "no data" — exercise the empty state |

Any other TJTEST-* number answers with this catalogue, so the sandbox documents itself.

Properties you can rely on

  • sandbox: true in every payload — impossible to mistake for production data.
  • Timestamps are deliberately in 2030 so they can never be confused with real events.
  • The prefix cannot collide with a real format: no carrier scheme admits it.
  • Real numbers are never intercepted by the sandbox.

Webhook dry-runs

Pair the fixtures with POST /api/v1/webhooks/{id}/test ([webhooks](/docs/webhooks)) and your CI can prove the whole loop — request, signature, receiver — without a single real shipment.