Authorization object

Authorization is the source of truth for a prior authorization case. Build your integration around reading this object, branching on status and nextAction, and using version for optimistic concurrency.

Top-level fields

FieldMeaning
idStable authorization ID.
versionInteger version for If-Match on mutable operations.
statusLifecycle state: requires_action, processing, waiting_on_payer, completed, or canceled.
outcomeTerminal result when status = completed: approved, denied, modified, not_required, or failed.
policy.finalSubmissionFinal payer-submit policy selected at create time.
providerNpiTenant-scoped provider NPI used for routing.
payerCanonical payer destination.
requestPayer, coverage state, service type, and service code.
routeResolved channel route. Public routes are portal with collate_managed access.
questionnaireCurrent compact recursive answerable surface.
answersCurrent normalized nested answer set.
requirementsCurrent unresolved blockers.
attachmentsSupporting documents linked to the authorization.
submissionReview snapshot, payer receipt, and terminal decision projections.
nextActionCurrent customer-owned action, or null.
activeManualHandoffPointer to an active manual handoff, when one exists.
metadataCustomer metadata supplied on create.
createdAt, updatedAt, completedAt, canceledAtTimestamps for audit and display.

Status and nextAction

status says who owns the next move. nextAction says exactly what to do when status = requires_action.

nextAction.typenextAction.resolution.kindResolve with
resolve_requirementsupdate_authorizationPATCH /answers, file upload, and attachment writes.
continue_authorizationconfirmPOST /confirm with If-Match.
approve_submissionconfirmReview submission.reviewSnapshot, then POST /confirm.
complete_payer_interactionmanual_handoffManual handoff endpoints.

nextAction.covers tells you which authorization, requirements, answers, attachments, and review snapshot versions the action was issued against. You do not echo action IDs into command requests. The server derives the current action from state and rejects stale writes with version_conflict or review_stale.

Requirements

requirements is a blocker set:

1{
2 "version": 3,
3 "questions": [
4 {
5 "linkId": "code",
6 "path": "diagnoses[0].code",
7 "message": "Diagnosis Code is required."
8 }
9 ],
10 "documents": [
11 { "type": "clinical_notes", "message": "Clinical notes are required." }
12 ],
13 "issues": []
14}

An empty requirements object does not always mean the case should advance automatically. Branch on nextAction.

Submission

submission separates review, receipt, and decision truth.

FieldMeaning
reviewSnapshotPackage Collate prepared for final approval. Present when approve_submission is open.
payerReceiptEvidence-backed proof that the payer received the submission.
decisionTerminal payer decision when known.

waiting_on_payer means payerReceipt is present and the payer has the next move. completed means outcome is set and decision contains terminal decision details when a payer decision exists.

Not public resources

Do not build against internal executions, browser runs, replay artifacts, portal claims, reconciliation rows, or internal provider-session URLs. They are internal implementation details. Public integrations use Authorization, File, route/catalog endpoints, live-session grants, and manual handoff endpoints.