In this release, we’re introducing new endpoints to streamline tax rate management, improve scheduling accuracy, enhance prescription validation, support new ClinicID filtering, and enable new client balance capabilities. These updates are designed to provide more precise automation and control over clinic operations, ensuring smoother integrations for our partners.
This article outlines the new features, updated endpoints, and important changes that may require adjustments to your current integrations.
For full details, explore our updated resources below:
🔗 Swagger Documentation: Shepherd API Swagger
📖 OpenAPI Documentation: Shepherd OpenAPI Article
📌General Reminders
Shepherd offers robust group account capabilities, including support for GroupID details, ClinicID, and ClinicID filtering when data is shared at a group level. Explore our help guides to learn more about multi-location configurations!
🆕 New Features & Updates
Add New Clients and Patients
Description:
An appointment can automatically create a new client/patient in Shepherd.
Endpoints:
Client:
POST /open-api-clients/write
Patient:
POST /open-api-patients/write
Supporting Endpoints:
Country:
GET /open-api-countries
Phone Type:
GET /open-api-phone-types
Patient Status:
GET /open-api-patient-statuses
Patient CPR Status:
GET /open-api-patient-cpr-statuses
Add Notes or Attachments to Patient Medical Record
Description:
Allows clinics to add communication history, diagnostic results, completed forms, or survey responses to the medical record.
Endpoints:
Patient Attachments:
POST /open-api-patients/file-presigned-upload-url
Patient File Entry:
POST /open-api-patients/file-entry-write
Patient Notes:
POST /open-api-patient-notes/write
Both attachments and plain text writeback are supported.
Located in Patient History
Located in Patient History. Included in Medical Record (attachments are downloaded or sent via email separately).
Clinic Zip Code Tax Rates
Description:
Retrieve tax rates by clinic zip code for improved regional tax compliance and automated tax handling.
Endpoint:
GET /api/v1/tax/clinic-zip-code-tax-rate
Use Case:
Automatically pull zip-code-specific tax rates to apply the correct tax rate during invoicing.
Enables real-time tax rate adjustments based on the clinic’s location.
Parameters:
clinic_id
(string, required)zip_code
(string, required)effective_date
(optional, defaults to current date)
Tax Rate Types
Description:
Retrieve all available tax rate types (e.g., standard, reduced, zero-rated) for services and products.
Endpoint:
GET /api/v1/tax/tax-rate-types
Use Case:
Enables clinics to configure and assign the correct tax type to different products and services.
Parameters:
clinic_id
(string, required)category
(optional, defaults to all types)
Tax Rate by Clinic
Description:
Fetch applicable tax rates specific to a clinic, accounting for both service and product tax classes.
Endpoint:
GET /api/v1/tax/rates-by-clinic
Use Case:
Provides tax rate information for clinics handling multi-location tax management.
Parameters:
clinic_id
(string, required)tax_class
(optional, filters by product/service class)
Product Tax Rates – New Filters
Description:
Added filtering capabilities to retrieve product tax rates based on clinic or group identifiers.
Endpoint:
GET /api/v1/tax/product-tax-rate
Use Case:
Filter by
clinicId
orgroupId
to return product-specific tax rates relevant to the selected location or group.
Parameters:
clinicId
(string, optional)groupId
(string, optional)
Product Tax Rate – Soft Delete
Description:
Implemented soft delete functionality for product tax rates to allow recovery or audit tracking.
Endpoint:
DELETE /api/v1/tax/product-tax-rate
Use Case:
Instead of permanently deleting product tax rates, mark them as inactive with the ability to restore later.
Parameters:
product_tax_id
(string, required)soft_delete
(boolean, defaults to true)
Provider Availability – Timeslot Updates
Description:
Start and end dates are now mandatory for retrieving provider availability timeslots, ensuring more accurate scheduling data.
Endpoint:
GET /api/v1/provider/availability
Use Case:
Clinics can query available provider timeslots for specific date ranges to improve scheduling workflows.
Parameters:
provider_id
(string, required)startDate
(date, required)endDate
(date, required)
Prescription Writing Improvements
Description:
Enhancements to prescription handling and validation to improve compliance and prevent errors.
Endpoint:
POST /open-api-prescriptions/write
Key Updates:
Users can no longer create non-controlled written prescriptions without a
prescribingDoctorId
.Expired prescriptions can no longer be created.
Prevented creation of prescriptions where
RefillCount
exceedsRefillQuantity
.Improved error messaging for failed prescription creation, including updates to
isWritten
,SoapID
, andQuantity
parameter descriptions.
Client Details for Regulatory Reporting
Description:
New fields added to support compliance with CURES and State Controlled Medication Reporting.
Endpoint Updates:
Client Endpoint: Added the following fields:
GenderId
ClientGender
(with embedded Name and Abbreviation)DateOfBirth (DOB)
ClientInfo Endpoint: Added:
Driver’s License
Driver’s License State
Driver’s License Expiration Date
Added filtering by
clinicIds
for refined queries.
Use Case:
Ensures collected client details are exportable for regulatory reporting by integration partners like VetSnap and Cubex.
Expanded ClinicID Filtering for SOAP & Other Endpoints
We’ve extended ClinicID filtering to additional SOAP-related endpoints and common record types, allowing integrators to narrow data to specific clinics in multi-location (msite) configurations. This filter applies only if the group is set to share clients/patients across clinics.
Key Endpoints Receiving ClinicID Filter Updates:
SoapDischargeInstructions
Refill
SoapAssessment
SoapPlanRecommendation
Client Balances (
pav2/open-api-client-balances/balances
)
(Note: pav2/open-api-client-balances/aging
previously supported this filter, but is now officially documented in this release.)
Parameter
Typically
clinicIds
(comma-separated UUIDs).If omitted (and sharing is enabled), the endpoint will include records from all clinics in the group.
Use Cases
Multi-Clinic Data Control: Each location sees only relevant discharge instructions, refills, or SOAP assessments.
Refined Queries: Integrators can query precisely the data they need by clinic for reporting or day-to-day workflows.
Open API Client Balances Endpoints
To improve financial visibility, we’ve introduced two endpoints under pav2/open-api-client-balances
:
POST /pav2/open-api-client-balances/balances
Retrieves real-time client balances (outstanding amounts, credits on file, etc.).
Useful for immediate visibility into owed balances across one or multiple clinics.
POST /pav2/open-api-client-balances/aging
Returns aging data for client invoices, beneficial for automated overdue reminders or collections workflows.
Support for
clinicIds
ensures you can focus on a single clinic or multiple clinics as needed.
Both endpoints support ClinicID filtering to narrow results by clinic, especially helpful in multi-location contexts.
🔧 Improvements
Performance Enhancements: Response times for tax endpoints reduced by 20% through database optimization and caching strategies.
Validation Updates: Enhanced validation to ensure accurate data entry for tax rates, provider schedules, and prescription workflows.
Improved Parameter Descriptions: Updates to
SoapID
,Quantity
, andisWritten
for clearer guidance in prescription creation.Client Embedding Fixes: Resolved an issue where certain fields (including
clientId
) were missing when embedding clients in multiple endpoints. Now, Appointment, Clients, ClientPatient, ClientReferralSource, and Patient endpoints consistently return theclientId
field (among other previously missing fields) whenever a client is embedded. This ensures integrators have complete data in embedded objects.
⚠️ Breaking Changes
Provider Availability Timeslots:
startDate
andendDate
are now required for all timeslot queries. Previously, these were optional, which may require updating existing queries.Prescription Writing: Stricter validation may require partners to update their workflows to comply with the new parameters.
📚 Migration Notes
Provider Availability: Existing implementations fetching provider availability must now include
startDate
andendDate
.Tax Rate Deletions: For tax rate deletions, ensure
soft_delete
is explicitly set totrue
to avoid permanent deletions.Prescription Validation: Ensure integrations involving prescriptions align with the updated validation rules.
Client & ClientInfo: Review workflows for these endpoints to accommodate new fields and filtering options.
ClinicID Filtering: For multi-location setups, leverage
clinicIds
on updated SOAP and client balance endpoints for location-specific queries.Client Embedding: If your integration relies on embedded client objects, confirm that the newly included
clientId
and other fields meet your data needs.
❓ Questions or Support
If you have questions or need support, please contact OpenAPI@shepherd.vet or consult the Shepherd OpenAPI Documentation for more details.