Skip to content
API and integrations

How to Test an SMM Panel API Integration with Sandbox Keys

SMM panel API test plan: use sandbox keys with play money to cover every status, cancel, refill, errors and webhooks before you go live.

A clipboard with a ticked checklist resting on a laptop keyboard.

An SMM panel API test starts with a sandbox key. It runs the same calls as a live key with play money, and orders move through real statuses without reaching a supplier. Work through a test plan that covers every status your code must handle, then swap in a live key and repeat with one small real order.

Most integration bugs don't show up on a happy-path order. They show up when an order closes as Partial and your panel forgets to refund your customer, or when an error message arrives in a shape your code didn't expect. A sandbox lets you trigger those cases on purpose.

Why test in a sandbox instead of with small live orders?

Sandbox with a test keySmall live orders
CostPlay moneyReal money, even if small
Reaches a supplierNeverYes
Can you choose the endingYes, through the linkNo, you get whatever happens
Partial and canceled casesOn demandOnly if a supplier happens to fail
Tests real delivery qualityNoYes

Use both, in that order: the sandbox to prove your code handles every branch, then a few small live orders to see real start times and delivery.

How does the Orbismm sandbox work?

  • Test keys. Create one in the panel under API and webhooks, in the Sandbox view. Test keys start with orb_test_.
  • Same URLs, both APIs. A test key works on https://orbismm.com/api/v2 and https://orbismm.com/api/v1 without any other change.
  • Play money. Orders are charged at your own rates from a separate sandbox balance that never touches your real one. API v1 can reset it with POST /v1/sandbox/reset; the v2 balance action shows it when called with a test key.
  • Real checks. Service, link, quantity limits, drip-feed support and balance are checked exactly as on live orders.
  • Nothing leaves. Sandbox orders never reach a supplier. Test keys only see sandbox orders and live keys only see live ones.
  • Pick the ending. A link containing partial ends Partial with half delivered and half refunded; a link containing cancel is canceled before it starts with a full refund; any other link completes.

Sandbox orders move on their own over a few minutes. The exact timings, with example requests, are on the sandbox docs page.

What should an SMM API test plan cover?

Run each row with a test key and tick it off only when your own panel shows the right result to your customer, not just when the API answers. Messages are shown as API v2 returns them.

TestHow to trigger itExpected from the APIWhat your side should do
Connectionaction=balancebalance and currency: USDShow the provider balance
Service importaction=servicesList with rate, min, max, refill, cancel, dripfeedStore IDs, rates and flags
Completed orderadd with an ordinary linkorder ID; status Processing, In progress, then Completed; remains 0Mark completed, show start count
Partial orderLink containing partialStatus Partial, remains at half, charge reducedRefund your customer the undelivered part
Canceled before startLink containing cancelStatus Canceled, full refundRefund your customer in full
Manual cancelaction=cancel on a running order of a cancellable servicecancel: 1, then Canceled or PartialHandle both endings
Cancel a closed orderaction=cancel on a completed orderThe order is already closed.Show a clear message, change nothing
Refillaction=refill on a completed order of a refill service, then refill_statusrefill ID; In progress, then CompletedShow refill progress
Refill too earlyaction=refill on a running orderRefill becomes available when the order completes.Hide or disable the button until completion
Validation errorsWrong service ID, quantity outside limits, runs on a non-drip-feed serviceIncorrect service ID., Quantity must be between … and …., This service does not support drip-feed.Show the message; never charge the customer
Low balanceAn order larger than the sandbox balanceNot enough funds on balance.Alert yourself; don't lose the customer's order
Bulk statusstatus with orders=ID1,ID2,999999One entry per ID; the unknown one has Incorrect order IDUpdate the known ones, log the rest
Wrong environmentA live key asking about a sandbox orderIncorrect order IDKeep live and test keys apart in config

The sandbox doesn't produce every state. Orders move straight to Processing, and refills aren't rejected. Your code should still handle Pending, a Rejected refill and any error message it doesn't recognise, because live orders can produce them.

What extra tests does API v1 need?

  • Idempotency. Send the same POST /v1/orders twice with the same Idempotency-Key. The first answers 201; the retry answers 200 with Idempotent-Replayed: true and the same order, and nothing is charged twice. The same key with a different body returns 409 idempotency_conflict.
  • Batch orders. Send a batch with one valid and one invalid item to /v1/orders/batch. Each item succeeds or fails on its own; check that your code reads results by index.
  • Webhooks. Add an endpoint with a test key. Sandbox events are signed the same way as live ones and carry livemode: false. Verify the Orbismm-Signature header, and use the endpoint's test event to check delivery.
  • Scopes. Call an order endpoint with a key that only has read, and confirm your code handles 403 missing_scope.

How v1 differs from v2 and when each fits is covered in our guide to SMM API v1 vs v2; signature details are in the webhooks docs.

How do you go live after testing?

  1. Create a live key with the same scopes and swap it in for the test key. Nothing else in the calls changes.
  2. Add your webhook endpoints again in the Live view. Each gets its own signing secret; update your server with it.
  3. Top up your balance. Live orders are charged from it and go to real suppliers.
  4. Place one small real order on each service you sell and compare its start with the service's median start time.
  5. Watch the first day of real orders closely, especially refunds on Partial and Canceled orders.

If you are connecting a panel script rather than writing code, adding a provider to your SMM panel covers the setup, and the API v2 reference lists every action. The rate limit is 60 requests per second per key by default.

From Orbismm order data

From Orbismm order data: once live, your orders join still being measured placed in the last 30 days, with a median start time of still being measured across 0 services.

Connect Orbismm to your panel in two minutes

Create a test key and follow the [sandbox docs](/docs/v1/sandbox).

Create account

Frequently asked questions

Is there a sandbox or test mode before I connect my real panel?
Yes. Orbismm test keys run full order lifecycles with play money on both API v2 and v1, and never place real orders.
How do I test a partial or canceled order?
In the Orbismm sandbox, put partial in the link to get a Partial ending, or cancel to get an order canceled before it starts. Any other link completes.
Can sandbox orders affect my real balance?
No. Sandbox orders use a separate play-money balance, never reach a supplier, and are invisible to live keys.
Do webhooks work in the sandbox?
Yes, on API v1. Endpoints added with a test key receive sandbox events, signed the same way as live ones and marked livemode false.
What changes when I switch from a test key to a live key?
Only the key. Add your webhook endpoints again in the Live view with their new secret, top up your balance and place one small real order to confirm.
OR
Orbismm Research

The team that runs the router and measures every service. Numbers in our guides come from our own orders.

Join the next generation

Stop babysitting your suppliers. Start selling.

Measured services · automatic rerouting · refunds to balance · support that answers 24/7