> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Site Billing

> Configure per-site billing NPI, tax ID, billing address, and place-of-service code for claim generation at /pm/site-billing.

The Site Billing Configuration page lists billing profiles for each organizational site and is accessible at the route `/pm/site-billing`.

## Overview

The Site Billing Configuration page presents a sortable data table of billing profiles joined from `pm_site_billing_config` and `pf_sites`. Each row displays the site name (as a clickable link), masked billing NPI (last 4 digits), masked tax ID (last 4 digits), billing address, and default place-of-service (POS) code. The table is initially sorted by site name ascending.

Clicking a site name row or the **Configure Site** button opens a modal dialog containing the `SiteBillingProfileWizard`, which supports both creating a new configuration and editing an existing one. The dialog opens with a deferred animation frame to avoid portal conflicts. Users with `pm.sites_billing.manage` see the Configure Site button and can access the wizard; users with only view permission see the list but cannot edit.

## Who it's for

Requires permission: `pm.sites_billing.view`

The **Configure Site** button and edit wizard additionally require `pm.sites_billing.manage`.

## Before you start

* You must hold `pm.sites_billing.view` to access this page.
* Sites must be configured in the platform (`pf_sites`) before billing profiles can be assigned. An empty state is shown when no configurations exist.

## Steps

<Steps>
  <Step title="Navigate to Site Billing">
    Go to `/pm/site-billing`. The table loads all site billing configurations for your organization ordered by site name.
  </Step>

  <Step title="Review existing configurations">
    Each row shows the site name, masked billing NPI, masked tax ID, billing address, and default POS code. NPI and Tax ID show only the last 4 digits for security.
  </Step>

  <Step title="Configure a new site">
    Click **Configure Site** (requires `pm.sites_billing.manage`). The `SiteBillingProfileWizard` opens in a modal dialog.
  </Step>

  <Step title="Edit an existing site">
    Click the site name link in any row to open the `SiteBillingProfileWizard` pre-filled with that site's billing profile.
  </Step>

  <Step title="Save the configuration">
    Complete all required fields in the wizard and save. The dialog closes and the table refreshes via the `useSiteBillingConfigList` query.
  </Step>
</Steps>

## Key concepts

<AccordionGroup>
  <Accordion title="Empty state">
    "No sites configured — Configure billing details for your organization's sites to enable site-specific claim generation."
  </Accordion>
</AccordionGroup>

**Billing NPI** (National Provider Identifier) and **Tax ID** are stored in full in the database but displayed masked with the last 4 digits visible (`•••1234`). The **default POS code** corresponds to the place-of-service code used on claims generated for that site.

## Related

<Columns cols={2}>
  <Card title="Practice Management" icon="briefcase" href="/pm/overview">
    Overview of the Practice Management core.
  </Card>

  <Card title="Governance & parity" icon="scale-balanced" href="/governance/index">
    Documentation coverage and governance.
  </Card>
</Columns>

<Note>
  This page documents shipped product behavior. It is not medical, legal, or
  billing advice. Verify against your organization's policies and applicable
  regulations before using it for clinical, compliance, or billing decisions.
  Protected health information (PHI) shown in the product is governed by your
  tenant's access controls and is never exposed in this documentation.
</Note>

<Accordion title="Documentation sources">
  * src/routes/pm.tsx
  * src/cores/pm/pages/SiteBillingConfigListPage.tsx
  * src/cores/pm/hooks/useSiteBillingConfigList.ts
  * src/platform/permissions/constants.ts
</Accordion>
