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

# ICustomerContact

`ICustomerContact` provides the shared contract for customer/contact-facing types.

## Purpose
- Shared contract for customer/contact-facing types.

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| ID | `ReadOnly Property ID As Decimal` | Returns the value exposed by this member. |
| Name | `ReadOnly Property Name As String` | Returns the name value exposed by this type. |
| EffectiveDate | `Property EffectiveDate As Date` | Returns the date value exposed by this type. |
| ExpirationDate | `Property ExpirationDate As Date` | Returns the date value exposed by this type. |
| IsActive | `Property IsActive As Boolean` | Returns the boolean state exposed by this type. |
| IsPrimary | `Property IsPrimary As Boolean` | Returns the boolean state exposed by this type. |
| IsCustomer | `ReadOnly Property IsCustomer As Boolean` | Returns the boolean state exposed by this type. |
| IsContact | `ReadOnly Property IsContact As Boolean` | Returns the boolean state exposed by this type. |
| Description | `ReadOnly Property Description As String` | Returns the descriptive or classified value exposed by this type. |

## Behavioral notes
- clsCustomer and clsContact implement this contract and are returned through SearchResult.Results.

## Constraints and usage notes
- Implementations must expose both IsCustomer and IsContact so callers can distinguish row types without type checks.

## Sources
- `Business\SAIF.Business.CustomerContact\CustomerContactCodeFile.vb`
