The Fullscript sandbox lets you build and validate your integration end to end without touching real practitioners, patients, or orders. The Testing Tool tab on your sandbox application lets you trigger real store actions — supplement orders, lab orders, lab results, and fulfillment events — directly from the API Dashboard, without signing in to the store's own application.
The Testing Tool is available for sandbox applications only. It will not appear on production applications.
The Testing Tool is a dashboard feature, not an API. There are no API endpoints for triggering test actions — each button orchestrates a series of actions on the Fullscript back end.
You'll need:
Applications and stores are region-specific. A US sandbox application can only connect to US sandbox stores, and a CA application to CA stores.
Connecting a Sandbox store lets you trigger actions in that store and receive the resulting webhooks and API data in your integration, without signing in to the store's own application.
Notes:
New sandbox stores come ready for testing: the auto-created practice patient ("Susan Booker (Practice Client)") can place orders immediately, and if a patient's details are incomplete when you create a lab order, the Testing Tool fills in test data automatically.
Labs are available for US applications only. To test labs, your US sandbox store must be registered for labs:
1111111111.For the full labs testing walkthrough, see How to test labs.
Your store's financial setup must be complete before fulfillment orders can be created — in sandbox and in production. See the store setup requirements in the Fulfillment API documentation.
Store setup requirements. Before fulfillment orders can be created for a store — sandbox or production — its financial setup must be complete. Configured by Fullscript: wholesale payment terms (net 30) and contracted pricing — contact your account manager. Configured by you: payment details under Store settings → Payments; in sandbox use test values DOB 1901-01-01, SSN 2222, routing 110000000, account 000999999991. To generate test fulfillment orders and simulate events without calling the API, see Step 3 below.
Open your sandbox application and go to the Testing Tool tab. Select a connected store from the Store dropdown at the top; all tools act on the selected store. The tab has three sections: Supplements, Labs, and Fulfillment API.
Create order — creates an order for a patient to trigger the order.placed webhook event.
Click Create Order, select a Patient, and submit. This creates a treatment plan for the patient and places the order for it. On success you'll see a confirmation like "Order R####### created".
Create lab order — creates a lab order for a patient to trigger the order.placed webhook event.
Click Create Lab Order and select a Patient. Any prerequisites (a lab recommendation for the patient, the lab in the cart) are created for you automatically.
This creates an order with a single lab test. Real orders can contain multiple lab tests, each with its own results — don't build your integration assuming one test (or one result) per order. To test an order with multiple lab tests, place the order through your sandbox account, then generate results for it here.
Generate test result — simulates lab results for a lab order to trigger the lab_order.updated webhook event.
Click Generate Test Result, select a Lab order number from the dropdown (it lists lab orders already purchased in the selected store — create one first if it's empty), choose an Event Type, and submit.
Available event types depend on the lab order's current status:
| Lab order status | Available event types |
|---|---|
| Results not yet complete | Results Received, All Results Received |
| All results received | All Results Received, Results Amended |
| Event type | Meaning |
|---|---|
| Results Received | Partial results — results for one lab test in the order are in |
| All Results Received | All lab tests in the order have results |
| Results Amended | An existing result was amended |
Each generated result attaches a sample result to the lab order and fires a lab_order.updated webhook.
In sandbox, generated results include a sample PDF only. HL7/discrete result URLs may appear in payloads but don't resolve to real content — validating your HL7/discrete retrieval path end to end requires production data.
Create fulfillment order — creates a fulfillment order to trigger the fulfillment.order.created webhook event.
Click Create Fulfillment Order and select a Patient. Requires the financial setup in Step 2. Note that fulfillment partners normally place orders via POST /api/fulfillment/orders — this tool is a convenience for generating orders to simulate events against.
Simulate fulfillment event — simulates fulfillment order events to trigger fulfillment webhook events.
Click Simulate Event, select a Fulfillment order, then an Event type. Available event types depend on the order's current state:
| Order state | Available events | Resulting state |
|---|---|---|
| complete | fulfillment.order.cancelled | canceled |
| complete | fulfillment.shipment.shipped | shipped |
| shipped | fulfillment.shipment.delivered | delivered |
| shipped | fulfillment.items.cancelled | canceled |
| delivered | fulfillment.items.refunded | — (no further events) |
| canceled | — | — |
Simulated events are retrievable from the fulfillment events endpoints.
| Error | Fix |
|---|---|
| "This store is not ready to accept orders. Please contact your practitioner for more information." | Complete financial setup in your sandbox store: Settings → Financial and discounts. |
| "No license on file" | Add license information under Settings → Account (test NPI 1111111111). |
| Lab order number dropdown is empty | The selected store has no purchased lab orders yet — use Create Lab Order first, or place one in your sandbox store. |
| Event type shows "No available events" | Select a fulfillment order first; if none exist, use Create Fulfillment Order. |
| Fulfillment order creation fails | Complete the store setup requirements in the Fulfillment API documentation. |
Still stuck? Use Support: Submit a ticket in the dashboard.