Kareo Integration SOAP API

The Kareo Integration SOAP API provides a web services interface for integrating third-party applications with practice management data. Supports read access to patients, providers, appointments, transactions, and charges, as well as write access to patients and encounters. Authentication requires a username, password, and a Customer Key issued by a System Administrator.

OpenAPI Specification

kareo-soap-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Kareo Integration SOAP API
  description: >-
    The Kareo Integration SOAP API provides a web services interface for
    integrating third-party applications with Kareo practice management data.
    This OpenAPI description is derived from the publicly accessible WSDL at
    https://webservice.kareo.com/services/soap/2.1/KareoServices.svc?wsdl.
    The underlying service is SOAP/XML-based; this document describes the
    logical operations and data shapes for reference and tooling purposes.
    Authentication requires a CustomerKey, Username, and Password issued by a
    Kareo System Administrator. Kareo is now part of Tebra.
  version: "2.1"
  contact:
    name: Kareo / Tebra Support
    url: https://helpme.tebra.com/01_Kareo_PM/12_API_and_Integration
  termsOfService: https://www.tebra.com/api-terms-of-use/
  x-api-type: SOAP
  x-wsdl-url: https://webservice.kareo.com/services/soap/2.1/KareoServices.svc?wsdl
externalDocs:
  description: Kareo API and Integration Documentation
  url: https://helpme.tebra.com/01_Kareo_PM/12_API_and_Integration
servers:
  - url: https://webservice.kareo.com/services/soap/2.1
    description: Kareo SOAP Web Service (production)
tags:
  - name: Patients
    description: Patient demographic and record management
  - name: Appointments
    description: Appointment scheduling and management
  - name: Encounters
    description: Clinical encounter and document management
  - name: Billing
    description: Charges, payments, and transactions
  - name: Providers
    description: Provider and practice administration
  - name: Administrative
    description: Vendor registration, throttles, and configuration
paths:
  /KareoServices.svc/CreatePatient:
    post:
      operationId: createPatient
      summary: Create a new patient record
      description: >-
        Creates a new patient record in Kareo practice management. Returns the
        newly created patient identifier. Requires CustomerKey authentication.
      tags:
        - Patients
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/CreatePatientRequest'
      responses:
        '200':
          description: Patient created successfully
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/CreatePatientResponse'
        '401':
          description: Authentication failed - invalid CustomerKey, username, or password
        '400':
          description: Bad request - invalid patient data
  /KareoServices.svc/UpdatePatient:
    post:
      operationId: updatePatient
      summary: Update an existing patient record
      description: >-
        Updates demographic and contact information for an existing patient
        record identified by PatientId or PatientExternalId.
      tags:
        - Patients
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdatePatientRequest'
      responses:
        '200':
          description: Patient updated successfully
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/UpdatePatientResponse'
        '401':
          description: Authentication failed
        '404':
          description: Patient not found
  /KareoServices.svc/GetPatient:
    post:
      operationId: getPatient
      summary: Retrieve a single patient record
      description: >-
        Retrieves a single patient record by PatientId or PatientExternalId.
      tags:
        - Patients
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetPatientRequest'
      responses:
        '200':
          description: Patient record retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetPatientResponse'
        '401':
          description: Authentication failed
        '404':
          description: Patient not found
  /KareoServices.svc/GetPatients:
    post:
      operationId: getPatients
      summary: Retrieve multiple patient records with filters
      description: >-
        Retrieves a filtered list of patient records. Supports filtering by
        LastModifiedDate range and other criteria.
      tags:
        - Patients
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetPatientsRequest'
      responses:
        '200':
          description: Patient list retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetPatientsResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetAllPatients:
    post:
      operationId: getAllPatients
      summary: Retrieve all patient records for a practice
      description: >-
        Retrieves all patient records for the authenticated practice. Use with
        caution on large datasets; consider GetPatients with date filters.
      tags:
        - Patients
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetAllPatientsRequest'
      responses:
        '200':
          description: All patients retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetPatientsResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/UpdatePatientsExternalID:
    post:
      operationId: updatePatientsExternalID
      summary: Update external identifier for patients
      description: >-
        Bulk updates the external identifier field for one or more patient
        records, enabling synchronization with external systems.
      tags:
        - Patients
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdatePatientsExternalIDRequest'
      responses:
        '200':
          description: External IDs updated successfully
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/UpdatePatientsExternalIDResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/CreateAppointment:
    post:
      operationId: createAppointment
      summary: Create a new appointment
      description: >-
        Schedules a new appointment for a patient with a specified provider at
        a service location. Returns the appointment identifier.
      tags:
        - Appointments
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/CreateAppointmentRequest'
      responses:
        '200':
          description: Appointment created successfully
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/CreateAppointmentResponse'
        '401':
          description: Authentication failed
        '409':
          description: Scheduling conflict
  /KareoServices.svc/UpdateAppointment:
    post:
      operationId: updateAppointment
      summary: Update an existing appointment
      description: >-
        Updates the details of an existing appointment including date, time,
        provider, or service location.
      tags:
        - Appointments
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateAppointmentRequest'
      responses:
        '200':
          description: Appointment updated
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/UpdateAppointmentResponse'
        '401':
          description: Authentication failed
        '404':
          description: Appointment not found
  /KareoServices.svc/DeleteAppointment:
    post:
      operationId: deleteAppointment
      summary: Delete an appointment
      description: Cancels and removes an appointment record by appointment identifier.
      tags:
        - Appointments
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/DeleteAppointmentRequest'
      responses:
        '200':
          description: Appointment deleted
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/DeleteAppointmentResponse'
        '401':
          description: Authentication failed
        '404':
          description: Appointment not found
  /KareoServices.svc/UpdateAppointmentStatus:
    post:
      operationId: updateAppointmentStatus
      summary: Update appointment status
      description: >-
        Updates the status of an appointment (e.g., Confirmed, Cancelled,
        No-Show, Checked-In).
      tags:
        - Appointments
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateAppointmentStatusRequest'
      responses:
        '200':
          description: Appointment status updated
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/UpdateAppointmentStatusResponse'
        '401':
          description: Authentication failed
        '404':
          description: Appointment not found
  /KareoServices.svc/GetAppointment:
    post:
      operationId: getAppointment
      summary: Retrieve a single appointment
      description: Retrieves a single appointment record by appointment identifier.
      tags:
        - Appointments
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetAppointmentRequest'
      responses:
        '200':
          description: Appointment retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetAppointmentResponse'
        '401':
          description: Authentication failed
        '404':
          description: Appointment not found
  /KareoServices.svc/GetAppointments:
    post:
      operationId: getAppointments
      summary: Retrieve appointments with filters
      description: >-
        Retrieves a filtered list of appointments. Supports filtering by date
        range, provider, patient, and status. Recommended polling interval is
        5-15 minutes for integrations.
      tags:
        - Appointments
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetAppointmentsRequest'
      responses:
        '200':
          description: Appointments retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetAppointmentsResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/CreateAppointmentReason:
    post:
      operationId: createAppointmentReason
      summary: Create an appointment reason/type
      description: Creates a new appointment reason code for use in scheduling.
      tags:
        - Appointments
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/CreateAppointmentReasonRequest'
      responses:
        '200':
          description: Appointment reason created
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/CreateAppointmentReasonResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetAppointmentReasons:
    post:
      operationId: getAppointmentReasons
      summary: Retrieve appointment reasons
      description: Retrieves the list of configured appointment reason codes for the practice.
      tags:
        - Appointments
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetAppointmentReasonsRequest'
      responses:
        '200':
          description: Appointment reasons retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetAppointmentReasonsResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/CreateEncounter:
    post:
      operationId: createEncounter
      summary: Create a clinical encounter
      description: >-
        Creates a new clinical encounter record linking a patient visit to
        diagnoses, procedures, and billing codes.
      tags:
        - Encounters
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/CreateEncounterRequest'
      responses:
        '200':
          description: Encounter created
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/CreateEncounterResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/UpdateEncounterStatus:
    post:
      operationId: updateEncounterStatus
      summary: Update encounter status
      description: >-
        Updates the workflow status of an encounter (e.g., Draft, Submitted,
        Approved).
      tags:
        - Encounters
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateEncounterStatusRequest'
      responses:
        '200':
          description: Encounter status updated
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/UpdateEncounterStatusResponse'
        '401':
          description: Authentication failed
        '404':
          description: Encounter not found
  /KareoServices.svc/GetEncounterDetails:
    post:
      operationId: getEncounterDetails
      summary: Retrieve encounter details
      description: >-
        Retrieves detailed information about a clinical encounter including
        diagnoses, procedures, and associated billing data.
      tags:
        - Encounters
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetEncounterDetailsRequest'
      responses:
        '200':
          description: Encounter details retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetEncounterDetailsResponse'
        '401':
          description: Authentication failed
        '404':
          description: Encounter not found
  /KareoServices.svc/UpdatePrimaryPatientCase:
    post:
      operationId: updatePrimaryPatientCase
      summary: Update the primary case for a patient
      description: >-
        Updates the primary insurance case and billing information associated
        with a patient's account.
      tags:
        - Encounters
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdatePrimaryPatientCaseRequest'
      responses:
        '200':
          description: Patient case updated
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/UpdatePrimaryPatientCaseResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/CreateDocument:
    post:
      operationId: createDocument
      summary: Create a clinical document
      description: >-
        Attaches or creates a document record in the Kareo EHR associated with
        a patient or encounter.
      tags:
        - Encounters
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/CreateDocumentRequest'
      responses:
        '200':
          description: Document created
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/CreateDocumentResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/DeleteDocument:
    post:
      operationId: deleteDocument
      summary: Delete a clinical document
      description: Removes a document record from a patient or encounter in the Kareo EHR.
      tags:
        - Encounters
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/DeleteDocumentRequest'
      responses:
        '200':
          description: Document deleted
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/DeleteDocumentResponse'
        '401':
          description: Authentication failed
        '404':
          description: Document not found
  /KareoServices.svc/CreatePayment:
    post:
      operationId: createPayment
      summary: Post a payment
      description: >-
        Posts a patient or insurance payment to a patient account or specific
        charge in Kareo.
      tags:
        - Billing
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/CreatePaymentRequest'
      responses:
        '200':
          description: Payment posted
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/CreatePaymentResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetPayments:
    post:
      operationId: getPayments
      summary: Retrieve payment records
      description: >-
        Retrieves payment records with optional date range and patient filters.
      tags:
        - Billing
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetPaymentsRequest'
      responses:
        '200':
          description: Payments retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetPaymentsResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetCharges:
    post:
      operationId: getCharges
      summary: Retrieve charge records
      description: >-
        Retrieves medical charge records (CPT/procedure codes billed) with
        optional filtering by date range and patient.
      tags:
        - Billing
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetChargesRequest'
      responses:
        '200':
          description: Charges retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetChargesResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetTransactions:
    post:
      operationId: getTransactions
      summary: Retrieve financial transactions
      description: >-
        Retrieves financial transaction records for the practice, including
        charges, payments, and adjustments.
      tags:
        - Billing
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetTransactionsRequest'
      responses:
        '200':
          description: Transactions retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetTransactionsResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetProviders:
    post:
      operationId: getProviders
      summary: Retrieve provider records
      description: >-
        Retrieves the list of healthcare providers configured in the practice.
      tags:
        - Providers
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetProvidersRequest'
      responses:
        '200':
          description: Providers retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetProvidersResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetPractices:
    post:
      operationId: getPractices
      summary: Retrieve practice records
      description: >-
        Retrieves practice information for the authenticated account, including
        name, address, and NPI.
      tags:
        - Providers
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetPracticesRequest'
      responses:
        '200':
          description: Practices retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetPracticesResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetServiceLocations:
    post:
      operationId: getServiceLocations
      summary: Retrieve service locations
      description: >-
        Retrieves the list of service locations (offices, facilities) configured
        for the practice.
      tags:
        - Providers
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetServiceLocationsRequest'
      responses:
        '200':
          description: Service locations retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetServiceLocationsResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetProcedureCodes:
    post:
      operationId: getProcedureCodes
      summary: Retrieve procedure codes
      description: >-
        Retrieves the CPT/procedure code list configured for the practice for
        use in encounter and charge creation.
      tags:
        - Providers
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetProcedureCodesRequest'
      responses:
        '200':
          description: Procedure codes retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetProcedureCodesResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/RegisterExternalVendor:
    post:
      operationId: registerExternalVendor
      summary: Register an external vendor integration
      description: >-
        Registers a third-party vendor or integration application with the
        Kareo platform to receive a CustomerKey for API access.
      tags:
        - Administrative
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/RegisterExternalVendorRequest'
      responses:
        '200':
          description: External vendor registered
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/RegisterExternalVendorResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetExternalVendors:
    post:
      operationId: getExternalVendors
      summary: Retrieve registered external vendors
      description: >-
        Retrieves the list of external vendor integrations registered with
        the practice.
      tags:
        - Administrative
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetExternalVendorsRequest'
      responses:
        '200':
          description: External vendors retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetExternalVendorsResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetThrottles:
    post:
      operationId: getThrottles
      summary: Retrieve API throttle limits
      description: >-
        Returns the current API request throttle limits and usage for the
        authenticated practice to support rate-limit-aware integrations.
      tags:
        - Administrative
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetThrottlesRequest'
      responses:
        '200':
          description: Throttle limits retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetThrottlesResponse'
        '401':
          description: Authentication failed
  /KareoServices.svc/GetCustomerIdFromKey:
    post:
      operationId: getCustomerIdFromKey
      summary: Resolve customer identifier from CustomerKey
      description: >-
        Resolves the internal customer/practice identifier corresponding to a
        given CustomerKey credential.
      tags:
        - Administrative
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetCustomerIdFromKeyRequest'
      responses:
        '200':
          description: Customer ID retrieved
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/GetCustomerIdFromKeyResponse'
        '401':
          description: Authentication failed
components:
  schemas:
    RequestHeader:
      type: object
      required:
        - CustomerKey
        - User
        - Password
      properties:
        CustomerKey:
          type: string
          description: >-
            Unique key issued by the Kareo System Administrator identifying
            the practice integration.
          example: "ABC123XYZ"
        User:
          type: string
          description: Kareo username for authentication.
          example: "[email protected]"
        Password:
          type: string
          format: password
          description: Kareo password for authentication.
    Patient:
      type: object
      properties:
        PatientId:
          type: integer
          description: Internal Kareo patient identifier.
          example: 100234
        PatientExternalId:
          type: string
          description: External system identifier for the patient.
          example: "EXT-PT-9876"
        PatientFullName:
          type: string
          description: Full name of the patient (LastName, FirstName).
          example: "Doe, Jane"
        FirstName:
          type: string
          example: "Jane"
        LastName:
          type: string
          example: "Doe"
        DateOfBirth:
          type: string
          format: date
          description: Patient date of birth in YYYY-MM-DD format.
          example: "1985-03-15"
        Gender:
          type: string
          enum:
            - Male
            - Female
            - Unknown
        Email:
          type: string
          format: email
          example: "[email protected]"
        HomePhone:
          type: string
          example: "555-123-4567"
        MobilePhone:
          type: string
          example: "555-987-6543"
        Address:
          $ref: '#/components/schemas/Address'
        InsurancePolicyId:
          type: integer
          description: Internal identifier for the patient's insurance policy.
        InsurancePolicyExternalId:
          type: string
          description: External identifier for the patient's insurance policy.
        LastModifiedDate:
          type: string
          format: date-time
          description: Timestamp of the last modification to the record.
    Address:
      type: object
      properties:
        Address1:
          type: string
          example: "123 Main St"
        Address2:
          type: string
          example: "Suite 100"
        City:
          type: string
          example: "Los Angeles"
        State:
          type: string
          example: "CA"
        ZipCode:
          type: string
          example: "90001"
        Country:
          type: string
          example: "US"
    Appointment:
      type: object
      properties:
        AppointmentId:
          type: integer
          description: Internal Kareo appointment identifier.
        PatientId:
          type: integer
          description: Internal Kareo patient identifier.
        ProviderId:
          type: integer
          description: Internal Kareo provider identifier.
        ServiceLocationId:
          type: integer
          description: Internal Kareo service location identifier.
        StartTime:
          type: string
          format: date-time
          description: Appointment start date and time.
          example: "2026-06-15T09:00:00"
        EndTime:
          type: string
          format: date-time
          description: Appointment end date and time.
          example: "2026-06-15T09:30:00"
        AppointmentStatus:
          type: string
          enum:
            - Scheduled
            - Confirmed
            - CheckedIn
            - CheckedOut
            - Cancelled
            - NoShow
          example: "Scheduled"
        AppointmentReasonId:
          type: integer
          description: Identifier for the appointment reason/type.
        Notes:
          type: string
          description: Free-text notes for the appointment.
    Encounter:
      type: object
      properties:
        EncounterId:
          type: integer
          description: Internal Kareo encounter identifier.
        PatientId:
          type: integer
        ProviderId:
          type: integer
        AppointmentId:
          type: integer
        EncounterStatus:
          type: string
          enum:
            - Draft
            - Submitted
            - Approved
            - Voided
        DateOfService:
          type: string
          format: date
          example: "2026-06-15"
        DiagnosisCodes:
          type: array
          items:
            type: string
          description: ICD-10 diagnosis codes associated with the encounter.
          example:
            - "J06.9"
            - "Z00.00"
        ProcedureCodes:
          type: array
          items:
            type: string
          description: CPT procedure codes billed in the encounter.
          example:
            - "99213"
    Charge:
      type: object
      properties:
        ChargeId:
          type: integer
        PatientId:
          type: integer
        EncounterId:
          type: integer
        ProcedureCode:
          type: string
          example: "99213"
        Units:
          type: number
          example: 1
        ChargeAmount:
          type: number
          format: float
          example: 150.00
        DateOfService:
          type: string
          format: date
        InsuranceBalance:
          type: number
          format: float
        PatientBalance:
          type: number
          format: float
    Payment:
      type: object
      properties:
        PaymentId:
          type: integer
        PatientId:
          type: integer
        PaymentDate:
          type: string
          format: date
        PaymentAmount:
          type: number
          format: float
          example: 50.00
        PaymentType:
          type: string
          enum:
            - PatientPayment
            - InsurancePayment
            - Adjustment
        CheckNumber:
          type: string
        Notes:
          type: string
    Provider:
      type: object
      properties:
        ProviderId:
          type: integer
        FirstName:
          type: string
        LastName:
          type: string
        NPI:
          type: string
       

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kareo/refs/heads/main/openapi/kareo-soap-api-openapi.yml