For PIMS partners

Write PawfectNotes SOAP notes straight into your PIMS

A vet picks today's appointment in PawfectNotes, records the visit, and the finished note lands in the patient record in your practice management system. No copy and paste. It takes three API calls.

How it works

  1. 1

    Connect

    When a practice turns on PawfectNotes, your PIMS registers the practice's API key with PawfectNotes.

    PIMS → PawfectNotes
  2. 2

    Read

    PawfectNotes pulls the day's appointments so the vet can select the visit before recording.

    PawfectNotes → PIMS
  3. 3

    Record and write

    When the vet finishes the note, PawfectNotes writes it to the appointment, filling in the SOAP sections.

    PawfectNotes → PIMS

Endpoints

The first call is an existing PawfectNotes endpoint that your PIMS calls. The other two are endpoints your PIMS builds so PawfectNotes can read appointments and write notes.

StepCalled byMethod and pathStatus
1. Connect a practicePIMSPUTon PawfectNotes/v1/integration/PIMSExisting
2. Read appointmentsPawfectNotesGETon the PIMS/v1/appointments?date=YYYY-MM-DDProposed
3. Write a notePawfectNotesPOSTon the PIMS/v1/appointments/{appointmentId}/notesProposed
3b. Update a notePawfectNotesPUTon the PIMS/v1/appointments/{appointmentId}/notes/{noteId}Nice to have

Paths and field names for steps 2 and 3 are suggestions. Use whatever shape fits your API.

1 Connect a practice

Your PIMS sends this request when a practice turns on PawfectNotes. The API key must allow reading and writing that practice's data.

Request
PUT https://api.pawfectnotes.com/v1/integration/PIMS
Content-Type: application/json

{
  "serviceKey": "[SHARED SECRET FROM PAWFECTNOTES]",
  "emailAddress": "vet@clinic.com",
  "accountId": "[PRACTICE ID IN THE PIMS]",
  "apiKey": "[READ/WRITE KEY FOR THIS PRACTICE]",
  "apiURL": "https://[PIMS API BASE URL]"
}
  • emailAddress is the vet's PawfectNotes login, which may differ from their PIMS email.
  • If keys expire, a refresh endpoint (or a fresh call to this one) keeps the connection alive.

2 Read appointments

PawfectNotes pulls the day's appointments so the vet can pick the visit before recording.

Request
GET https://[PIMS API BASE URL]/v1/appointments?date=2026-10-16
Authorization: Bearer [API KEY]
Response
[
  {
    "appointmentId": "a123",
    "start": "2026-10-16T09:30:00Z",
    "status": "checked_in",
    "vet": { "id": "v1", "name": "Dr. Smith" },
    "patient": {
      "id": "p456",
      "name": "Bella",
      "species": "Canine",
      "breed": "Labrador",
      "dateOfBirth": "2019-04-02",
      "sex": "FS",
      "weightKg": 28.4
    },
    "client": { "id": "c789", "firstName": "Jane", "lastName": "Doe" }
  }
]

3 Write the note

When the vet sends a finished note, PawfectNotes writes it to the appointment, ideally into the SOAP sections.

Request
POST https://[PIMS API BASE URL]/v1/appointments/a123/notes
Authorization: Bearer [API KEY]
Content-Type: application/json

{
  "patientId": "p456",
  "vetId": "v1",
  "subjective": "...",
  "objective": "...",
  "assessment": "...",
  "plan": "..."
}
Response
{ "noteId": "n001" }

Optional, to update a note after it's first written:

Request
PUT https://[PIMS API BASE URL]/v1/appointments/a123/notes/n001

Authentication

PawfectNotes → PIMS

PawfectNotes authenticates with the practice's API key as a Bearer token.

PIMS → PawfectNotes

Your PIMS authenticates with the shared service key sent in the connect request.

Scope and storage

Keys should be read/write for one practice only, and stored securely on each side.

Questions?

Contact the PawfectNotes integration team to get the shared service key, or to talk through the shape of your PIMS endpoints.

Looking for the systems already connected? See all integrations.