The Shasta Health Eligibility API lets you verify a patient’s insurance coverage programmatically. The flow is asynchronous: submit a check, then either poll the status endpoint or wait to receive a notification via webhook when the check completes.
All requests to the Shasta Health Eligibility API must include an API key in the Authorization header. Follow the Authentication guide to generate a key and learn how to include it in requests.
To receive notifications via webhook when a check completes, go to Settings > API at app.shasta.health/provider/settings/api in the Shasta provider portal and enter your webhook URL in the Webhooks section. If you prefer to poll for results instead, you can skip this step.
A signing secret lets you verify that webhook events are genuinely sent by Shasta Health.
In the Webhooks section of Settings > API, click Edit on your webhook.
Click the generate button next to the Signing Secret field to create a new secret, or enter your own.
Copy the secret and store it securely — you will need it to verify incoming webhooks. You can always view or roll this secret from the webhook settings page.
Treat the signing secret like a password. Store it in an environment variable or secrets manager — never commit it to source control.
This is the recommended way to receive eligibility results.
When the eligibility check finishes processing, Shasta sends a single POST request to your configured webhook URL. The webhook fires exactly once per check, and the status in the payload will always be either COMPLETED or FAILED — it will never fire while the check is still in progress. The payload uses the same schema as the GET /api/eligibility/{id}/status response.
If you configured a signing secret, each webhook request will include an X-Webhook-Signature header. To verify it, compute the expected signature and compare:
Read the X-Webhook-Timestamp header and the raw request body.
Concatenate them as {timestamp}.{body}.
Compute the HMAC-SHA256 hex digest using your signing secret.
Compare the result to the X-Webhook-Signature header value using a constant-time comparison.
Each entry in the benefits array may include a confidence object with a score (0–1) indicating how reliable that specific benefit entry is. Different service types can have different confidence levels — for example, a medical benefit verified from multiple portal pages will score higher than a preventive benefit inferred from a single section.The confidence.criteria field is an array of human-readable reason strings explaining the score:
{ "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "COMPLETED", "benefits": [ { "coverageStatus": "Active Coverage", "serviceType": "Medical Nutrition", "copay": 30, "visitLimit": 20, "confidence": { "score": 0.9, "criteria": [ "Copay confirmed on payer portal benefits page", "Visit limit matched across two portal sections", "Deductible cross-referenced with accumulator page" ] } }, { "coverageStatus": "Active Coverage", "serviceType": "Preventive Nutrition", "copay": 0, "confidence": { "score": 0.6, "criteria": [ "Preventive benefits section found on portal", "Visit limit not listed -- could not verify" ] } } ]}
Confidence scoring is optional. If no confidence data is available for a benefit entry, the confidence field will not be present on that entry.