Skip to content

PaymentOnlyMatchRule

PaymentOnlyMatchRule is an IProviderMatchRule that matches a biller's payment address alone against provider locations known to have exactly one non-expired, non-correspondence/non-payment-type address, then narrows to locations with exactly one non-expired address overall — the payment-address counterpart to PhysicalOnlyMatchRule's physical-address matching. PaymentAndFacilityMatchRule and ThreeAddressNoFacilityMatchesMatchRule both delegate to it when their payment and facility addresses match each other.

Purpose

  • Matches a biller's payment address against provider locations that have exactly one qualifying address, applying the same address-comparison rule (Line1/City trimmed and case-insensitive, zero-padded zip) as the physical-address rules (DOM-BR-022).
  • Narrows the initial payment-address match down to provider locations with exactly one non-expired address overall, returning that location only when exactly one such candidate remains.

Context

  • Namespace: SAIF.Domain.Claims.Ebilling.Indexing
  • Assembly/package: SAIF.Domain (Domain/SAIF.Domain/SAIF.Domain.csproj, .NET Framework 4.6.2 class library)

Public members

Member Signature Purpose
PaymentOnlyMatchRule (constructor) public PaymentOnlyMatchRule(IEnumerable<EbillAddress> ebillAddresses, IEnumerable<ProviderAddress> providerAddresses) Initializes the rule with the biller's e-bill addresses and the candidate provider addresses, via ProviderMatchBase.
UniqueProviderLocationMatch public ProviderLocation UniqueProviderLocationMatch(bool concatenateTwoLineBillAddresses) Returns the unique provider location whose only qualifying address matches the biller's payment address, or null when zero or more than one candidate matches.

Inherited public members

Members in this section are inherited from ProviderMatchBase in SAIF.Domain. They are available on this type through inheritance.

Member Signature Purpose Origin
BillerHasPhysicalPaymentAndFacilityAddresses public bool BillerHasPhysicalPaymentAndFacilityAddresses() Reports whether the biller has all three address roles present. SAIF.Domain — ProviderMatchBase
EbillAddressAndProviderAddressMatch public static bool EbillAddressAndProviderAddressMatch(EbillAddress ebillAddress, ProviderAddress providerAddress, bool concatenateTwoLineBillAddresses) Reports whether an e-bill address matches a candidate provider address on Line1 (optionally concatenated with Line2), City, and zero-padded zip code (DOM-BR-022). SAIF.Domain — ProviderMatchBase
TwoEbillAddressesMatch public static bool TwoEbillAddressesMatch(EbillAddress addressOne, EbillAddress addressTwo) Reports whether two e-bill addresses match on Line1, City, and zero-padded zip code. SAIF.Domain — ProviderMatchBase
GetUniqueLocation public static ProviderLocation GetUniqueLocation(IList<ProviderAddress> matchedAddressesListOne, IList<ProviderAddress> matchedAddressesListTwo) Intersects two matched-address lists by provider-location id and returns the single common ProviderLocation, or null when the intersection is not exactly one location (DOM-BR-025). SAIF.Domain — ProviderMatchBase
GetMatchingProviderAddresses (single address) public static IEnumerable<ProviderAddress> GetMatchingProviderAddresses(EbillAddress ebillAddress, IEnumerable<ProviderAddress> providerAddresses, bool concatenateTwoLineBillAddresses) Filters the candidate provider addresses down to those matching the given e-bill address. SAIF.Domain — ProviderMatchBase
GetMatchingProviderAddresses (address set) public static IEnumerable<ProviderAddress> GetMatchingProviderAddresses(IEnumerable<EbillAddress> ebillAddresses, IEnumerable<ProviderAddress> providerAddresses, bool concatenateBillAddresses) Filters the candidate provider addresses down to those matching any address in the given e-bill address set. SAIF.Domain — ProviderMatchBase
RemoveSpecialCharacters public static string RemoveSpecialCharacters(string input) Strips every character except letters, digits, and spaces from the input, returning null for a null input. SAIF.Domain — ProviderMatchBase

Behavioral notes

  • Unlike the physical/payment/facility "and" rules, this rule's UniqueProviderLocationMatch does not guard on any BillerHasXxxAddresses()-style precondition — it always attempts the payment-address match regardless of which other addresses the biller supplied (unlike PhysicalAndPaymentMatchRule, PhysicalAndFacilityMatchRule, PaymentAndFacilityMatchRule, and PhysicalPaymentAndFacilityMatchRule, which each guard on the corresponding BillerHasPhysicalAndPaymentAddresses/BillerHasPhysicalAndFacilityAddresses/BillerHasPaymentAndFacilityAddresses/BillerHasPhysicalPaymentAndFacilityAddresses precondition from ProviderMatchBase)*.

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

Sources

  • Domain/SAIF.Domain/Claims/Ebilling/Indexing/PaymentOnlyMatchRule.cs
  • Domain/SAIF.Domain/Claims/Ebilling/Indexing/ProviderMatchBase.cs