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

# Billing and plans

> Set the currency your lab bills in, your tax rate and any flat fee, and see what does and does not change on records you already have.

export const StillStuck = ({topic}) => <div className="ck-callout ck-callout--note" role="note">
    <p className="ck-callout__body">
      <strong>Still stuck{topic ? ` with ${topic}` : ''}?</strong>{' '}
      Check <a href="/platform/help/troubleshooting">Troubleshooting</a> first —
      it covers the failures we see most often. If that does not resolve it,{' '}
      <a href="/platform/help/contact-support">contact support</a> and include
      your workspace name and the time the problem happened, so we can find the
      matching entry in your audit log.
    </p>
  </div>;

export const TaskHeader = ({before, time, after}) => <div className="ck-task">
    {before ? <div className="ck-task__cell">
        <div className="ck-task__title">Before you start</div>
        <p className="ck-task__body">{before}</p>
      </div> : null}

    {time ? <div className="ck-task__cell">
        <div className="ck-task__title">Takes about</div>
        <p className="ck-task__body">{time}</p>
      </div> : null}

    {after ? <div className="ck-task__cell">
        <div className="ck-task__title">When you're done</div>
        <p className="ck-task__body">{after}</p>
      </div> : null}
  </div>;

export const Path = ({steps = []}) => <span className="ck-path">
    {steps.map((s, i) => <span key={i} className="ck-path__step">
        {i > 0 ? <span className="ck-path__sep" aria-hidden="true">
            ›
          </span> : null}
        {s}
      </span>)}
  </span>;

export const Availability = ({editions = ['all'], plans, roles, note}) => {
  const list = editions.includes('all') ? ['clinic', 'pharmacy', 'lims'] : editions;
  return <div className="ck-avail" role="note" aria-label="Feature availability">
      <span className="ck-avail__label">Available in</span>

      {list.map(e => <span key={e} className={`ck-pill ck-pill--${e}`}>
          {EDITION_LABELS[e] || e}
        </span>)}

      {plans ? <span className="ck-avail__label">Plan</span> : null}
      {plans ? <span className="ck-pill ck-pill--plan">{plans}</span> : null}

      {roles ? <span className="ck-avail__label">Who</span> : null}
      {roles ? <span className="ck-pill ck-pill--role">{roles}</span> : null}

      {note ? <span className="ck-avail__note">{note}</span> : null}
    </div>;
};

<Availability editions={['lims']} roles="Owner, manager or accountant" note="Every control on this tab is owner-only" />

Four settings on this tab decide how money is written down in your lab: which currency, how much tax, whether you charge at all, and whether a fixed fee is added to each test or visit.

<Path steps={['Sidebar', 'Settings', 'Billing', 'Billing & Plans']} />

<TaskHeader before="Your tax rate, and the currency you actually invoice in" time="3 minutes" after="Every price, invoice and report charge in the right currency, with tax applied" />

## What this tab controls

The card is headed **Billing Settings** — "Manage your clinic's billing and payment settings." Its footer reads "These settings affect how invoices and receipts are generated."

| Control                            | What it does                                                                                                                                                                                             | Default                            |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
| **Free Clinic Mode**               | "Enable this if your clinic provides free services. All charges will be disabled." Turning it on **hides** every other control on the card and puts a **Free Clinic** badge in the header.               | Off                                |
| **Currency**                       | "Currency for all transactions. Search by name or code." A searchable list of over a hundred currencies, grouped **Popular**, **Africa**, **Middle East**, **Asia & Pacific**, **Europe**, **Americas**. | **NGN** on a Diagnostics workspace |
| **Tax Rate (%)**                   | "Applied to invoices and receipts." Between 0 and 100.                                                                                                                                                   | 0                                  |
| **Flat Rate Fee** → **Fee Amount** | "A fixed fee applied to each service or visit (e.g., consultation fee, registration fee)." A lab often uses this as a registration or specimen-handling fee.                                             | 0                                  |
| **Additional Charge**              | "Enable a percentage-based additional charge (e.g., service charge, processing fee)." Reveals **Charge Name** ("Display name on invoices.") and **Charge Rate (%)**.                                     | Off                                |

A manager or an accountant sees the whole form with the current values, every field greyed out, and **no save button and no explanation**. If a field will not take an edit, that is why.

## Set it up

<Steps>
  <Step title="Choose your currency">
    Open **Currency** and type the name or the three-letter code. Pick the currency you actually invoice in. This one choice matters more than the rest of the tab.
  </Step>

  <Step title="Enter your tax rate">
    Type the percentage into **Tax Rate (%)**. Leave it at 0 if you do not add tax.
  </Step>

  <Step title="Add a flat fee, if you charge one">
    Enter an amount under **Flat Rate Fee** → **Fee Amount** — a registration or handling fee applied to each visit.
  </Step>

  <Step title="Add a percentage charge, if you levy one">
    Switch on **Additional Charge**, give it a **Charge Name** a payer will understand on an invoice, and set the **Charge Rate (%)**.
  </Step>

  <Step title="Save Changes">
    Select **Save Changes**. You get "Billing settings updated successfully".
  </Step>
</Steps>

## What changes once you save

| Setting                                     | What you'll notice                                                                                                                                           |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Currency**                                | Every amount in the product re-renders with the new symbol — test pricing, invoices, referrer statements, takings and analytics.                             |
| **Currency**, again                         | It also decides which card processor you are offered on [Online payments](/lims/settings/online-payments): Naira gives Paystack, anything else gives Stripe. |
| **Tax Rate (%)**                            | Applied to invoices and receipts generated from now on.                                                                                                      |
| **Flat Rate Fee** and **Additional Charge** | Added to services and visits billed from now on, with your **Charge Name** printed as the line's label.                                                      |
| **Free Clinic Mode** on                     | Charges are disabled and the currency, tax and fee controls vanish from the card entirely.                                                                   |

Two things people expect and which do not happen:

* **Changing currency does not re-price anything.** A test priced at 5,000 becomes 5,000 of the new currency — the number is untouched and no conversion happens. Change currency before you start invoicing, not after.
* **Nothing already issued is re-generated.** An invoice a referring clinic already holds keeps the tax and currency it was made with.

<Note>
  The money on this tab is your patients' and referrers' money. What you pay ClinikEHR for the lab itself is a separate subject — see [Change your plan](/platform/plans/change-plan) and [Invoices and receipts](/platform/plans/invoices-and-receipts).
</Note>

## Check it worked

Reload the tab and confirm the values held. Then open your test pricing: amounts should carry the new symbol. Raise a small test invoice and check the tax line and any flat fee before you send a real one — and check a referrer statement, since those are the invoices that get queried.

## Common issues

<AccordionGroup>
  <Accordion title="Everything is greyed out and there is no Save button">
    You are a manager or an accountant. The whole tab is owner-only to edit, and gives no message saying so. Ask the lab owner, or see [Roles](/platform/team/roles).
  </Accordion>

  <Accordion title="Currency, tax and fees have disappeared from the card">
    **Free Clinic Mode** is on — it hides them rather than disabling them, and puts a **Free Clinic** badge in the header. Switch it off to get them back.
  </Accordion>

  <Accordion title="Save is refused with a message about the rate">
    A percentage is out of range. Tax and the additional charge must both be between 0 and 100 — "Tax rate cannot exceed 100%." and "Additional charge rate cannot exceed 100%."
  </Accordion>

  <Accordion title="Historic invoices now show the wrong currency">
    They are showing the amount they were recorded with, under the new symbol. Nothing was converted. If you changed currency after invoicing, decide whether to correct the affected records before running a report.
  </Accordion>

  <Accordion title="The wrong card processor is offered on Online payments">
    That follows this tab. Naira gives Paystack; every other currency gives Stripe. Set the currency here first.
  </Accordion>

  <Accordion title="A referrer statement has no tax on it">
    It was generated before you saved. Only documents produced afterwards carry the new rate. See [Referrer billing](/lims/business/billing).
  </Accordion>
</AccordionGroup>

<StillStuck />
