Online Prescription / Home Delivery

Provet Cloud provides a REST API for third-party systems to create and manage online prescriptions (e-prescriptions) on behalf of veterinary practices.

Supported Methods

  • POST: Create a new prescription

  • GET: Retrieve a prescription or prescription item

  • PATCH: Update a prescription’s status or remarks

  • PUT: Not supported

  • DELETE: Not supported

Authorization

Use Open API access for authorization. The permission group associated with the application’s virtual user must include the required permissions for the e-prescription endpoints.

Setup

To integrate online prescriptions, configure a custom integration button in Provet Cloud:

Settings > Integrations > Custom integration buttons > Add

Set the “Visible page” to control where the button appears:

  • Client — shown on the client page when no patient is selected

  • Patient — shown on the client/patient page with a selected patient

  • Consultation — shown within the consultation flow

Online Prescription Settings

Department-level e-prescription settings can be fetched via the REST API:

GET /<provet_id>/api/0.1/departmentsettings/

You can also subscribe to changes in clinic location settings using webhooks for Department settings.

Creating a Prescription

URL:

POST https://<domain_name>/<provet_id>/api/0.1/eprescription/prescription/

Minimal POST data example:

{
    "client_id": 1,
    "department_id": 1,
    "prescriber_id": 1,
    "issue_time": "2025-08-20T11:20:45Z",
    "prescription_items": [
        {
            "name": "Lorem ipsum",
            "patients": [1],
            "strength": "100 mg",
            "instructions": "lorem ipsum",
            "quantity_packages": 1,
            "valid_until": "2026-08-20"
        }
    ]
}

Prescription — additional optional parameters

  • status (int) — default is 1 (Draft)

    STATUS_DRAFT = 1
    STATUS_SENDING = 2
    STATUS_SENT = 3
    STATUS_ACCEPTED_WARNING = 8
    STATUS_ACCEPTED = 4
    STATUS_REJECTED = 5
    STATUS_CANCELED = 6
    STATUS_ERROR = 7
    
  • consultation_id (int)

  • remarks (str)

Prescription item — additional optional parameters

  • repeat_number (int, default: 1) — corresponds to the “Amount of dispenses” column on the Online prescription page

Updating a Prescription

Only the remarks and status fields can be updated via PATCH:

PATCH https://<domain_name>/<provet_id>/api/0.1/eprescription/prescription/<prescription_id>/

Example request body:

{
    "status": 4,
    "remarks": "Prescription accepted"
}

Retrieving a Prescription

GET https://<domain_name>/<provet_id>/api/0.1/eprescription/prescription/<prescription_id>/

Example response:

{
    "url": "http://localhost:8000/4/api/0.1/eprescription/prescription/45/",
    "consultation": null,
    "prescriber": "http://localhost:8000/4/api/0.1/user/1/",
    "department": "http://localhost:8000/4/api/0.1/department/1/",
    "created": "2025-08-27T14:47:11+03:00",
    "modified": "2025-08-27T14:47:11+03:00",
    "status": 1,
    "client": "http://localhost:8000/4/api/0.1/client/1/",
    "pharmacy_id": null,
    "archived": false,
    "patients": [
        "http://localhost:8000/4/api/0.1/patient/1/"
    ],
    "items": [
        "http://localhost:8000/4/api/0.1/eprescription/prescription_item/43/"
    ],
    "uuid": "9105f39c-833b-11f0-99b6-2658e1b765fe",
    "prescription_set_uuid": "9105f978-833b-11f0-99b6-2658e1b765fe",
    "invoice": null,
    "remarks": null,
    "created_user": "http://localhost:8000/4/api/0.1/user/2/",
    "modified_user": "http://localhost:8000/4/api/0.1/user/2/",
    "modified_session": null,
    "issue_time": "2025-08-20T14:20:45+03:00",
    "is_order": false,
    "is_payment": false,
    "prescription_order": null,
    "payment_details": null
}

Retrieving a Prescription Item

GET https://<domain_name>/<provet_id>/api/0.1/eprescription/prescription_item/<prescription_item_id>/

Example response:

{
    "url": "http://localhost:8000/4/api/0.1/eprescription/prescription_item/43/",
    "name": "Presc item abc",
    "package_size": null,
    "product_id": null,
    "product_nplid": "",
    "article_id": null,
    "article_nplpackid": "",
    "row_id": "",
    "license_id": null,
    "pharmacy_id": null,
    "prescription": "http://localhost:8000/4/api/0.1/eprescription/prescription/45/",
    "created": "2025-08-27T14:47:11+03:00",
    "modified": "2025-08-27T14:47:11+03:00",
    "valid_until": "2026-08-20",
    "indication": null,
    "dosage_form": null,
    "strength": "100 mg",
    "quantity": null,
    "unit_description": "st",
    "package_content": null,
    "quantity_packages": 2,
    "patients": [
        "http://localhost:8000/4/api/0.1/patient/1/"
    ],
    "prescribed_medicine": "Presc item abc",
    "latest_dispensing": null,
    "instructions": "lorem ipsum",
    "language": null,
    "repeat_number": 1,
    "repeat_timevalue": null,
    "repeat_timeunit": null,
    "patient_identification": null,
    "patient_id_qualifier": "IND",
    "patient_species": null,
    "supplimentary_information": null,
    "created_user": "http://localhost:8000/4/api/0.1/user/2/",
    "modified_user": "http://localhost:8000/4/api/0.1/user/2/",
    "copied_from": null
}

Creating a Counter Sale for the Prescription Fee

To collect payment for a prescription fee, create a counter sale via the REST API:

  1. Fetch the item ID from settings

  2. Create a counter sale

  3. Add the item to the counter sale

  4. Finalize the counter sale

  5. Add payment to the counter sale