Test your integration
Two ways to test without affecting anyone: test keys to check single requests, and a sandbox to run your whole integration for real without being billed.
There are two ways to test, and they answer different questions:
- Test keys answer "is this request right?" Every call is checked and simulated, nothing is saved.
- The sandbox (for partners) answers "does my whole integration work?" Everything happens for real, with real companies, channels, webhooks and orders, but nothing is billed.
Most integrations use both: test keys while writing each call, the sandbox to run the full flow end to end before going live.
At a glance
Test key (nbl_test_…) | Sandbox partner (live key) | |
|---|---|---|
| Who | Everyone | Partners (accounts:manage) |
| Requests are validated | Yes, exactly like live | Yes, it is live |
| Data is saved | No. A product you "create" can't be read back | Yes |
| Channels (Shopify, eBay…) | Never touched; results marked "simulated" | Really updated. Connect test stores |
| Webhooks and events | None | Yes, like live (account_id on every company event) |
Companies (POST /accounts) | Simulated (acct_test, "simulated": true). You can't work inside it | Real, at most 3 open at once |
| Billing | Never | Never. The statement shows 0 and sandbox: true |
| Going live | Switch to your nbl_live_ key | Go live in the dashboard; same key, same companies |
Test keys
Create one in Settings → Developers (mode Test). Use it exactly like a live key:
curl -X POST https://api.nembol.com/rest/v1/products \
-H "Authorization: Bearer nbl_test_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"title": "Test mug", "variants": [{"sku": "MUG-1", "price": "12.00", "quantity": 5}]}'The answer has the shape a live call would return, with "simulated": true.
Errors are real: a missing field, a wrong price format or a missing
permission answers exactly as in live.
What a test key does not do:
- Nothing is saved. Read calls return your store's real data, so a
simulated product never appears in
GET /products. Test each write on its own; don't chain "create, then read back". - No channel is contacted, no order is shipped, no email is sent.
- No events or webhooks are produced by simulated calls.
Sandbox (partners)
The sandbox is your partner account with billing off. Everything works as in live (that is the point), so you can build the whole integration and watch it run:
- Your partner account starts in the sandbox: Nembol enables it that
way. Check it with
GET /partner/billing, which answers"sandbox": trueand"sandbox_max_accounts": 3. - Create up to 3 companies with
POST /accounts. A 4th open company answers409 sandbox_limit. Close one (POST /accounts/{id}/close) to free a place. - Connect test stores, not real shops: a Shopify development store, an eBay or Etsy test account, a WooCommerce site you own. Listings, stock and orders really reach them. Marketplaces with buyers (Amazon, TikTok Shop) are real marketplaces, so publish carefully and delist when done.
- Receive webhooks and poll exactly as in production: every company's
events reach your endpoints with
account_id. - Check the statement:
GET /partner/statementlists your companies with amount 0 and"sandbox": true.
Going live
When your integration is ready, go live yourself from the dashboard: Settings → Partner → Go live (on the Sandbox notice).
- On card terms, add a card first. Nembol opens a secure Stripe page that saves the card and charges nothing.
- Confirm. The window shows how many companies are open and what they cost per month at your rates. Billing starts that day, prorated by day.
GET /partner/billingthen answers"sandbox": false.
Your key, your companies, their channels and your webhooks stay exactly as they are, with nothing to migrate. Close test companies you don't want billed before going live.
Going live is one way: switching back would stop billing live companies, so to come back to the sandbox write to developer@nembol.com. It isn't available from the API on purpose: billing never starts from a script by mistake.
Which one when
- Writing a new call or a new error branch → test key.
- Checking that a webhook handler, the connect flow (return link), order polling and fulfillment work together → sandbox.
- A seller-only integration (no partner program) → test key, then a live key on a test store connected to your own Nembol store.
Last updated on October 16, 2026
Need help?
Email us and a human replies, usually within one business day.