Elation Health Bills API

The Bills API from Elation Health — 6 operation(s) for bills.

Operations 11

GET /bills/{id}/ Get Bill #
PATCH /bills/{id}/ Update Bill #
DELETE /bills/{id}/ Delete Bill #
GET /bills/ Find Bills #
POST /bills/ Create Bill #
PATCH /bills/{id}/actions/release-to-pms/ Release a Bill To PMS #
GET /api/2.0/bills/ List Bills #
POST /api/2.0/bills/ Create Bill #
GET /api/2.0/bills/{id}/ Retrieve Bill #
PATCH /api/2.0/bills/{id}/ Partially Update Bill #
PATCH /api/2.0/bills/{id}/actions/release-to-pms/ Release a Bill to PMS #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/elation-health-bills-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

elation-health-bills-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Elation Health Bills API
  version: '1.0'
  description: 'Operations tagged Bills across 3 of this provider''s published API definitions: elation-api-settings.json, elation-billing-api.json, elation-health-api-full-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://sandbox.elationemr.com/api/2.0
- description: Sandbox Server
  url: https://sandbox.elationemr.com
- description: Production Server
  url: https://api.app.elationemr.com
tags:
- name: Bills
paths:
  /bills/{id}/:
    get:
      summary: Get Bill
      description: ''
      operationId: get-bill
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 83792571234,\n  // See Object Definition\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\nresp = requests.get(\"https://sandbox.elationemr.com/api/2.0/bills/64184451073/\",\n                    headers={'Authorization': auth_header})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
        samples-languages:
        - python
      tags:
      - Bills
      security:
      - sec0: []
    patch:
      summary: Update Bill
      description: ''
      operationId: patch-bill
      parameters:
      - name: id
        in: path
        schema:
          type: integer
          format: int64
        required: true
      - name: Authorization
        in: header
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                billing_date:
                  type: string
                  description: Required if marking a bill as processed
                ref_number:
                  type: string
                  description: Required if marking a bill as processed
                billing_error:
                  type: string
                  description: Required if marking a bill as failed. This is the human readable error that users will see.
                billing_raw_error:
                  type: string
                  description: Further details on the billing error. Optional when marking a bill as failed. Useful when debugging why a bill failed to process.
                prior_authorization:
                  type: string
                  description: Prior authorization number
                billing_provider:
                  type: integer
                  description: Billing provider Id
                  format: int32
                supervising_provider:
                  type: integer
                  description: Supervising provider Id
                  format: int32
                rendering_provider:
                  type: integer
                  description: Rendering provider id
                  format: int32
                referring_provider:
                  type: object
                  description: Billing refering provide
                  properties:
                    name:
                      type: string
                    state:
                      type: string
                      enum:
                      - AK
                      - AL
                      - AR
                      - AS
                      - AZ
                      - CA
                      - CO
                      - CT
                      - DC
                      - DE
                      - FL
                      - GA
                      - GU
                      - HI
                      - IA
                      - ID
                      - IL
                      - IN
                      - KS
                      - KY
                      - LA
                      - MA
                      - MD
                      - ME
                      - MI
                      - MN
                      - MO
                      - MP
                      - MS
                      - MT
                      - NC
                      - ND
                      - NE
                      - NH
                      - NJ
                      - NM
                      - NV
                      - NY
                      - OH
                      - OK
                      - OR
                      - PA
                      - PR
                      - RI
                      - SC
                      - SD
                      - TN
                      - TX
                      - UM
                      - UT
                      - VA
                      - VI
                      - VT
                      - WA
                      - WI
                      - WV
                      - WY
                    npi:
                      type: string
                      description: 10 digit provider or group NPI
                      default: 'null'
                ordering_provider:
                  type: object
                  description: Ordering provider
                  properties:
                    name:
                      type: string
                    state:
                      type: string
                      enum:
                      - AK
                      - AL
                      - AR
                      - AS
                      - AZ
                      - CA
                      - CO
                      - CT
                      - DC
                      - DE
                      - FL
                      - GA
                      - GU
                      - HI
                      - IA
                      - ID
                      - IL
                      - IN
                      - KS
                      - KY
                      - LA
                      - MA
                      - MD
                      - ME
                      - MI
                      - MN
                      - MO
                      - MP
                      - MS
                      - MT
                      - NC
                      - ND
                      - NE
                      - NH
                      - NJ
                      - NM
                      - NV
                      - NY
                      - OH
                      - OK
                      - OR
                      - PA
                      - PR
                      - RI
                      - SC
                      - SD
                      - TN
                      - TX
                      - UM
                      - UT
                      - VA
                      - VI
                      - VT
                      - WA
                      - WI
                      - WV
                      - WY
                    npi:
                      type: string
                      description: 10 digit provider or group NPI
                      default: 'null'
                cpts:
                  type: array
                  description: CPTs objects for billing
                  items:
                    properties:
                      cpt:
                        type: string
                        description: CPT code
                      modifier_1:
                        type: string
                        description: 'Two character long modifier string for slot #1'
                      modifier_2:
                        type: string
                        description: 'Two character long modifier string for slot #2'
                      modifier_3:
                        type: string
                        description: 'Two character long modifier string for slot #3'
                      modifier_4:
                        type: string
                        description: 'Two character long modifier string for slot #4'
                      unit_charge:
                        type: number
                        description: Charge for the procedure (e.g. 50.25 for $50.25)
                        format: double
                      units:
                        type: number
                        description: Number of procedure units to charge for
                        format: double
                      dxs:
                        type: array
                        description: Diagnoses to associate with the procedure
                        items:
                          properties:
                            icd10_code:
                              type: string
                              description: ICD10 code for the diagnosis
                            icd9_codes:
                              type: array
                              description: List of ICD9 codes to associate with the diagnosis
                              default: []
                              items:
                                type: string
                          required:
                          - icd10_code
                          type: object
                    required:
                    - cpt
                    type: object
                service_location:
                  type: integer
                  description: Billing service location
                  format: int32
                notes:
                  type: string
                  description: Additional billing notes
                payment:
                  type: integer
                  description: Patient Payment
                  format: int32
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 83792571234,\n  // See Object Definition\n}"
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\n# marking a bill as failed\ndata = {\n  \"billing_error\": \"CPT code is missing\",  # required\n  \"billing_raw_error\": \"ERROR: CPT code is required\"  # optional\n}\n\nresp = requests.patch(\"https://sandbox.elationemr.com/api/2.0/bills/67176497153/\",\n                       data=json.dumps(data),\n                       headers={'Authorization': auth_header,\n                                'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)\n\n# marking a bill as processed\ndata = {\n  \"ref_number\": \"2323413d3\",\n  \"billing_date\": \"2016-05-23T17:48:21Z\"\n}\n\nresp = requests.patch(\"https://sandbox.elationemr.com/api/2.0/bills/67176497153/\",\n                       data=json.dumps(data),\n                       headers={'Authorization': auth_header,\n                                'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)\n\n\n# update general info on the bill\ndata = {\n\t\t\"payment_amount\": \"123.43\",\n    \"cpts\": [\n        {\n            \"cpt\": \"99215\",\n            \"modifier_1\": \"aa\",\n            \"modifier_2\": \"aa\",\n            \"modifier_3\": \"aa\",\n            \"modifier_4\": \"aa\",\n            \"dxs\": [\n                {\n                    \"icd10_code\": \"N18.24\",\n                    \"icd9_codes\": [\n                        \"425.4\"\n                    ]\n                }\n            ],\n            \"unit_charge\": 10,\n            \"units\": 10\n        }\n    ]\n}\n\nresp = requests.patch(\"https://sandbox.elationemr.com/api/2.0/bills/67176497153/\",\n                       data=json.dumps(data),\n                       headers={'Authorization': auth_header,\n                                'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)\n\n"
        samples-languages:
        - python
      tags:
      - Bills
      security:
      - sec0: []
    delete:
      summary: Delete Bill
      description: This is yet to be worked on. Keep this in Draft
      operationId: delete-bill
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '204':
          description: '204'
          content:
            application/json:
              examples:
                Result:
                  value: ''
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\nresp = requests.delete(\"https://sandbox.elationemr.com/api/2.0/bills/54233202689/\",\n                       headers={'Authorization': auth_header})\n\nprint resp.status_code"
        samples-languages:
        - python
      tags:
      - Bills
      security:
      - sec0: []
    servers:
    - url: https://sandbox.elationemr.com/api/2.0
  /bills/:
    get:
      summary: Find Bills
      description: ''
      operationId: find-bills
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      - name: patient
        in: query
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: from_service_date
        in: query
        schema:
          type: string
          format: date
      - name: to_service_date
        in: query
        schema:
          type: string
          format: date
      - name: visit_note_id
        in: query
        description: The id of the visit note this bill is attached to
        schema:
          type: integer
          format: int32
      - name: signing_physician
        in: query
        description: The id of the physician who signed off on the visit note that is associated with this bill.
        schema:
          type: integer
          format: int32
      - name: assigned_physician
        in: query
        description: The id of the physician who is assigned to this bill, could be different from the signer.
        schema:
          type: integer
          format: int32
      - name: practice
        in: query
        description: The practice that is responsible for the bill
        schema:
          type: array
          items:
            type: integer
            format: int64
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"count\": 123,\n  \"next\": \"https://sandbox.elationemr.com/api/2.0/bills/?limit=10&offset=10\",\n  \"previous\": \"https://sandbox.elationemr.com/api/2.0/bills/?limit=10\",\n  \"results\": [  // list of objects\n    { // See Object Definition },\n    // ...\n    { // See Object Definition },\n  ]\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"VFroUHsmrErlVI6nJ08Alwhri5RGCW\"\nauth_header = \"Bearer %s\" % (access_token)\n\nresp = requests.get(\"https://sandbox.elationemr.com/api/2.0/bills/\",\n                    headers={'Authorization': auth_header})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
        samples-languages:
        - python
      tags:
      - Bills
      security:
      - sec0: []
    post:
      summary: Create Bill
      description: Create a new bill for an associated visit note
      operationId: create-bill
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - service_location
              - visit_note
              - patient
              - practice
              - physician
              properties:
                service_location:
                  type: integer
                  description: Billing service location Id
                  format: int32
                visit_note:
                  type: integer
                  description: Visit Note Id
                  format: int32
                patient:
                  type: integer
                  description: Patient Id
                  format: int32
                practice:
                  type: integer
                  description: Practice Id
                  format: int32
                physician:
                  type: integer
                  description: Physician Id
                  format: int32
                cpts:
                  type: array
                  description: CPTs objects for bill
                  items:
                    properties:
                      cpt:
                        type: string
                        description: CPT code
                      modifier_1:
                        type: string
                        description: 'Two character long modifier string for slot #1'
                      modifier_2:
                        type: string
                        description: 'Two character long modifier string for slot #2'
                      modifier_3:
                        type: string
                        description: 'Two character long modifier string for slot #3'
                      modifier_4:
                        type: string
                        description: 'Two character long modifier string for slot #4'
                      unit_charge:
                        type: number
                        description: Charge for the procedure (e.g. 50.25 for $50.25)
                        format: double
                      units:
                        type: number
                        description: Number of procedure units to charge for
                        format: double
                      dxs:
                        type: array
                        description: Diagnoses to associate with the procedure
                        items:
                          properties:
                            icd10_code:
                              type: string
                              description: ICD10 code for the diagnosis
                            icd9_codes:
                              type: array
                              description: List of ICD9 codes to associate with the diagnosis
                              default: []
                              items:
                                type: string
                          required:
                          - icd10_code
                          type: object
                    required:
                    - cpt
                    type: object
                billing_provider:
                  type: integer
                  description: Billing Physician Id
                  format: int32
                rendering_provider:
                  type: integer
                  description: Rendering Physician Id
                  format: int32
                supervising_provider:
                  type: integer
                  description: Provider id for the provider who has undertaken primary responsibility for the patient's health
                  format: int32
                referring_provider:
                  type: object
                  description: Billing referring provider
                  properties:
                    name:
                      type: string
                    state:
                      type: string
                      enum:
                      - AK
                      - AL
                      - AR
                      - AS
                      - AZ
                      - CA
                      - CO
                      - CT
                      - DC
                      - DE
                      - FL
                      - GA
                      - GU
                      - HI
                      - IA
                      - ID
                      - IL
                      - IN
                      - KS
                      - KY
                      - LA
                      - MA
                      - MD
                      - ME
                      - MI
                      - MN
                      - MO
                      - MP
                      - MS
                      - MT
                      - NC
                      - ND
                      - NE
                      - NH
                      - NJ
                      - NM
                      - NV
                      - NY
                      - OH
                      - OK
                      - OR
                      - PA
                      - PR
                      - RI
                      - SC
                      - SD
                      - TN
                      - TX
                      - UM
                      - UT
                      - VA
                      - VI
                      - VT
                      - WA
                      - WI
                      - WV
                      - WY
                    npi:
                      type: string
                      description: 10 digit provider or group NPI
                      default: 'null'
                ordering_provider:
                  type: object
                  description: Provider who orders non-physician services for the patient
                  properties:
                    name:
                      type: string
                    state:
                      type: string
                      enum:
                      - AK
                      - AL
                      - AR
                      - AS
                      - AZ
                      - CA
                      - CO
                      - CT
                      - DC
                      - DE
                      - FL
                      - GA
                      - GU
                      - HI
                      - IA
                      - ID
                      - IL
                      - IN
                      - KS
                      - KY
                      - LA
                      - MA
                      - MD
                      - ME
                      - MI
                      - MN
                      - MO
                      - MP
                      - MS
                      - MT
                      - NC
                      - ND
                      - NE
                      - NH
                      - NJ
                      - NM
                      - NV
                      - NY
                      - OH
                      - OK
                      - OR
                      - PA
                      - PR
                      - RI
                      - SC
                      - SD
                      - TN
                      - TX
                      - UM
                      - UT
                      - VA
                      - VI
                      - VT
                      - WA
                      - WI
                      - WV
                      - WY
                    npi:
                      type: string
                      description: 10 digit provider or group NPI
                      default: 'null'
                prior_authorization:
                  type: string
                  description: prior authorization (50 chars)
                payment_amount:
                  type: number
                  description: Dollar amount of patient payment
                  format: double
                notes:
                  type: string
                  description: Additional Billing Notes
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      tags:
      - Bills
      security:
      - sec0: []
    servers:
    - url: https://sandbox.elationemr.com/api/2.0
  /bills/{id}/actions/release-to-pms/:
    patch:
      summary: Release a Bill To PMS
      description: ''
      operationId: release-a-bill-to-pms
      parameters:
      - name: id
        in: path
        schema:
          type: integer
          format: int64
        required: true
      - name: Authorization
        in: header
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: ''
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\n# releasing bill to the linked PMS (e.g. Kareo)\n\nresp = requests.patch(\n  \"https://sandbox.elationemr.com/api/2.0/bills/67176497153/actions/release-to-pms/\",\n  headers={'Authorization': auth_header,\n           'Content-type': 'application/json'}\n)\n\nprint resp.status_code\n\n"
        samples-languages:
        - python
      tags:
      - Bills
      security:
      - sec0: []
    servers:
    - url: https://sandbox.elationemr.com/api/2.0
  /api/2.0/bills/:
    get:
      operationId: bills_list
      parameters:
      - description: The id of the physician who is assigned to this bill, could be different from the signer.
        explode: false
        in: query
        name: assigned_physician
        schema:
          items:
            format: int64
            type: integer
          type: array
        style: form
      - description: Multiple values may be separated by commas.
        explode: false
        in: query
        name: bill_id
        schema:
          items:
            format: int64
            type: integer
          type: array
        style: form
      - in: query
        name: from_service_date
        schema:
          format: date-time
          type: string
      - description: Number of results to return per page.
        in: query
        name: limit
        required: false
        schema:
          type: integer
      - description: The initial index from which to return the results.
        in: query
        name: offset
        required: false
        schema:
          type: integer
      - description: Which field to use when ordering the results.
        in: query
        name: order_by
        required: false
        schema:
          type: string
      - description: Multiple values may be separated by commas.
        explode: false
        in: query
        name: patient
        schema:
          items:
            format: int64
            type: integer
          type: array
        style: form
      - description: The id of the practice that is responsible for the bill.
        explode: false
        in: query
        name: practice
        schema:
          items:
            format: int64
            type: integer
          type: array
        style: form
      - description: The id of the physician who signed off on the visit note that is associated with this bill.
        in: query
        name: signing_physician
        schema:
          type: string
      - in: query
        name: to_service_date
        schema:
          format: date-time
          type: string
      - description: The id of the visit note this bill is attached to.
        explode: false
        in: query
        name: visit_note_id
        schema:
          items:
            format: int64
            type: integer
          type: array
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBillList'
          description: ''
      security:
      - oauth2: []
      summary: List Bills
      tags:
      - Bills
      x-el8-docs-category: Billing API
      x-el8-docs-versions:
      - '2.1'
      - '2.0'
    post:
      operationId: bills_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillSingleInstance'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillSingleInstance'
          description: ''
      security:
      - oauth2: []
      summary: Create Bill
      tags:
      - Bills
      x-el8-docs-category: Billing API
      x-el8-docs-versions:
      - '2.1'
      - '2.0'
    servers:
    - description: Sandbox Server
      url: https://sandbox.elationemr.com
    - description: Production Server
      url: https://api.app.elationemr.com
  /api/2.0/bills/{id}/:
    get:
      operationId: bills_retrieve
      parameters:
      - in: path
        name: id
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bill'
          description: ''
      security:
      - oauth2: []
      summary: Retrieve Bill
      tags:
      - Bills
      x-el8-docs-category: Billing API
      x-el8-docs-versions:
      - '2.1'
      - '2.0'
    patch:
      operationId: bills_partial_update
      parameters:
      - in: path
        name: id
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBillUpdate'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillUpdate'
          description: ''
      security:
      - oauth2: []
      summary: Partially Update Bill
      tags:
      - Bills
      x-el8-docs-category: Billing API
      x-el8-docs-versions:
      - '2.1'
      - '2.0'
    servers:
    - description: Sandbox Server
      url: https://sandbox.elationemr.com
    - description: Production Server
      url: https://api.app.elationemr.com
  /api/2.0/bills/{id}/actions/release-to-pms/:
    patch:
      description: This is a simple PATCH endpoint that allows you to release a bill to your connected PMS. It accomplishes the same goal as pressing the "Send to PMS" button on the Elation Billing Report for a bill.
      operationId: bills_actions_release_to_pms_partial_update
      parameters:
      - in: path
        name: id
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillUpdate'
          description: ''
      security:
      - oauth2: []
      summary: Release a Bill to PMS
      tags:
      - Bills
      x-el8-docs-category: Billing API
      x-el8-docs-versions:
      - '2.1'
      - '2.0'
    servers:
  

# --- truncated at 32 KB (90 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/elation-health/refs/heads/main/openapi/elation-health-bills-api-openapi.yml