Medical billing software
Every client practice.
One clean workspace.
Claims, remits and denials for every practice you bill for, in one place. UniPractice takes a claim from charge entry to an 837P file, posts the 835 remittance, and puts every denial in a work queue. One login for all the practices you bill for.
30-minute walkthrough on demo data. No commitment.
- Every client practice in one workspace
- Claims scrubbed before they leave
- 835 remits post themselves
One workspace
Every client practice, one place
Switch between practices, or work all of them at once. Access is set per user.
Claim scrubber
Clean claims before they leave
Fix what the scrubber finds, rescrub, and the claim is ready.
Acknowledgements
Every acknowledgement, tracked
Every 999 and 277CA moves the claim. Rejections land in a work queue.
Remittance
Money posts itself
835 remits post payments and adjustments, then bill the secondary payer.
Dashboard
Good morning, Priya
Total A/R
$412,380.15
-3.2% vs last month
Claims ready
128
Submit today
Denials open
17
5 due this week
Collected this month
$86,210.40
From 214 remits
Claims by status · 30 days
Recent claims
2 need attention| Claim | Patient | Practice | Payer | Charge | Status |
|---|---|---|---|---|---|
| CLM-10482 | Alvarez, Maria | Northside Family Medicine | Commercial PPO | $245.00 | Ready |
| CLM-10481 | Chen, Daniel | Lakeview Orthopedics | Commercial HMO | $1,180.00 | Accepted |
| CLM-10477 | Okafor, Grace | Northside Family Medicine | Medicare | $96.40 | Paid |
| CLM-10471 | Patel, Rohan | Harbor Pediatrics | Medicare Advantage | $312.00 | Rejected |
| CLM-10468 | Nguyen, Linh | Lakeview Orthopedics | Commercial PPO | $540.00 | Partially paid |
| CLM-10463 | Brooks, Evan | Harbor Pediatrics | Medicaid | $74.20 | Denied |
Claims · CLM-10471
Patel, Rohan · Harbor Pediatrics
- Payer
- Medicare Advantage
- Date of service
- 2026-09-30
- Place of service
- 11 · Office
- Rendering provider
- Dr. Lena Ortiz · NPI 1234567890NPI 1234567893
- Diagnoses
- A Z00.129 · B J06.9
| CPT | Mod | Dx | Units | Charge |
|---|---|---|---|---|
| 99213 | 25 | A, B | 1 | $180.00 |
| 90460 | · | A | 1 | $72.00 |
| 90686 | · | A | 1 | $60.00 |
| Total | $312.00 | |||
Scrubber · 16 checks
Box 24J. Provider record corrected, claim rescrubbed.
Your custom rule. Review the note before submitting.
Dates, pointers, place of service, timely filing.
Submissions · Batch 1011-01
128 claims to the clearinghouse
-
837P built
128 claims · 4 practices · 09:12
-
Sent to clearinghouse
File 837P-1011-01
-
999 accepted
File syntax OK
-
277CA received
126 claims accepted by payers
-
2 rejections routed
Work items opened with the reason
Rejections · work queue
2 openCLM-10471
Subscriber ID not found
Fix the member ID and resubmit
CLM-10455
Patient date of birth mismatch
Check demographics with the practice
Remits · ERA 835
Commercial PPO · EFT 448213
| Claim | Patient | Billed | Paid | Adjustment | Patient owes | Status |
|---|---|---|---|---|---|---|
| CLM-10481 | Chen, Daniel | $1,180.00 | $942.10 | $187.90 CO-45 | $50.00 PR-2 | MatchedPosted |
| CLM-10466 | Ruiz, Ana | $210.00 | $151.20 | $38.80 CO-45 | $20.00 PR-1 | MatchedPosted |
| CLM-10462 | Kim, Joon | $425.00 | $340.00 | $85.00 CO-45 | — | MatchedPosted |
| CLM-10459 | Moore, Ava | $96.00 | $83.10 | $12.90 CO-45 | — | MatchedPosted |
Billed
$1,911.00
Paid
$1,516.40
Contractual adjustments
$324.60
Patient responsibility
$70.00
Every practice in one workspace
Your billing company is the tenant. Add client practices, locations and providers under it. Work one practice or all of them from the same screens, with access set per user.
Clean claims, the first time
A rule engine checks NPIs, dates, diagnosis pointers, modifiers and payer rules before a claim is marked ready. Errors are explained in plain words, next to the field to fix.
Money posts itself
835 remittances are parsed and posted automatically: payments, adjustments by CARC group, patient responsibility, and the hand-off to the secondary payer. Nothing posts twice.
Claim lifecycle
From draft to closed, with nothing lost in between
Every claim moves through a fixed set of states. Each move writes an event, so you can always answer when a claim was submitted, what came back, and who fixed it.
- Draft From an encounter
- Ready Scrub passed
- Submitted 837P sent
- Accepted 999 + 277CA
- Paid 835 posted
- Closed Balance resolved
Rule engine found errors. Fix in place, rescrub.
back to Draft
999 or 277CA rejected. Work item opened with the reason.
back to Draft (corrected)
835 paid $0. Denial queue, appeal letter, corrected claim (frequency 7).
back to Draft or Closed
Secondary claim created automatically, patient balance to statement.
back to Closed
Frequency code 8 sent to the payer. Nothing is deleted.
back to End
Electronic claims
The round trip, handled
UniPractice builds the 837P, uploads it, reads every acknowledgement and remittance that comes back, and moves claims accordingly. Billers see results, not files.
Modules
Front office to final payment
Twelve modules that share one patient record, one ledger and one audit trail. Use the ones you need.
Front office
DetailsPatients
Demographics, documents and a ledger that is always calculated, never stored.
Scheduling
Appointments by provider and location, with status changes and one click to the encounter.
Charge entry
Service lines priced from the fee schedule, with diagnosis pointers and modifiers.
Directory & codes
Providers, referring providers, payers, enrollments, fee schedules and code sets.
Claims & EDI
DetailsClaim scrubber
A rule engine that catches NPI, date, pointer and payer problems before submission.
837P submission
Generate 837P batches for the clearinghouse, or produce a CMS-1500 PDF for paper claims.
11-state lifecycle
Draft to closed, with corrected claims (frequency 7) and voids (frequency 8) built in.
Rejection work queue
Rejected claims open a work item with the reason, the fix and an appeal letter when needed.
Remits, payments & A/R
Details835 remittance
Parse 835 files, post payments and adjustments automatically, and hand off to the secondary payer.
Payments & ledger
Patient payments applied oldest-first or by hand, refunds, and a ledger per patient.
A/R & work queues
Aging buckets, a denial queue, follow-up notes and a timely-filing check that flags claims at risk.
Statements & reports
Statement runs with dunning levels, plus the reports a billing company reports on.
Multi-tenant by design
One company, many practices, no crossed wires
Each billing company gets its own tenant. Users get roles and a list of the practices they may see. Isolation is enforced in the database, not only in the app.
-
Roles that match the job
Tenant admin, Biller, Practice manager, Provider, Read-only. Writes are limited to the first three.
-
Practice grants
A practice manager at one clinic sees that clinic. A biller can be given five practices, or all of them.
-
Three layers of isolation
Request context, query scoping in every service, and PostgreSQL row-level security as the last line.
-
An audit trail
Logins, changes and claim events are logged with who, what and when.
Tenant
Summit Medical Billing
Practice
Northside Family Medicine
- Locations
- 2
- Providers
- 4
- Patients
- 3,120
Practice
Lakeview Orthopedics
- Locations
- 1
- Providers
- 6
- Patients
- 2,480
Practice
Harbor Pediatrics
- Locations
- 3
- Providers
- 5
- Patients
- 4,905
Every row carries its tenant and practice. PostgreSQL row-level security enforces it below the application, as a backstop if a query ever misses its filter.
- 11
- claim states, every transition recorded
- 4
- X12 transactions: 837P, 999, 277CA, 835
- 5
- roles with per-practice access
- ¢
- money stored as integer cents, so totals reconcile
Built for billers
Fast enough for all-day data entry
Billing staff live in this software. Labels are short and numbers are exact. Enter saves a charge, Esc closes a dialog, and the focus ring is always visible. Full keyboard navigation across every screen is on the roadmap.
- Charge entry priced from the fee schedule as you type
- Combobox search for codes, payers and providers
- Status at a glance across every practice you bill for
- Messages say what happened and what to do next
Scrubber result · CLM-10471
Rendering provider NPI fails the check digit
Line 1 · Box 24J. Open the provider record and correct the NPI, then rescrub.
Payer rule: referring provider required
A custom rule your team set for this payer. Add the referring provider in Box 17, or submit without it.
14 other checks passed
Dates, diagnosis pointers, modifiers, place of service, timely filing.
Questions
Straight answers
Who is UniPractice for?
Medical billing companies in the US that manage several client practices. One company is a tenant, and every practice, patient and claim is scoped to it.
Which claim formats do you support?
Professional claims: X12 837P for electronic submission and the CMS-1500 (02/12) form as a PDF. Acknowledgements come back as 999 and 277CA, and payments as 835 remittances.
Which clearinghouse do you use?
UniPractice is built to connect to Claim.MD, and that connection is being tested before production use. Demos run on a built-in test clearinghouse that simulates acknowledgements and remittances. The clearinghouse layer is an adapter, so more connections can be added without changing your workflow.
Do I need to bring my own CPT descriptions?
Yes. CPT descriptions are licensed by the AMA, so UniPractice ships without them. You import your licensed descriptions once and they appear everywhere codes are shown.
Can we use UniPractice with real patient data today?
Not yet. UniPractice is currently offered for evaluation on demo data only. Before any real patient record is used, we complete the safeguards listed on our Security page and sign a Business Associate Agreement with your company.
Can a practice manager see only their practice?
Yes. Each user has a role and a list of practice grants. A tenant admin sees every practice. Everyone else sees only the practices they were given.
See UniPractice with your own workflow
A 30-minute walkthrough on demo data: charge entry to claim, submission to remit, denial to appeal. Bring your questions about your hardest payer.