---
title: SAIF.Business.Payment.EFT database tables
summary: Database tables used by this library with relationships and usage context.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.Payment.EFT
reference_type: package
---

# SAIF.Business.Payment.EFT database tables

This page catalogs database tables accessed by this library. All tables target Oracle.* Schema qualifiers are shown exactly as they appear in the SQL (e.g., `PAYMENT_OWNER`); tables accessed without an explicit qualifier are marked `[unqualified]**`.

## Table catalog

| Table | Database | Schema/Link | CRUD | Purpose | Primary business object |
| --- | --- | --- | --- | --- | --- |
| [ACH_FILE_ID](#ach_file_id) | Oracle* | [unqualified]** | R | ACH file identifier reference data | `clsAchFileID`, `clsAchFileIDCollection` |
| [ACH_STANDARD_ENTRY_CLASS_CODE](#ach_standard_entry_class_code) | Oracle* | [unqualified]** | R | ACH standard entry class code reference data | `clsAchStandardEntryClassCode` |
| [ADDENDA_TYPE_CODE](#addenda_type_code) | Oracle* | [unqualified]** | R | Addenda type code reference data | `clsAddendaTypeCode`, `clsAddendaTypeCodeCollection` |
| [AUTHORIZATION_TYPE_CODE](#authorization_type_code) | Oracle* | [unqualified]** | R | Authorization type code reference data | `clsAuthorizationTypeCode`, `clsAuthorizationTypeCodeCollection` |
| [BALANCE_TYPE_CODE](#balance_type_code) | Oracle* | [unqualified]** | R | Balance type code reference data including dynamic SQL | `clsBalanceTypeCode` |
| [BANK_ACCOUNT](#bank_account) | Oracle* | [unqualified]** | CDRU | Bank account records with routing/account numbers and status | `clsBankAccount`, `clsBankAccountCollection` |
| [BANK_ACCOUNT_DATA_SOURCE_CODE](#bank_account_data_source_code) | Oracle* | [unqualified]** | R | Bank account data source code reference data | `clsBankAccountDataSourceCode`, `clsBankAccountDataSourceCodeCollection` |
| [BANK_ACCOUNT_STATUS_CODE](#bank_account_status_code) | Oracle* | [unqualified]** | R | Bank account status code reference data | `clsBankAccountStatusCode`, `clsBankAccountStatusCodeCollection` |
| [BANK_ACCOUNT_TRANSFER](#bank_account_transfer) | Oracle* | [unqualified]** | CRU | Bank account transfer records linking bank accounts to US Bank users | `clsBankAccountTransfer` |
| [BANK_ACCOUNT_TYPE_CODE](#bank_account_type_code) | Oracle* | [unqualified]** | R | Bank account type code reference data | `clsBankAccountTypeCode`, `clsBankAccountTypeCodeCollection` |
| [BANKING_NETWORK_CODE](#banking_network_code) | Oracle* | [unqualified]** | CRU | Banking network code reference data (writable) | `clsBankingNetworkCode`, `clsBankingNetworkCodeCollection` |
| [CUSTOMER_TYPE_CODE](#customer_type_code) | Oracle* | [unqualified]** | R | Customer type code reference data | `clsCustomerTypeCode`, `clsCustomerTypeCodeCollection` |
| [DEBIT_CARD_ENROLLMENT_REQUEST](#debit_card_enrollment_request) | Oracle* | [unqualified]** | CRU | Debit card payment enrollment requests | `clsDebitCardEnrollmentRequest`, `clsDebitCardEnrollmentRequestCollection` |
| [DUAL](#dual) | Oracle* | [unqualified]** | S | Oracle pseudo-table for sequence generation | Multiple transactional BOs |
| [ENROLL_STATUS_CODE](#enroll_status_code) | Oracle* | [unqualified]** | R | Enrollment status code reference data | `clsEnrollStatusCode`, `clsEnrollStatusCodeCollection` |
| [ONLINE_PAYMENT_TYPE_CODE](#online_payment_type_code) | Oracle* | [unqualified]** | R | Online payment type code reference data | `clsOnlinePaymentTypeCode`, `clsOnlinePaymentTypeCodeCollection` |
| [OUTPUT_CONTROL](#output_control) | Oracle* | [unqualified]** | CRU | Output control records for claim document generation | `clsOutputControl`, `clsOutputControlCollection` |
| [OUTPUT_DOCUMENT_CODE](#output_document_code) | Oracle* | [unqualified]** | R | Output document code reference data | `clsOutputDocumentCode`, `clsOutputDocumentCodeCollection` |
| [PAYMENT_ADDENDA](#payment_addenda) | Oracle* | [unqualified]** | CDRU | NACHA ACH addenda records attached to payment details | `clsPaymentAddenda`, `clsPaymentAddendaCollection` |
| [PAYMENT_ALLOCATION](#payment_allocation) | Oracle* | [unqualified]** | CRU | Payment allocations across claim/benefit categories | `clsPaymentAllocation`, `clsPaymentAllocationCollection` |
| [PAYMENT_AUTHORIZATION](#payment_authorization) | Oracle* | [unqualified]** | CDRU | EFT authorization/consent records | `clsEFTAuthorization`, `clsEFTAuthorizationCollection` |
| [PAYMENT_AUTH_SESSION_TRANSFER](#payment_auth_session_transfer) | Oracle* | [unqualified]** | CR | Links payment authorizations to session transfers | `clsPaymentAuthorizationSessionTransfer` |
| [PAYMENT_DETAIL](#payment_detail) | Oracle* | [unqualified]** | CRU | Individual EFT payment line items | `clsPaymentDetail` |
| [PAYMENT_EVENT](#payment_event) | Oracle* | [unqualified]** | CR | Payment lifecycle event records | `clsPaymentEvent`, `clsPaymentEventCollection` |
| [PAYMENT_EVENT_CODE](#payment_event_code) | Oracle* | [unqualified]** | R | Payment event code reference data | `clsPaymentEventCode`, `clsPaymentEventCodeCollection` |
| [PAYMENT_OWNER.AUTHORIZATION_TYPE_CODE](#payment_ownerauthorization_type_code) | Oracle* | PAYMENT_OWNER | R | Authorization type code accessed via PAYMENT_OWNER schema for payment return context | `clsPaymentReturn`, `clsPaymentReturnCollection` |
| [PAYMENT_OWNER.PAYMENT_AUTHORIZATION](#payment_ownerpayment_authorization) | Oracle* | PAYMENT_OWNER | R | Payment authorization accessed via PAYMENT_OWNER schema for payment return context | `clsPaymentReturn`, `clsPaymentReturnCollection` |
| [PAYMENT_OWNER.PAYMENT_DETAIL](#payment_ownerpayment_detail) | Oracle* | PAYMENT_OWNER | R | Payment detail accessed via PAYMENT_OWNER schema for EFT auth collection and payment return context | `clsEFTAuthorizationCollection`, `clsPaymentReturn`, `clsPaymentReturnCollection` |
| [PAYMENT_OWNER.PAYMENT_RETURN](#payment_ownerpayment_return) | Oracle* | PAYMENT_OWNER | R | Payment return data accessed via PAYMENT_OWNER schema | `clsPaymentReturn`, `clsPaymentReturnCollection` |
| [PAYMENT_OWNER.PAYMENT_RETURN_REASON_CODE](#payment_ownerpayment_return_reason_code) | Oracle* | PAYMENT_OWNER | R | Payment return reason code accessed via PAYMENT_OWNER schema | `clsPaymentReturn`, `clsPaymentReturnCollection` |
| [PAYMENT_OWNER.REVOKE_REASON_CODE](#payment_ownerrevoke_reason_code) | Oracle* | PAYMENT_OWNER | R | Revoke reason code accessed via PAYMENT_OWNER schema | `clsRevokeReasonCode`, `clsRevokeReasonCodeCollection` |
| [PAYMENT_RETURN](#payment_return) | Oracle* | [unqualified]** | CU | Payment return records (insert/update without schema qualifier) | `clsPaymentReturn` |
| [PAYMENT_RETURN_REASON_CODE](#payment_return_reason_code) | Oracle* | [unqualified]** | R | NACHA return reason code reference data | `clsPaymentReturnReasonCode`, `clsPaymentReturnReasonCodeCollection` |
| [PAYMENT_RETURN_REASON_GCODE](#payment_return_reason_gcode) | Oracle* | [unqualified]** | R | Culture-aware return reason code descriptions | `clsPaymentReturn`, `clsPaymentReturnReasonCode` |
| [PAYMENT_SOURCE_SYSTEM_CODE](#payment_source_system_code) | Oracle* | [unqualified]** | R | Payment source system code reference data | `clsPaymentSourceSystemCode`, `clsPaymentSourceSystemCodeCollection` |
| [RETURN_STATUS_CODE](#return_status_code) | Oracle* | [unqualified]** | R | Return status code reference data | `clsReturnStatusCode`, `clsReturnStatusCodeCollection` |
| [RETURN_TYPE_CODE](#return_type_code) | Oracle* | [unqualified]** | R | Return type code reference data | `clsReturnTypeCode`, `clsReturnTypeCodeCollection` |
| [REVOKE_REASON_CODE](#revoke_reason_code) | Oracle* | [unqualified]** | R | Revoke reason code reference data (also accessed via PAYMENT_OWNER in return context) | `clsEFTAuthorization`, `clsRevokeReasonCode` |
| [SESSION_TRANSFER](#session_transfer) | Oracle* | [unqualified]** | CRU | Session transfer records linking policies/users to payment details | `clsSessionTransfer` |

---

## ACH_FILE_ID

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores ACH file identifiers and descriptions used in batch file generation. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `ACH_FILE_ID`, `ACH_FILE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | ACH_STANDARD_ENTRY_CLASS_CODE (references ACH_FILE_ID) |
| **Business objects** | `clsAchFileID`, `clsAchFileIDCollection` |

### SQL referencing this table
- [SQL-022: clsAchFileID retrieve by code](sql/SQL-022-saif-business-payment-eft.md)
- [SQL-023: clsAchFileIDCollection retrieve all](sql/SQL-023-saif-business-payment-eft.md)

---

## ACH_STANDARD_ENTRY_CLASS_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for ACH standard entry class codes, filtered by banking network, data source, and business/consumer type. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `BANKING_NETWORK_CODE`, `BANK_ACCOUNT_DATA_SOURCE_CODE`, `BUSINESS_CONSUMER_CODE`, `CODE`, `CODE_DESCR`, `MAX_ADDENDA_RECORD_COUNT` |
| **Sequence** | N/A |
| **Related tables** | BANKING_NETWORK_CODE, BANK_ACCOUNT_DATA_SOURCE_CODE |
| **Business objects** | `clsAchStandardEntryClassCode` |

### SQL referencing this table
- [SQL-024: clsAchStandardEntryClassCode retrieve](sql/SQL-024-saif-business-payment-eft.md)

---

## ADDENDA_TYPE_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for NACHA addenda type codes. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_ADDENDA |
| **Business objects** | `clsAddendaTypeCode`, `clsAddendaTypeCodeCollection` |

### SQL referencing this table
- [SQL-025: clsAddendaTypeCode retrieve by code](sql/SQL-025-saif-business-payment-eft.md)
- [SQL-026: clsAddendaTypeCodeCollection retrieve all](sql/SQL-026-saif-business-payment-eft.md)

---

## AUTHORIZATION_TYPE_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for EFT authorization types including recurring payment flags, ACH company IDs/names, and default bank routing numbers. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR`, `RECURRING_PAYMENT_FLAG`, `DEFAULT_BANK_ROUTING_NUM`, `ACH_COMPANY_ID`, `ACH_COMPANY_NAME`, `ACH_FILE_ID` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_AUTHORIZATION (FK on AUTHORIZATION_TYPE_CODE) |
| **Business objects** | `clsAuthorizationTypeCode`, `clsAuthorizationTypeCodeCollection`, `clsEFTAuthorization`, `clsPaymentDetail` |

### SQL referencing this table
- [SQL-027: clsAuthorizationTypeCode retrieve by code](sql/SQL-027-saif-business-payment-eft.md)
- [SQL-028: clsAuthorizationTypeCodeCollection retrieve all](sql/SQL-028-saif-business-payment-eft.md)

---

## BALANCE_TYPE_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for balance types; includes `GET_BALANCE_SQL_TXT` column whose value is executed at runtime by `DynamicallyCalculatedBalanceInfoFactory`. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR`, `GET_BALANCE_SQL_TXT`, `MISC_RECEIPT_BATCH_ID`, `MISC_RECEIPT_CODE` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_ALLOCATION (references BALANCE_TYPE_CODE) |
| **Business objects** | `clsBalanceTypeCode`, `DynamicallyCalculatedBalanceInfoFactory` |

### SQL referencing this table
- [SQL-029: clsBalanceTypeCode retrieve by code](sql/SQL-029-saif-business-payment-eft.md)

---

## BANK_ACCOUNT

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores bank account records including routing/account numbers, type, status, owner name, and audit columns. Soft-deleted via status code. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create (via sequence), Read, Update, Delete (soft-delete via status code) |
| **Key columns used** | `BANK_ACCOUNT_SEQ_NUM`, `BANK_ACCOUNT_DATA_SOURCE_CODE`, `BANK_ACCOUNT_HOLDER_NAME`, `BANK_ACCOUNT_NICK_NAME`, `BANK_ACCOUNT_NUM`, `BANK_ACCOUNT_OWNER_NAME`, `BANK_ACCOUNT_STATUS_CODE`, `BANK_ACCOUNT_TYPE_CODE`, `BANK_NAME`, `BANK_ROUTING_NUM`, `BUSINESS_CONSUMER_CODE`, `HISTORICAL_AUTHORIZATION_FLAG`, `PAYMENT_RETURN_REASON_CODE`, `CREATE_DATE`, `CREATE_USER`, `UPDATE_DATE`, `UPDATE_USER` |
| **Sequence** | `BANK_ACCOUNT_SEQ` |
| **Related tables** | BANK_ACCOUNT_TRANSFER, PAYMENT_AUTHORIZATION |
| **Business objects** | `clsBankAccount`, `clsBankAccountCollection` |

### Operations referencing this table
- [Bank account management](operations/bank-account-management.md)

### Business rules referencing this table
- [BR-EFT-04: Bank account soft-delete preserves record integrity](business-rules.md#br-eft-04-bank-account-soft-delete-preserves-record-integrity)
- [BR-EFT-05: Insert/update operations require exactly one affected row](business-rules.md#br-eft-05-insertupdate-operations-require-exactly-one-affected-row)

### SQL referencing this table
- [SQL-001: BANK_ACCOUNT_SEQ sequence](sql/SQL-001-saif-business-payment-eft.md)
- [SQL-009: clsBankAccount insert](sql/SQL-009-saif-business-payment-eft.md)
- [SQL-030: clsBankAccount retrieve by ID](sql/SQL-030-saif-business-payment-eft.md)
- [SQL-031: clsBankAccountCollection retrieve by create user](sql/SQL-031-saif-business-payment-eft.md)
- [SQL-077: clsBankAccount update](sql/SQL-077-saif-business-payment-eft.md)
- [SQL-088: clsBankAccount soft-delete](sql/SQL-088-saif-business-payment-eft.md)

---

## BANK_ACCOUNT_DATA_SOURCE_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for bank account data source codes. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | BANK_ACCOUNT |
| **Business objects** | `clsBankAccountDataSourceCode`, `clsBankAccountDataSourceCodeCollection` |

### SQL referencing this table
- [SQL-032: clsBankAccountDataSourceCode retrieve by code](sql/SQL-032-saif-business-payment-eft.md)
- [SQL-033: clsBankAccountDataSourceCodeCollection retrieve all](sql/SQL-033-saif-business-payment-eft.md)

---

## BANK_ACCOUNT_STATUS_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for bank account status codes including the DELETED constant used in soft-delete. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | BANK_ACCOUNT |
| **Business objects** | `clsBankAccountStatusCode`, `clsBankAccountStatusCodeCollection` |

### SQL referencing this table
- [SQL-034: clsBankAccountStatusCode retrieve by code](sql/SQL-034-saif-business-payment-eft.md)
- [SQL-035: clsBankAccountStatusCodeCollection retrieve all](sql/SQL-035-saif-business-payment-eft.md)

---

## BANK_ACCOUNT_TRANSFER

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Links bank account sequence numbers to US Bank user sequence numbers and account IDs. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create, Read, Update |
| **Key columns used** | `BANK_ACCOUNT_SEQ_NUM`, `US_BANK_USER_SEQ_NUM`, `US_BANK_ACCOUNT_ID` |
| **Sequence** | N/A |
| **Related tables** | BANK_ACCOUNT |
| **Business objects** | `clsBankAccountTransfer` |

### SQL referencing this table
- [SQL-010: clsBankAccountTransfer insert](sql/SQL-010-saif-business-payment-eft.md)
- [SQL-036: clsBankAccountTransfer retrieve](sql/SQL-036-saif-business-payment-eft.md)
- [SQL-078: clsBankAccountTransfer update](sql/SQL-078-saif-business-payment-eft.md)
- [SQL-089: clsBankAccountTransfer delete](sql/SQL-089-saif-business-payment-eft.md)

---

## BANK_ACCOUNT_TYPE_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for bank account types (checking, savings, etc.) associated with banking networks. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `BANKING_NETWORK_CODE`, `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | BANKING_NETWORK_CODE, BANK_ACCOUNT |
| **Business objects** | `clsBankAccountTypeCode`, `clsBankAccountTypeCodeCollection` |

### SQL referencing this table
- [SQL-037: clsBankAccountTypeCode retrieve by code](sql/SQL-037-saif-business-payment-eft.md)
- [SQL-038: clsBankAccountTypeCodeCollection retrieve all](sql/SQL-038-saif-business-payment-eft.md)

---

## BANKING_NETWORK_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for banking network codes; uniquely writable among code-table classes (supports insert, update, delete). |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create, Read, Update |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | CODE_NEXTVAL (sequence via `SELECT CODE_NEXTVAL FROM DUAL`)* |
| **Related tables** | ACH_STANDARD_ENTRY_CLASS_CODE, BANK_ACCOUNT_TYPE_CODE |
| **Business objects** | `clsBankingNetworkCode`, `clsBankingNetworkCodeCollection` |

### SQL referencing this table
- [SQL-002: clsBankingNetworkCode sequence](sql/SQL-002-saif-business-payment-eft.md)
- [SQL-011: clsBankingNetworkCode insert](sql/SQL-011-saif-business-payment-eft.md)
- [SQL-039: clsBankingNetworkCode retrieve by code](sql/SQL-039-saif-business-payment-eft.md)
- [SQL-040: clsBankingNetworkCodeCollection retrieve all](sql/SQL-040-saif-business-payment-eft.md)
- [SQL-079: clsBankingNetworkCode update](sql/SQL-079-saif-business-payment-eft.md)
- [SQL-090: clsBankingNetworkCode delete](sql/SQL-090-saif-business-payment-eft.md)

---

## CUSTOMER_TYPE_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for customer types used in EFT authorization context. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_AUTHORIZATION |
| **Business objects** | `clsCustomerTypeCode`, `clsCustomerTypeCodeCollection` |

### SQL referencing this table
- [SQL-041: clsCustomerTypeCode retrieve by code](sql/SQL-041-saif-business-payment-eft.md)
- [SQL-042: clsCustomerTypeCodeCollection retrieve all](sql/SQL-042-saif-business-payment-eft.md)

---

## DEBIT_CARD_ENROLLMENT_REQUEST

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Tracks debit-card payment enrollment requests including cardholder identity, address, dates, and enrollment status. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create (via sequence), Read, Update |
| **Key columns used** | `ENROLL_REQUEST_SEQ_NUM`, `ENROLL_STATUS_CODE`, `NEW_ENROLL_FLAG`, `CARDHOLDER_ID_NUM`, `FULL_NAME`, `SECOND_FULL_NAME`, `CARD_ENROLL_DATE`, `CARD_ACTIVE_DATE`, `CARD_TERM_DATE`, `ADDRESS_LINE1`, `STATE_CODE`, `ZIP_CODE`, `CREATE_DATE`, `CREATE_USER`, `UPDATE_DATE`, `UPDATE_USER` |
| **Sequence** | `ENROLL_REQUEST_SEQ` |
| **Related tables** | PAYMENT_AUTHORIZATION |
| **Business objects** | `clsDebitCardEnrollmentRequest`, `clsDebitCardEnrollmentRequestCollection` |

### Operations referencing this table
- [Debit card enrollment](operations/debit-card-enrollment.md)

### Business rules referencing this table
- [BR-EFT-06: Debit card enrollment excludes terminated enrollments by default](business-rules.md#br-eft-06-debit-card-enrollment-excludes-terminated-enrollments-by-default)

### SQL referencing this table
- [SQL-003: ENROLL_REQUEST_SEQ sequence](sql/SQL-003-saif-business-payment-eft.md)
- [SQL-012: clsDebitCardEnrollmentRequest insert](sql/SQL-012-saif-business-payment-eft.md)
- [SQL-043: clsDebitCardEnrollmentRequest retrieve](sql/SQL-043-saif-business-payment-eft.md)
- [SQL-044: clsDebitCardEnrollmentRequestCollection retrieve](sql/SQL-044-saif-business-payment-eft.md)
- [SQL-080: clsDebitCardEnrollmentRequest update](sql/SQL-080-saif-business-payment-eft.md)
- [SQL-091: clsDebitCardEnrollmentRequest delete](sql/SQL-091-saif-business-payment-eft.md)

---

## DUAL

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Oracle pseudo-table used exclusively for sequence NEXTVAL generation. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Sequence (S) |
| **Key columns used** | N/A |
| **Sequence** | BANK_ACCOUNT_SEQ, ENROLL_REQUEST_SEQ, OUTPUT_CONTROL_SEQ, PAYMENT_ADDENDA_SEQ, PAYMENT_DETAIL_SEQ, PAYMENT_EVENT_SEQ, PAYMENT_RETURN_SEQ, CODE_NEXTVAL |
| **Related tables** | N/A |
| **Business objects** | `clsBankAccount`, `clsBankingNetworkCode`, `clsDebitCardEnrollmentRequest`, `clsOutputControl`, `clsPaymentAddenda`, `clsPaymentDetail`, `clsPaymentEvent`, `clsPaymentReturn` |

### SQL referencing this table
- [SQL-001](sql/SQL-001-saif-business-payment-eft.md), [SQL-002](sql/SQL-002-saif-business-payment-eft.md), [SQL-003](sql/SQL-003-saif-business-payment-eft.md), [SQL-004](sql/SQL-004-saif-business-payment-eft.md), [SQL-005](sql/SQL-005-saif-business-payment-eft.md), [SQL-006](sql/SQL-006-saif-business-payment-eft.md), [SQL-007](sql/SQL-007-saif-business-payment-eft.md), [SQL-008](sql/SQL-008-saif-business-payment-eft.md)

---

## ENROLL_STATUS_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for debit-card enrollment status codes. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | DEBIT_CARD_ENROLLMENT_REQUEST |
| **Business objects** | `clsEnrollStatusCode`, `clsEnrollStatusCodeCollection` |

### SQL referencing this table
- [SQL-047: clsEnrollStatusCode retrieve by code](sql/SQL-047-saif-business-payment-eft.md)
- [SQL-048: clsEnrollStatusCodeCollection retrieve all](sql/SQL-048-saif-business-payment-eft.md)

---

## ONLINE_PAYMENT_TYPE_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for online payment types including NSF limits, notification addresses, and ACH report headings. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR`, `DEFAULT_COMPANY_ENTRY_DESCR`, `DEFAULT_CREDIT_DEBIT_CODE`, `DEFAULT_PAYMENT_DAY_OF_MTH_NUM`, `MAX_NSF_COUNT`, `NOTIFY_EMAIL_ADDR`, `ACH_REPORT_HEADING` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_DETAIL |
| **Business objects** | `clsOnlinePaymentTypeCode`, `clsOnlinePaymentTypeCodeCollection` |

### SQL referencing this table
- [SQL-049: clsOnlinePaymentTypeCode retrieve by code](sql/SQL-049-saif-business-payment-eft.md)
- [SQL-050: clsOnlinePaymentTypeCodeCollection retrieve all](sql/SQL-050-saif-business-payment-eft.md)

---

## OUTPUT_CONTROL

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Tracks output control records for claim document generation, linking claims to output document codes and print dates. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create (via sequence), Read, Update |
| **Key columns used** | `OUTPUT_CONTROL_SEQ_NUM`, `CLAIM_ID`, `OUTPUT_DOCUMENT_CODE`, `PERSON_ID`, `SECONDARY_ID`, `PRINTED_DATE`, `CREATE_DATE`, `CREATE_USER` |
| **Sequence** | `output_control_seq` |
| **Related tables** | OUTPUT_DOCUMENT_CODE |
| **Business objects** | `clsOutputControl`, `clsOutputControlCollection` |

### SQL referencing this table
- [SQL-004: output_control_seq sequence](sql/SQL-004-saif-business-payment-eft.md)
- [SQL-014: clsOutputControl insert](sql/SQL-014-saif-business-payment-eft.md)
- [SQL-051: clsOutputControl retrieve by seq num](sql/SQL-051-saif-business-payment-eft.md)
- [SQL-052: clsOutputControlCollection retrieve](sql/SQL-052-saif-business-payment-eft.md)
- [SQL-082: clsOutputControl update](sql/SQL-082-saif-business-payment-eft.md)
- [SQL-093: clsOutputControl delete](sql/SQL-093-saif-business-payment-eft.md)

---

## OUTPUT_DOCUMENT_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for output document codes including Xpresso package names. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR`, `CREATE_DATE`, `CREATE_USER`, `XPESSO_PACKAGE_NAME` |
| **Sequence** | N/A |
| **Related tables** | OUTPUT_CONTROL |
| **Business objects** | `clsOutputDocumentCode`, `clsOutputDocumentCodeCollection` |

### SQL referencing this table
- [SQL-053: clsOutputDocumentCode retrieve by code](sql/SQL-053-saif-business-payment-eft.md)
- [SQL-054: clsOutputDocumentCodeCollection retrieve all](sql/SQL-054-saif-business-payment-eft.md)

---

## PAYMENT_ADDENDA

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores NACHA ACH addenda records attached to payment detail records. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create (via sequence), Read, Update, Delete |
| **Key columns used** | `PAYMENT_ADDENDA_SEQ_NUM`, `ADDENDA_TEXT`, `ADDENDA_TYPE_CODE`, `PAYMENT_DETAIL_SEQ_NUM`, `CREATE_DATE`, `CREATE_USER` |
| **Sequence** | `payment_addenda_seq` |
| **Related tables** | PAYMENT_DETAIL, ADDENDA_TYPE_CODE |
| **Business objects** | `clsPaymentAddenda`, `clsPaymentAddendaCollection` |

### Operations referencing this table
- [Payment addenda](operations/payment-addenda.md)

### SQL referencing this table
- [SQL-005: payment_addenda_seq sequence](sql/SQL-005-saif-business-payment-eft.md)
- [SQL-015: clsPaymentAddenda insert](sql/SQL-015-saif-business-payment-eft.md)
- [SQL-055: clsPaymentAddenda retrieve by seq num](sql/SQL-055-saif-business-payment-eft.md)
- [SQL-056: clsPaymentAddendaCollection retrieve by payment detail](sql/SQL-056-saif-business-payment-eft.md)
- [SQL-083: clsPaymentAddenda update](sql/SQL-083-saif-business-payment-eft.md)
- [SQL-094: clsPaymentAddenda delete](sql/SQL-094-saif-business-payment-eft.md)

---

## PAYMENT_ALLOCATION

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Allocates payment amounts across claim/benefit categories, linking session transfers to balance types and plan/policy period sequences. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create, Read, Update |
| **Key columns used** | `PAYMENT_ALLOCATION_SEQ_NUM`, `SESSION_TRANSFER_SEQ_NUM`, `BALANCE_TYPE_CODE`, `AMOUNT`, `APPROVED_PLAN_SEQ_NUM`, `OSC_POLICY_PERIOD_SEQ_NUM`, `DYNAMIC_BALANCE_SEQ_NUM` |
| **Sequence** | N/A |
| **Related tables** | SESSION_TRANSFER, BALANCE_TYPE_CODE |
| **Business objects** | `clsPaymentAllocation`, `clsPaymentAllocationCollection` |

### Operations referencing this table
- [Payment detail and allocation](operations/payment-detail-and-allocation.md)

### SQL referencing this table
- [SQL-016: clsPaymentAllocation insert](sql/SQL-016-saif-business-payment-eft.md)
- [SQL-057: clsPaymentAllocationCollection retrieve](sql/SQL-057-saif-business-payment-eft.md)
- [SQL-084: clsPaymentAllocation update](sql/SQL-084-saif-business-payment-eft.md)
- [SQL-095: clsPaymentAllocation delete](sql/SQL-095-saif-business-payment-eft.md)

---

## PAYMENT_AUTHORIZATION

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores EFT authorization/consent records for payees including customer identity, bank account reference, prenote tracking, revocation, and IAT (International ACH Transaction) fields. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | `PAYMENT_AUTHORIZATION_SEQ_NUM`, `AUTHORIZATION_TYPE_CODE`, `ENROLL_REQUEST_SEQ_NUM`, `AUTH_AGREEMENT_VERSION`, `AUTH_DATE`, `BANK_ACCOUNT_SEQ_NUM`, `CUSTOMER_ID`, `CUSTOMER_TYPE_CODE`, `PAYMENT_SOURCE_SYSTEM_CODE`, `PRENOTE_REQUIRED_FLAG`, `PRENOTE_SUCCESS_DATE`, `REVOKE_REASON_CODE`, `REVOKE_DATE`, `AUTO_PAY_CONFIRMATION_NUM`, `IAT_FLAG`, `UPDATE_DATE`, `UPDATE_USER` |
| **Sequence** | N/A |
| **Related tables** | AUTHORIZATION_TYPE_CODE, REVOKE_REASON_CODE, BANK_ACCOUNT, PAYMENT_DETAIL |
| **Business objects** | `clsEFTAuthorization`, `clsEFTAuthorizationCollection`, `clsPaymentDetail` |

### Operations referencing this table
- [EFT authorization / consent](operations/eft-authorization-consent.md)

### Business rules referencing this table
- [BR-EFT-01: EFT authorization gates electronic payment eligibility](business-rules.md#br-eft-01-eft-authorization-gates-electronic-payment-eligibility)

### SQL referencing this table
- [SQL-013: clsEFTAuthorization insert](sql/SQL-013-saif-business-payment-eft.md)
- [SQL-045: clsEFTAuthorization retrieve](sql/SQL-045-saif-business-payment-eft.md)
- [SQL-046: clsEFTAuthorizationCollection retrieve](sql/SQL-046-saif-business-payment-eft.md)
- [SQL-081: clsEFTAuthorization update](sql/SQL-081-saif-business-payment-eft.md)
- [SQL-092: clsEFTAuthorization delete](sql/SQL-092-saif-business-payment-eft.md)

---

## PAYMENT_AUTH_SESSION_TRANSFER

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Links payment authorizations to session transfer records with associated due dates. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create, Read |
| **Key columns used** | `PAYMENT_AUTHORIZATION_SEQ_NUM`, `SESSION_TRANSFER_SEQ_NUM`, `DUE_DATE` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_AUTHORIZATION, SESSION_TRANSFER |
| **Business objects** | `clsPaymentAuthorizationSessionTransfer` |

### SQL referencing this table
- [SQL-017: clsPaymentAuthorizationSessionTransfer insert](sql/SQL-017-saif-business-payment-eft.md)
- [SQL-058: clsPaymentAuthorizationSessionTransfer retrieve](sql/SQL-058-saif-business-payment-eft.md)

---

## PAYMENT_DETAIL

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores individual EFT payment line items with amounts, event codes, ACH entry class codes, and prenote flags. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create (via sequence), Read, Update |
| **Key columns used** | `PAYMENT_DETAIL_SEQ_NUM`, `ACH_STD_ENTRY_CLASS_CODE`, `ACH_ADDENDUM_TEXT`, `CONFIRMATION_CHECK_NUM`, `CREDIT_DEBIT_CODE`, `CURRENT_PAYMENT_EVENT_CODE`, `NSF_COUNT`, `ONLINE_PAYMENT_TYPE_CODE`, `PAYMENT_AMT`, `PAYMENT_AUTHORIZATION_SEQ_NUM`, `PAYMENT_DATE`, `PRENOTE_FLAG`, `RESUBMIT_DATE`, `UPDATE_DATE`, `UPDATE_USER` |
| **Sequence** | `Payment_detail_seq` |
| **Related tables** | PAYMENT_AUTHORIZATION, AUTHORIZATION_TYPE_CODE, PAYMENT_ADDENDA, PAYMENT_ALLOCATION, PAYMENT_EVENT |
| **Business objects** | `clsPaymentDetail` |

### Operations referencing this table
- [Payment detail and allocation](operations/payment-detail-and-allocation.md)

### Business rules referencing this table
- [BR-EFT-05: Insert/update operations require exactly one affected row](business-rules.md#br-eft-05-insertupdate-operations-require-exactly-one-affected-row)

### SQL referencing this table
- [SQL-006: Payment_detail_seq sequence](sql/SQL-006-saif-business-payment-eft.md)
- [SQL-018: clsPaymentDetail insert](sql/SQL-018-saif-business-payment-eft.md)
- [SQL-059: clsPaymentDetail retrieve](sql/SQL-059-saif-business-payment-eft.md)
- [SQL-085: clsPaymentDetail update](sql/SQL-085-saif-business-payment-eft.md)
- [SQL-096: clsPaymentDetail delete](sql/SQL-096-saif-business-payment-eft.md)

---

## PAYMENT_EVENT

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Records payment lifecycle events (ACH transmittal, return, etc.) linked to payment details. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create (via sequence), Read |
| **Key columns used** | `PAYMENT_EVENT_SEQ_NUM`, `PAYMENT_DETAIL_SEQ_NUM`, `PAYMENT_EVENT_CODE`, `BANK_EFF_ENTRY_DATE`, `BATCH_DATE`, `BATCH_NUM`, `PAYMENT_RETURN_REASON_CODE`, `TRACE_NUM`, `CREATE_DATE`, `CREATE_USER` |
| **Sequence** | `payment_event_seq` |
| **Related tables** | PAYMENT_EVENT_CODE, PAYMENT_RETURN_REASON_CODE, PAYMENT_DETAIL |
| **Business objects** | `clsPaymentEvent`, `clsPaymentEventCollection` |

### SQL referencing this table
- [SQL-007: payment_event_seq sequence](sql/SQL-007-saif-business-payment-eft.md)
- [SQL-019: clsPaymentEvent insert](sql/SQL-019-saif-business-payment-eft.md)
- [SQL-060: clsPaymentEvent retrieve by seq num](sql/SQL-060-saif-business-payment-eft.md)
- [SQL-063: clsPaymentEventCollection retrieve by payment detail](sql/SQL-063-saif-business-payment-eft.md)

---

## PAYMENT_EVENT_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for payment event codes including bank transmittal flags. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR`, `CODE_SHORT_DESCR`, `BANK_TRANSMITTAL_FLAG` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_EVENT |
| **Business objects** | `clsPaymentEventCode`, `clsPaymentEventCodeCollection` |

### SQL referencing this table
- [SQL-061: clsPaymentEventCode retrieve by code](sql/SQL-061-saif-business-payment-eft.md)
- [SQL-062: clsPaymentEventCodeCollection retrieve all](sql/SQL-062-saif-business-payment-eft.md)

---

## PAYMENT_OWNER.AUTHORIZATION_TYPE_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | PAYMENT_OWNER |
| **Purpose** | Authorization type code accessed via PAYMENT_OWNER schema qualifier in payment return queries. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_OWNER.PAYMENT_AUTHORIZATION |
| **Business objects** | `clsPaymentReturn`, `clsPaymentReturnCollection` |

### SQL referencing this table
- [SQL-064: clsPaymentReturn retrieve](sql/SQL-064-saif-business-payment-eft.md)
- [SQL-065: clsPaymentReturnCollection retrieve](sql/SQL-065-saif-business-payment-eft.md)

---

## PAYMENT_OWNER.PAYMENT_AUTHORIZATION

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | PAYMENT_OWNER |
| **Purpose** | Payment authorization accessed via PAYMENT_OWNER schema qualifier in payment return queries. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `PAYMENT_AUTHORIZATION_SEQ_NUM`, `CUSTOMER_TYPE_CODE`, `CUSTOMER_CONTACT_NAME`, `AUTHORIZATION_TYPE_CODE` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_OWNER.PAYMENT_DETAIL, PAYMENT_OWNER.AUTHORIZATION_TYPE_CODE |
| **Business objects** | `clsPaymentReturn`, `clsPaymentReturnCollection` |

### SQL referencing this table
- [SQL-064: clsPaymentReturn retrieve](sql/SQL-064-saif-business-payment-eft.md)
- [SQL-065: clsPaymentReturnCollection retrieve](sql/SQL-065-saif-business-payment-eft.md)

---

## PAYMENT_OWNER.PAYMENT_DETAIL

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | PAYMENT_OWNER |
| **Purpose** | Payment detail accessed via PAYMENT_OWNER schema qualifier in EFT authorization collection and payment return queries. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `PAYMENT_DETAIL_SEQ_NUM`, `PAYMENT_AUTHORIZATION_SEQ_NUM`, `NSF_COUNT`, `CONFIRMATION_CHECK_NUM` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_OWNER.PAYMENT_RETURN, PAYMENT_OWNER.PAYMENT_AUTHORIZATION |
| **Business objects** | `clsEFTAuthorizationCollection`, `clsPaymentReturn`, `clsPaymentReturnCollection` |

### SQL referencing this table
- [SQL-046: clsEFTAuthorizationCollection retrieve](sql/SQL-046-saif-business-payment-eft.md)
- [SQL-064: clsPaymentReturn retrieve](sql/SQL-064-saif-business-payment-eft.md)
- [SQL-065: clsPaymentReturnCollection retrieve](sql/SQL-065-saif-business-payment-eft.md)

---

## PAYMENT_OWNER.PAYMENT_RETURN

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | PAYMENT_OWNER |
| **Purpose** | Payment return records accessed via PAYMENT_OWNER schema qualifier. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `PAYMENT_RETURN_SEQ_NUM`, `PAYMENT_RETURN_REASON_CODE`, `RETURN_STATUS_CODE`, `PAYMENT_DETAIL_SEQ_NUM` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_OWNER.PAYMENT_RETURN_REASON_CODE, PAYMENT_OWNER.PAYMENT_DETAIL |
| **Business objects** | `clsPaymentReturn`, `clsPaymentReturnCollection` |

### SQL referencing this table
- [SQL-064: clsPaymentReturn retrieve](sql/SQL-064-saif-business-payment-eft.md)
- [SQL-065: clsPaymentReturnCollection retrieve](sql/SQL-065-saif-business-payment-eft.md)

---

## PAYMENT_OWNER.PAYMENT_RETURN_REASON_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | PAYMENT_OWNER |
| **Purpose** | Payment return reason code accessed via PAYMENT_OWNER schema qualifier in payment return queries. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR`, `RETURN_PAYMENT_EVENT_CODE` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_OWNER.PAYMENT_RETURN, PAYMENT_RETURN_REASON_GCODE |
| **Business objects** | `clsPaymentReturn`, `clsPaymentReturnCollection` |

### SQL referencing this table
- [SQL-064: clsPaymentReturn retrieve](sql/SQL-064-saif-business-payment-eft.md)
- [SQL-065: clsPaymentReturnCollection retrieve](sql/SQL-065-saif-business-payment-eft.md)

---

## PAYMENT_OWNER.REVOKE_REASON_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | PAYMENT_OWNER |
| **Purpose** | Revoke reason code reference data accessed via PAYMENT_OWNER schema qualifier. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR`, `INTERNAL_FLAG` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_AUTHORIZATION |
| **Business objects** | `clsRevokeReasonCode`, `clsRevokeReasonCodeCollection` |

### SQL referencing this table
- [SQL-074: clsRevokeReasonCode retrieve by code](sql/SQL-074-saif-business-payment-eft.md)
- [SQL-075: clsRevokeReasonCodeCollection retrieve all](sql/SQL-075-saif-business-payment-eft.md)

---

## PAYMENT_RETURN

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores returned/failed EFT payment records with return reason, status, type, customer details, and payment amount. Insert and update operations use the unqualified table name; reads go through PAYMENT_OWNER schema. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create (via sequence), Update |
| **Key columns used** | `PAYMENT_RETURN_SEQ_NUM`, `PAYMENT_RETURN_REASON_CODE`, `RETURN_STATUS_CODE`, `RETURN_TYPE_CODE`, `CREDIT_DEBIT_CODE`, `CUSTOMER_ID`, `CUSTOMER_NAME`, `PAYMENT_AMT`, `PAYMENT_DETAIL_SEQ_NUM`, `RETURN_DATE`, `TRACE_NUM`, `CREATE_DATE`, `CREATE_USER`, `UPDATE_DATE`, `UPDATE_USER` |
| **Sequence** | `PAYMENT_RETURN_SEQ` |
| **Related tables** | PAYMENT_RETURN_REASON_CODE, RETURN_STATUS_CODE, RETURN_TYPE_CODE, PAYMENT_DETAIL |
| **Business objects** | `clsPaymentReturn` |

### Operations referencing this table
- [Payment return handling](operations/payment-return-handling.md)

### Business rules referencing this table
- [BR-EFT-03: Returned EFT payment classified by NACHA return reason code](business-rules.md#br-eft-03-returned-eft-payment-classified-by-nacha-return-reason-code)

### SQL referencing this table
- [SQL-008: PAYMENT_RETURN_SEQ sequence](sql/SQL-008-saif-business-payment-eft.md)
- [SQL-020: clsPaymentReturn insert](sql/SQL-020-saif-business-payment-eft.md)
- [SQL-086: clsPaymentReturn update](sql/SQL-086-saif-business-payment-eft.md)

---

## PAYMENT_RETURN_REASON_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | NACHA return reason code reference data with bank transmittal flags and return payment event codes. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR`, `BANK_TRANSMITTAL_FLAG`, `CATEGORY`, `RETURN_PAYMENT_EVENT_CODE` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_RETURN, PAYMENT_EVENT, PAYMENT_RETURN_REASON_GCODE |
| **Business objects** | `clsPaymentReturnReasonCode`, `clsPaymentReturnReasonCodeCollection` |

### Business rules referencing this table
- [BR-EFT-03: Returned EFT payment classified by NACHA return reason code](business-rules.md#br-eft-03-returned-eft-payment-classified-by-nacha-return-reason-code)
- [BR-EFT-07: Return reason description is culture-aware](business-rules.md#br-eft-07-return-reason-description-is-culture-aware)

### SQL referencing this table
- [SQL-066: clsPaymentReturnReasonCode retrieve by code](sql/SQL-066-saif-business-payment-eft.md)
- [SQL-067: clsPaymentReturnReasonCodeCollection retrieve](sql/SQL-067-saif-business-payment-eft.md)

---

## PAYMENT_RETURN_REASON_GCODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Culture-aware return reason code description overrides; joined to `PAYMENT_RETURN_REASON_CODE` when a locale-specific description is needed. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR`, `CULTURE_CODE` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_RETURN_REASON_CODE |
| **Business objects** | `clsPaymentReturn`, `clsPaymentReturnReasonCode` |

### Business rules referencing this table
- [BR-EFT-07: Return reason description is culture-aware](business-rules.md#br-eft-07-return-reason-description-is-culture-aware)

### SQL referencing this table
- [SQL-064: clsPaymentReturn retrieve](sql/SQL-064-saif-business-payment-eft.md)
- [SQL-065: clsPaymentReturnCollection retrieve](sql/SQL-065-saif-business-payment-eft.md)
- [SQL-066: clsPaymentReturnReasonCode retrieve](sql/SQL-066-saif-business-payment-eft.md)
- [SQL-067: clsPaymentReturnReasonCodeCollection retrieve](sql/SQL-067-saif-business-payment-eft.md)

---

## PAYMENT_SOURCE_SYSTEM_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for payment source system codes with notification email addresses. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR`, `NOTIFY_EMAIL_ADDR` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_AUTHORIZATION, PAYMENT_RETURN |
| **Business objects** | `clsPaymentSourceSystemCode`, `clsPaymentSourceSystemCodeCollection` |

### SQL referencing this table
- [SQL-068: clsPaymentSourceSystemCode retrieve by code](sql/SQL-068-saif-business-payment-eft.md)
- [SQL-069: clsPaymentSourceSystemCodeCollection retrieve all](sql/SQL-069-saif-business-payment-eft.md)

---

## RETURN_STATUS_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for EFT payment return status codes. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_RETURN |
| **Business objects** | `clsReturnStatusCode`, `clsReturnStatusCodeCollection` |

### SQL referencing this table
- [SQL-070: clsReturnStatusCode retrieve by code](sql/SQL-070-saif-business-payment-eft.md)
- [SQL-071: clsReturnStatusCodeCollection retrieve all](sql/SQL-071-saif-business-payment-eft.md)

---

## RETURN_TYPE_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for EFT payment return type codes. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_RETURN |
| **Business objects** | `clsReturnTypeCode`, `clsReturnTypeCodeCollection` |

### SQL referencing this table
- [SQL-072: clsReturnTypeCode retrieve by code](sql/SQL-072-saif-business-payment-eft.md)
- [SQL-073: clsReturnTypeCodeCollection retrieve all](sql/SQL-073-saif-business-payment-eft.md)

---

## REVOKE_REASON_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Reference data for EFT authorization revocation reason codes; also accessed via PAYMENT_OWNER schema (see PAYMENT_OWNER.REVOKE_REASON_CODE). Used in JOIN on PAYMENT_AUTHORIZATION for single-object retrieval. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR`, `INTERNAL_FLAG` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_AUTHORIZATION |
| **Business objects** | `clsEFTAuthorization`, `clsRevokeReasonCode` |

### SQL referencing this table
- [SQL-045: clsEFTAuthorization retrieve](sql/SQL-045-saif-business-payment-eft.md)
- [SQL-046: clsEFTAuthorizationCollection retrieve](sql/SQL-046-saif-business-payment-eft.md)

---

## SESSION_TRANSFER

| Field | Value |
| --- | --- |
| **Database** | Oracle* |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Links policy numbers and US Bank user sequence numbers to payment detail records for session context. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Create, Read, Update |
| **Key columns used** | `SESSION_TRANSFER_SEQ_NUM`, `POLICY_NUM`, `US_BANK_USER_SEQ_NUM`, `PAYMENT_DETAIL_SEQ_NUM` |
| **Sequence** | N/A |
| **Related tables** | PAYMENT_DETAIL, PAYMENT_AUTH_SESSION_TRANSFER |
| **Business objects** | `clsSessionTransfer` |

### SQL referencing this table
- [SQL-021: clsSessionTransfer insert](sql/SQL-021-saif-business-payment-eft.md)
- [SQL-076: clsSessionTransfer retrieve](sql/SQL-076-saif-business-payment-eft.md)
- [SQL-087: clsSessionTransfer update](sql/SQL-087-saif-business-payment-eft.md)
- [SQL-097: clsSessionTransfer delete](sql/SQL-097-saif-business-payment-eft.md)

---

## Table relationship diagram

The following diagram shows key relationships between core transactional tables used by this library.

```mermaid
erDiagram
    BANK_ACCOUNT ||--o{ PAYMENT_AUTHORIZATION : "BANK_ACCOUNT_SEQ_NUM"
    PAYMENT_AUTHORIZATION ||--o{ PAYMENT_DETAIL : "PAYMENT_AUTHORIZATION_SEQ_NUM"
    PAYMENT_DETAIL ||--o{ PAYMENT_ADDENDA : "PAYMENT_DETAIL_SEQ_NUM"
    PAYMENT_DETAIL ||--o{ PAYMENT_EVENT : "PAYMENT_DETAIL_SEQ_NUM"
    PAYMENT_DETAIL ||--o{ PAYMENT_RETURN : "PAYMENT_DETAIL_SEQ_NUM"
    PAYMENT_AUTHORIZATION ||--o{ PAYMENT_AUTH_SESSION_TRANSFER : "PAYMENT_AUTHORIZATION_SEQ_NUM"
    SESSION_TRANSFER ||--o{ PAYMENT_AUTH_SESSION_TRANSFER : "SESSION_TRANSFER_SEQ_NUM"
    SESSION_TRANSFER ||--o{ PAYMENT_ALLOCATION : "SESSION_TRANSFER_SEQ_NUM"
    PAYMENT_AUTHORIZATION }|--|| AUTHORIZATION_TYPE_CODE : "AUTHORIZATION_TYPE_CODE"
    PAYMENT_AUTHORIZATION }o--o| REVOKE_REASON_CODE : "REVOKE_REASON_CODE"
    DEBIT_CARD_ENROLLMENT_REQUEST ||--o{ PAYMENT_AUTHORIZATION : "ENROLL_REQUEST_SEQ_NUM"
    PAYMENT_RETURN }|--|| PAYMENT_RETURN_REASON_CODE : "PAYMENT_RETURN_REASON_CODE"
    PAYMENT_RETURN_REASON_CODE ||--o{ PAYMENT_RETURN_REASON_GCODE : "CODE"
```

> **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.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [SQL catalog](sql/index.md)
- [API reference](api/index.md)
- [Configuration](configuration.md)

## Sources
- `Business\SAIF.Business.Payment.EFT\clsBankAccount.vb`
- `Business\SAIF.Business.Payment.EFT\clsEFTAuthorization.vb`
- `Business\SAIF.Business.Payment.EFT\clsEFTAuthorizationCollection.vb`
- `Business\SAIF.Business.Payment.EFT\clsDebitCardEnrollmentRequest.vb`
- `Business\SAIF.Business.Payment.EFT\clsPaymentDetail.vb`
- `Business\SAIF.Business.Payment.EFT\clsPaymentAllocation.vb`
- `Business\SAIF.Business.Payment.EFT\clsPaymentAddenda.vb`
- `Business\SAIF.Business.Payment.EFT\clsPaymentReturn.vb`
- `Business\SAIF.Business.Payment.EFT\clsPaymentReturnReasonCode.vb`
- `Business\SAIF.Business.Payment.EFT\clsOutputControl.vb`
- `Business\SAIF.Business.Payment.EFT\clsSessionTransfer.vb`
- `Business\SAIF.Business.Payment.EFT\clsPaymentEvent.vb`
- `Business\SAIF.Business.Payment.EFT\clsPaymentAuthorizationSessionTransfer.vb`
- `Business\SAIF.Business.Payment.EFT\clsBankAccountTransfer.vb`
- `Business\SAIF.Business.Payment.EFT\clsAchFileID.vb`
- `Business\SAIF.Business.Payment.EFT\clsBalanceTypeCode.vb`
- `Business\SAIF.Business.Payment.EFT\clsBankingNetworkCode.vb`
