---
title: Claim information and authorization support
summary: Resolves claim addresses, adjusters, payment-history checks, authorization limits, claim visibility, and update helpers from ClaimServices.
status: draft
owner: SAIF
last_reviewed: 2026-07-30
library: SAIF.Business
reference_type: package
operation_id: OP-SB-07
trigger: Caller invokes a claim-service helper.
---

# Claim information and authorization support

This operation groups the claim-facing helpers implemented in `ClaimServices` and `clsClaimSecurity`. Together they resolve claimant addresses and contacts, validate claim state, check payment and authorization status, and apply the small update statements that this library owns.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-SB-07 |
| **Trigger** | Caller invokes claim lookup, authorization, or claim-update helpers. |
| **Inputs** | Claim ID or number, person or beneficiary IDs, responsibility code, benefit/payment context, employee mail ID, amount, dates, update user |
| **Outputs** | Claim address/contact objects, booleans, counts, dates, adjuster IDs, or update success state |
| **Primary components** | `ClaimServices.getPersonAddress`, `ClaimServices.GetResponsibleAdjuster`, `ClaimServices.HasExistingBenefitPayment`, `ClaimServices.HasReserveAuthorization`, `ClaimServices.IsClaimAvailableExternalView`, `clsClaimSecurity.GetClaimSecurityByClaimID` |
| **Entry point** | `Business\SAIF.Business\ClaimServices.vb` |

## Steps

1. Data-API retrieval helpers such as `GetBeneficiaryAddresses`, `GetClaimContacts`, `GetWorkerAddress`, and `clsClaimSecurity.GetClaimSecurityByClaimID` send CCClaimData API requests keyed by claim or person identifiers and return the typed response objects without issuing local SQL.
2. Person-address retrieval uses `pk82001_claim.getPersonAddress` when the caller requests a claim person mailing or payment address, passing the person, claim, address-type, and optional date inputs into the procedure ([SQL-005](../sql/SQL-005-pk82001-claim-getpersonaddress.md), [PROC-RULE-005](../business-rules.md#proc-rule-005-the-procedure-uses-the-caller-supplied-date-when-one-is-provided), [PROC-RULE-006](../business-rules.md#proc-rule-006-default-correspondence-address-lookup-falls-back-from-guardian-to-mailing-to-home-address), [PROC-RULE-007](../business-rules.md#proc-rule-007-default-payment-address-lookup-falls-back-from-guardian-to-payment-to-mailing-to-home-address), [PROC-RULE-008](../business-rules.md#proc-rule-008-explicit-payment-requests-only-use-payment-addresses), [PROC-RULE-009](../business-rules.md#proc-rule-009-other-requests-use-the-requested-address-type-directly), [PROC-RULE-010](../business-rules.md#proc-rule-010-guardian-correspondence-resolves-the-guardian-mailing-address-and-inserts-a-for-line-for-the-worker-beneficiary), [PROC-RULE-011](../business-rules.md#proc-rule-011-deceased-people-are-addressed-as-estates), [PROC-RULE-012](../business-rules.md#proc-rule-012-blank-address-lines-are-compacted-upward-to-eliminate-gaps), [PROC-RULE-013](../business-rules.md#proc-rule-013-addressee-salutation-is-gender-based), [PROC-RULE-014](../business-rules.md#proc-rule-014-an-address-is-valid-only-when-it-has-a-person-name-two-populated-address-lines-and-either-foreign-address-status-or-a-city-state-pair), [PROC-RULE-015](../business-rules.md#proc-rule-015-requests-with-no-qualifying-address-return-no-rows)).
   - The procedure either chooses a fallback address type or returns no row when no qualifying address exists.
3. Responsible-adjuster lookup executes the claim-number or claim-ID variant of the adjuster query and returns the matching employee mail ID from the responsibility tables ([SQL-006](../sql/SQL-006-responsible-adjuster-lookup-by-claim-number.md), [SQL-007](../sql/SQL-007-responsible-adjuster-lookup-by-claim-id.md), [CL_INJURY_CLAIM](../database-tables.md#cl-injury-claim-cl-claim-responsibility), [CL_CLAIM_RESPONSIBILITY](../database-tables.md#cl-injury-claim-cl-claim-responsibility)).
4. Claim-validity helpers run point queries to confirm that a claim exists, a responsibility code is known, a legal collection or legal case exists, an investigation request date exists, incurred costs are present, or a support-order connection is present ([SQL-008](../sql/SQL-008-claim-existence-check.md), [SQL-009](../sql/SQL-009-responsibility-code-validation.md), [SQL-010](../sql/SQL-010-legal-collection-existence.md), [SQL-011](../sql/SQL-011-investigation-request-date.md), [SQL-015](../sql/SQL-015-legal-case-existence.md), [SQL-016](../sql/SQL-016-incurred-cost-aggregation.md), [SQL-017](../sql/SQL-017-support-order-existence.md), [CL_INJURY_CLAIM](../database-tables.md#cl-injury-claim-cl-claim-responsibility), [CL_CLAIM_RESPONSIBILITY](../database-tables.md#cl-injury-claim-cl-claim-responsibility), [LEGAL_COLLECTION](../database-tables.md#legal-case-legal-collection-investigation-cl-claim-support-order-conn), [INVESTIGATION](../database-tables.md#legal-case-legal-collection-investigation-cl-claim-support-order-conn), [LEGAL_CASE](../database-tables.md#legal-case-legal-collection-investigation-cl-claim-support-order-conn), [CL_INCURRED_COST_HISTORY](../database-tables.md#cl-incurred-cost-history-cl-incurred-category-cost), [CL_INCURRED_CATEGORY_COST](../database-tables.md#cl-incurred-cost-history-cl-incurred-category-cost), [CL_CLAIM_SUPPORT_ORDER_CONN](../database-tables.md#legal-case-legal-collection-investigation-cl-claim-support-order-conn)).
5. `HasExistingBenefitPayment` builds the payment-history query according to benefit type, settlement full/partial code, legal-order status, optional issue date, and optional amount so the search lands on the correct payment-category slice ([SQL-012](../sql/SQL-012-existing-benefit-payment-search.md), [BR-SB-010](../business-rules.md#br-sb-010-benefit-payment-history-checks-map-business-context-to-payment-category-filters), [CL_FINANCIAL_TRANS](../database-tables.md#cl-financial-trans-cl-financial-trans-dtl), [CL_FINANCIAL_TRANS_DTL](../database-tables.md#cl-financial-trans-cl-financial-trans-dtl)).
6. Released-payment helpers and non-posted-payment checks run the payment-transaction status queries that distinguish released, federal, scheduled, or unposted states ([SQL-013](../sql/SQL-013-payment-transaction-status-checks.md), [CL_FINANCIAL_TRANS](../database-tables.md#cl-financial-trans-cl-financial-trans-dtl)).
7. Override-access checks query `CL_SECURITY_OVERRIDE`, join to `ADP_VIRTUAL_EMPLOYEE_VIEW`, and return whether the requesting mail ID has claim-specific override access ([SQL-014](../sql/SQL-014-override-security-lookup.md), [CL_SECURITY_OVERRIDE](../database-tables.md#cl-security-override), [ADP_VIRTUAL_EMPLOYEE_VIEW](../database-tables.md#adp-virtual-employee-view)).
8. Reserve and payment authorization checks call `sp82348_claim_authorization`, pass the employee, business-process, function, and amount inputs, and succeed only when the procedure finds a row with a sufficient maximum amount ([SQL-018](../sql/SQL-018-sp82348-claim-authorization.md), [PROC-RULE-033](../business-rules.md#proc-rule-033-claim-authorization-exists-only-when-the-employee-has-a-matching-business-process-function-limit-row-with-a-sufficient-maximum-amount)).
9. `IsClaimAvailableExternalView` queries the claim row and returns `True` only when `external_view_flag = 'Y'` ([SQL-021](../sql/SQL-021-external-view-eligibility-query.md), [CL_INJURY_CLAIM](../database-tables.md#cl-injury-claim-cl-claim-responsibility), [BR-SB-006](../business-rules.md#br-sb-006-claims-are-externally-viewable-only-when-external-view-flag-is-y)).
10. The update helpers owned by this library write directly to claim-side tables: `UpdatePharmacyEligibilityToIneligible` marks the pharmacy report row ineligible, and `UpdateIssueDate` advances the next issue date for the selected payment transaction type ([SQL-044](../sql/SQL-044-pharmacy-eligibility-update.md), [SQL-045](../sql/SQL-045-payment-transaction-type-next-issue-date-update.md), [CL_PHARMACY_ELIGIBILITY_REPORT](../database-tables.md#cl-pharmacy-eligibility-report), [PAYMENT_TRANSACTION_TYPE_CODE](../database-tables.md#payment-transaction-type-code)).
11. The `getMaxBurialAmt` helper delegates to `sp82288_CalcMaxBurialAmt` and returns the procedure result when callers need the current burial maximum ([SQL-004](../sql/SQL-004-sp82288-calcmaxburialamt.md)).

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
    Start([Claim-service request]) --> Type{Lookup, validation, auth, or update?}
    Type -->|Lookup| Lookup[Resolve Data API call, address procedure, or adjuster query]
    Type -->|Validation| Validate[Run claim, responsibility, legal, or payment checks]
    Type -->|Authorization| Auth[Run override or claim-authorization check]
    Type -->|Update| Update[Apply claim-side update SQL]
    Lookup --> Return1([Return claim data])
    Validate --> Return2([Return boolean or date])
    Auth --> Return3([Return authorization result])
    Update --> Return4([Return update success])
```

## Failure and edge-case behavior

- Address requests can return no row when the procedure cannot find a qualifying address after applying its fallback rules ([PROC-RULE-015](../business-rules.md#proc-rule-015-requests-with-no-qualifying-address-return-no-rows)).
- Payment-history checks change behavior based on benefit context, so callers must supply the correct benefit and settlement inputs to reach the intended query branch ([BR-SB-010](../business-rules.md#br-sb-010-benefit-payment-history-checks-map-business-context-to-payment-category-filters)).
- Claim visibility intentionally returns `False` unless the claim row is explicitly marked for external view ([BR-SB-006](../business-rules.md#br-sb-006-claims-are-externally-viewable-only-when-external-view-flag-is-y)).
- Authorization helpers return `False` when the stored procedure or override lookup finds no qualifying row.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

## Sources
- `Business\SAIF.Business\ClaimServices.vb`
- `Business\SAIF.Business\clsClaimAddress.vb`
- `Business\SAIF.Business\clsClaimSecurity.vb`
- `Business\SAIF.Business\CCClaimDataAPI\Address.vb`
- `Business\SAIF.Business\CCClaimDataAPI\ClaimContacts.vb`
- `Business\SAIF.Business\CCClaimDataAPI\clsClaimSecurityData.vb`
- `Business\SAIF.Business\CCClaimDataAPI\ResponseData.vb`
