Skip to content

PracSuite API (v1)

This is the official PracSuite API.

It follows standard REST conventions, so you can work with it using any HTTP client and any programming language that can send HTTP requests.

All responses are returned in JSON format.

Download OpenAPI description
Overview
PracSuite API Support
License
Languages
Servers
Prod server
https://api.pracsuite.com/v1/

Appointment

SchemasOperations

Group Appointment

SchemasOperations

Group Appointment Member

SchemasOperations

Cancellation Reason

SchemasOperations

Reschedule Reason

SchemasOperations

Appointment Type

SchemasOperations

Appointment Status

SchemasOperations

Available Appointment

You may search for a maximum of 7 days of appointment availability per request.

All availability searches must specify a single appointment_type_id.

Availability may be filtered using any combination of business, practitioner, profession, or resource. When multiple filters are supplied, only times matching all provided criteria will be returned.

PracSuite users define daily practitioner availability using Rosters. Users can apply three availability flags to control which tools can book at particular times:

  • Manual - Allows staff to manually book appointments during these times
  • Online Booking - Allows these times to be booked through the PracSuite online booking system
  • Waiting List - Allows the PracSuite waiting list to offer these times to patients

Use the manual, online, and waiting_list query parameters to filter available times based on these roster flags. If none of these parameters are supplied, only times available for manual bookings will be returned.

Users define default appointment duration rules per Appointment Type. These defaults may vary based on business, profession, practitioner, and client fee category, which is determined by the combination of client_id and account_id.

When available, client_id and account_id should be provided to ensure the correct Appointment Type default configuration is applied.

SchemasOperations

Available Group Appointment

SchemasOperations

Business

SchemasOperations

Fee Category

SchemasOperations

Item

SchemasOperations

Item Group

SchemasOperations

Patient

Patients are the people that book in for appointments.

When you're working with patient information, make sure you abide by the relevant regulations for security and privacy.

A couple of fields in the patient record deserve special consideration:

accepted_privacy_policy stores the patient's consent to the business's own privacy policy. Values can be null (no response), true (accepted) or false (rejected). Please consider how this may affect you storing information on this patient.

time_zone will contain a valid IANA time zone identifier if the patient's time zone has been set, or null if it hasn't. It can be set via the API, in which case it accepts IANA time zone identifiers.

SchemasOperations

Patient Account

Patient accounts

SchemasOperations

Patient Account

linksobject(PatientAccountLinks)
tenant_idinteger
client_idinteger
Example: 1
archiveboolean
Example: false
bill_3rd_partyboolean
Example: false
short_descriptionstring
Example: "Private"
billing_namestring
emailstring(email)
contact_namestring
acc_nostring
claim_numberstring
employer_namestring
injurystring
date_of_injurystring(date)
hospitalstring
fee_cat_idinteger
client_nostring
address_1string
address_2string
address_3string
address_4string
suburbstring
address_statestring
postcodestring
countrystring
phonestring
faxstring
notesstring
payer_idinteger
payer_contact_idinteger
custom_field_namestring
Example: "Custom"
custom_field_valuestring
bill_familyboolean
Example: false
{ "links": { "self": "https://api.pracsuite.com/v1/patient/1/account/1" }, "tenant_id": 0, "client_id": 1, "archive": false, "bill_3rd_party": false, "short_description": "Private", "billing_name": "string", "email": "user@example.com", "contact_name": "string", "acc_no": "string", "claim_number": "string", "employer_name": "string", "injury": "string", "date_of_injury": "2019-08-24", "hospital": "string", "fee_cat_id": 0, "client_no": "string", "address_1": "string", "address_2": "string", "address_3": "string", "address_4": "string", "suburb": "string", "address_state": "string", "postcode": "string", "country": "string", "phone": "string", "fax": "string", "notes": "string", "payer_id": 0, "payer_contact_id": 0, "custom_field_name": "Custom", "custom_field_value": "string", "bill_family": false }

List Accounts for a Patient

Request

Security
x-api-key and A-api-key
Path
client_idintegerrequired
Query
pageinteger>= 1
Example: page=1
page_sizeinteger[ 1 .. 100 ]
Example: page_size=50
sort_byArray of strings

Comma separated search fields

Example: sort_by=["client_id","account_id"]
q[]Array of strings

Filter result by one or more fields.

See Query Filtering

Available filters:

ValueFormat
createdtimestamp
updatedtimestamp
emailstring
phonestring
short_descriptionstring
curl -i -X GET \
  'https://api.pracsuite.com/v1/patient/{client_id}/account?page=1&page_size=50&sort_by=%5B%22client_id%22%2C%22account_id%22%5D&q%5B%5D=string' \
  -H 'A-api-key: YOUR_API_KEY_HERE' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

A list of all patient accounts

Bodyapplication/json
accountsArray of objects(PatientAccountWithMeta)
total_entriesinteger
linksobject
Response
application/json
{ "accounts": [ {} ], "total_entries": 0, "links": { "self": "https://api.pracsuite.com/v1/patient/1/account?page=2", "previous": "https://api.pracsuite.com/v1/patient/1/account?page=1", "next": "https://api.pracsuite.com/v1/patient/1/account?page=3" } }

Get Patient Account

Request

Security
x-api-key and A-api-key
Path
client_idintegerrequired
account_idintegerrequired
curl -i -X GET \
  'https://api.pracsuite.com/v1/patient/{client_id}/account/{account_id}' \
  -H 'A-api-key: YOUR_API_KEY_HERE' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

Get Patient Account Successful

Bodyapplication/json
linksobject(PatientAccountLinks)
tenant_idinteger
client_idinteger
Example: 1
archiveboolean
Example: false
bill_3rd_partyboolean
Example: false
short_descriptionstring
Example: "Private"
billing_namestring
emailstring(email)
contact_namestring
acc_nostring
claim_numberstring
employer_namestring
injurystring
date_of_injurystring(date)
hospitalstring
fee_cat_idinteger
client_nostring
address_1string
address_2string
address_3string
address_4string
suburbstring
address_statestring
postcodestring
countrystring
phonestring
faxstring
notesstring
payer_idinteger
payer_contact_idinteger
custom_field_namestring
Example: "Custom"
custom_field_valuestring
bill_familyboolean
Example: false
Response
application/json
{ "links": { "self": "https://api.pracsuite.com/v1/patient/1/account/1" }, "tenant_id": 0, "client_id": 1, "archive": false, "bill_3rd_party": false, "short_description": "Private", "billing_name": "string", "email": "user@example.com", "contact_name": "string", "acc_no": "string", "claim_number": "string", "employer_name": "string", "injury": "string", "date_of_injury": "2019-08-24", "hospital": "string", "fee_cat_id": 0, "client_no": "string", "address_1": "string", "address_2": "string", "address_3": "string", "address_4": "string", "suburb": "string", "address_state": "string", "postcode": "string", "country": "string", "phone": "string", "fax": "string", "notes": "string", "payer_id": 0, "payer_contact_id": 0, "custom_field_name": "Custom", "custom_field_value": "string", "bill_family": false }

Practitioner

SchemasOperations

Profession

SchemasOperations

Pronoun

SchemasOperations

Resource

SchemasOperations

Sex

SchemasOperations