- Did the API accept the request?
- What stage is the PA in?
- What operational activity occurred within that stage?
- If the workflow stopped, what should the caller do next?
Choose the right signal
Lifecycle
Do not use the legacy
outcome.result: "Pending" placeholder to determine
whether a PA is still running.
Terminal states and outcomes
Interpretdata.status before interpreting data.outcome:
A
completed state does not by itself mean that Develop Health sent a new PA.
For example, duplicate_request and prior_auth_not_required are completed
Other results.
Workflow state versus activity
PA status is intentionally high-level. It does not change for every fax, call, provider interaction, or payer follow-up.
A provider outreach has its own lifecycle. A single outreach becoming
expired
or failed does not make the parent PA terminal; a retry or escalation can
create a new outreach with a new ID. Continue using the PA’s data.status for
the overall workflow.
More information requests
A request for more information is not automatically terminal. While Develop Health is gathering or answering it, the PA remains in a nonterminal state such asawaiting_provider_response, awaiting_outcome, or validating_outcome.
Only treat the PA as stopped when data.status itself becomes terminal. A
terminal not_submitted or Other outcome can use
more_information_required as its detail_code when the current workflow can
no longer continue.
Request errors
Creation errors from Send Prior Authorization use the structured error response format.error.existing_prior_auth_request_id identifies an existing PA when the error
refers to one; it can otherwise be null or omitted.
If creation returns an error, do not start monitoring a new PA. When
existing_prior_auth_request_id is present, continue monitoring that PA. The
creation code other is unrelated to a completed PA whose outcome.result is
Other.
Some input problems are detected during creation, such as an invalid Rx BIN,
an unreadable member ID, or an evidence file that cannot be downloaded. Problems
discovered only after the PA is accepted appear as terminal exceptions below.
Terminal exceptions
These signals are returned by Retrieve Prior Authorization and the corresponding webhooks:Not-submitted codes
Other result codes
data.outcome.result: "Other" means the terminal result is neither approval nor
denial. It does not mean an unclassified request error occurred.
Eligibility-check errors
When enabled,data.eligibility_check_response contains one item per result. An
error item has status: "error", an error_code, a human-readable
error_message, and an action_code.
Retrieve errors
Retrieve Prior Authorization returns404 when the PA does not exist or is not visible to the authenticated
organization.
Nested operations
Nested work has its own lifecycle and errors and does not change the meaning of the parent PA state. Ifdata.prescription_transfer is populated, see
Cancel Prior Authorization Prescription Transfer
for its states and error codes.
Monitoring and unknown values
Use the retrieve endpoint orprior_authorization.status_change webhook to
monitor the lifecycle. Other event types describe messages, provider outreach,
and prescription transfer; receiving one does not mean the PA is terminal.
Treat code lists as extensible. Preserve unknown codes in logs and handle them
like other rather than failing to parse the response. See
Understanding API Responses for common
authentication and validation errors.