⌘K

Health CompaniesGuide

Health Company quickstart

From a Health Company workspace to a validated Sandbox Partner API integration.

On this page

Workspace setup

  1. Create or access a Health Company workspace (sign up with intent for health companies).
  2. Complete the three-step organization setup: company, intended Program, and how you will start.
  3. Discover supply through Solia On Demand, or nominate a laboratory you already work with.
  4. Establish or receive an approved Diagnostic Program — a real Program exists only once canonical authority returns a Program ID.
  5. Confirm Program access: an active API client with an active Sandbox Program grant.

Important

Creating an account does not provision API clients, credentials or Program access.

Sandbox integration

  1. Select the approved Sandbox client and issue a Sandbox credential; copy the one-time secret.
  2. Read Programs, then the Program Catalog.
  3. Check requirements and serviceability for the item, region and collection method.
  4. Upsert a synthetic subject with an opaque external reference.
  5. Create an order with an Idempotency-Key.
  6. Replay the identical request with the same key — the same order is returned.
  7. Reuse the key with a different body — the API returns 409 conflict.
  8. Read the order and its lifecycle.
  9. Run a canonical Sandbox scenario where one is available.
  10. Read the released result, then reconcile event evidence.
  11. Verify webhook delivery where a subscription is configured.
  12. Progress toward Production only when genuine readiness evidence exists.
bash
export SOLIA_API_BASE="https://app.soliadirect.com/api/public/partner/v1"
export SOLIA_API_KEY="<one-time Sandbox secret>"
bash
# Authenticate (expects a Sandbox environment in data)
curl -s "$SOLIA_API_BASE/health" \
  -H "Authorization: Bearer $SOLIA_API_KEY"
bash
# Programs, then the Program Catalog and requirements
curl -s "$SOLIA_API_BASE/programs" -H "Authorization: Bearer $SOLIA_API_KEY"
curl -s "$SOLIA_API_BASE/programs/$PROGRAM_ID/catalog" -H "Authorization: Bearer $SOLIA_API_KEY"
curl -s "$SOLIA_API_BASE/programs/$PROGRAM_ID/requirements" -H "Authorization: Bearer $SOLIA_API_KEY"
bash
# Serviceability (program_id and item_id required; region and collection optional)
curl -s -X POST "$SOLIA_API_BASE/serviceability" \
  -H "Authorization: Bearer $SOLIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"program_id":"'"$PROGRAM_ID"'","item_id":"'"$ITEM_ID"'","region":"CA","collection":"'"$COLLECTION"'"}'
bash
# Opaque synthetic subject (never send names, dates of birth or clinical detail)
curl -s -X PUT "$SOLIA_API_BASE/subjects/SANDBOX-subject-1001" \
  -H "Authorization: Bearer $SOLIA_API_KEY"
bash
# Idempotent order — run twice unchanged to see the same order; change the body to see 409
curl -s -X POST "$SOLIA_API_BASE/orders" \
  -H "Authorization: Bearer $SOLIA_API_KEY" \
  -H "Idempotency-Key: SANDBOX-order-1001" \
  -H "Content-Type: application/json" \
  -d '{"external_order_id":"SANDBOX-order-1001","program_id":"'"$PROGRAM_ID"'","item_id":"'"$ITEM_ID"'","external_subject_id":"SANDBOX-subject-1001","collection":"'"$COLLECTION"'"}'
bash
# Order, Sandbox scenario, results and events
curl -s "$SOLIA_API_BASE/orders/$ORDER_ID" -H "Authorization: Bearer $SOLIA_API_KEY"
curl -s "$SOLIA_API_BASE/sandbox/scenarios" -H "Authorization: Bearer $SOLIA_API_KEY"
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"}'
curl -s "$SOLIA_API_BASE/orders/$ORDER_ID/results" -H "Authorization: Bearer $SOLIA_API_KEY"
curl -s "$SOLIA_API_BASE/events" -H "Authorization: Bearer $SOLIA_API_KEY"

Important

PROGRAM_ID is the canonical id returned by GET /programs; an opportunity or draft has no Program id. ITEM_ID and COLLECTION come from the Program Catalog. Sandbox keys only work against Sandbox data.

Related resources