---
title: "Create IPD Admission"
method: POST
path: "/appointments/v1/ipd/admission"
tags: ["IPD API"]
---

# Create IPD Admission

`POST /appointments/v1/ipd/admission`

### Overview

This API creates a single **IPD (In-Patient Department) admission**, scoped to the caller's business (`b-id`). An admission document captures the full in-patient episode — the patient, their attendee, insurance, bed and rateplan, the responsible doctor/department/facility, and the admission's lifecycle state.

The admission `id` is **server-generated** and the acting `oid` (from the `auth` header) is recorded as `actor_oid`; neither is accepted in the request body. The billing totals (`totalbilled`/`totalpaid`), timestamps (`created_at`/`updated_at`) and `archived` flag are also owned by the server and must not be supplied.

The admission's lifecycle is tracked with two fields: a coarse `stage` (`IN` → Recommended Admission, `AD` → active Admission, `DC` → Discharged) and a granular `status` within that stage. When omitted, `stage` defaults to the active inpatient stage (`AD`) and `status` defaults to `BED_ASSIGNED`.

The `admission_date` and `date` fields are optional ISO-8601 date-time strings and default to the server `now` when omitted. All timestamp fields are returned as ISO-8601 date-time strings.

Not every detail is mandatory: `insurance`, `procedures`, `notes`, `medico_legal_case` and `custom_attributes` are all optional.

## Headers

- `auth` string, required

## Request body

- object
  - `ipid` string, required — Patient IPD case number.
  - `pid` string, required
  - `patient` object, required
    - `id` string, required
    - `uuid` string, required
    - `poid` string, required
    - `formData` object[], required
      - `label` string
      - `type` string
      - `key` string
      - `value` unknown
    - `profile` object, required
      - `personal` object
        - `gender` string
        - `name` string
        - `phone` object
          - `c` string — Country code.
          - `n` string — Phone number.
        - `age` object
          - `dob` string — Date of birth.
          - `value` string
          - `month` string
  - `attendee` object, required
    - `id` string, required
    - `name` string, required
    - `phone` object, required
      - `c` string, required — Country code.
      - `n` string, required — Attendee mobile number (required).
    - `relation` object, required
      - `id` string, required
      - `label` string, required
  - `insurance` object
    - `pre_approved_id` string
    - `pre_approved_amount` number
    - `pre_approved` boolean
    - `number` string
    - `type` string
    - `payment_type` string
    - `insurance_provider` string
    - `insurance_name` string
    - `policy_id_picture` string
    - `medical_claim` string
    - `coverage_type` string[]
    - `sum_insured` string
    - `tpa` string
  - `procedures` object[]
    - `id` string, required
    - `name` string, required
    - `date` string
    - `notes` string
  - `refer` object, required — Referring doctor (id + name).
    - `id` string, required
    - `name` string, required
  - `doc` object, required — The responsible doctor (id + name).
    - `id` string, required
    - `name` string, required
  - `docid` string, required
  - `category` object, required
    - `id` string, required
    - `name` string, required
  - `department` object, required
    - `id` string, required
    - `name` string, required
  - `facility` object, required
    - `id` string, required
    - `name` string, required
  - `facilityid` string, required
  - `bed` string, required
  - `duration` object, required
    - `value` number, required
    - `unit` string, required
  - `rateplan` object, required
    - `id` string, required
    - `name` string, required
    - `inclusions` object[], required
      - `id` string
      - `name` string
      - `rate` number
  - `notes` string
  - `medico_legal_case` boolean
  - `custom_attributes` object — Map of custom attribute keys to arrays of string values.
  - `stage` 'IN' | 'AD' | 'DC' — Coarse lifecycle stage; defaults to the active inpatient stage (`AD`).
  - `status` 'ADMISSION_RECOMMENDED' | 'ADMISSION_ON_HOLD' | 'ADMISSION_CONFIRMED' | 'ADMISSION_CANCELLED' | 'BED_ASSIGNED' | 'UNDER_CARE' | 'NOT_RECEIVED' | 'FIT_FOR_DISCHARGE' | 'DISCHARGE_INITIATED' | 'REFERRAL_INITIATED' | 'LAMA_IN_PROGRESS' | 'DAMA_IN_PROGRESS' | 'DEATH_BEING_RECORDED' | 'PATIENT_MISSING' | 'DISCHARGED' | 'LAMA_COMPLETED' | 'DAMA_COMPLETED' | 'REFERRED' | 'DECEASED' | 'ABSCONDED' — Granular lifecycle status; defaults to `BED_ASSIGNED`.
  - `admission_date` string — ISO-8601 date-time; defaults to the server now.
  - `date` string — ISO-8601 date-time; defaults to the server now.

## Response `201`

Created — the newly created IPD admission.

- object
  - `id` string — Server-generated admission document id.
  - `bid` string — Business id the admission belongs to.
  - `admission_date` string — Admission date-time as an ISO-8601 string.
  - `discharge_date` string — Discharge date-time as an ISO-8601 string. Present once discharged.
  - `ipid` string — Patient IPD case number.
  - `attendee` object
    - `id` string
    - `name` string
    - `phone` object
      - `c` string — Country code.
      - `n` string — Phone number.
    - `relation` object
      - `id` string
      - `label` string
  - `patient` object
    - `id` string
    - `uuid` string
    - `poid` string
    - `formData` object[]
      - `label` string
      - `type` string
      - `key` string
      - `value` unknown
    - `profile` object
      - `personal` object
        - `gender` string
        - `name` string
        - `phone` object
        - `age` object
  - `insurance` object
    - `number` string
    - `type` string
    - `payment_type` string
    - `insurance_provider` string
    - `insurance_name` string
    - `pre_approved` boolean
    - `pre_approved_amount` number
    - `sum_insured` string
    - `tpa` string
  - `procedures` object[]
    - `id` string
    - `name` string
    - `date` string
    - `notes` string
  - `refer` object
    - `id` string
    - `name` string
  - `doc` object — The responsible doctor (id + name).
    - `id` string
    - `name` string
  - `notes` string
  - `medico_legal_case` boolean
  - `stage` 'IN' | 'AD' | 'DC' — Coarse lifecycle stage of the admission.
  - `status` 'ADMISSION_RECOMMENDED' | 'ADMISSION_ON_HOLD' | 'ADMISSION_CONFIRMED' | 'ADMISSION_CANCELLED' | 'BED_ASSIGNED' | 'UNDER_CARE' | 'NOT_RECEIVED' | 'FIT_FOR_DISCHARGE' | 'DISCHARGE_INITIATED' | 'REFERRAL_INITIATED' | 'LAMA_IN_PROGRESS' | 'DAMA_IN_PROGRESS' | 'DEATH_BEING_RECORDED' | 'PATIENT_MISSING' | 'DISCHARGED' | 'LAMA_COMPLETED' | 'DAMA_COMPLETED' | 'REFERRED' | 'DECEASED' | 'ABSCONDED' — Granular lifecycle status within the current stage.
  - `duration` object
    - `value` number
    - `unit` string
  - `bed` string
  - `rateplan` object
    - `id` string
    - `name` string
    - `inclusions` object[]
      - `id` string
      - `name` string
      - `rate` number
  - `docid` string
  - `category` object
    - `id` string
    - `name` string
  - `date` string
  - `department` object
    - `id` string
    - `name` string
  - `pid` string
  - `created_at` string — Creation date-time as an ISO-8601 string.
  - `updated_at` string — Last-update date-time as an ISO-8601 string.
  - `facility` object
    - `id` string
    - `name` string
  - `facilityid` string
  - `totalbilled` number — Total amount billed for the admission.
  - `totalpaid` number — Total amount paid against the admission.
  - `totalbilled_updated_at` string
  - `totalpaid_updated_at` string
  - `custom_attributes` object — Map of custom attribute keys to arrays of string values.
  - `clearances_summary` object — Denormalized discharge-clearance state.
    - `statuses` object — One entry per clearance type; each PENDING or COMPLETED.
    - `completed_count` integer
    - `total` integer
    - `all_complete` boolean
  - `archived` boolean
  - `actor_oid` string — oid of the actor that created/last acted on the admission.

## Other responses

- `400` — Bad Request — the request body failed validation.
- `401` — Unauthorized

---

[API](https://skmtc.net/eka/apis/eka-developer-apis.md) · [All operations](https://skmtc.net/eka/apis/eka-developer-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/eka/eka-developer-apis/revisions/9ea23456f722/schema)
