Reference·X12 820·BPR
X12 820 Reference

X12 820 BPR Segment Guide: Fields, Format, and Testing Gotchas

Jul 28, 2026 · 6 min read

BPR is the first substantive segment in an 820, and it decides everything that follows: whether money actually moves with this file or the file is only a notification, how much is changing hands, and which banking rail carries it. Test an 820 pipeline without exercising every combination here and you will find out the hard way that your system assumed money always moves when a file arrives.

Quick answer

BPR (Beginning Segment for Payment Order/Remittance Advice) opens the 820 transaction and establishes the payment itself. In a healthcare premium-payment 820, it tells the receiving health plan whether this file represents an actual funds transfer or a remittance-only notice, states the total dollar amount being applied across every premium detail that follows, and identifies the payment method and banking information the funds moved through, when funds moved at all.

The elements that actually matter in practice

BPR01 →
Transaction Handling Code — the flag that decides whether this file carries an actual payment or is remittance detail only
BPR02 →
Monetary Amount — the total premium payment amount this 820 covers, before it gets broken down by group or subscriber in later loops
BPR03
Credit/Debit Flag Code — almost always C for credit in premium payments — the health plan is receiving funds, not sending them
BPR04 →
Payment Method Code — how the money actually moved, or would move if this were a real payment — ACH, check, wire, or non-payment
BPR10
Originating Company Identifier — the payer's or employer's company ID stamped on the transaction, useful for tracing a payment back to its source
BPR16
Date — the effective date of the payment, which reconciliation logic uses to match this 820 against the bank deposit it corresponds to

Example

Synthetic example Generated by Synthibase
BPR*C*48250.00*C*ACH*CTX*01*071000013*DA*4021988650**01*091000019*DA*8817002261*20260801

A synthetic premium payment: BPR01=C means payment accompanies the remittance, BPR02 totals $48,250.00 across the group, BPR03=C flags it as a credit to the health plan, and BPR04=ACH routes it through automated clearing house with the originating and receiving bank detail that follows.

Where this trips people up

Teams building 820 test coverage tend to generate every file with BPR01 = C and never touch I, so remittance-only notifications never get exercised until a real employer sends one and the receiving system tries to post a payment that was never actually sent. The mirror mistake is just as common: hardcoding BPR04 to ACH and skipping CHK or the non-payment code, so a test suite never proves out what happens when BPR01 says no money moved but BPR04 still carries a payment method value left over from a template. Synthetic test files need to combine these fields deliberately, not just default them, because the combination is what downstream posting logic actually branches on.

EDI 835 Remittance Advice: Complete Guide for Healthcare IT
How to Write EDI Test Cases That Actually Catch Go-Live Failures
Generate realistic 820 premium payment files in minutes
Synthibase produces synthetic X12 820 files with every BPR transaction handling code and payment method combination your posting logic needs to handle, no real bank account or employer data involved.
Start free trial →
This page is written independently by Synthibase for testing and informational purposes. It is not an official publication of HL7 International or X12/Washington Publishing Company, and is not a substitute for reviewing the official standard or your trading partner's companion guide. See our Terms of Service for full legal terms.