PriorAuthdocs

Configuration schema

Generated from the live registry at build time. It cannot describe a capability the gateway does not enforce.

Configuration resolves through a cascade - fleet, then alliance, then practice - and every one of the 32 keys below declares which direction a lower layer may move it.

Direction, not just value
A key marked stricter may be tightened by a practice and never loosened. The linter refuses a proposal that would loosen one at authoring time, so an unsafe overlay cannot be written, let alone published.

#Sealed keys

Settable at fleet only, by a governed change. No alliance and no practice can weaken them. These are the safety floors.

KeyValueWhy it is sealed
safety.human_gate_requiredtrueThe agent never sends. Every consequential action stops at a licensed human, at every autonomy level.
safety.adverse_determination_requires_licensed_humantrueAn adverse or clinical determination is released by a licensed human. This one gate satisfies the state-law patchwork, CMS UM rules, and FDA CDS criterion 4.
safety.audit_requiredtrueEvery PHI view and every governed action writes an audit event with purpose-of-use.
safety.external_phi_max"masked"An external A2A principal never receives unmasked PHI, whatever a practice would prefer.
isolation.cross_practice"never"A prior authorization belongs to exactly one practice. There is no configuration that widens this.
safety.clinical_kb_is_config_not_ragtrueWhether a code needs authorization is a lookup with a right answer. It is never generated.

#Every key

KeyTypeDefaultDirectionSealed
safety.human_gate_requiredbooleantrue-yes
safety.adverse_determination_requires_licensed_humanbooleantrue-yes
safety.audit_requiredbooleantrue-yes
safety.external_phi_maxenum (none | masked)"masked"-yes
isolation.cross_practiceenum (never)"never"-yes
safety.clinical_kb_is_config_not_ragbooleantrue-yes
autonomy.ceilingenum (L0 | L1 | L2 | L3 | L4)"L3"stricter-
autonomy.external_ceilingenum (L0 | L1 | L2 | L3 | L4)"L1"stricter-
bounds.page_sizeinteger50stricter-
bounds.max_rowsinteger500stricter-
budget.calls_per_mininteger30free-
budget.practice_calls_per_mininteger120free-
budget.calls_per_dayinteger5000free-
gate.ttl_minutesinteger60stricter-
vendor.timeout_msinteger8000free-
knowledge.staleness_budget_daysinteger90stricter-
knowledge.serve_unverifiedbooleanfalsestricter-
submission.default_urgencyenum (standard | expedited)"standard"free-
submission.duplicate_window_hoursinteger24free-
submission.poll_backoff_msinteger700free-
submission.auto_attach_documentationbooleantruefree-
denial.auto_triagebooleantruefree-
denial.triage_queuestring"prior-auth-denial-review"free-
payers.enabledarray["BCBSF","AETNA","UHC"]free-
model.idenum (deterministic-rules-v1 | claude-sonnet-4-5-20250929 | claude-opus-4-5-20251101)"deterministic-rules-v1"free-
model.confidence_floorinteger70stricter-
ehr.modeenum (mock | replay | veradigm)"mock"free-
ehr.write_enabledbooleanfalsefree-
ehr.autonomous_status_commentbooleanfalsefree-
vendor.modeenum (mock | replay | live)"mock"free-
rail.preferredenum (278 | pas)"278"free-
branding.practice_display_namestring""free-

#Purpose of each key

safety.human_gate_required
The agent never sends. Every consequential action stops at a licensed human, at every autonomy level.
safety.adverse_determination_requires_licensed_human
An adverse or clinical determination is released by a licensed human. This one gate satisfies the state-law patchwork, CMS UM rules, and FDA CDS criterion 4.
safety.audit_required
Every PHI view and every governed action writes an audit event with purpose-of-use.
safety.external_phi_max
An external A2A principal never receives unmasked PHI, whatever a practice would prefer.
isolation.cross_practice
A prior authorization belongs to exactly one practice. There is no configuration that widens this.
safety.clinical_kb_is_config_not_rag
Whether a code needs authorization is a lookup with a right answer. It is never generated.
autonomy.ceiling
A practice that wants its agents more conservative may say so. It cannot grant itself more autonomy than the fleet allows.
autonomy.external_ceiling
External A2A principals default lower than platform agents.
bounds.page_size
No list-all. A practice may page smaller.
bounds.max_rows
Hard ceiling on rows returned to an agent.
budget.calls_per_min
Per-principal call budget, per minute.
budget.practice_calls_per_min
Whole-practice call budget, so one runaway principal cannot exhaust the tenant.
budget.calls_per_day
Per-principal daily budget.
gate.ttl_minutes
How long a human release stays valid. A practice may shorten this; it may not extend it beyond the fleet default.
vendor.timeout_ms
Per-call vendor timeout. A call that hangs is a failure, not a wait.
knowledge.staleness_budget_days
How old a payer rule may be before it is served with a warning.
knowledge.serve_unverified
Whether an unverified rule may be returned at all. Default is no; a practice may not turn this on.
submission.default_urgency
Default urgency on a new request.
submission.duplicate_window_hours
How long the gateway refuses a byte-equivalent resubmission.
submission.poll_backoff_ms
Delay between polls of a pending authorization.
submission.auto_attach_documentation
Whether the agent attaches documentation it can locate.
denial.auto_triage
Whether denial triage runs automatically on an adverse determination.
denial.triage_queue
Which HITL queue receives denials.
payers.enabled
Payers this practice transacts with.
model.id
Which pinned model proposes. An unpinned id cannot be evaluated, so only allowlisted pins appear here.
model.confidence_floor
Percent. Below it a proposal is held for a human rather than acted on. A practice may raise this; it may never lower it.
ehr.mode
Which EHR adapter this practice talks to. The live adapter refuses to start without credentials and without verified field mappings.
ehr.write_enabled
Whether PriorAuth may write into this practice's chart at all. Off by default: a read connection is not consent to write. The practice owns the record and turns this on deliberately.
ehr.autonomous_status_comment
Whether a factual, AI-disclosed payer-status note may be written without a human release. Clinical assertions and referrals are gated regardless of this setting.
vendor.mode
Which clearinghouse adapter this practice talks to. Moving a practice to live is a config change with an audit trail, not a deploy. The live adapter refuses to start without credentials rather than falling back.
rail.preferred
Preferred transport. Two rails, permanently; PAS as payers turn it on.
branding.practice_display_name
Shown in the console.