Reference·BPR Segment·BPR01
X12 820 Reference

X12 820 BPR01 (Transaction Handling Code): Format, Values, and Testing Notes

Jul 28, 2026 · 4 min read
BPR02 →

Two 820 files can carry the exact same dollar amount and premium breakdown and mean completely different things to a health plan's bank reconciliation team, all because of what sits in BPR01. Miss that distinction in test data and you build a posting system that credits an account no money ever touched.

Quick answer

BPR01 is a one or two-character code that tells the receiving system whether this 820 transaction is an instruction to move money, a report of money already moved, or purely informational remittance detail with no associated funds transfer. In premium-payment 820s, the two values that show up most are C, meaning the payment travels with this remittance, and I, meaning the file only reports remittance detail and no funds are being transferred through this transaction.

Common code values

C
Payment Accompanies Remittance Advice — the standard case for a real premium payment — funds and remittance detail travel together
D
Make Payment Only — a payment instruction with no remittance detail attached, rare in premium payment scenarios
I
Remittance Information Only — no payment is being made by this transaction — often used when funds already moved through a separate banking channel
U
Split Payment and Remittance — the payment and the remittance detail are being sent through separate transactions entirely

Example

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

BPR01=C in this synthetic premium payment confirms the $48,250.00 in BPR02 is actually moving through the ACH transfer described later in the segment.

Where this trips people up

Test suites frequently generate every 820 fixture with BPR01 = C, since that is the value that matches a normal payment scenario, and never produce an I file. When a real employer or exchange later sends remittance-only notifications, ahead of or separate from an actual wire, the receiving system has no tested code path for it and either posts a phantom payment or rejects a perfectly valid file. Build synthetic 820 batches that mix C and I values so posting logic actually checks BPR01 before crediting anything.

X12 820 BPR Segment Guide: Fields, Format, and Testing Gotchas
EDI 835 Remittance Advice: Complete Guide for Healthcare IT
How to Write EDI Test Cases That Actually Catch Go-Live Failures
Test both payment and remittance-only 820 scenarios
Synthibase generates synthetic 820 files with BPR01 values spanning payment-accompanies, remittance-only, and split scenarios, so your posting logic gets tested against every combination before a real premium payment behaves differently than expected.
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.