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

# clsPaymentDetail

`clsPaymentDetail` is the core individual EFT payment line item business object. It persists and retrieves records from the `PAYMENT_DETAIL` Oracle table, capturing payment amounts, ACH entry class codes, event codes, prenote flags, and links to the payment authorization that authorizes the payment.

## Purpose
- Create, retrieve, update, and delete individual EFT payment line item records.
- Link payment detail to an EFT authorization (`PAYMENT_AUTHORIZATION_SEQ_NUM`).
- Track payment amount, credit/debit code, online payment type, ACH entry class, and current payment event code.
- Support prenote payments and payment resubmission.

## Context
- Namespace: `SAIF.Business.Payment.EFT`
- Assembly/package: `SAIF.BOF.Business.Payment.EFT` (NuGet)
- Implements: `IBusinessCriteria`
- Inherits: `clsBusinessBase` (SAIF.BOF.Framework)

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| `PaymentDetailSeqNum` | `Property PaymentDetailSeqNum As Decimal` | Primary key (`PAYMENT_DETAIL_SEQ_NUM`). |
| `PaymentAuthorizationSeqNum` | `Property PaymentAuthorizationSeqNum As Decimal` | FK to `PAYMENT_AUTHORIZATION`. |
| `PaymentAmt` | `Property PaymentAmt As Decimal` | Payment amount. |
| `PaymentDate` | `Property PaymentDate As Date` | Payment date. |
| `CreditDebitCode` | `Property CreditDebitCode As String` | Credit or debit indicator. |
| `CurrentPaymentEventCode` | `Property CurrentPaymentEventCode As String` | Current event code (FK to `PAYMENT_EVENT_CODE`). |
| `OnlinePaymentTypeCode` | `Property OnlinePaymentTypeCode As String` | Online payment type (FK to `ONLINE_PAYMENT_TYPE_CODE`). |
| `AchStdEntryClassCode` | `Property AchStdEntryClassCode As String` | ACH standard entry class code. |
| `AchAddendumText` | `Property AchAddendumText As String` | ACH addendum text. |
| `ConfirmationCheckNum` | `Property ConfirmationCheckNum As String` | Confirmation check number. |
| `PrenoteFlag` | `Property PrenoteFlag As String` | Indicates whether this is a prenote payment. |
| `NsfCount` | `Property NsfCount As Decimal` | NSF (non-sufficient funds) count. |
| `ResubmitDate` | `Property ResubmitDate As Date` | Date for resubmission of a returned payment. |
| `PaymentVendorXMLText` | `Property PaymentVendorXMLText As String` | Vendor-specific XML payload. |
| `CreateDate` | `Property CreateDate As Date` | Record creation date. |
| `CreateUser` | `Property CreateUser As String` | User who created the record. |
| `UpdateDate` | `Property UpdateDate As Date` | Last update date. |
| `UpdateUser` | `Property UpdateUser As String` | User who last updated the record. |

## Behavioral notes
- `CreateSQL` calls `SELECT Payment_detail_seq.NEXTVAL FROM DUAL` before `InsertSQL`.*
- `RetrieveSQL` joins `PAYMENT_AUTHORIZATION` and `AUTHORIZATION_TYPE_CODE` to include `AuthTypeDescr` in the result set.*
- `clsPaymentDetailCollection` does **not** use the standard `IBusinessCriteria` SQL properties; its five interface properties all throw `InvalidSQLProperty`. Instead, it uses helper methods: `BuildSqlNormal`, `BuildSqlSeqNum`, `BuildSqlPend`, `BuildPreNoteSql`, and `BuildPostedSql`.*
- All insert and update operations enforce `RowsAffected = 1`.*

## Constraints and usage notes
- A `clsEFTAuthorization` record must exist before a `clsPaymentDetail` can be created (foreign key on `PAYMENT_AUTHORIZATION_SEQ_NUM`).*
- The `clsPaymentDetailCollection` bypasses the standard BOF criteria pattern; callers must use the specific builder methods to construct retrieval queries.*

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

## Sources
- `Business\SAIF.Business.Payment.EFT\clsPaymentDetail.vb`
- `Business\SAIF.Business.Payment.EFT\clsPaymentDetailCollection.vb`
- `Business\SAIF.Business.Payment.EFT\Tests\PaymentDetailTests.vb`
