---
title: "Bill with your own tariff codes"
summary: "Create a code system for your tariff, add its codes with a price each, then make it the practice's procedure codes."
source: https://practor.app/en-za/help/billing-and-claims/bill-with-your-own-tariff-codes
published: 2026-10-01T18:08:42.786Z
updated: 2026-10-01T18:08:42.786Z
category: "Billing and claims"
---

Where Practor has no published tariff for your discipline and region, you load your own. Your practitioners pick its codes like any other, and each invoice line starts at the price you gave the code.

Only an Admin or Owner can set this up. [Choose the codes your practice uses](/help/getting-started/choose-the-codes-your-practice-uses) has every field in detail.

## Create the code system

1. Go to **Settings → Code systems**, under **Practice**.
2. Press **New custom system**. Once the practice has one, the button reads **New system**.
3. Type a name, such as the tariff's own name. It's the label a practitioner sees in the code picker.
4. Under **Usage contexts**, tick **Procedures**.
5. Press **Add**.

## Add its codes

To add one code:

1. Open the system from the list and press **Add code**.
2. Type the **Code** and the **Display**.
3. Type the **Default price** in your currency, such as `450` or `450.50`.
4. Press **Add**.

To add a whole tariff at once:

1. Open the system, then press the **⋯** button beside **Add code** and choose **Bulk import codes**.
2. Press **Choose a CSV file** and pick a file with a `code` column, a `display` column, and a `price` column for each code's **Default price**. Headers such as `tariff`, `description` and `fee` work too.
3. Check the rows Practor shows you, prices included, then press the button that reads **Import** and the number of codes.

Write each price as a plain number, such as `450` or `450.50`. A row whose price isn't a number is left out, and the preview counts it as skipped before anything is saved. A file holds up to 1000 codes.

![The import preview, three codes with their prices and one row skipped](https://res.cloudinary.com/drmnydbcs/image/upload/c_limit,w_1600/f_auto,q_auto:good/v1/help/code-systems/import-preview.png?_a=BAMAOGDh0#672x350 "The Price column comes from the file. The row priced as words was skipped.")

Use the codes exactly as the insurers you claim from publish them. A claim sends each line's code exactly as you typed it, and an insurer pays only codes it knows.

## Make the tariff the practice's procedure codes

1. On **Settings → Code systems**, press **Add preference**.
2. Under **Usage context**, choose **Procedures**.
3. Leave **Specialty code** empty, so the preference covers every practitioner.
4. Under **Code system**, choose your tariff.
5. Press **Save**.

![The Add preference sheet with Procedures and the practice's own code system chosen](https://res.cloudinary.com/drmnydbcs/image/upload/c_limit,w_1600/f_auto,q_auto:good/v1/help/code-systems/tariff-preference.png?_a=BAMAOGDh0#512x900 "The practice's own systems are listed with the published ones under Code system.")

Procedure code fields now search your tariff. A practitioner who set a code system for procedures on their own profile keeps theirs until they choose **Use the default**.

## Bill a visit from the tariff

1. Record the visit with its procedures picked from your tariff.
2. Create the invoice from that visit, as in [Create and send an invoice](/help/billing-and-claims/create-and-send-an-invoice).

Each line starts at its code's **Default price**. A code with none starts at zero, and the **Services** step won't let it past until you give the line a price.

## Claim for the tariff's codes

Send the claim from the issued invoice, the same as any other: [Submit a claim to a medical insurer](/help/billing-and-claims/submit-an-insurance-claim). The readiness checks treat your codes like published ones. Each line needs a code, its code system and a primary diagnosis.

## Keep the tariff in step from your own software

A system the practice bills from can keep the tariff up to date itself, through the integration API. Give its client the **Code systems** permission, then it can:

- create the code system with `POST /api/v1/code-systems`
- add codes with a `defaultPrice`, up to 1000 at a time, with `POST /api/v1/code-systems/{codeSystemId}/concepts/import`
- change or remove a code

The [import codes](https://developers.practor.app/reference/code-systems/code-concept-import) page has the request in full, with the other code system requests beside it.

## Related

- [Choose the codes your practice uses](/help/getting-started/choose-the-codes-your-practice-uses)
- [Set what you charge on an invoice](/help/billing-and-claims/set-what-you-charge-on-an-invoice)
- [Record an encounter](/help/patients-and-records/record-an-encounter)
