Construct the PAS request Bundle: a transaction Bundle containing a Claim resource (profiled as PAS-RequestClaim), with supporting clinical resources (Condition, ServiceRequest, Coverage, Patient, Practitioner) as additional Bundle entries
Invoke the type-level operation: POST [base]/Claim/$submit with the request Bundle as the body; this is a type-level operation on Claim, not a base-level system operation
Parse the synchronous response Bundle: if the payer returns a ClaimResponse immediately, inspect ClaimResponse.outcome ('complete', 'queued') and ClaimResponse.item[].adjudication for approved, denied, or pended item decisions
If the response is 'queued' (pended), the ClaimResponse will include a ClaimResponse.processNote with a reference identifier or the server returns a polling location; use PAS $inquire (POST [base]/Claim/$inquire) with the pended claim identifier to check status
Map the approved/denied response back through an X12 278 Response intermediary if required by the payer's clearinghouse; the PAS IG defines the mapping between FHIR ClaimResponse elements and X12 278 response segments
Handle a final 'denied' adjudication by storing the denial reason from ClaimResponse.item[].adjudication.reason and initiating an appeal workflow or alternative treatment path
Known gotchas
$submit is a type-level operation on the Claim resource type — POST [base]/Claim/$submit, not POST [base]/$submit (system level) and not POST [base]/Claim/[id]/$submit (instance level)
The PAS request is a FHIR-wrapped X12 278 prior authorization request; the IG mandates specific X12-aligned extensions on Claim (e.g., levelOfServiceCode, certIssueDate) that have no base FHIR equivalent — omitting them will cause payer-side mapping failures
Synchronous approval is not guaranteed; many payers pend requests for human review — do not assume a 'complete' response means approved; always inspect ClaimResponse.item[].adjudication.category to distinguish approvals from pends and denials
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp