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

# IEbillingService

`IEbillingService` declares a service contract in the Claims / Ebilling area, implemented outside this library (most likely in SAIF.Services, per the declare-here, enforce-elsewhere pattern documented for this library)*.

## Purpose
- Declares the operations that a SAIF.Services implementation must provide for the Claims / Ebilling area*.

## Context
- Namespace: `SAIF.Core.Contracts.Claims.Ebilling`
- Kind: Interface
- Assembly/package: `SAIF.Core` (NuGet package `SAIF.SAIFCode.Core`)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `Process837File` | `bool Process837File(IEdiFile file, long batchId, ILogWriter controlLog)` | Handles process837 file, given `file`, `batchId`, `controlLog`*. |
| `Create835EobFile` | `IEdiFile Create835EobFile(long batchId, bool isProductionRun, ILogWriter controlLog, ILogWriter segmentLog,
            ILogWriter configReport)` | Handles create835 eob file*. |
| `Create837AckFile` | `void Create837AckFile(IEdiFile file, bool isProductionRun, string path, string outFileName, ILogWriter controlReport)` | Handles create837 ack file, given `file`, `isProductionRun`, `path`, `outFileName`, `controlReport`*. |
| `GetBatchImagingResults` | `ImageResults GetBatchImagingResults(long batchId, double maxTimeInMinutes, ILogWriter controlReport)` | Returns batch imaging results, given `batchId`, `maxTimeInMinutes`, `controlReport`*. |
| `AssociateEbillImages` | `AssociateImageResults AssociateEbillImages(long batchId, ILogWriter controlReport, ILogWriter noImageReport)` | Handles associate ebill images, given `batchId`, `controlReport`, `noImageReport`*. |
| `AssignBills` | `AssignResults AssignBills(long batchId)` | Assigns bills, given `batchId`*. |
| `ExtractEobForReject` | `EobResults ExtractEobForReject(long eobId)` | Extracts eob for reject, given `eobId`*. |
| `IsFileAlreadyProcessed` | `bool IsFileAlreadyProcessed(IEdiFile infile, EbillClearinghouse clearinghouse)` | Indicates whether the file already is processed for this IEbillingService*. |
| `IsClearinghouseRepetitionSeparatorAndElementDelimiterValid` | `bool IsClearinghouseRepetitionSeparatorAndElementDelimiterValid(IEdiFile file, EbillClearinghouse clearinghouse)` | Indicates whether clearinghouse repetition separator and element delimiter valid applies to this IEbillingService*. |
| `IsValidSenderAndReceiver` | `bool IsValidSenderAndReceiver(IEdiFile file)` | Indicates whether valid sender and receiver applies to this IEbillingService*. |
| `IsValidFileBatchType` | `bool IsValidFileBatchType(IEdiFile file, string batchType)` | Indicates whether valid file batch type applies to this IEbillingService*. |
| `WriteEdiFile` | `void WriteEdiFile(IEdiFile file, string path)` | Handles write edi file, given `file`, `path`*. |
| `ProcessInvoiceFile` | `void ProcessInvoiceFile(System.Collections.Generic.IEnumerable<InvoiceCSVFile> invoiceFile, string invoiceMonth, decimal invoiceTotalAmount, ILogWriter controlLog)` | Processes invoice file, given `invoiceFile`, `invoiceMonth`, `invoiceTotalAmount`, `controlLog`*. |

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

## Sources
- Core/SAIF.Core/Contracts/Claims/EBilling/IEbillingService.cs
