Provet Cloud veterinary practice management system can be integrated with 3rd party applications with the tools called REST API & Webhooks. This article describes the usage of these integration methodologies.

Webhooks are available in the Provet Cloud to send notifications for 3rd party systems about additions or changes in the data inside the Provet Cloud.   The webhooks don’t transfer the actual changed data, but instead they transfer the information on what has changed by simply notifying the 3rd party system about the change. The actual data can be then fetched by the 3rd party system by utilising the REST API of the Provet Cloud.

REST API is a communication method to access, edit or add the data residing in the Provet Cloud programmatically by any 3rd party application. REST API of the Provet Cloud offers most of the key Provet Cloud data to be read or manipulated by other systems.

The combination of the Provet Cloud Webhooks & REST API creates unique possibilities to build integrated solutions.  Any vendor of other systems familiar with these technologies can easily integrate with the data residing in the Provet Cloud veterinary practice management system by utilising these technologies.

FNS offers consultancy to assist with the usage of the REST API & Webhooks. We can also build customised adaptors to process or format the data to more traditional transfer formats such as XML, ASCII or CSV files.


  • Hooks are configured and enabled in Settings > General > Integrations > Webhooks
    Webhook set up the Provte Cloud
  • Hooks are HTTP POST requests to the URL defined in the settings for each hook.
  • The hook has data identifying what type of data was updated, and the ID of the object
    • Example: “consultation_id=123”
  • Hooks expect to receive HTTP 200 response on successful process
    • If response is other than HTTP 200, the notification delivery will be retried
    • On the settings page, you can see also an up-to-date list of triggered hooks and their delivery status.
      • A log is available for the review
  • Hooks are department specific (remember on multi-department systems!)

Current list of available Webhooks (Updated 04/2018)

Following Webhook events are currently available in the settings of the Provet Cloud. Each of the hooks can have a different (or same) URL address, to which the Provet Cloud sends the hook when triggered at the event.

  • Client create/update: parameter client_id
  • Patient create/update: parameter patient_id
  • Consultation create/update: parameter consultation_id
  • Consultation delete: parameter consultation_id
  • Consultation item create/update: parameter consultationitem_id
  • Invoice finalized: parameter invoice_id
  • Invoice draft hook, notifies when draft invoice is updated or items added automatically from insurance claim: parameter invoice_id
  • Invoice payment create: parameter invoicepayment_id
  • Prepayment create/update: parameter unallocatedpayment_id
  • Insurance claim create/update: parameter insuranceclaim_id
  • Accounting report create: parameter accountingreport_id
  • Organization item create/update: parameter organizationitem_id

Additional hooks are being constantly developed based on requests from our users.



Provet Cloud provides the REST API for enabling the access to data stored in the Provet Cloud.  The API uses HTTP requests with authentication headers. Data is returned in JSON format.

  • To access the REST API, you must create an API token in Settings > General > Integrations > API tokens
    • Creating the API tokens is by default only possible for administrators & managers
    • Please revoke any tokens not used!
  • The API token must be set in header ‘Authorization: Token <token_key>’ for every HTTP request to the API.
  • The API can be viewed and tested online:
  • The REST API can be accessed by using the following URL:<provet_id>/api/0.1/
    • In the URL <provet_id> is the unique id of the Provet Cloud instance for your company
  • Provet Cloud REST API is browseable, which should allow a good possibility for developers to  evaluate the possibilities  of data transfer

Data available through the REST API

The REST API can be used to read most of the data and create/update some selected parts of the data. The first page of the browseable API lists all of the objects that can be accessed. Here’s the list of the most common objects.

Readable data includes:

  • Client, Patient, Consultation, Consultation item, Invoice, Invoice row, Items (procedure, medicine, supply, food, analysis, analysis panel), Stock level, Invoice payment, Prepayment, Lists, Code lists, Appointment, Note, Task, Reminder, Shift, Veterinarians availability*, On-line booking patient**, On-line booking client**

Data which can be added through REST API includes:

  • Client, Patient, Items, Invoice payment, Prepayment, Appointment, Note, Task, Reminder, On-line booking patient**, On-line booking client**

Changeable data includes:

  • Client, Patient, Items, Appointment, Note, Task, Reminder

* Returns available shifts for veterinarians on given time period
** Contain the initial data for client that booked through on-line booking system

Usage example

To get information about a consultation with ID number 338, a HTTP GET request with the authentication parameters would be sent to the the following URL:<provet_id>/api/0.1/consultation/338/

Response example:

    "url": "",
    "client": "",
    "patients": [
    "complaint": "Test consultation",
    "admitted_time": "2017-05-18T10:35:00Z",
    "first_entry": null,
    "started": "2017-05-18T10:35:00Z",
    "finished": null,
    "ended": null,
    "status": 8,
    "type": 0,
    "invoice": "",
    "supervising_veterinarian": "",
    "department": "",
    "consultation_items": [
    "reporting_dimension_1": null,
    "reporting_dimension_2": null

From the response it is possible to further find the id of the invoice, that is related to this consultation, as well as all other items that are related to this consultation. Those can be then acquired by further REST API calls.


Some endpoints have fields that can be used to filter the results. The filterable fields can be seen at the top of your Provet Cloud REST API endpoint page (eg.<provet_id>/api/0.1/consultation/) if the endpoint has filterable fields.

The following methods are available for filtering (synonyms are comma-separated):

  • is, eq (equal)
  • is_not, not_eq, neq (not equal)
  • lt (less than)
  • lte (less than or equal)
  • gt (greater than)
  • gte (greater than or equal)
  • range (values between, needs two values in order [from,to])
  • not_in_range (above inversed)
  • contains (text contains the searched text, case-sensitive)
  • contains_not (above inversed)
  • icontains (text contains the searched text, case-insensitive)
  • icontains_not (above inversed)
  • in (item is found in the given list [value1,value2,value3])
  • not_in (above inversed)
  • is_null (true or false)

The filtering methods can be used with query parameters using the following syntaxes:

  [field]__[method]=value (eg. client__is=10 which uses the id of the client for the search)

  [field].[property]__[method]=value (eg. client.id__is=10)

Note that dates should be given for the query parameters in the format YYYY-MM-DD hh:mm+[TimeZone]hh:mm (eg. 2017-12-24 15:30+00:00).

If we need to find all consultations with the conditions

  • complaint contains the word “vacc” (case-insensitive)
  • the admitted_time is between 2017-12-01 00:00+00:00 (greater than or equal) and 2018-01-01 00:00+00:00 (less than)
  • department id is 1
  • client id is 10
  • one of the patients’ id in the consultation is 20

we would use the following url:<provet_id>/api/0.1/consultation/?complaint__icontains=vacc&admitted_time__gte=2017-12-01 00:00%2B00:00&admitted_time__lt=2018-01-01 00:00%2B00:00&department__is=1&client__is=10&patients__is=20

Note that ‘+’ signs are URL encoded (%2B) in the above example for the URL to work.

If we need to find all consultations where

  • the client’s first name is John and
  • the client’s last name is Doe

we would use the following url:<provet_id>/api/0.1/consultation/?client.firstname__is=John&client.lastname__is=Doe

Integration solution example

Web hook & REST API workflow for Provet Cloud veterinary practice management solution

Case: If a 3rd party system (eg. a financial system) would like to have immediate information about a newly created consultation in the Provet Cloud, this could be archived by combining the Webhooks & REST API in the following way by utilising the consultation web hook.

  1. Consultation is created in Provet Cloud.
  2. Provet Cloud sends a consultation HTTP hook notification to the URL defined in the settings
    1. Webhook: Consultation create/update
    2. Parameter: consultation_id=123 (consultation with ID 123 has been created)
  3. 3rd party system receives the hook and knows, that a consultation with ID 123 has been created in the Provet Cloud
  4. 3rd party system requests consultation with ID 123 data by using the REST API call
  5. Provet Cloud returns the data for the consultation with ID 123 in the JSON format
  6. 3rd party system receives data of the consultation and processes it in the desired way (and creates further REST API calls, if necessary)


Custom integrations

Even though our Webhooks & REST API provide a possibility for self-service integrations, FNS also provides consultancy services for the development of the integrations. Please contact to discuss your requirements.

Reference integrations

Several integrations have been built with the described Provet Cloud integration tools. For example following systems has been integrated with the Provet Cloud with these tools: