Docs Guide · updated September 21, 2026
Sandboxes
A sumwerk account can have sandboxes, the way Stripe has them: up to ten, each with a name. One for staging, one for every developer’s machine, one for the import you want to rehearse. A sandbox is a further account with the same team and the same settings, but its own customers, numbers and API tokens. Nothing in it can reach your live numbers or another sandbox, because it is not a flag on your data: it is a separate account.
Use it to:
- point your staging system at sumwerk’s API without filling your funnel with test sign-ups
- try an automation, an at-risk rule or a webhook before your team sees its effect
- connect Stripe’s test mode and see how a plan change, a failed payment or a cancellation shows up
- rehearse an import before running it for real
Making one, and switching
Account → General → Sandboxes → give it a name (staging, stefan-dev: lowercase letters,
digits and dashes) → Create and switch to it. Everybody on the team can make and use
sandboxes. After that the menu in the header (a green dot and “Live”, or an amber dot and the
sandbox’s name) switches between live and your sandboxes. In a sandbox an amber bar at the top
of every page names it. The mode belongs to your browser session: a colleague in live mode, or
in another sandbox, is not affected.
A new sandbox starts with a copy of your live settings: reporting currency and time zone, month close, at-risk rules, plan names, attribute descriptions, email templates and automations. No customer data is copied.
API tokens
Create a token while you are in a sandbox (Account → API and exports). It starts with
swk_test_ instead of swk_, so that it cannot be mistaken for a live one, and it only ever
sees the sandbox it was made in. The URL is the same; every answer says where it came from:
$ curl -X PUT https://www.sumwerk.com/api/v1/customers/org_staging_1 \
-H "Authorization: Bearer swk_test_5Kq2…" -H "Content-Type: application/json" \
-d '{ "name": "Staging Test GmbH" }'
HTTP/2 201
x-sumwerk-mode: sandbox
x-sumwerk-sandbox: staging
In your own configuration that is one variable per environment: the live token in production,
the token of the staging sandbox in staging, and every developer’s own in their .env.
What is different in the sandbox
| Live | Sandbox | |
|---|---|---|
| Stripe | your live restricted key | only a test-mode key (rk_test_…); a live key is refused |
| Email (single mails, sequences, automations) | sent | never sent; kept on the timeline as it would have gone out, marked “sandbox” |
| Webhooks from automations | sent, signed | sent, signed: that is what you want to test |
| Mail about restated months | to the owners | none |
| Team and invitations | managed here | the same people; managed in live mode |
| API tokens | swk_… |
swk_test_… |
Starting again
Account → General → Sandboxes → Empty (owners) deletes everything in that sandbox and starts it again from your live settings of that moment. Its API tokens keep working, so staging does not need a new one. Delete removes the sandbox and its tokens for good.
Questions
Does it cost anything or count towards a limit? No.
Can I copy live customers into it? Not with a button, on purpose: real customer data
does not belong next to test data. The customers CSV export and the API’s PUT /customers
are enough to bring over a handful.
Can two people use one at once? Yes, a sandbox is shared by whoever switches to it. If that gets in the way, make another: that is what they are for.