Kareo Billing API

Charges, payments, and transactions

Specifications

OpenAPI Specification

kareo-billing-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Kareo Integration SOAP Administrative Billing 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: Billing
  description: Charges, payments, and transactions
paths:
  /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
components:
  schemas:
    GetChargesResponse:
      type: object
      properties:
        Charges:
          type: array
          items:
            $ref: '#/components/schemas/Charge'
        ErrorCode:
          type: string
        ErrorMessage:
          type: string
    GetPaymentsRequest:
      type: object
      properties:
        RequestHeader:
          $ref: '#/components/schemas/RequestHeader'
        StartDate:
          type: string
          format: date-time
        EndDate:
          type: string
          format: date-time
        PatientId:
          type: integer
    GetTransactionsRequest:
      type: object
      properties:
        RequestHeader:
          $ref: '#/components/schemas/RequestHeader'
        StartDate:
          type: string
          format: date-time
        EndDate:
          type: string
          format: date-time
    GetTransactionsResponse:
      type: object
      properties:
        Transactions:
          type: array
          items:
            type: object
            properties:
              TransactionId:
                type: integer
              TransactionDate:
                type: string
                format: date
              TransactionType:
                type: string
              Amount:
                type: number
                format: float
              PatientId:
                type: integer
        ErrorCode:
          type: string
        ErrorMessage:
          type: string
    CreatePaymentResponse:
      type: object
      properties:
        PaymentId:
          type: integer
        ErrorCode:
          type: string
        ErrorMessage:
          type: string
    GetChargesRequest:
      type: object
      properties:
        RequestHeader:
          $ref: '#/components/schemas/RequestHeader'
        StartDate:
          type: string
          format: date-time
        EndDate:
          type: string
          format: date-time
        PatientId:
          type: integer
    Payment:
      type: object
      properties:
        PaymentId:
          type: integer
        PatientId:
          type: integer
        PaymentDate:
          type: string
          format: date
        PaymentAmount:
          type: number
          format: float
          example: 50.0
        PaymentType:
          type: string
          enum:
          - PatientPayment
          - InsurancePayment
          - Adjustment
        CheckNumber:
          type: string
        Notes:
          type: string
    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.0
        DateOfService:
          type: string
          format: date
        InsuranceBalance:
          type: number
          format: float
        PatientBalance:
          type: number
          format: float
    CreatePaymentRequest:
      type: object
      properties:
        RequestHeader:
          $ref: '#/components/schemas/RequestHeader'
        Payment:
          $ref: '#/components/schemas/Payment'
    GetPaymentsResponse:
      type: object
      properties:
        Payments:
          type: array
          items:
            $ref: '#/components/schemas/Payment'
        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