HL7 BAR_P01 Add Patient Account

HL7 message structure BAR_P01 groups and segments from HL7 v2.5.1 Hide structure

These are the generated groups and segments for the version selected at the top of the page. The article explains the workflow, and this panel follows the chosen HL7 version.

Message Structure

SegmentNameRequiredRepeatable
Message Header Yes No
Software Segment No Yes
Event Type Yes No
Patient Identification Yes No
Patient Additional Demographic No No
Role No Yes
BAR_P01.VISIT
Visit group Yes Yes
Patient Visit No No
Patient Visit - Additional Information No No
Role No Yes
Disability No Yes
Observation/Result No Yes
Patient Allergy Information No Yes
Diagnosis No Yes
Diagnosis Related Group No No
BAR_P01.PROCEDURE
Procedure group No Yes
Procedures Yes No
Role No Yes
Guarantor No Yes
Next of Kin / Associated Parties No Yes
BAR_P01.INSURANCE
Insurance group No Yes
Insurance Yes No
Insurance Additional Information No No
Insurance Additional Information, Certification No Yes
Role No Yes
Accident No No
UB82 No No
UB92 Data No No

BAR_P01 is a billing account record message used to establish a patient account in a patient accounting or financial system. It is usually sent from registration, ADT, or another administrative source to billing when the financial account needs to exist independently of a simple admit or visit notification.

That distinction is the reason BAR exists. An ADT_A01 can tell systems a patient arrived and may also create account context, but BAR_P01 says "create this account" without necessarily changing patient location, census, or clinical availability.

A small BAR_P01 example

MSH|^~\&|REG|CITYHOSP|BILLING|CITYHOSP|20260715110000||BAR^P01^BAR_P01|BAR010001|P|2.5.1 EVN|P01|20260715105500 PID|1||123456^^^CITYHOSP^MR||Smith^Jane^Anne^^Ms^^L||19800314|F||||||||||ACC000789^^^CITYHOSP^AN PV1|1|O|CLINIC^12^1^CITYHOSP||||12345^Careful^Clara|||||||||||VN000345^^^CITYHOSP^VN GT1|1|G12345|Smith^Jane||12 High Street^^Auckland^^1010^NZ^H IN1|1|PLAN-A|INS001|City Health Plan

What systems do with it

The sender is commonly an ADT/registration system. The receiver is usually patient accounting, accounts receivable, claims, or revenue-cycle software. The receiver creates the account shell, links it to the patient and visit context, and records guarantor, insurance, diagnosis, procedure, accident, or UB billing data when the sender supplies it.

Use BAR_P01 when the account start is the business event. If the patient demographics changed, send the appropriate ADT update. If the account already exists, use an account update workflow rather than opening another account with a new P01.

How to read the structure

The core is MSH, EVN, and PID. The repeating visit group can carry PV1, PV2, DG1, PR1, GT1, NK1, IN1, ACC, UB1, and UB2. That breadth lets a financial receiver create a usable account without waiting for several separate messages.

Implementation traps

Do not use P01 as a generic account refresh. From HL7 v2.3 onward, P01 is for adding an account that did not exist before. Duplicate account creation is one of those problems that looks harmless in a test feed and turns ugly in claims, statements, and reconciliation.

Also make sure the account identifier, visit number, and patient identifier are not treated as the same thing. PID-18 account number and PV1-19 visit number carry different meanings in most billing systems.

Reference notes

The HL7 v2+ BAR_P01 page describes P01 as establishing a billing/accounts receivable record and notes that P05 should update existing accounts while P06 should close accounts. The iNTERFACEWARE BAR overview gives the same practical framing: BAR messages add or change patient billing account information.