Skip to main content
Sandbox publishes no real corporate actions. Instead, one endpoint runs scripted scenarios on any of your tokens, so you can exercise your webhook handler, the event list and the state queries end to end, in minutes.

What sandbox has

  • Your tokens: sandbox CETs linked to your account, one per chain deployment. GET /tokens lists them; use any of them below.
  • Real market status. A token’s marketStatus follows the real underlying market, so outside US market hours you read CLOSED with PRE_MARKET or POST_MARKET, as in production.
  • A webhook endpoint registered by your Securitize contact, with its signing secret. Point it at your sandbox handler.
  • Scenarios that create corporate actions marked as sandbox tests. They are never executed: no dividend is paid, no multiplier changes.

Trigger a scenario

Every step runs at once, in order. The run acts on the asset of the token, so its events are published on every token stream of that asset you hold: with the asset deployed on two chains you receive each event twice, once per stream, with a different sourceEventId and sequence.

The scenarios

What to check after a run

  1. Every step reached your endpoint, signed, and you answered 2xx. Compare with the event list: GET $EVENTS/events?since=<the run's first executedAt> (the webhooks base URL, see Replay and recover) returns the same sourceEventIds.
  2. Order came from sequence, not from arrival. Deliveries are parallel: the ca.action.completed of a lifecycle can arrive before its ca.action.updated. Sort what you received by stream.id and sequence and the scenario’s order appears.
  3. Each object ended in the right state. GET /corporate-actions/{sourceCaId} after CASH_DIVIDEND_LIFECYCLE is version 5, COMPLETED, with settlement; after CA_CANCELLED, CANCELLED with cancellationReason; after CA_SUPERSEDED, the old one is CANCELLED with supersededByCaId set.
  4. A restriction changed the status. During RESTRICTION_LIFECYCLE, GET /tokens/{tokenId}/status reads UNAVAILABLE with reason OTHER and one entry in activeRestrictions; after ca.restriction.removed, it is back to the market’s status. The scenario runs in a second, so read the status from the events rather than by polling.
  5. Duplicates were harmless. Run POST /events/recover over the window and confirm that nothing in your state changed.

Sandbox differences

  • Scenarios run at once; in production, the steps of a corporate action are days or weeks apart.
  • Sandbox corporate actions are marked as tests in description and are never executed.
  • Unknown-scenario requests answer 400; a token outside your account answers 404 TOKEN_NOT_FOUND, as in every other call.