---
title: IProviderIndexer
summary: API reference for IProviderIndexer.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.Domain
reference_type: package
---

# IProviderIndexer

`IProviderIndexer` is the contract both provider-location-matching implementations — `ProviderIndexer` (OP-DOM-03, the original tax-ID/address matching algorithm) and `ProviderIndexerV2` (OP-DOM-04, the rule-set-based matcher) — implement, letting callers such as the e-billing batch pipeline invoke whichever indexer is configured without depending on which matching algorithm is in use.

## Purpose
- Defines the single entry point for indexing a batch's non-indexed e-billing providers to a provider location, so batch orchestration code can depend on the interface rather than on `ProviderIndexer` or `ProviderIndexerV2` directly.
- Standardizes the inputs an indexer needs: the batch id, the e-billing query provider for data access, an `IErrorConditionHandler` for recording match failures, and the update-user stamp for indexed records.

## Context
- Namespace: `SAIF.Domain.Claims.Ebilling.Indexing`
- Assembly/package: `SAIF.Domain` (`Domain/SAIF.Domain/SAIF.Domain.csproj`, .NET Framework 4.6.2 class library)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| IndexProvidersToLocation | `ResultCount IndexProvidersToLocation(long batchId, IEbillingQueryProvider queryProvider, IErrorConditionHandler errorConditionHandler, string updateUser)` | Indexes every non-indexed e-billing provider in the batch to a matched provider location, returning a `ResultCount` of successes and failures ([DOM-BR-020](../../business-rules.md#dom-br-020-provider-indexing), [DOM-BR-021](../../business-rules.md#dom-br-021-provider-indexing)). |

## Behavioral notes
- Both implementing classes report a missing tax-ID match and unmatched addresses through the supplied `IErrorConditionHandler` rather than throwing, so callers must inspect recorded error conditions in addition to the `ResultCount`*.

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

## Sources
- `Domain/SAIF.Domain/Claims/Ebilling/Indexing/IProviderIndexer.cs`
