---
title: clsCustomer
summary: API reference for clsCustomer.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.CustomerContact
reference_type: package
---

# clsCustomer

`clsCustomer` provides the root BOF aggregate for customer data.

## Purpose
- Root BOF aggregate for customer data.

## Context
- Namespace: `SAIF.Business.CustomerContact.Customer`
- Assembly/package: `SAIF.BOF.Business.CustomerContact`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| CustomerID | `Public ReadOnly Property CustomerID() As Decimal Implements ICustomerContact.ID` | Returns or sets the customer identifier exposed by this type. |
| EffectiveDate | `Public Property EffectiveDate() As Date Implements ICustomerContact.EffectiveDate` | Returns or sets the date value exposed by this type. |
| ExpirationDate | `Public Property ExpirationDate() As Date Implements ICustomerContact.ExpirationDate` | Returns or sets the date value exposed by this type. |
| UpdateDate | `Public ReadOnly Property UpdateDate() As Date` | Returns the date value exposed by this type. |
| UpdateUser | `Public ReadOnly Property UpdateUser() As String` | Returns the user field exposed by this type. |
| CustomerName | `Public Property CustomerName() As String` | Returns or sets the name value exposed by this type. |
| CustomerTypeCode | `Public Property CustomerTypeCode() As String` | Returns or sets the classification code exposed by this type. |
| CustomerTypeDescription | `Public ReadOnly Property CustomerTypeDescription As String` | Returns the descriptive or classified value exposed by this type. |
| IsActive | `Public Property IsActive() As Boolean Implements ICustomerContact.IsActive` | Returns or sets the boolean state exposed by this type. |
| IsPrimary | `Public Property IsPrimary() As Boolean Implements ICustomerContact.IsPrimary` | Returns or sets the boolean state exposed by this type. |
| IsPerson | `Public Property IsPerson() As Boolean` | Returns or sets the boolean state exposed by this type. |
| CustomerShortDescription | `Public Property CustomerShortDescription() As String` | Returns the descriptive or classified value exposed by this type. |
| TaxID | `Public Property TaxID() As String` | Returns or sets the tax identifier. |
| LegacyContactName | `Public Property LegacyContactName() As String` | Returns or sets the name value exposed by this type. |
| InternalReferenceID | `Public Property InternalReferenceID() As String` | Returns or sets the SAIF internal reference identifier. |
| ExternalReferenceID | `Public Property ExternalReferenceID() As String` | Returns or sets the external reference identifier. |
| ShortNoteText | `Public Property ShortNoteText() As String` | Returns or sets the short note text. |
| LongNoteText | `Public Property LongNoteText As String` | Returns or sets the long note text routed through the related note object. |
| Addresses | `Public ReadOnly Property Addresses As clsCustomerAddressCollection` | Returns the related address collection. |
| Phones | `Public ReadOnly Property Phones As clsCustomerPhoneCollection` | Returns the related phone collection. |
| Emails | `Public ReadOnly Property Emails As clsCustomerEmailCollection` | Returns the related email collection. |
| Contacts | `Public ReadOnly Property Contacts As clsCustomerContactCollection` | Returns the related customer-contact collection. |
| IsContact | `Public ReadOnly Property IsContact As Boolean Implements ICustomerContact.IsContact` | Returns the boolean state exposed by this type. |
| IsCustomer | `Public ReadOnly Property IsCustomer As Boolean Implements ICustomerContact.IsCustomer` | Returns the boolean state exposed by this type. |
| CustomerContactName | `Public ReadOnly Property CustomerContactName As String Implements ICustomerContact.Name` | Returns the display name exposed by the shared customer/contact contract. |
| DisplayDescription | `Public ReadOnly Property DisplayDescription As String Implements ICustomerContact.Description` | Returns the display description exposed by the shared customer/contact contract. |
| IsValid | `Public Overrides ReadOnly Property IsValid As Boolean` | Returns whether the object and any checked child objects have accumulated validation errors. |
| IsDirty | `Public Overrides ReadOnly Property IsDirty As Boolean` | Returns whether the current object or one of its child objects has unsaved changes. |
| NewCustomer | `Public Shared Function NewCustomer(ByVal inDataportal As IDataPortalInfo) As clsCustomer` | Creates a new business object through the BOF data portal. |
| GetCustomer | `Public Shared Function GetCustomer(ByVal inDataportal As IDataPortalInfo, ByVal inCustomerID As Decimal) As clsCustomer` | Retrieves an existing business object through the BOF data portal. |

## Behavioral notes
- Address and phone collections are loaded together so connected phone references can be resolved on address items.

## Constraints and usage notes
- Use NewCustomer or GetCustomer with IDataPortalInfo instead of depending on direct construction.

## Sources
- `Business\SAIF.Business.CustomerContact\Customer\clsCustomer.vb`
