🩺 CMS-0057-F payer sandbox SYNTHETIC DATA ONLY

A sandbox payer for CRD / DTR / PAS clients

If you're building a CDS Hooks CRD client, a DTR questionnaire flow, or a PAS $submit integration, this is a live counterparty to test against — no real payer will let untrusted code near their production endpoint. Get a token, run three curls, see the full round trip in under ten minutes.

1. Get a token

Use the shared quickstart token below to skip straight to the curls, or sign up with your email for your own isolated tenant — your own bearer token, your own synthetic patient, and a dashboard to inspect your traffic. No password, just a magic link.

2. Three requests, one flow

CRD hook → DTR questionnaire package → PAS submit. Each command feeds the next.

export TOKEN=demo-quickstart-token
export BASE=https://fhir-sandbox.greenice.net

# 1) CRD: ask "does this order need prior auth?" -- fetch a fixture hook call, then send it
curl -s "$BASE/api/crd/scenarios/prior-auth-required/hooks/order-sign" \
  -H "Authorization: Bearer $TOKEN" -o hook-request.json
curl -s -X POST "$BASE/cds-services/order-sign-crd" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d @hook-request.json | tee crd-response.json

# 2) DTR: fetch the questionnaire package the CRD response pointed at
curl -s "$BASE/api/dtr/scenarios/prior-auth-required/variants/prior-auth-required-canonical" \
  -H "Authorization: Bearer $TOKEN" -o dtr-request.json
curl -s -X POST "$BASE/fhir/Questionnaire/\$questionnaire-package" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/fhir+json" \
  -d @dtr-request.json | tee dtr-response.json

# 3) PAS: submit the prior-auth request, see the (corrected) decision code
curl -s "$BASE/api/pas/scenarios/prior-auth-required/variants/prior-auth-required-initial" \
  -H "Authorization: Bearer $TOKEN" -o pas-request.json
curl -s -X POST "$BASE/fhir/Claim/\$submit" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/fhir+json" \
  -d @pas-request.json | tee pas-response.json

Prefer to browse instead of copy-pasting exact ids? The scenario picker lists every clinical module with ready-made commands, and every request you make here shows up immediately in the inspector.

What this sandbox changes vs. the upstream engine

BehaviorDetail
NamespaceCanonical URIs use https://cms0057-payer-sandbox-5vvnexrbpq-uc.a.run.app, not the upstream engine's internal example.org placeholder (which live FHIR validators reject).
Denial codePrior-auth denials return review action A3 by default (matches the IG's own official example) instead of the upstream engine's native A2. Configurable per token — see PATCH /api/tenant/config.
Data cleanupSelf-referencing Patient.link entries and the broken subscription seed resource are fixed at this layer.
AuthBearer token required (the upstream engine itself has none).