Step-by-Step Guide: Setting Up OpenEMR Billing for Maximum Efficiency
Setting up OpenEMR’s billing module correctly is crucial for smooth claims processing and revenue cycle management. This guide provides clinic administrators, IT staff, and medical billers with a step-by-step approach to activating billing features and running reports using the current OpenEMR interface.
The instructions are general and applicable to modern OpenEMR 5.x–7.x and focus on best practices. Each section includes practical tips and pointers to avoid common pitfalls.
Billing Module Activation and Initial Setup
1. Log in as Administrator
Billing configuration requires an admin account (or equivalent Accountant role). Go to Administration → Globals → Features to verify billing settings. For example, older versions required setting the CMS-1500 Paper Form Format to “02/12” for ICD-10 compatibility.
Ensure any billing widgets or panels are enabled (for example, disable “Fees in Left Menu” and enable the modern Fee Sheet interface under Administration → Globals (Billing section) if needed.
2. Configure Global Billing Options
In Administration → Globals, review the Billing and Statement tabs. Common settings include enabling UB-04 (837I) support, setting default print margins for claim forms, and customizing patient statement formats. For example, enable Custom Statement if you want to print CPT codes on invoices.
3. Set Access Controls
Under Administration → ACL, ensure the relevant user roles (Administrator, Supervisor, Accountant/Biller) have access to billing functions like Fees, Payments, and Financial Reports. This ensures billers can enter charges, process payments, and run collections reports.
4. Verify Practice and Facility Information
The billing module relies on accurate clinic data. In Administration → Facility, fill in your clinic’s name, address, NPI, and tax ID. In Practice, add any clinic phone/email and digital signature for claim forms. These details populate claim forms and electronic submissions.
5. Enter Provider IDs
Each provider should have their identifiers set for billing. In Administration → Users, edit each provider account and enter the provider’s UPIN/NPI and Taxonomy.
Also, use Administration → Practice → Insurance Numbers to add payer-specific provider IDs (some insurers require your ID under their plan). These IDs will appear on claims.
Configuring the Fee Sheet
The Fee Sheet panel is where billers add services to an encounter. Before using it, set up service categories and fee entries.
1. Edit Fee Sheet Categories
By default, OpenEMR’s Fee Sheet has categories like “New Patient” and “Established Patient.” You can customize and add new categories by editing lists.
Go to Administration → Lists → List Editor, choose Services, and adjust categories. For example, clinics often create headings like “Office Visit”, “Lab Tests”, “Imaging”, “Procedures”, “Supplies”, etc. Categorizing helps billers find codes quickly on the fee sheet.
2. Define Price Levels
In Administration → Lists, find the Price Level list. You can add levels such as Standard, Discount, Medicare, if you bill at different rates. These will appear as columns when adding fees to codes.
3. Link Codes to Categories
When adding billing codes, you can assign each code to a category. This groups them under that heading on the Fee Sheet. Alternatively, you can add codes “on the fly” directly in the fee sheet interface. However, pre-defining common procedures in categories sometimes called a “Superbill” speeds data entry.
Related: OpenEMR Billing Module: How to Simplify Claims Processing and Reduce Denials
Loading CPT/ICD Codes
1. Import Standard ICD Codes
Go to Administration → Other → External Data Loads. Here you can install ICD-9 or ICD-10 code sets. Click ICD9 or ICD10 and follow the prompts (If the web installer fails, the wiki provides SQL import files.) After importing, activate the codes via Administration → Lists → Code Types: find the row for ICD9 or ICD10, toggle Active, and set External to “ICD9 Diagnosis” or “ICD10 Diagnosis” respectively. This makes all ICD codes searchable in the Fee Sheet and elsewhere.
2. Import Other Standard Tables
If you use SNOMED, RxNorm, or other code sets, you can similarly import them under External Data Loads. The wiki has instructions for SNOMED imports if needed.
3. Add CPT/HCPCS Codes Manually
Unlike ICD, CPT4 (Procedure) and HCPCS code sets are proprietary. OpenEMR expects you to enter only the codes your practice uses.
To do this, go to Administration → Coding → Codes (called Codes in v4.1+, or Services in very old versions). Here you can “Add New” codes as follows:
- Click the Type dropdown and select CPT4 (or HCPCS).
- Enter the Code (e.g., “99213”) and any Modifier if applicable.
- Mark the code Active (checked) so it’s available.
- Give a descriptive Description (it helps to start with the code, e.g., “99213 – Office Visit, Established Patient”).
- Leave Category blank here (you’ll group it later if desired).
- Under Diagnosis/Service Reporting, check if it’s a service code (usually yes).
- Enter the Fees for each price level you set up (e.g., Standard fee, Discount fee) in the text boxes.s
- Omit the dollar sign.
- Click Add as New to save. Repeat for each code.
4. Edit Existing Codes
To update or correct a code, use the search in the same Codes screen. Select the code type on the left, search by code or text, and click Edit next to the entry. Modify fields and click Update.
5. Create Custom Service Categories
If you want to automate adding multiple codes at once, consider using “Multi-Code Fee Sheet List” categories. This allows a dropdown where selecting a procedure automatically enters several codes. For most clinics, individual codes and simple categories suffice.
Insurance Company Setup and Verification
Proper insurer setup ensures claims go to the right place and eligibility is checked.
1. Add Insurance Plans
In Administration → Practice Settings → Insurance Companies, click Add a Company. Enter each insurance plan as a separate entry (even if several plans belong to the same insurer) with the correct name, address, payer ID, and billing contact. As the wiki notes, many insurers require each plan to be a separate company record. Save when done.
2. Enter Payer IDs
For each insurance company, make sure the Payer ID field matches what the insurer expects on electronic claims. This usually comes from your clearinghouse or the insurer’s EDI setup.
3. Assign Insurance to Patients
In the patient’s chart, fill out the Insurance section. Input subscriber name/ID, group number, relationship, and policy dates. This data feeds into claims.
4. Verify Eligibility
If you have a clearinghouse integration (see next section), use it to check patient coverage. Otherwise, do a Coverage Check before visits. Some clinics also use reports: e.g., run an “Eligibility Report” for upcoming appointments.
Related: 10 Ways OpenEMR Billing Tools Help to Streamline Healthcare Practice Cash Flow
Clearinghouse Integration and Claims Services
Integrating with external billing services speeds up claims transmission and payment. Always verify the setup with a test claim. Most clearinghouses offer a test/pilot environment.
Send a few sample claims and confirm they arrive correctly. Check that 999 (ack) and 277 (rejection/acceptance) reports are captured by OpenEMR (via the X12 Tracker or ClaimRev module) so you know the status of each batch.
Automated Reminders and Follow-Ups
OpenEMR has features to remind staff of aging claims and to notify patients of balances.
1. Patient Statements and Dunning Messages
Under Administration → Globals → Statement, enable Custom Dunning Messages. Then set how many days overdue triggers each message (e.g., 30, 60, 90 days) and enter the text for each reminder.
When billing runs statements for patients (after EOBs are posted), these messages will print on the statements automatically. For example, you might configure a “60-day reminder” template, and it will appear on statements for accounts over 60 days past due. This automates patient billing notices.
2. Billing Manager Follow-up
In Fees → Billing Manager, you can filter claims by status (e.g., “Unsent”, “In Process”). Periodically revisit unsent or rejected claims to resubmit or correct them. Keep track of denials here; when payments (EOBs) are entered and a claim is denied or unpaid, the Billing Manager moves it back into the queue.
3. Reporting for AR
Use the financial reports for actionable follow-up:
- Open Item Listing: This report (Reports → Financial) lists unpaid claims and balances by date range. It’s a handy way to see outstanding insurance claims and related invoices. You can click through to the original encounter from this report.
- Collections: The Collections Summary report shows payments and adjustments over time. However, note it’s more for reporting than active follow-up; many users prefer the Open Item Listing for chasing overdue accounts.
- End-of-Day/Deposit Reports: These confirm daily totals of payments and insurance deposits, helping with reconciliation.
4. Tasks/Calendar
Use the OpenEMR Calendar or an external task manager to schedule follow-ups. Though not built-in, some clinics use the Calendar tasks for reminders.
Reporting and Reconciliation
Review Electronic Remittances (ERAs)
When clearinghouses send electronic EOBs (835s), import them via Fees → Posting Payments (some modules auto-import ERAs). This will automatically post payments and adjustments to patient accounts. Verify that payments match claims; any mismatches indicate errors.
Patient Ledger
For each patient, the Ledger (patient summary billing tab) shows charges, payments, insurance adjustments, and current balance. Train front-desk or billing staff to consult this when questions arise.
Profit and Loss and A/R Aging
If you use OpenEMR’s practice financial reports, run P&L and Aging reports monthly. These summarize income vs. expenses and aging of accounts receivable. Compare ERA totals to your bank deposits to reconcile.
Custom Reports
OpenEMR’s Report Editor (Administration → Lists) allows building custom financial reports. For example, you could create a report showing claims submitted vs. paid by the insurer.
Regular Reconciliations
On a weekly or monthly basis, reconcile the number and amounts of 837 claims sent with the remittance reports. Confirm no claims are “lost” in the system.
Related: 8 Ways OpenEMR Streamlines Your Medical Billing Operations
CapMinds OpenEMR Customization and Integration Service
CapMinds OpenEMR equips clinicians with the best features and ways to integrate. It makes their workflows more efficient and filtered.
The integrated features will allow them to combine the ability of patient record management with conceptual and concurrent reminders.
This enhances the process of decision-making and improves patient care and quality.
- At CapMinds, OpenEMR custom solutions are developed with much care and accuracy to match the special practice needs.
- It will be low-cost and the perfect budget solution for your practice’s long-term future.
- CapMinds OpenEMR prioritizes secure data management & ensures compliance with industry regulations, offering healthcare providers peace of mind.
Get the best technologies and HIPAA-compliant and efficient OpenEMR from CapMinds that can be tailored to fit your practice.
Our OpenEMR services facilitate a Modern User Interface (UI), customization, production support & training. It also facilitates billing, reporting, specialty enhancements, clearing house integrations, e-prescribing, cloud, and more.
“Get the most experienced, proven, and perfect professional support for your OpenEMR.”