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
SegmentIdreturning 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 viaDateMakeronFill().
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 assignsCreditDebitCode, so a round-trippedBprSegmentloses whatever value was present at element 3 in the source data*.
Constraints and usage notes¶
- Callers relying on
CreditDebitCodeafterFill()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