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.
If the check fails, the webhook payload will have "status": "FAILED" and an errors array:
{ "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "FAILED", "errors": [ { "code": "71", "description": "Patient Birth Date Does Not Match That for the Patient on the Database", "followupAction": "Correct and Resubmit" } ]}