---
title: "Connect your own software to Practor"
summary: "Create an integration client for your other system, give it the permissions it needs, and hand its key to whoever builds the connection."
source: https://practor.app/en-za/help/security-and-integrations/connect-your-own-software-to-practor
published: 2026-09-29T07:17:43.884Z
updated: 2026-10-01T18:08:42.843Z
category: "Security and integrations"
---

If your practice keeps some of its work in another system, that system can send patients and visits to Practor and read back invoices, claims and payments. Each system connects as its own **integration client**: it holds a set of permissions in your practice and uses a key to prove who it is.

Only practice owners can set up integrations.

## Switch on integrations

1. Go to **Organization settings** and open **Integrations**, under **Security & integrations**.
2. Press **Activate integrations**.

![The Integrations panel before integrations are switched on](https://res.cloudinary.com/drmnydbcs/image/upload/c_limit,w_1600/f_auto,q_auto:good/v1/help/integrations/activate.jpg?_a=BAMAOGDh0#848x237 "Activate integrations is the panel's only button.")

Like your other add-ons, it needs a card on file and a subscription email. If either is missing, the panel says which. Press **Open Usage settings** to add it.

| Message | What to do |
| --- | --- |
| No valid payment method found. Please add a payment method first. | Add a card, then press **Activate integrations** again |
| Please set a subscription email before activating Integrations | Set the **Subscription email** under **Billing contact**, then try again |

## Create a client for the system

1. Press **New client**.
2. Type a **Name** that says which system this is. **Description** is optional.
3. Press **Create client**.

Practor opens the client in a panel over the list. A new client has no permissions and no keys, so it can't do anything yet.

## See what's left to set up

The panel opens on **Finish setting up**, which ticks off each step as you do it. Each step that's left has a link to where you do it. The list disappears once the client makes its first request.

![The Finish setting up checklist with permissions done](https://res.cloudinary.com/drmnydbcs/image/upload/c_limit,w_1600/f_auto,q_auto:good/v1/help/integrations/setup.png?_a=BAMAOGDh0#567x291 "Limiting addresses is optional, so it isn't counted.")

## Give the client permissions

1. Open the **Permissions** tab and tick what the system needs to do with each kind of record.
2. Press **Save permissions**.

To connect a billing system, press **Use billing preset** first. It ticks every box in the table below.

![The Permissions section with the billing preset ticked](https://res.cloudinary.com/drmnydbcs/image/upload/c_limit,w_1600/f_auto,q_auto:good/v1/help/integrations/permissions.png?_a=BAMAOGDh0#895x459 "Each kind of record has its own ticks. The last column covers submitting a claim and checking a cover.")

| Records | What the ticks allow |
| --- | --- |
| Patients | Create, read and update patients |
| Medical insurance | Create, read and update medical insurance and private-pay details. **Submit or verify** lets it check a cover with the insurer |
| Encounters | Record visits and read them |
| Invoices | Bill visits, change and issue the invoices, and read them |
| Claims | Submit, resubmit and reverse claims, and read their outcome |
| Payments | Read the payments made against an invoice |
| Code systems | Create and change the practice's own code systems, such as a tariff, and read every system it uses |

A change applies from the next request the system makes.

## Create and hand over a key

1. Open the **Keys** tab and press **Create key**.
2. Type a **Name** that says what will use the key.
3. Choose 30, 90, 180 or 365 days under **Expires after**. It starts on 90.
4. Press **Create key**.
5. Press **Copy**, and send the key to the person setting up the connection in a password manager or another private channel.
6. Press **I have stored the key**.
7. On the **Overview** tab, copy the **Base URL** and the **First request** under **Connect**, and send them with the key.

![The key dialog with the new key and its Copy button](https://res.cloudinary.com/drmnydbcs/image/upload/c_limit,w_1600/f_auto,q_auto:good/v1/help/integrations/key-dialog.png?_a=BAMAOGDh0#512x386 "The key is shown once, here.")

Practor keeps a fingerprint of it, not the key, so if it gets lost, revoke it and create another. Everyone who can manage integrations gets a notification when a key is created.

A client can hold two keys at a time. With two, **Create key** is gone and the panel says "A client can hold 2 keys at once. Revoke one to create another." Practor warns you 14 days and 3 days before a key expires, and from 14 days out the key's row says how many days it has left. Before then, create the next key, switch your system to it, and revoke the old one.

## Limit where the client can call from

1. On the **Overview** tab, press **Edit** beside **Details**.
2. In **Allowed addresses**, enter the addresses of the servers your system runs on, one per line or separated by commas, like 203.0.113.0/24.
3. Press **Save**.

Requests from anywhere else are refused. With the list empty, any address is allowed. You then get a notification when a key is used from a different address than last time, once a day at most for each address.

| Message | What to do |
| --- | --- |
| Enter an IP address or a range like 203.0.113.0/24 | Check the line for a typing mistake |
| Enter at most 20 addresses or ranges | Combine addresses into ranges |

## Check what the client has been doing

The **Activity** tab lists the client's latest requests, refused ones included. A refused request says why under its status. Press **Audit log** on that tab for its full history: see [See what was done in your practice in the audit log](/help/security-and-integrations/see-everything-done-in-your-practice-in-the-audit-log).

## Revoke a key

1. On the **Keys** tab, press **Revoke** on the key.
2. Type why under **Reason**.
3. Press **Revoke key**.

The next request made with that key is refused. This can't be undone.

## Stop a client

To stop a client and keep its setup, press the menu button at the top of its panel, then **Suspend**. While it's suspended you can't create keys or add webhook endpoints for it. Press **Reactivate** in the same menu to let it back in.

To remove it for good, press **Delete client** in that menu, then **Delete client** again to confirm. Its keys stop working immediately and its webhooks stop. Everything it did stays in your audit log.

To stop every client at once, press **Switch off** on the **Add-on** panel at the bottom of the Integrations page, then **Switch off** again to confirm. Pressing **Activate integrations** later brings them all back as they were.

## Related

- [See what was done in your practice in the audit log](/help/security-and-integrations/see-everything-done-in-your-practice-in-the-audit-log)
- [Get told when an invoice, claim or payment changes](/help/security-and-integrations/get-told-when-an-invoice-claim-or-payment-changes)
- [Send patients and visits to Practor from your own system](/help/security-and-integrations/send-patients-and-visits-to-practor-from-your-own-system)
