OpenAPI Specification
openapi: 3.0.3
info:
title: Kareo Integration SOAP Administrative Encounters 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
servers:
- url: https://webservice.kareo.com/services/soap/2.1
description: Kareo SOAP Web Service (production)
tags:
- name: Encounters
description: Clinical encounter and document management
paths:
/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
components:
schemas:
DeleteDocumentRequest:
type: object
properties:
RequestHeader:
$ref: '#/components/schemas/RequestHeader'
DocumentId:
type: integer
CreateDocumentRequest:
type: object
properties:
RequestHeader:
$ref: '#/components/schemas/RequestHeader'
PatientId:
type: integer
EncounterId:
type: integer
DocumentName:
type: string
DocumentContent:
type: string
format: byte
description: Base64-encoded document content.
DocumentType:
type: string
GetEncounterDetailsRequest:
type: object
properties:
RequestHeader:
$ref: '#/components/schemas/RequestHeader'
EncounterId:
type: integer
CreateEncounterRequest:
type: object
properties:
RequestHeader:
$ref: '#/components/schemas/RequestHeader'
Encounter:
$ref: '#/components/schemas/Encounter'
UpdatePrimaryPatientCaseResponse:
type: object
properties:
Success:
type: boolean
ErrorCode:
type: string
ErrorMessage:
type: string
GetEncounterDetailsResponse:
type: object
properties:
Encounter:
$ref: '#/components/schemas/Encounter'
ErrorCode:
type: string
ErrorMessage:
type: string
UpdateEncounterStatusResponse:
type: object
properties:
Success:
type: boolean
ErrorCode:
type: string
ErrorMessage:
type: string
UpdateEncounterStatusRequest:
type: object
properties:
RequestHeader:
$ref: '#/components/schemas/RequestHeader'
EncounterId:
type: integer
EncounterStatus:
type: string
CreateDocumentResponse:
type: object
properties:
DocumentId:
type: integer
ErrorCode:
type: string
ErrorMessage:
type: string
CreateEncounterResponse:
type: object
properties:
EncounterId:
type: integer
ErrorCode:
type: string
ErrorMessage:
type: string
UpdatePrimaryPatientCaseRequest:
type: object
properties:
RequestHeader:
$ref: '#/components/schemas/RequestHeader'
PatientId:
type: integer
InsurancePolicyId:
type: integer
InsurancePolicyExternalId:
type: string
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'
DeleteDocumentResponse:
type: object
properties:
Success:
type: boolean
ErrorCode:
type: string
ErrorMessage:
type: string
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: admin@mypractice.com
Password:
type: string
format: password
description: Kareo password for authentication.
externalDocs:
description: Kareo API and Integration Documentation
url: https://helpme.tebra.com/01_Kareo_PM/12_API_and_Integration