clsPaymentPreference¶
clsPaymentPreference is the claimant payment-method preference business object. It implements the iPaymentPreference interface defined in SAIF.Business.Payment, enabling application-layer code to work with payment preference objects through a common contract. It determines how a claimant wants to receive payments (check, direct deposit, or debit card).
Purpose¶
- Persist and retrieve payment method preferences for claimants.
- Implement the
iPaymentPreferencecontract to integrate with the broader SAIF payment framework. - Expose
AllowDebitCardto control whether the debit-card payment option is available to this payee.
Context¶
- Namespace:
SAIF.Business.Payment.EFT - Assembly/package:
SAIF.BOF.Business.Payment.EFT(NuGet) - Implements:
iPaymentPreference(SAIF.Business.Payment),IBusinessCriteria - Inherits:
clsBusinessBase(SAIF.BOF.Framework)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
PAYMENT_PREFERENCE_TYPE_CHECK |
Public Const PAYMENT_PREFERENCE_TYPE_CHECK = "CHK" |
Code constant representing the check payment preference type. |
PAYMENT_PREFERENCE_TYPE_DIRECTDEPOSIT |
Public Const PAYMENT_PREFERENCE_TYPE_DIRECTDEPOSIT = "DD" |
Code constant representing the direct-deposit payment preference type. |
PAYMENT_PREFERENCE_TYPE_DEBITCARD |
Public Const PAYMENT_PREFERENCE_TYPE_DEBITCARD = "DC" |
Code constant representing the debit-card payment preference type. |
AllowDebitCard |
Public ReadOnly Property AllowDebitCard As Boolean |
Indicates whether debit-card payment is allowed for this payee; true only when the payee's PayeeType is Worker. |
BankAccountNumber |
Public Property BankAccountNumber As String |
Gets or sets the decrypted (or masked, per MyCriteria.MaskBankNumbers) bank account number stored on PaymentAuthorization.BankAccount; setting a changed value flags the account for re-validation. |
BankAccountTypeCode |
Public Property BankAccountTypeCode As String |
Gets or sets the bank account type code delegated to PaymentAuthorization.BankAccount.BankAccountTypeCode. |
BankRoutingNumber |
Public Property BankRoutingNumber As String |
Gets or sets the decrypted (or masked) bank routing number stored on PaymentAuthorization.BankAccount; setting a changed value flags the account for re-validation. |
Payee |
Public ReadOnly Property Payee As iPayee |
The payee (claimant) associated with this payment preference. |
IsBusinessAccount |
Public Property IsBusinessAccount As Boolean |
Gets or sets whether the bank account is a business account, mapped to clsConsumerBusinessCode.BUSINESS/CONSUMER on PaymentAuthorization.BankAccount. |
SendEmailNotification |
Public Property SendEmailNotification As Boolean |
Gets or sets whether the customer receives email notifications; setting True populates PaymentAuthorization.CustomerContactEmailAddress from Payee.EmailAddress. |
PaymentPreferenceType |
Public ReadOnly Property PaymentPreferenceType As iPaymentPreference.PaymentPreferenceTypes |
The strongly-typed payment preference type (Check, DirectDeposit, DebitCard) selected for this payee. |
PaymentPreferenceTypeCode |
Public ReadOnly Property PaymentPreferenceTypeCode As String |
The short code (CHK/DD/DC) corresponding to PaymentPreferenceType; returns "?????" for an unrecognized type.* |
MaskedBankAccountNumber |
Public ReadOnly Property MaskedBankAccountNumber As String |
The masked bank account number from PaymentAuthorization.BankAccount, or empty string if no authorization has been created yet. |
MaskedBankRoutingNumber |
Public ReadOnly Property MaskedBankRoutingNumber As String |
The masked bank routing number from PaymentAuthorization.BankAccount, or empty string if no authorization has been created yet. |
PayeeHasForeignOrIATAddress |
Public ReadOnly Property PayeeHasForeignOrIATAddress As Boolean |
True when any IAT address field (IATCity, IATStreet, IATCountryCode, IATPostalCode, IATStateOrProvince) is populated, or when Payee.Address.IsForeign is true. |
MaskedSSNTaxID |
Public ReadOnly Property MaskedSSNTaxID As String |
The masked SSN/tax ID, showing only the last four digits of DebitCard.PrimaryTaxID. |
SSNTaxID |
Public Property SSNTaxID As String |
Gets or sets DebitCard.PrimaryTaxID; get returns the masked value when MyCriteria.MaskBankNumbers is set. |
IsIAT |
Public Property IsIAT As Boolean |
Gets or sets PaymentAuthorization.IATFlag (International ACH Transaction flag) as a boolean. |
IATCity |
Public Property IATCity As String |
Gets or sets PaymentAuthorization.IATCity. |
IATCountryCode |
Public Property IATCountryCode As String |
Gets or sets PaymentAuthorization.IATCountryCode. |
CountryCodeList |
Public ReadOnly Property CountryCodeList As SAIF.Business.CodeMappings.clsCountryCodeList |
Lazily-loaded, statically-cached country code list retrieved via SAIF.Business.CodeMappings.GetCountryCodeList. |
IATCountryName |
Public ReadOnly Property IATCountryName As String |
The description text for IATCountryCode looked up from CountryCodeList; returns empty string if the lookup fails. |
IATStateOrProvince |
Public Property IATStateOrProvince As String |
Gets or sets PaymentAuthorization.IATStateProvince. |
IATPostalCode |
Public Property IATPostalCode As String |
Gets or sets PaymentAuthorization.IATPostalCode. |
IATStreet |
Public Property IATStreet As String |
Gets or sets PaymentAuthorization.IATStreetAddress. |
SecondBankAccountNumber |
Public Property SecondBankAccountNumber As String |
A secondary bank account number used for confirmation/re-entry during account entry or change.* |
DebitCard |
Public ReadOnly Property DebitCard As clsDebitCardEnrollmentRequest |
The associated debit-card enrollment request; retrieves an existing request when PaymentAuthorization is a debit-card authorization with a populated EnrollRequestSeqNum, otherwise creates a new one via clsDebitCardEnrollmentRequest.NewDebitCardEnrollmentRequest. Added as a child object. |
PaymentAuthorization |
Public ReadOnly Property PaymentAuthorization As clsEFTAuthorization |
The underlying clsEFTAuthorization child object that backs most bank-account and IAT properties on this class. |
BankAccountTypeDescription |
Public ReadOnly Property BankAccountTypeDescription As String |
Localized description ("Checking"/"Savings") for the bank account type, resolved from Resources.Business_Payment_EFT. |
PaymentPreferenceTypeDescription |
Public ReadOnly Property PaymentPreferenceTypeDescription As String |
Localized description of PaymentPreferenceType ("Check"/"Debit card"/"Direct deposit"), resolved from Resources.Business_Payment_EFT. |
NewPaymentPreference |
Public Shared Function NewPaymentPreference(inDataPortal As IDataPortalInfo, inPayee As iPayee, inPaymentPreferenceType As iPaymentPreference.PaymentPreferenceTypes, inIsSAIFUser As Boolean, inMaskBankNumbers As Boolean, inBankValidatorXMLDocument As XDocument) As clsPaymentPreference |
Creates a new, unsaved clsPaymentPreference for the given payee and preference type. |
GetPaymentPreference |
Public Shared Function GetPaymentPreference(inDataPortal As IDataPortalInfo, inPayee As iPayee, inIsUserSAIFEmployee As Boolean, inMaskBankNumbers As Boolean, inBankValidatorXMLDocument As XDocument) As clsPaymentPreference |
Retrieves the existing payment preference for the given payee. |
IsValidPayee |
Public Function IsValidPayee() As Boolean |
Returns true when Payee.Name is populated and is not the "empty payee" placeholder message (clsEligPayeeClaimCollection.MSG_EMPTY_PAYEE). |
IsValid |
Public Overrides ReadOnly Property IsValid As Boolean |
Triggers bank-number validation when needed, validates the PaymentAuthorization and DebitCard child objects, and returns true only when no validation errors are outstanding. |
IsDirty |
Public Overrides ReadOnly Property IsDirty As Boolean |
True when the base object or either the PaymentAuthorization or DebitCard child object has unsaved changes. |
ConvertToPaymentPreferenceType |
Public Shared Function ConvertToPaymentPreferenceType(inPaymentPreferenceTypeCode As String) As iPaymentPreference.PaymentPreferenceTypes |
Converts a short payment-preference code (CHK/DD/DC) to the corresponding iPaymentPreference.PaymentPreferenceTypes value. |
Save |
Public Overrides Function Save() As Boolean |
Persists the payment preference and its child objects (PaymentAuthorization, DebitCard) through the data portal. |
Inherited public members¶
| Member | Signature | Purpose |
|---|---|---|
DataPortalInfo (via Criteria) |
Public Property DataPortalInfo() As IDataPortalInfo implemented from IBusinessCriteria on the nested Criteria class |
Carries the data-portal connection/context information used for retrieve/insert/update/delete operations.* |
Behavioral notes¶
AllowDebitCardgoverns whether the calling application layer presents the debit-card payment option; exact eligibility condition not traced to source.**- The full
iPaymentPreferenceinterface contract members are defined inSAIF.BOF.Business.Payment; all contract members are implemented here.*
Constraints and usage notes¶
- Scope is claimants; use
clsProviderPaymentPreferencefor medical/service providers. - The
iPaymentPreferencecontract is defined inSAIF.BOF.Business.Payment; breaking changes there directly impact this class.
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with**could not be confirmed; treat as unknown until verified.
Sources¶
Business\SAIF.Business.Payment.EFT\clsPaymentPreference.vb