Skip to main content
Create a PA with POST /prior-authorization. The same endpoint supports delegated and non-delegated workflows. Your organization’s configuration determines who reviews and submits the PA.

Example sandbox request

Use this synthetic request with a sandbox organization’s token. It sends a name-based prescription and clinical evidence, with a mock outcome for testing. The provider identifier is illustrative; use your configured sandbox test provider if your workflow requires one.Save this as pa-request.json:
Store the returned data.id. To track the PA, call GET /prior-authorization/{id} with that ID or handle prior_authorization.status_change webhooks. See sandbox testing for denial and not-submitted scenarios.
If diagnoses is omitted, we’ll try to extract diagnoses from the evidence you provide. If we can’t extract them, they must be added during PA review. Incomplete clinical data can prevent submission after the API accepts a request. See optional workflows for resubmissions, appeals, provider outreach, and benefit verification before PA submission.

Patient and provider data

Addresses

The patient requires a complete address with:
  • street
  • city
  • state_province, using a valid US state
  • zip_postal_code, as a string so leading zeros are preserved
street_line_2 is optional and country defaults to USA. Use the patient’s current address as recorded with their insurer. The provider’s address object is required, but its individual fields are optional. Send a complete address when available to help with payer matching and follow-up.

Gender

patient.gender is required and accepts male, female, other, or not_specified. Use not_specified when the information has not been provided. Send known information that matches the payer record. Missing demographics can affect matching and cause delays or inaccurate results.

Patient identifiers

Use a stable patient.internal_id for the same patient across BV and PA requests. Store each returned PA ID separately so you can associate webhook updates with the correct workflow. The patient ID does not deduplicate create requests.

Provider details

Send the prescribing provider’s NPI. Provide the provider’s phone and fax when available. The fax number is required when requesting provider outreach. The PA create request has no top-level entity field for a legal entity name or tax ID.

Insurance

Provide at least one of insurance (card images) or insurance_content (structured details). You can send both. For insurance_content, prioritize the member ID and pharmacy routing codes:
  • Preferred: Member ID with Rx BIN, Rx PCN, and Rx group.
  • Some Rx codes missing: Member ID with every Rx code you have, plus payer and plan names.
  • No Rx codes available: Member ID with payer and plan names.

Upload insurance cards

Send each card side as a separate item in insurance, with the file bytes encoded as Base64 in file_content. Insurance-card uploads require file contents; download URLs are unsupported. Replace these placeholders with Base64-encoded files:
Supported formats are JPEG/JPG, PNG, TIFF, BMP, HEIC, or a single-page PDF. Keep each decoded insurance-card image below 4 MiB (4,194,304 bytes) before Base64 encoding. Resize larger images before uploading. This size guidance applies only to decoded insurance-card images. Send each PDF card side as a single-page file. Insurance cards and clinical evidence have different format rules. Use evidence for medical records and other supporting documents.

Read extracted insurance data

GET /prior-authorization/{id} returns insurance records in data.insurance. Each record uses discrete_content for the values you supplied and scanned_content for values extracted from card images.

Prescription and quantity

Prefer CodedPrescription when you have an NDC: Both formats also require directions, quantity, days_supply, and prescription_date. Use the quantity and unit from the prescription when the chosen format can represent them. The name-based format has no quantity_unit_of_measure field, and neither format represents fractional quantities in its integer quantity field. For fractional quantities or ambiguous product presentations, confirm a supported mapping with Develop Health before sending the request. Do not round, assume an NDC supplies the unit, or use days_supply as a substitute. BV quantity examples do not define PA dispensing units.

Clinical evidence

Use evidence as the primary field for clinical information. Send chart notes, diagnoses, laboratory results, medication history, and prior treatment outcomes as text, structured JSON, or files. Include relevant dates and the information your PA team would use for the same request. Each item requires title, date_created, and either content or asset.

Text or structured evidence

An evidence item’s content can be text or a JSON object. For example, this synthetic item preserves treatment dates and the recorded response:
date_created is the item’s creation time. If you also send evidence.document_date, use the clinical/source document date from a trusted record. Do not substitute upload, export, or ingestion time for that field.

File evidence

For a file, use asset. An asset takes exactly one of file_content (Base64 bytes) or file_url (a downloadable URL). This example shows the shape; replace the placeholder before sending:
Supported evidence formats are PDF, JPEG, PNG, HEIC, and HEIF. Convert Word, spreadsheet, TIFF, or BMP evidence to a supported format. The broader insurance-card format list does not apply to clinical evidence. For URL-based evidence, the service downloads the file immediately. A signed URL must remain valid and accessible for that download; a URL requiring an interactive sign-in will not work. If it fails, correct the URL or provide Base64 content. Do not send both asset and content for the same item, or both file fields in one asset. The API also accepts visit_notes and questionnaires. See the API reference for their formats.

Handle missing information and review

Track the PA after creation. When a non-delegated PA reaches awaiting_review, follow the PA review step. A PA waiting for provider information can remain in progress. If it stops at not_submitted with more_information_required, read the outcome detail and collect the missing information, then create a new linked request through the resubmission path. Use the PA response guide for the exact state and outcome handling rules.

Optional workflows

To resubmit a PA, send a new request with the updated information. Set resubmission_info.previous_prior_auth_request_id to the original PA ID and use resubmission_info.note to explain what changed. The original PA must be in a terminal state.For an appeal, also include appeal_details with the appeal letter and urgency. The resubmission note is optional when appeal details are provided. See the create reference for the field formats.
Pharmacy organizations can set provider_outreach.enabled: true to request clinical documents from the prescriber before PA preparation continues. Include provider.fax. Use provider outreach events to follow communications and the PA status to track the overall request.
Set trigger_benefit_verification.enabled: true to check medication coverage before proceeding with the PA. You can include alternatives in trigger_benefit_verification.additional_medications. See the create reference for the request format.When this workflow stops the PA, its status is not_submitted. Read outcome.detail_code and the benefit verification result:
Some configured workflows check whether a formulary alternative is required before submitting a PA. If the PA stops with not_submitted and outcome.detail_code: "formulary_alternative_required", read the outcome detail for the alternative. Review it with the prescriber and create the appropriate request if treatment changes.