X12 820 BPR04 Field Guide: Payment Method Values and Common Mistakes
Pick ACH for BPR04 in every test file you generate and your parser will happily validate a payment method it has never actually seen fail. Real premium payments arrive by check and wire too, and each one drags along a different set of required banking fields later in the segment.
BPR04 is a short alphabetic code identifying how the payment described by BPR02 moved, or would move, between the payer and the health plan. It directly determines which of the DFI identification, account number, and routing fields elsewhere in the BPR segment are required versus left blank, so a change in BPR04 changes the shape of the rest of the segment, not just its meaning.
Common code values
Example
BPR04=ACH in this synthetic premium payment means the routing and account numbers that follow are required and describe the originating and receiving financial institutions.
Where this trips people up
Because ACH is the default for most premium payment integrations, test suites tend to generate BPR04 = ACH exclusively and never exercise CHK or NON. That leaves two problems undiscovered: a parser that assumes DFI and account fields are always populated breaks the first time it sees a CHK file where those fields are legitimately blank, and a system that never sees NON paired with a BPR01 of I has no tested path for confirming a remittance-only file correctly carries no banking detail at all. Vary BPR04 deliberately across synthetic files rather than defaulting to whichever method is most common in production.