⌘K

ReferenceReference

Sandbox endpoints

Exact request and response contracts for the sandbox endpoints, generated from the enforced Partner API contract.

Machine-readable OpenAPI description
On this page

Endpoints in this group

GET/v1/sandbox/order-fixturesList synthetic order-request fixtures
GET/v1/sandbox/scenariosList deterministic sandbox scenarios
POST/v1/sandbox/orders/{orderId}/simulateAdvance a synthetic sandbox order through a scenario
POST/v1/sandbox/orders/{orderId}/laboratory-transportSend a synthetic sandbox order through the Solia test laboratory

Important

Base path: /api/public/partner/v1. Every response carries request_id; every failure uses the standard error envelope documented under Errors.

GET/v1/sandbox/order-fixtures

List synthetic order-request fixtures

Clearly synthetic request templates for the minimal, provider, patient and ask-at-order-entry contracts. Never real data.

Authentication & scope

  • Authentication: Authorization: Bearer <API key>. The key is bound to one laboratory, one API client and one environment.
  • No resource scope is required beyond a valid, active key.

Synthetic schema examples are illustrative, not eligible records. Set PROGRAM_ID and ITEM_ID from granted Programs/Catalog, ORDER_ID and RESULT_ID from current responses, and EXTERNAL_SUBJECT_ID to an opaque synthetic reference. Replace body identifiers with authorized records and include patient/provider/question fields only when current requirements request them. Use Sandbox; Production requires separate approval.

cURL

bash
curl -s "$SOLIA_API_BASE/sandbox/order-fixtures" \
  -H "Authorization: Bearer $SOLIA_API_KEY"

Responses

  • 200 — Synthetic fixtures.
  • 401 — Missing, invalid, revoked or expired key.
  • 403 — Client, environment or scope denied.
  • 429 — Per-instance client rate limit exceeded; honor Retry-After.
  • 500 — Canonical request failed; reconcile uncertain actions.
  • 503 — Required API configuration is unavailable.
json
{
  "data": [
    {}
  ],
  "request_id": "synthetic"
}

GET/v1/sandbox/scenarios

List deterministic sandbox scenarios

Authentication & scope

  • Authentication: Authorization: Bearer <API key>. The key is bound to one laboratory, one API client and one environment.
  • No resource scope is required beyond a valid, active key.

Synthetic schema examples are illustrative, not eligible records. Set PROGRAM_ID and ITEM_ID from granted Programs/Catalog, ORDER_ID and RESULT_ID from current responses, and EXTERNAL_SUBJECT_ID to an opaque synthetic reference. Replace body identifiers with authorized records and include patient/provider/question fields only when current requirements request them. Use Sandbox; Production requires separate approval.

cURL

bash
curl -s "$SOLIA_API_BASE/sandbox/scenarios" \
  -H "Authorization: Bearer $SOLIA_API_KEY"

Responses

  • 200 — Available scenarios.
  • 401 — Missing, invalid, revoked or expired key.
  • 403 — Client, environment or scope denied.
  • 429 — Per-instance client rate limit exceeded; honor Retry-After.
  • 500 — Canonical request failed; reconcile uncertain actions.
  • 503 — Required API configuration is unavailable.
json
{
  "data": [
    {
      "scenario": "happy_path",
      "steps": 1,
      "events": [
        "order.created"
      ]
    }
  ],
  "request_id": "synthetic"
}

POST/v1/sandbox/orders/{orderId}/simulate

Advance a synthetic sandbox order through a scenario

Sandbox only. A production key or a non-synthetic order is refused.

Authentication & scope

  • Authentication: Authorization: Bearer <API key>. The key is bound to one laboratory, one API client and one environment.
  • Required scope: orders:write. A key without it is refused with 403 forbidden.

Path parameters

  • orderId (required) — string (uuid). Sandbox order identifier.

Request body

Required body fields: scenario.

json
{
  "scenario": "happy_path"
}

Synthetic schema examples are illustrative, not eligible records. Set PROGRAM_ID and ITEM_ID from granted Programs/Catalog, ORDER_ID and RESULT_ID from current responses, and EXTERNAL_SUBJECT_ID to an opaque synthetic reference. Replace body identifiers with authorized records and include patient/provider/question fields only when current requirements request them. Use Sandbox; Production requires separate approval.

cURL

bash
curl -s -X POST "$SOLIA_API_BASE/sandbox/orders/$ORDER_ID/simulate" \
  -H "Authorization: Bearer $SOLIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"scenario":"happy_path"}'

Responses

  • 200 — Applied steps.
  • 401 — Missing, invalid, revoked or expired key.
  • 403 — Client, environment or scope denied.
  • 422 — Simulation is not permitted for this key or order.
  • 429 — Per-instance client rate limit exceeded; honor Retry-After.
  • 500 — Canonical request failed; reconcile uncertain actions.
  • 503 — Required API configuration is unavailable.
json
{
  "data": {
    "order_id": "00000000-0000-4000-8000-000000000001",
    "scenario": "synthetic",
    "events_emitted": 1
  },
  "request_id": "synthetic"
}

POST/v1/sandbox/orders/{orderId}/laboratory-transport

Send a synthetic sandbox order through the Solia test laboratory

Sandbox only. Sends the exact synthetic order through the real laboratory transport (canonical transmission, accepted ACK, signed inbound result). Requires the Sandbox laboratory to be the Solia test laboratory. Repeat calls are idempotent.

Authentication & scope

  • Authentication: Authorization: Bearer <API key>. The key is bound to one laboratory, one API client and one environment.
  • Required scope: orders:write. A key without it is refused with 403 forbidden.

Path parameters

  • orderId (required) — string (uuid). Sandbox order identifier.

Synthetic schema examples are illustrative, not eligible records. Set PROGRAM_ID and ITEM_ID from granted Programs/Catalog, ORDER_ID and RESULT_ID from current responses, and EXTERNAL_SUBJECT_ID to an opaque synthetic reference. Replace body identifiers with authorized records and include patient/provider/question fields only when current requirements request them. Use Sandbox; Production requires separate approval.

cURL

bash
curl -s -X POST "$SOLIA_API_BASE/sandbox/orders/$ORDER_ID/laboratory-transport" \
  -H "Authorization: Bearer $SOLIA_API_KEY"

Responses

  • 200 — Transport evidence for the order.
  • 401 — Missing, invalid, revoked or expired key.
  • 403 — Client, environment or scope denied.
  • 422 — Transport is not permitted for this key, order or laboratory.
  • 429 — Per-instance client rate limit exceeded; honor Retry-After.
  • 500 — Canonical request failed; reconcile uncertain actions.
  • 503 — Required API configuration is unavailable.
json
{
  "data": {
    "order_id": "00000000-0000-4000-8000-000000000001",
    "transmission_id": "00000000-0000-4000-8000-000000000001",
    "correlation_id": "synthetic",
    "transmission_status": "synthetic",
    "ack_status": "synthetic",
    "result_received": true,
    "result_released": true,
    "result_set_id": "00000000-0000-4000-8000-000000000001",
    "result_status": "synthetic",
    "released_at": "2026-10-19T00:00:00Z",
    "event_id": "00000000-0000-4000-8000-000000000001",
    "event_type": "synthetic"
  },
  "request_id": "synthetic"
}

Related resources