/pm/payments) lists insurance and patient payment records for the current organization and provides workflows for posting manual payments, uploading files, and resolving unmatched ERA lines in the Orphan Queue.
Overview
The screen has two tabs: Payments and Orphan Queue. The Payments tab lists payments ordered bypayment_date descending. Each card shows the payment number, a status badge (Pending, Posted, Partial, Voided), a type badge (Insurance, Patient, ERA), the payment date, total amount, and unapplied amount when greater than zero. Clicking a card navigates to the payment detail page at /pm/payments/:paymentId. The Orphan Queue tab (visible only to users with the pm.era-orphan.view permission) shows ERA lines that could not be automatically matched to a claim; a badge on the tab displays the count of pending orphans. Selecting an orphan line opens the OrphanMatchSheet side panel.
Who it’s for
Requires thepm.payments.view permission. Posting payments and uploading ERA files additionally requires pm.payments.post (the PM_PERMISSIONS.PAYMENTS_POST constant). Viewing the Orphan Queue additionally requires pm.era-orphan.view (PM_PERMISSIONS.ERA_ORPHAN_VIEW).
Before you start
- The
pm.payments.viewpermission must be granted for the user’s role. - An organization must be selected; the hook returns an empty array when no org is active.
Steps
1
Filter the Payments list
On the Payments tab, type in the search box to find payments by payment number. Use the status dropdown (All Statuses, Pending, Posted, Partial, Voided) to narrow the list.
2
View payment detail
Click any payment card to navigate to the detail page at
/pm/payments/:paymentId.3
Post a manual payment
Users with
pm.payments.post will see the “Post Payment” button in the header. Clicking it opens PaymentPostDialog to record a new insurance or patient payment.4
Upload an ERA file
Users with
pm.payments.post can click “Upload ERA” to open EraUploadDialog and import an file. Successfully processed ERA lines are auto-posted where possible; unmatched lines land in the Orphan Queue.5
Resolve orphan ERA lines
Switch to the Orphan Queue tab (visible when
pm.era-orphan.view is granted and at least one pending orphan exists). Select an orphan row in EraOrphanQueueTable to open OrphanMatchSheet and manually match it to a claim.Key concepts
Empty and error states
Empty and error states
When no payments match the current filters, the empty state reads “No payments found.” When filters are active: “No payments match the current filters.” When the fetch fails, an error empty state reads “Unable to load payments. Please try again.”
Viewing a payment
The Payment Details page displays a single payment record and its application lines, with an action to post pending payments at route/pm/payments/:paymentId (permission: pm.payments.view). Posting requires pm.payments.post.
PaymentDetailPage loads the payment via usePaymentDetail and its application lines via usePaymentApplicationList. The dynamic breadcrumb is set to payment_number. Status, type, payment method, and application type are rendered using label maps from src/cores/pm/types/payments.ts. A Post Payment button is shown when status is pending or partial, gated by PM_PERMISSIONS.PAYMENTS_POST.
Two tabs are available: one for payment summary details and one for the application lines table.
- Navigate to Practice Management → Payments, select a payment from the list, or go directly to
/pm/payments/:paymentId. - The summary tab shows payment number, type, status, method, and application type using standardized labels.
- Switch to the applications tab to view how the payment has been applied across claims or accounts.
- If the payment status is
pendingorpartial, the Post Payment action is available for users withpm.payments.postpermission.
- Payment status —
pending,partial, and other statuses as defined inPAYMENT_STATUS_LABELS; onlypendingandpartialenable the post action. - Application lines — records linking portions of a payment to specific claims or balances.
Related
Practice Management
Overview of the Practice Management core.
Governance & parity
Documentation coverage and governance.
This page documents shipped product behavior. It is not medical, legal, or
billing advice. Verify against your organization’s policies and applicable
regulations before using it for clinical, compliance, or billing decisions.
Protected health information (PHI) shown in the product is governed by your
tenant’s access controls and is never exposed in this documentation.
Documentation sources
Documentation sources
- src/routes/pm.tsx
- src/cores/pm/pages/PaymentsListPage.tsx
- src/cores/pm/hooks/usePaymentList.ts
- src/cores/pm/types/payments.ts
- src/cores/pm/pages/PaymentDetailPage.tsx
- src/cores/pm/hooks/usePaymentDetail.ts
- src/cores/pm/hooks/usePaymentApplicationList.ts