Concepts
Sandbox
Test keys in a copy of your organization, and the calls that play review and the stores.
A sandbox key (sm_test_…) works in a copy of your organization, made the first time the key is used. Everything the API does works there, and nothing leaves it: nothing reaches review, the stores, payouts or anyone's inbox, and its webhooks say "livemode": false.
Playing review and the stores#
In production, people review releases and the stores put them live. In the sandbox you play those parts yourself, and each step raises the same webhooks and events the real one does.
| Call | What it plays |
|---|---|
POST /sandbox/releases/{id}/review | Review: { "decision": "APPROVE" }, or REQUEST_CHANGES / REJECT with a note the label reads |
POST /sandbox/releases/{id}/deliver | The stores: { "outcome": "LIVE" } gives the release a UPC, ISRCs and store links; REFUSED_BY_STORES with a reason refuses it |
POST /sandbox/royalties | A month of royalties (month, gross): a published statement and the balance credited |
POST /sandbox/payouts/{id}/pay | Pays a payout request |
POST /sandbox/reset | Deletes everything in the sandbox: { "confirm": true } |
curl https://api.stillmoregroup.com/api/v1/sandbox/releases/<release id>/review \
-H "Authorization: Bearer $STILLMORE_TEST_KEY" \
-H "Content-Type: application/json" \
-d '{"decision":"APPROVE"}'
curl https://api.stillmoregroup.com/api/v1/sandbox/releases/<release id>/deliver \
-H "Authorization: Bearer $STILLMORE_TEST_KEY" \
-H "Content-Type: application/json" \
-d '{"outcome":"LIVE"}'The simulations answer 403 SANDBOX_ONLY to a live key. Sandbox keys can't act for sub-labels (SANDBOX_NO_SUB_LABELS).