What the sandbox does
The kurnl sandbox is a fully isolated environment. API calls in sandbox mode:- Create real database records — subscribers, subscriptions, provisioning jobs
- Do not activate real switch ports or send commands to physical network equipment
- Do not charge real Stripe payment methods
- Fire real webhook events to your configured sandbox webhook URL
Getting your sandbox credentials
- Log in to your provider dashboard
- Go to Settings → API Keys
- Copy your sandbox API key (
krnl_sb_...) and sandbox webhook secret - Go to Documentation → Sandbox Settings to set your webhook URL and see your test location hashes
If you don’t have sandbox credentials yet, contact your kurnl account manager. Sandbox environments are provisioned separately from production.
Sandbox-specific values
Some values in sandbox are fixed test fixtures you use in your API calls:| Value | Where to find it |
|---|---|
service_provider_document_id | Dashboard → Settings → General |
plan_version_id | GET /partner/marketplace/plans/me using your sandbox key |
location_hash (direct delivery) | Dashboard → Documentation → Sandbox → Test locations |
unit_id (home-drop) | Dashboard → Documentation → Sandbox → Test locations |
Try-it panels
The Documentation → Testing & Sandbox section in your dashboard has interactive try-it panels. These fire real API calls against your sandbox, with your credentials pre-filled. You don’t need to write any curl commands to explore the API.Webhook testing
Set your sandbox webhook URL in Dashboard → Documentation → Sandbox Settings. When you save, kurnl sends a test ping to verify the URL is reachable. If you don’t have a server ready to receive webhooks, use webhook.site for a temporary receiver during development. kurnl delivers each event with up to 3 retry attempts (exponential back-off: 2s, then up to 30s). Your endpoint must return any2xx status to acknowledge. Anything else is treated as a failure and retried.
Resetting state
The sandbox preserves data between test runs. To start fresh:- Go to Dashboard → Documentation → Sandbox Settings
- Click Reset transactional data
Promoting to production
When your integration is working correctly in sandbox:- Replace your sandbox
X-API-Keywith your production key (krnl_live_...) - Replace your sandbox
X-Webhook-Secretwith your production webhook secret - Replace
api-staging.kurnl.cawithapi.kurnl.cain all endpoint URLs (if you were using the staging host) - Update your
service_provider_document_idto your production provider UUID - Update your webhook URL to your production receiver