Documentation Index
Fetch the complete documentation index at: https://docs.silnahealth.com/llms.txt
Use this file to discover all available pages before exploring further.
How to get Prior Authorizations for a Patient Plan
- You can get all prior authorizations for a patient plan by calling the Get Prior Authorizations for a Patient Plan API.
- This will return a preview of each prior authorization. In order to get more detailed information, you should call the Get Prior Authorization API with one of the
ids from the response above.
Prior Authorization Statuses
When a prior authorization is in the below states, a provider/api client is still in the process of creating a prior authorizatin requestDATA_REQUESTED-> This means that Silna is waiting for the provider to provide the required data. It is in this state after Create Prior AuthorizationDATA_RECEIVED-> This means that Silna has received data from the provider and we are determining if the requirements have been metALL_REQUIRED_DATA_RECEIVED-> This means that Silna has all required data from the provider and the provider can call Complete Prior Authorization to submit it to Silna to process When a prior authorization is in the below states, Silna is currently processing the authorization:AWAITING_SILNASUBMITTED_TO_PAYORPRELIMINARY_APPROVAL-> This means the payor has provided preliminary approval but we are still waiting for either a reference number or an authorization approval letter.REQUESTEDPARTIALLY_APPROVED
PAYOR_DENIEDPAYOR_DENIED_APPEALINGAWAITING_PROVIDER
PAYOR_APPROVED-> This means that the prior authorization is complete.DENIED_UNAPPEALEDUNNECESSARYWITHDRAWN
Prior Authorization Document Types
Document Types When Creating A Prior Authorization
All Specialty Document Types
PROGRESS_NOTETREATMENT_PLAN_PLAN_OF_CARE-> Use this document type for Treatment Plans or Plans of Care.REFERRALASSESSMENT_EVALUATIONDIAGNOSIS_REPORTAUTHORIZATION_FORM-> This is required in very rare and complex cases. Usually clients will upload all required data and we will use those inputs to create the authorization form.
ABA Specific Document Types
ABASVINELANDSRS_2PDDBIPSI_SIPA
Document Types that we can return in Get Prior Authorization’s other_files field
In addition to the above document types, we can also return files withOTHER document types. This is a legacy document type
that we support for backwards compatibility purposes.
Note: This list of document types is not static. We will not remove document types but we will add more in the future.
Authorization Types
When running a benefits check for a patient plan, we will tell you whether an authorization is required. The general order of authorizations is the below:ASSESSMENT_AUTHORIZATION-> (Not always required) Requests for initial evaluations or assessments. This is typically used for a new patient.INITIAL_AUTHORIZATION-> Requests for initial treatment post-evaluation or assessment.CONCURRENT_AUTHORIZATION-> Requests for ongoing treatment of existing patients.
AMENDMENT-> Any addendums, extensions, or change of provider on an existing authorization.
Reading Approval Data From a Prior Authorization
When a prior authorization is in thePAYOR_APPROVED state, then you can read the approval data from the prior authorization.
- The approval letter will be in
approval_files. Please search for the file with thedocument_typeofAPPROVAL_LETTER. This object will have file id. If you want to download it, then you will have to use the Get File API. - The approved treatment codes will be in
approved_treatment_codes. Each entry in this list will have a list of treatment codes that were approved (treatment_codes) and theunits,unit_type,time_frame,reference_number,approved_start_date, andapproved_end_date. These fields will apply across all treatment_codes in thetreatment_codeslist.
units=20 and unit_type=VISITS, then you have 20 visits approved across treatment codes 97153, 97154, and 97155 i.e. 97153.visits + 97154.visits + 97155.visits = 20.
All of these treatment codes will have the same start/end dates and reference numbers.
Below is an example of this kind of response:
Creating A Prior Authorization
Call Sequence
- POST (Create) Prior Authorization. This returns a prior authorization id to use for the subsequent requests and tells the api client what data is required to complete the request
- This will return a Prior Authorization with status
DATA_REQUESTED. It will return requirements to complete the prior authorization. Each requirement marked with"required": truewill need to be satisfied before completing the request.
- This will return a Prior Authorization with status
- PATCH (Update) Prior Authorization. Use this API to upload documents, treatment codes, clinician data, and/or a start date. You can upload data that is not specifically required
- Poll GET Prior Authorization. The client can stop polling once the status moves to
DATA_REQUESTEDorALL_REQUIRED_DATA_RECEIVED. A Silna background job is responsible for moving a Prior Authorization status fromDATA_RECEIVEDtoDATA_REQUESTEDorALL_REQUIRED_DATA_RECEIVED. - PATCH (Update) Prior Authorization (if step 3 returns a prior authorization with status
DATA_REQUESTEDthen this is required). Else, the client can call this with optional files. Once we are in theALL_REQUIRED_DATA_RECEIVEDstate, clients will no longer be able to remove the uploaded data which is required. - POST Prior Authorization Complete Request. This moves the prior authorization to the
REQUESTEDstate.
Lifecycle

Kicking off the Prior Authorization Request Process (Step #1 in Call Sequence)
Calling POST (Create) Prior Authorization will create a Prior Authorization in aDATA_REQUESTED state and return what additional data is required
-
You will need to supply three fields: a
patient_plan_id, anauthorization_type, and aspecialty. -
When
treatement_codes.requiredistruethen the api client will need to use the PATCH (Update) Prior Authorization to create at least one treatment code. The reason we require an additional request to upload treatment codes is because there are multiple treatment code standards (depending on the payor) and we need to let the api client know which one to use. -
When
documents.requiredistrue, then the api client will need to use the PATCH (Update) Prior Authorization api to upload the required documents (and optionally the documents withrequiredset tofalse). Similar to treatment codes, we are unable to know which documents are required until the api client initiates the creation of a prior authorization as the documents required depend on the payor, specialty, and authorization type.- When uploading documents, you will first need to upload the file with the POST (Upload) File API and then use the file id in the PATCH (Update) Prior Authorization api to upload the document.
- Each item in
documents.itemswill have adocument_typeand arequiredfield. Thedocument_typetells you what document type you need to upload and therequiredflag tells you whether that specific document is required.
-
When
clinician_npi.requiredistrue, then the api client will need to use the PATCH (Update) Prior Authorization to upload a clinician NPI (and optionally first and last name). -
When
start_date.requiredistrue, then the api client will need to use the PATCH Prior Authorization API to add a start date to the authorization.
Updating A Prior Authorization Request (Step #2 and Step #4 in Call Sequence)
Calling PATCH (Update) Prior Authorization allows a client to complete the requirements returned by the POST (Create) Prior Authorization API. Updates to list fields will replace the entire list. If you need to make a subsequent update, you should first call GET Prior Authorization to get the current requested treatment codes and documents on file. Making calls to this API with additional data fields (like treatment codes, clinician_npi, documents, start_date) will move the status toDATA_RECEIVED.
From there, Silna will determine whether the requirements have been met. If so, we move the state to ALL_REQUIRED_DATA_RECEIVED. If not all requirements have
been satisfied, then we move to DATA_REQUESTED and return the requirements that are still needed.
Once the status is ALL_REQUIRED_DATA_RECEIVED, the client can still add more documents, treatment codes and make changes to the clinician and start date. However,
they cannot take any action that would move the prior authorization status back to DATA_REQUESTED. For example, if there is already a start date on the prior authorization, then the client cannot remove it. If they want to change the start date, they will need to update it to a new date.
Passing in
save_as_draft = True as an argument to the Prior Authorization Patch will leave the status of the prior authorization unchanged.Viewing Which Prior Authorization Requirements Have Been Satisfied (Step #3 in Call Sequence)
Poll GET Prior Authorization with the query parameterwith_requirements=true to
see the same requirements as the POST (Create) Prior Authorization API. This
will also return a requirement_satisfied field which returns whether that individual requirement has been met. Use the status field to determine if
ALL requirments have been met
Completing the Prior Authorization Request (Step #5 in Call Sequence)
Calling POST Prior Authorization Complete Request will move the prior authorization to theREQUESTED state.
This will only return a 2XX response code if the prior authorization has status ALL_REQUIRED_DATA_RECEIVED, else it will return a 4XX error.
Aborting the Prior Authorization Request
If you no longer want to submit a prior authorization, you can use the DELETE (Abort) Prior Authorization API. Note: You cannot delete a prior authorization that is not in theALL_REQUIRED_DATA_RECEIVED, DATA_REQUESTED, or DATA_RECEIVED states.
Predictive Document Intelligence
Silna optionally supports validating uploaded clinical documentation before a prior authorization is submitted. Predictive Document Intelligence analyzes documents against both payor-managed rules and provider-configured rules (set up in the Automation tab in Provider Overview) to catch issues like missing signatures, expired documents, and mismatched diagnosis codes. Validation runs automatically when you upload documents during a PATCH (Update) Prior Authorization request and typically completes in 30 to 45 seconds. Results are available viarequired_data.documents[].document_validation_batch when polling with with_requirements=true. Use the document_validation_batch.id to fetch detailed rule results from the batch endpoints. If validation fails, the PA will move to DATA_REQUESTED with details about which rules failed — but this does not prevent you from moving forward with creating the prior authorization. You can fix and re-upload documents, or choose to proceed by disabling validation for specific document types or setting skip_document_intelligence: true on your next PATCH request.
For the full guide - including rule types, lifecycle diagrams, detailed result schemas, and override instructions - see the Predictive Document Intelligence Overview.