Skip to content

BprSegment

BprSegment models the X12 BPR financial information segment, the payment-order header at the top of an 835 remittance advice transaction. It carries the total payment amount, credit/debit disposition, payment method, the sender's and receiver's banking/account identification, and the payment's effective date, forming the financial instruction that accompanies the itemized claim/service detail in the rest of the transaction.

Purpose

  • Represents the BPR segment identity via SegmentId returning the literal "BPR" (BR-020).
  • Carries the transaction handling code, total payment Amount, credit/debit code, and payment method/format codes that describe how the payment is to be handled.
  • Carries the sender's and receiver's financial-institution and account identification fields used to route the electronic payment.
  • Carries EffectiveDate, the date the payment becomes effective, converted via DateMaker on Fill().

Context

  • Namespace: SAIF.Common.Files.Edi.Segments
  • Assembly/package: SAIF.Framework.Common.Files

Public members

Member Signature Purpose
SegmentId string SegmentId { get; } Returns the literal X12 segment identifier "BPR".
TransactionHandlingCode string TransactionHandlingCode { get; set; } Code specifying how the payment/remittance should be handled (BPR01), element 1.
Amount decimal Amount { get; set; } The total monetary amount of the payment (BPR02), element 2.
CreditDebitCode string CreditDebitCode { get; set; } Code indicating whether the payment is a credit or debit (BPR03), element 3; written on Build() but not populated by Fill()*.
PaymentMethodCode string PaymentMethodCode { get; set; } Code identifying the payment method (BPR04), element 4.
PaymentFormatCode string PaymentFormatCode { get; set; } Code identifying the payment format (BPR05), element 5.
SenderFinancialInstitutionIdQualifier string SenderFinancialInstitutionIdQualifier { get; set; } Qualifier for the sender's financial institution identifier (BPR06), element 6.
SenderFinancialInstitutionId string SenderFinancialInstitutionId { get; set; } The sender's financial institution identifier (BPR07), element 7.
SenderAccountNumberQualifier string SenderAccountNumberQualifier { get; set; } Qualifier for the sender's account number (BPR08), element 8.
SenderAccountId string SenderAccountId { get; set; } The sender's account identifier (BPR09), element 9.
SenderCompanyId string SenderCompanyId { get; set; } The sender's company identifier (BPR10), element 10.
PayerCompanySupplementalCode string PayerCompanySupplementalCode { get; set; } A supplemental code identifying the payer company (BPR11), element 11.
ReceiverFinancialInstitutionIdQualifier string ReceiverFinancialInstitutionIdQualifier { get; set; } Qualifier for the receiver's financial institution identifier (BPR12), element 12.
ReceiverFinancialInstitutionId string ReceiverFinancialInstitutionId { get; set; } The receiver's financial institution identifier (BPR13), element 13.
ReceiverAccountNumberQualifier string ReceiverAccountNumberQualifier { get; set; } Qualifier for the receiver's account number (BPR14), element 14.
ReceiverAccountId string ReceiverAccountId { get; set; } The receiver's account identifier (BPR15), element 15.
EffectiveDate DateTime EffectiveDate { get; set; } The date the payment is effective (BPR16), written as yyyyMMdd on Build() and parsed via DateMaker.MakeDateTime on Fill().
Build IEdiSegment Build() Creates a SegmentBuilder("BPR") and adds all sixteen fields at elements 1-16, formatting Amount and EffectiveDate as strings, returning the built segment.
Fill void Fill(IEdiSegment segment) Reads elements 1-16 via GetChildValue, converting Amount to decimal and EffectiveDate via DateMaker; notably does not populate CreditDebitCode from element 3*.
Parse static BprSegment Parse(IEdiSegment segment) Instantiates a new BprSegment, calls Fill(segment) on it, and returns it.

Behavioral notes

  • Fill() never assigns CreditDebitCode, so a round-tripped BprSegment loses whatever value was present at element 3 in the source data*.

Constraints and usage notes

  • Callers relying on CreditDebitCode after Fill() will find it unset regardless of the underlying segment's element 3 value*.

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

Sources

  • Common\SAIF.Common.Files\Edi\Segments\BprSegment.cs