Billing Utilities - Project Overview

🏠 Home billing / billing-utilities / docs

Billing Utilities - Project Overview

Solution Structure

Project Type Framework Description
DssiIntegrationPuller Console App (Utility) .NET 8.0 Manual DSSI integration reporting tool

Single-project solution (BillingUtilities.sln).


Architecture

Purpose

Billing Utilities is a manual execution utility (not scheduled or automated) for compiling a comprehensive report of active PLTs (Provider Location Terminals) with their associated DSSI integration values. It determines whether each facility uses paper-based or DSSI-based billing integration.

How It Works

  1. Input: Operator manually exports active PLT data from SQL Server to a text file
  2. Authentication: Reads a partner access token from a local file
  3. Query: Calls the Billing DSSI Integration endpoint for each PLT (with 250ms throttle)
  4. Output: Writes tab-delimited results file classifying each facility as "Paper" or "DSSI"
  5. Analysis: Results imported to Google Sheets for review

Data Flow

SQL Server (manual export) → Text file → DssiIntegrationPuller → Results file → Google Sheets
                                              │
                                              ▼
                                   Billing API (GET /DssiIntegration/{plt})

Key Technology Stack

Category Technology
Runtime .NET 8.0
HTTP HttpClient (built-in)
JSON Newtonsoft.Json 13.0.3
Contracts TELS.Billing.Contracts 2.6.0

External Dependencies

Integration Mechanism Description
Billing API HTTP GET /billing/v1/DssiIntegration/{locationCode} DSSI supplier integration lookup per PLT

Source SQL Query (Manual Execution)

Run against production SQL Server (SQL-TELS-PE-TRAN):

SELECT f.BusinessUnitID, f.FacilityPLT, f.FacilityName,
       l.AddressLine1, l.City, l.State, l.Zip,
       f.ChainBusinessUnitID, chain.CorporatePLT, chain.CorpName
FROM CONTACT.dbo.v_telsFacility AS f
INNER JOIN MDID_BTRIEVE.dbo.cllocn AS l ON f.FacilityPLT = l.Location
LEFT OUTER JOIN CONTACT.dbo.v_telsChain AS chain ON f.ChainBusinessUnitID = chain.BusinessUnitID
WHERE l.Status = 'A' AND f.Status <> 0

Configuration

Hardcoded paths and settings in Program.cs:

Setting Value
File Delimiter ~ (tilde)
SQL Output Path C:\Reports\ActivePLTs.txt
Access Token Path C:\Reports\AccessToken.txt
Results Output Path C:\Reports\ActivePLTsWithDssiIntegration.txt
API Base Address https://services.tels.net/billing/v1/DssiIntegration/
Throttle 250ms between API calls

Output Format

Header:

Billing Medium~BusinessUnitId~FacilityPLT~FacilityName~AddressLine1~City~State~Zip~ChainBusinessUnitID~CorporatePLT~CorpName~ProviderCode~SupplierCode~DefaultLocationCode~LocationCode

Data: First column is "Paper" (404 response) or "DSSI" (200 response with integration data). Tilde-delimited for spreadsheet import.


Deployment

Not deployed — manual operator-run utility. No CI/CD, no Docker, no Nomad.


Notes