Note that this currently only works with our Aetna (018f7dfa-3e85-7f38-a0fe-71a9bf6a64c2) Payor in QA with codes 11 (Commercial), 16 (Inactive coverage) and 17 (Commercial, copay only). 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
- Simulate a patient whose coverage is inactive (an
INELIGIBLEbenefits check)
- 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
statusisCOMPLETE
Member Number Format
The member number has three parts:
Examples:
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:Step 2: Trigger a benefits check
Use the Create Benefits Check API:Step 3: Retrieve the results
Use the Get Benefits Check V2 API with the returned ID. Poll untilstatus 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.Fields returned
Code 11 populates these top-level response fields:eligibility_status→ELIGIBLEplan_start_date→2025-01-01plan_end_date→2025-12-31plan_type→Open Access MCinsurance_type→COMMERCIAL
specialty_fields):
IN = in-network, OON = out-of-network
Reference number
Every simulated payor response includes a payor trace number, returned in the top-levelreference field. It is a unique value in the format QA followed by 10 digits, for example "reference": "QA9321969724".
Requirement Flags
Include these keywords anywhere in the middle of the member number (between theA prefix and the two-digit insurance code) to toggle specific requirements. You can combine multiple flags in a single member number.
How flags appear in the V2 response
AUTH_REQ populates authorization_requirements:
REF_REQ populates referral_requirements:
VISIT_REQ populates visit_limits:
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.
Testing with Procedure Groups
If your Create Benefits Check request includesprocedure_group_ids, every copay and coinsurance value must apply to the CPT codes in those procedure groups. Code 11 returns both a copay and a coinsurance for the whole service type, so it can’t be attributed to your procedure groups and the benefits check will not complete automatically.
Use insurance code 17 instead. It returns the same Commercial plan with a $0 copay and no coinsurance, and that copay applies to every CPT code in your procedure groups.
Member Number: ATEST00000017
copay_fields contains the $0 copay with your procedure groups’ CPT codes in modifier.treatment_codes, and coinsurance_fields is empty:
Because code
17 returns no coinsurance, your benefits check template must not require the coinsurance field. If it does, the benefits check will not complete automatically. Contact your Silna representative to update your QA template.Ineligible Benefits Checks
Use insurance code16 to simulate a patient whose coverage is no longer active. The payor response contains an inactive coverage segment and no active coverage, so the benefits check completes as INELIGIBLE.
Member Number: A_INACTIVE_16
Ineligible benefits checks return the eligibility fields only; plan and specialty details such as specialty_fields, plan_type and insurance_type are not populated.
Requirement flags have no effect with code
16, because an inactive plan returns no benefits.Out-of-Network Benefits Checks
network_status is not determined by the member number. Silna determines it from the contracts configured for your organization: a benefits check is IN_NETWORK when one of your contracts covers the payor, the plan and the patient’s service location, and OUT_OF_NETWORK when none does.
Contracts apply to specific service locations, and a new service location is not added to your existing contracts. To test an out-of-network result in QA, create a service location that is not contracted with Aetna and run the benefits check for a patient at that location:
- Create a service location with Create Service Location. Use your provider’s
provider_idfrom Get Providers and aprovider_group_idfrom Get Provider Groups.
- Create a patient with
provider_service_location_idset to the new service location’sid. - Add an Aetna patient plan with an eligible member number, such as
ATEST00000011, and create the benefits check.
"network_status": "OUT_OF_NETWORK", and cost-share fields use the plan’s out-of-network values. For code 11, that is 40% coinsurance instead of the in-network 10%.
You can also set network_status_override to OUT_OF_NETWORK on the Create Benefits Check request to see how your integration handles an out-of-network result.
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
Commercial plan with no flags
Member Number:ATEST00000011