For AI agents: the documentation index is at /docs/payerbox/llms.txt. A Markdown version of this page is available at /docs/payerbox/data-integration/prior-auth.md or by requesting it with the Accept: text/markdown header.
Payerbox Docs

Prior Authorizations

Datasets

Built to Da Vinci PDex STU 2.1.0. An authorization becomes one ExplanationOfBenefit with use = preauthorization, not a Claim. Three files: the authorization and its decision, the items it covers, and the links from an authorization to the documents behind it.

DatasetPDex STU 2.1.0 target
prior_authsPDex Prior Authorization
prior_auth_linesExplanationOfBenefit.item of the same profile
prior_auth_documentsExplanationOfBenefit.supportingInfo of the same profile, pointing at the US Core DocumentReference built from documents

Prior authorization data often sits with a delegated utilization-management vendor rather than with the plan. Whoever holds it delivers this feed.

Data conventions

RuleDetail
ScopeMedical prior authorizations in every state: pending, approved, denied, partially approved, cancelled. Drug prior authorizations are out of scope for the APIs this feed serves, so filter them out before delivery.
HistoryEvery authorization active now, plus every authorization whose status last changed within the past year.
FreshnessA new request is delivered within one business day of receipt, and a status change within one business day of the change.
DeliveryOne historical backfill, then deltas carrying only authorizations new or changed since your last successful load. An authorization is the unit of delivery: when it appears in a delta, send its row, all of its lines and all of its document links, and the previous sets are replaced.
Keysrecord_id is the authorization number the source system assigned, the one the provider and the member see. It stays stable as the authorization moves from pending to a decision: every later delivery is an update to the same record, not a new one. It must be unique across the whole feed, so numbering that restarts per plan is prefixed before delivery.
ReferencesMembers, coverage, providers, locations and documents are keys into the other feeds, defined once there: patient_identifier from patients, coverage_id from coverage, every *_npi and *_npis column from practitioners and organizations, facility_id from locations, document_record_id from documents. A provider named on an authorization must exist in those datasets even when out of network.
CodesSend the code, not the description. Coded columns have a companion _system column; leave it blank to accept the default named in that column's row. Payerbox derives the label from its terminology service. The review, level-of-service and denial columns bind to licensed X12 code lists, and CPT and HCPCS are licensed too: hold the license for every code system you send.
Multiple values;-separated, positionally aligned across companion columns. Aligned lists must be the same length: the companion is read at each value's own position, so a short list leaves the values past its end without one.
Datesdate columns are YYYY-MM-DD. datetime columns are ISO 8601 with a timezone offset.
PHIAuthorizations carry protected health information. Delivery is encrypted in transit and at rest under the executed BAA.

PDex points the authorization's insurance at the HRex Coverage profile, whose beneficiary is an HRex Patient. An authorization sends no coverage data of its own beyond coverage_id, and almost everything those two profiles demand is already required elsewhere: the member id and subscriber relationship in coverage, the name in patients. The one exception is birth_date, recommended in the clinical feed and required for any member who has an authorization: a member missing it cannot have one published.

prior_auths

One row per authorization.

ColumnRequiredFormat / valuesExample
record_idYesyour authorization number, stable across status changesPA-0001
patient_identifierYespatient key from patientsMRN-4471903
coverage_idYeskey from coverage, the plan the authorization was decided againstCOV-0001
payer_org_npiYes10 digits, or your payer id; the same payer named on that coverage9999999979
requesting_provider_npiYes10 digits; key from practitioners or organizations; who asked for the authorization9999999995
enterer_npiIf available10 digits; key from practitioners; who entered the request, when that is not the requesting provider9999999987
facility_idIf applicablekey from locations; where the authorized service is to be deliveredLOC-221
care_team_npisIf available10 digits, ;-separated; other providers named on the request
care_team_rolesIf care_team_npisprimary, assist, supervisor, other; one per entry in care_team_npis, same length claim-careteamrole (code system http://terminology.hl7.org/CodeSystem/claimcareteamrole)
claim_typeYesprofessional, institutional, oral, vision claim-typeprofessional
statusYesactive, cancelled explanationofbenefit-statusactive
outcomeYesqueued, complete, error, partial remittance-outcomecomplete
request_dateYesdatetime the authorization was created in your system2026-03-02T09:12:00-05:00
level_of_service_codeIf availableX12 level of service code, the urgency the provider asked for (2000E UM06) levelOfServiceCodeU
priorityIf availablestat, normal, deferred; how fast the payer had to process the request process-prioritynormal
diagnosis_codesRecommendedICD-10-CM codes the request was justified by, ;-separated; lines point at positions in this listE11.9;I10
diagnosis_typesIf availableprincipal, admitting and the rest of the diagnosis types, aligned with diagnosis_codes ex-diagnosistypeprincipal;secondary
diagnosis_code_systemIf not ICD-10-CMhttp://hl7.org/fhir/sid/icd-9-cm (ICD-10-CM, http://hl7.org/fhir/sid/icd-10-cm, assumed when empty)
decision_dateIf decideddatetime the authorization-level decision was made2026-03-04T16:20:00-05:00
auth_period_startIf approveddate the authorization takes effect2026-03-05
auth_period_endIf it ends on a datedate the authorization expires; blank when the limit is a number of units rather than a date2026-06-05
review_action_codeIf your system assigns oneX12 review decision action code (2000F HCR01), the decision as a code reviewActionA1
review_numberIf availablethe review number your system assigned to this decisionAUTH0001
review_reason_codesIf pended, denied or partially approvedX12 review decision reason code(s), ;-separated X12278ReviewDecisionReasonCode
second_surgical_opinion_flagIf assertedtrue when a second surgical opinion is required for approvaltrue
denial_reason_codesIf deniedCARC or RARC codes explaining the denial, ;-separated X12 CARC and RARC50
denial_reason_systemIf RARChttps://x12.org/codes/remittance-advice-remark-codes (CARC, https://x12.org/codes/claim-adjustment-reason-codes, assumed when empty)
denial_reason_textIf deniedfree text; the reason as the member reads it, published alongside the codeNot medically necessary for this indication
submitted_amountIf availabledecimal, US dollars; the amount requested1200.00
eligible_amountIf availabledecimal, US dollars; the amount allowed840.00
utilized_quantityIf tracked, and eligible_amount is sentdecimal; how much of the authorization has been used to date2
process_note_1process_note_10If your system holds themfree text; the authorization as it reads to the member and the servicing provider, one note per slot, in the order they were writtenApproved 12 established-patient visits, effective 03/05/2026-06/05/2026
last_updatedYesdatetime the authorization last changed in your system2026-03-04T16:20:00-05:00
is_deletedIf retractingtrue retracts this authorization, its lines and its document linkstrue

Authorization states

status carries the lifecycle of the record, outcome says how far processing got, and review_action_code carries the decision. Each state brings its own required columns.

StatestatusoutcomeAlso required
Pendingactivequeuednothing beyond the request columns
Approvedactivecompletedecision_date, auth_period_start, and allowed_units on every line
Deniedactivecompletedecision_date, denial_reason_codes, denial_reason_text
Partially approvedactivepartialthe approved and the denied columns, per line
Cancelled or withdrawncancelledthe value processing had reachedqueued when no review had happened, complete when a decision was already on record
  • An authorization that has run out of time stays active. cancelled means withdrawn, not lapsed. Keep sending the row for as long as History asks for it.
  • A partial approval is decided per line, so the authorization row carries outcome = partial and the reasons sit on the lines that were cut or refused. Send authorization-level denial columns only when the whole request was refused.
  • claim_type has no pharmacy value: drug authorizations are out of scope. Dental is oral, vision is vision. Blank reads as professional. It is not derived from the lines, so send institutional yourself for a facility authorization.
  • The provider columns take an NPI, or the id that provider is registered under in practitioners and organizations. A provider known only by a name cannot be published.
  • outcome is about processing, review_action_code about the decision. They are not interchangeable, so send both: a request reviewed and sent back for more information is queued with a review action of pended. A cancelled authorization keeps the outcome it had reached and says it was cancelled in status.
  • review_action_code, review_number, review_reason_codes, second_surgical_opinion_flag and decision_date publish only on a row that also carries denial_reason_codes or submitted_amount. The lines carry the same rule.
  • Leave auth_period_end blank when the authorization ends on a unit or visit allowance rather than a date. allowed_units on the line then says when it is exhausted. Both may be present.
  • denial_reason_codes takes CARC and RARC codes only, so a payer-defined code cannot go there. Put the wording in denial_reason_text; both are published.
  • The amounts are optional; an authorization decided on medical necessity alone carries none. Send them where you have them.
  • A home-care authorization is approved as a schedule: how many hours, on which days. A line's unit count cannot express that, so it goes in process_note_. Fill the slots in order. A note is published as written and never parsed.

prior_auth_lines

One row per item or service on the authorization. An authorization covering three services has three rows carrying the same prior_auth_record_id. Lines have no is_deleted: an authorization is delivered as a whole, so re-sending it replaces its previous lines.

Requested

ColumnRequiredFormat / valuesExample
prior_auth_record_idYesthe authorization's record_idPA-0001
line_numberYespositive integer, unique within the authorization1
service_codeYes, unless revenue_code identifies the lineCPT, HCPCS or HIPPS code for the requested service, with service_code_system PDexPAInstitutionalProcedureCodesVS99214
service_code_systemIf not CPThttps://www.cms.gov/Medicare/Coding/HCPCSReleaseCodeSets, https://www.cms.gov/Medicare/Medicare-Fee-for-Service-Payment/ProspMedicareFeeSvcPmtGen/HIPPSCodes (CPT, http://www.ama-assn.org/go/cpt, assumed when empty)
revenue_codeIf the line is a facility line with no procedure codeUB-04 FL 42, four characters with the leading zero AHANUBCRevenueCodes0905
service_descriptionRecommendedfree text; the service as it reads on the authorization letter, published as written and never matched against the codeIntensive outpatient program
service_category_codeRecommendedX12 service type code, the benefit category the request falls under PriorAuthServiceTypeCodes3
service_date_startIf availabledate the service is expected or was delivered2026-03-05
service_date_endIf a perioddate the service ends; blank for a single-day service
quantity_valueIf availabledecimal; units, visits or days requested12
quantity_unitIf quantity_valuefree text, unbound: visits, days, unitsvisits
diagnosis_sequencesIf availablepositions in the authorization's diagnosis_codes this line was requested against, ;-separated1;2
trace_numbersIf availableservice trace numbers for this item, ;-separated
trace_number_systemsIf trace_numbersthe namespace URI or OID each trace number belongs to, aligned with trace_numbers

Authorized

Send these columns only where what was authorized differs from what was requested. An approval with no changes needs none of them.

ColumnRequiredFormat / valuesExample
authorized_service_codeIf different from requestedthe code actually authorized, with authorized_service_code_system99213
authorized_service_code_systemIf authorized_service_codenot the same list as service_code_system; see the note below
authorized_service_code_range_endIf a range was authorizedthe last code in the authorized range; authorized_service_code is then the first
authorized_quantity_valueIf different from requesteddecimal; units, visits or days authorized8
authorized_quantity_unitIf authorized_quantity_valuefree text, unbound, as in quantity_unitvisits
authorized_provider_npisIf restricted to a provider10 digits, ;-separated; who may deliver this item9999999987
auth_issue_dateIf approveddate this item's authorization was issued2026-03-04
auth_period_startIf approveddate this item's authorization takes effect2026-03-05
auth_period_endIf it ends on a datedate this item's authorization expires2026-06-05
previous_authorization_numberIf a reauthorizationthe earlier authorization number this item continues
administration_reference_numberIf availablethe reference number assigned to an earlier disallowed outcome for this item

Decision

ColumnRequiredFormat / valuesExample
review_action_codeIf your system assigns oneX12 review decision action code for this line (2000F HCR01)A1
review_numberIf availablethe review number your system assigned to this lineAUTH0001
review_reason_codesIf pended, denied or partially approvedX12 review decision reason code(s), ;-separated
second_surgical_opinion_flagIf assertedtrue when a second surgical opinion is required for this line
decision_dateIf decideddatetime this line was decided2026-03-04T16:20:00-05:00
allowed_unitsIf approveddecimal; units, visits or days the payer allowed8
consumed_unitsIf trackeddecimal; units, visits or days used so far2
denial_reason_codesIf denied or reducedCARC or RARC codes for this line, ;-separated198
denial_reason_systemIf RARCas on the authorization row
denial_reason_textIf denied or reducedfree text; the reason as the member reads itRequested visit count exceeds policy limit
  • A line is identified by service_code or by revenue_code. A revenue code cannot go in service_code: send it in revenue_code and leave service_code empty. Facility authorizations in behavioral health, inpatient, skilled nursing and rehabilitation routinely carry only a revenue code.
  • service_description is what carries meaning when the line has no procedure code. Send it on every line identified by revenue_code or service_category_code.
  • service_category_code comes from the X12 service type code list, the same list a 278 carries. Send the code; Payerbox adds the system.
  • The authorized columns are how a modified approval is expressed: what the provider asked for stays in service_code and quantity_value, and what the payer granted goes in authorized_service_code and authorized_quantity_value. Twelve visits requested and eight approved leaves both numbers on the line, and the member sees both.
  • The requested and authorized columns bind to different code lists. Send either spelling of HCPCS; Payerbox translates. CPT works in both, and the authorized list also takes X12 1365, ICD-9-CM, ICD-10-PCS and NDC. HIPPS is accepted only as requested, so express a HIPPS change through authorized_quantity_value.
  • There is no column for procedure modifiers, unit price, revenue code, nursing-home level of care or the EPSDT indicator on an authorized line.
  • A line's review action needs a host, as the authorization's does: send review_action_code only where the line also carries allowed_units, consumed_units, a denial reason or an amount. A pending line with none of them lets outcome on the authorization report that the request is still in processing.
  • allowed_units and consumed_units are the utilization pair: what was granted, and how much of it is used. They are the only way a unit-limited authorization says how much is left, so send consumed_units whenever your system tracks it.
  • Amounts sit on the authorization, not the line: submitted_amount and eligible_amount on prior_auths. PDex allows them per line; this feed has no column for them.

prior_auth_documents

One row per link between an authorization and a document behind it: the clinical notes, forms and letters a provider submitted with the request. The document itself travels in documents, which carries the file; this row says which authorization it belongs to.

ColumnRequiredFormat / valuesExample
prior_auth_record_idYesthe authorization's record_idPA-0001
document_record_idYesthe document's record_id in documentsDOC-0001
line_numberIf the document supports one linethat line's line_number; blank when the document supports the whole authorization. carried but not yet published; every link currently reaches the authorization as a whole1
category_codeIf not an attachmentinfo, material, related, other and the rest of the claim information categories claim-informationcategory (attachment assumed when empty)material
  • A document_record_id is not checked against documents at ingest, so a link to a document that never arrives dangles. Deliver both in the same window.
  • One document can support several authorizations, and one authorization can have many documents. Send a row per pair.
  • Documents are what the provider submitted. A denial letter the plan issued does not belong here.
  • The link is per authorization, so a document store keyed only to the member cannot produce these rows. Those documents still travel in documents and are served as clinical documents, with nothing tying them to an authorization.
  • documents takes LOINC type_code only, so a library typed by its own codes needs a crosswalk. It is short in practice: 11488-4 consult note, 18842-5 discharge summary, 96349-6 referral letter, 52036-1 home health prior authorization, 94118-7 medical records in response to authorization denial, and 34109-9 note for anything with no better match.

These resources are served by Patient Access, Provider Access, and Payer-to-Payer.

Last updated: