Use this guide to test your integration with the Silna Benefits Check API in our QA environment.
By setting specific member numbers on a patient plan, you can control exactly what the benefits check returns (for example, different insurance types, authorization requirements, referral requirements, visit limits, and rejection scenarios) without hitting real payors.
In order to see authorization requirements, referral requirements, and visit limits, you also need to be using a benefits check template with these features enabled. Please reach out to your Silna contact for assistance if you need your template updated.
Note that this currently only works with our Aetna (018f7dfa-3e85-7f38-a0fe-71a9bf6a64c2) Payor in QA and code 11 (Commercial). Other codes and payors are a work in progress!
How It Works
In our QA environment, every benefits check request is intercepted and returns a synthetic response based on the patient’s member number. No real payor calls are made. This lets you:
- Test your integration against realistic benefit data for a Commercial plan
- Simulate authorization requirements, referral requirements, and visit limits
The workflow is the same as production:
- Create a patient plan with a specially formatted member number
- Create a benefits check to trigger the check
- Get the benefits check to retrieve results
- Poll until
status is COMPLETE
The member number has three parts:
| Part | Description | Required |
|---|
| Prefix | Always A | Yes |
| Flags | Optional keywords that toggle specific behaviors (see Requirement Flags). Can include filler characters like _ or 0 for readability. | No |
| Insurance Code | Last two characters — a two-digit code that determines the insurance type and plan data (see Insurance Type Codes) | Yes |
Examples:
| Member Number | Meaning |
|---|
ATEST00000011 | Commercial plan, no special requirements |
A_AUTH_REQ_011 | Commercial plan with authorization required |
A_REF_REQ_011 | Commercial plan with referral required |
A_VISIT_REQ_011 | Commercial plan with visit limits |
AAUTH_REQREF_REQVISIT_REQ11 | Commercial plan with all three requirements |
Quick Start
Step 1 — Create a patient plan with a test member number
Set the member number on the patient plan to control what the benefits check returns. For a basic Commercial plan test:
Member Number: ATEST00000011
Step 2: Trigger a benefits check
Use the Create Benefits Check API:
{
"patient_plan_id": "<your-patient-plan-uuid>",
"specialties": ["PHYSICAL_THERAPY"]
}
Response (201):
{
"benefits_check_ids": ["<benefits-check-uuid>"]
}
Step 3: Retrieve the results
Use the Get Benefits Check V2 API with the returned ID.
Poll until status is COMPLETE. The benefits check typically processes within a few seconds.
Insurance Type Codes
The last two characters of the member number select the insurance type and plan data returned. Currently only code 11 (Commercial) is supported.
| Code | Insurance Type | Plan Details |
|---|
11 | Commercial | Aetna-style Open Access MC plan. Individual deductible $3,500 / $7,000 OON. Family deductible $10,000 / $14,000 OON. Individual OOP $5,500 / $13,000 OON. Family OOP $16,000 / $26,000 OON. 10% coinsurance in-network, 40% out-of-network. $0 copay. Plan dates 2025-01-01 to 2025-12-31. |
Fields returned
Code 11 populates these top-level response fields:
eligibility_status → ELIGIBLE
plan_start_date → 2025-01-01
plan_end_date → 2025-12-31
plan_type → Open Access MC
insurance_type → COMMERCIAL
And these specialty-level fields (inside specialty_fields):
| Field | Value |
|---|
copay_fields | $0 |
coinsurance_fields | 10% IN / 40% OON |
deductible.individual.amount | $3,500 IN / $7,000 OON |
deductible.individual.amount_met | $83.12 IN / $0.00 OON |
deductible.family.amount | $10,000 IN / $14,000 OON |
deductible.family.amount_met | $8,500 IN / $14,000 OON |
out_of_pocket.individual.amount | $5,500 IN / $13,000 OON |
out_of_pocket.individual.amount_met | $83.12 IN / $0.00 OON |
out_of_pocket.family.amount | $16,000 IN / $26,000 OON |
out_of_pocket.family.amount_met | $12,000 IN / $26,000 OON |
IN = in-network, OON = out-of-network
Requirement Flags
Include these keywords anywhere in the middle of the member number (between the A prefix and the two-digit insurance code) to toggle specific requirements. You can combine multiple flags in a single member number.
| Flag | Effect When Present | Effect When Absent |
|---|
AUTH_REQ | Authorization required = yes | Authorization required = no |
REF_REQ | Referral required = yes | Referral required = no |
VISIT_REQ | Visit limit = yes, visit limit quantity = 60, visits used = 5 | Visit limit = no |
How flags appear in the V2 response
AUTH_REQ populates authorization_requirements:
"authorization_requirements": [
{
"value": true,
"modifier": { ... }
}
]
REF_REQ populates referral_requirements:
"referral_requirements": [
{
"value": true,
"modifier": { ... }
}
]
VISIT_REQ populates visit_limits:
"visit_limits": [
{
"value": 60,
"modifier": { ... }
}
]
With visits_used available as a separate field on the response.
Combining flags
Flags can be combined freely. For example, AAUTH_REQREF_REQVISIT_REQ11 enables all three on a Commercial plan.
Complete Example Responses
All examples below show V2 responses from Get Benefits Check V2.
Commercial plan with all requirement flags
Member Number: AAUTH_REQREF_REQVISIT_REQ11
{
"id": "...",
"status": "COMPLETE",
"eligibility_status": "ELIGIBLE",
"insurance_type": "COMMERCIAL",
"network_status": "IN_NETWORK",
"plan_type": "Open Access MC",
"plan_start_date": "2025-01-01",
"plan_end_date": "2025-12-31",
"patient_plan_id": "...",
"patient_id": "...",
"provider_id": "...",
"date_verified": "...",
"created_at": "...",
"specialty_fields": [
{
"specialty": "PHYSICAL_THERAPY",
"authorization_requirements": [
{
"value": true,
"modifier": {
"payor_name": null,
"timing": null,
"treatment_codes": [],
"places_of_service": [],
"diagnosis_codes": []
}
}
],
"referral_requirements": [
{
"value": true,
"modifier": {
"treatment_codes": [],
"places_of_service": []
}
}
],
"visit_limits": [
{
"value": 60,
"modifier": {
"treatment_codes": [],
"places_of_service": [],
"specialties": [],
"timing": null
}
}
],
"copay_fields": [
{
"value": 0,
"modifier": null
}
],
"coinsurance_fields": [
{
"value": 10,
"modifier": null
}
],
"deductible": {
"individual": {
"amount": { "value": 3500 },
"amount_met": { "value": 3416.88 }
},
"family": {
"amount": { "value": 10000 },
"amount_met": { "value": 8500 }
}
},
"out_of_pocket": {
"individual": {
"amount": { "value": 5500 },
"amount_met": { "value": 5416.88 }
},
"family": {
"amount": { "value": 16000 },
"amount_met": { "value": 12000 }
}
},
"dollar_limits": [],
"exclusions": [],
"reimbursement_rate": null,
"medicare_dollars_used": null,
"exclusions_and_limitations": null,
"patient_cost_estimates": []
}
]
}
Commercial plan with no flags
Member Number: ATEST00000011
{
"id": "...",
"status": "COMPLETE",
"eligibility_status": "ELIGIBLE",
"insurance_type": "COMMERCIAL",
"plan_type": "Open Access MC",
"plan_start_date": "2025-01-01",
"plan_end_date": "2025-12-31",
"specialty_fields": [
{
"specialty": "PHYSICAL_THERAPY",
"authorization_requirements": [
{ "value": false, "modifier": null }
],
"referral_requirements": [
{ "value": false, "modifier": null }
],
"visit_limits": [],
"copay_fields": [
{ "value": 0, "modifier": null }
],
"coinsurance_fields": [
{ "value": 10, "modifier": null }
],
"deductible": {
"individual": {
"amount": { "value": 3500 },
"amount_met": { "value": 3416.88 }
},
"family": {
"amount": { "value": 10000 },
"amount_met": { "value": 8500 }
}
},
"out_of_pocket": {
"individual": {
"amount": { "value": 5500 },
"amount_met": { "value": 5416.88 }
},
"family": {
"amount": { "value": 16000 },
"amount_met": { "value": 12000 }
}
}
}
]
}
Member Number Cheat Sheet
Copy-paste these member numbers for common test scenarios:
Eligible — Commercial (code 11)
| Scenario | Member Number |
|---|
| No requirements | ATEST00000011 |
| Auth required | A_AUTH_REQ_011 |
| Referral required | A_REF_REQ_011 |
| Visit limits | A_VISIT_REQ_011 |
| Auth + referral | AAUTH_REQREF_REQ11 |
| Auth + visit limits | AAUTH_REQVISIT_REQ11 |
| All requirements | AAUTH_REQREF_REQVISIT_REQ11 |