> ## Documentation Index
> Fetch the complete documentation index at: https://developer.eka.care/llms.txt
> Use this file to discover all available pages before exploring further.

# Return Dawakhana Order

> 
### Overview

This API **returns medicines** against a dispatched Dawakhana order of your workspace. Only an order in status `DISPATCHED` or `PARTIALLY_RETURNED` can be returned, so an order can be returned in several steps.

For each line sent, `returnQty` is capped at the quantity still outstanding (fulfilled minus already returned); lines with nothing left to return are skipped. A line whose whole fulfilled quantity is back becomes `RETURNED`. The order moves to `RETURNED` when every fulfilled line is fully returned, otherwise to `PARTIALLY_RETURNED`.

The returned amount (`returnQty × rate`) is **deducted from the admission's bill** and added to the order's `returnedTotal`. A return order (`kind: return`, with `parentOrderId` set to this order) is also created. The response is the original order with its updated lines.



## OpenAPI

````yaml post /ipd/v1/service/dawakhana/orders/{order_id}/return
openapi: 3.0.0
info:
  title: Ekacare API & Webhook Documentation
  contact: {}
  version: '1.0'
servers:
  - description: Production
    url: https://api.eka.care
  - description: Stage/Sandbox
    url: https://api.dev.eka.care
security: []
paths:
  /ipd/v1/service/dawakhana/orders/{order_id}/return:
    post:
      tags:
        - IPD API
      summary: Return Dawakhana Order
      description: >-

        ### Overview


        This API **returns medicines** against a dispatched Dawakhana order of
        your workspace. Only an order in status `DISPATCHED` or
        `PARTIALLY_RETURNED` can be returned, so an order can be returned in
        several steps.


        For each line sent, `returnQty` is capped at the quantity still
        outstanding (fulfilled minus already returned); lines with nothing left
        to return are skipped. A line whose whole fulfilled quantity is back
        becomes `RETURNED`. The order moves to `RETURNED` when every fulfilled
        line is fully returned, otherwise to `PARTIALLY_RETURNED`.


        The returned amount (`returnQty × rate`) is **deducted from the
        admission's bill** and added to the order's `returnedTotal`. A return
        order (`kind: return`, with `parentOrderId` set to this order) is also
        created. The response is the original order with its updated lines.
      operationId: ReturnIpdDawakhanaOrder
      parameters:
        - name: auth
          in: header
          required: true
          schema:
            type: string
          example: >-
            eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJiX2lkIjoiMTIzNDU2IiwiY2xpZW50X2lkIjoiNzg5MCIsImV4dHJhX2ZpZWxkIjoiZXh0cmFfZmllbGRfZGF0YSJ9.q9KzBI6f4l3OyM_EkB5Quq0l9EEMFh5JS-fx3F_PHUM
        - name: order_id
          in: path
          description: Id of the dispatched Dawakhana order.
          required: true
          style: simple
          schema:
            type: string
          example: 66f1cd07e4b0a1b2c3d4ef0a
      requestBody:
        description: The quantity being returned per line.
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
                - lines
              properties:
                lines:
                  type: array
                  description: One entry per order line being returned.
                  items:
                    type: object
                    additionalProperties: false
                    required:
                      - itemId
                      - returnQty
                    properties:
                      itemId:
                        type: string
                        description: Id of the order line.
                      returnQty:
                        type: number
                        description: >-
                          Quantity being returned. Capped at the quantity still
                          outstanding.
                reason:
                  type: string
                  description: Reason for the return.
            example:
              lines:
                - itemId: 66f1cd07e4b0a1b2c3d4ef0b
                  returnQty: 4
              reason: Patient discharged early
      responses:
        '200':
          description: OK — the original order with its updated lines.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IpdDawakhanaOrderResponse'
              example:
                success: true
                data:
                  id: 66f1cd07e4b0a1b2c3d4ef0a
                  admissionId: a1b2c3d4-5678-90ab-cdef-1234567890ab
                  kind: order
                  orderNumber: DW-7Q2K9F3M
                  status: PARTIALLY_RETURNED
                  createdBy: '161467756044203'
                  isCollected: false
                  provider: dawakhana
                  billedTotal: 45
                  fulfilmentType: FULL
                  returnedBy: '161467756044204'
                  returnedByName: Meena Iyer
                  returnedAt: '2026-10-07T16:00:00.000Z'
                  returnReason: Patient discharged early
                  returnedTotal: 18
                  createdAt: '2026-10-07T12:10:00.000Z'
                  updatedAt: '2026-10-07T16:00:00.000Z'
                  lines:
                    - id: 66f1cd07e4b0a1b2c3d4ef0b
                      name: Paracetamol 500mg Tablet
                      orderedQty: 10
                      fulfilledQty: 10
                      rate: 4.5
                      amount: 45
                      returnedQty: 4
                      lineStatus: FULFILLED
        '400':
          description: >-
            Bad Request. Returns `{ success: false, error }` when the order is
            not in status `DISPATCHED` or `PARTIALLY_RETURNED` or the `order_id`
            is not a valid id, or `{ message }` when the request body failed
            schema validation (the `message` is currently empty).
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/IpdServiceFailure'
                  - $ref: '#/components/schemas/IpdServiceError'
              example:
                success: false
                error: Only a dispatched order can be returned
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IpdServiceError'
        '404':
          description: Not Found — the order was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IpdServiceFailure'
              example:
                success: false
                error: Order not found
      deprecated: false
components:
  schemas:
    IpdDawakhanaOrderResponse:
      title: IpdDawakhanaOrderResponse
      type: object
      properties:
        success:
          type: boolean
        data:
          $ref: '#/components/schemas/IpdDawakhanaOrder'
    IpdServiceFailure:
      title: IpdServiceFailure
      type: object
      properties:
        success:
          type: boolean
          description: Always `false`.
        error:
          type: string
          description: Human-readable error message.
    IpdServiceError:
      title: IpdServiceError
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message.
    IpdDawakhanaOrder:
      title: IpdDawakhanaOrder
      allOf:
        - $ref: '#/components/schemas/IpdOrder'
        - type: object
          properties:
            lines:
              type: array
              description: The order lines.
              items:
                $ref: '#/components/schemas/IpdDawakhanaLine'
    IpdOrder:
      title: IpdOrder
      type: object
      properties:
        id:
          type: string
          description: Order id.
        admissionId:
          type: string
          description: Id of the IPD admission the order is for.
        kind:
          type: string
          enum:
            - order
            - return
          description: '`order`, or `return` for a return order placed against an order.'
        parentOrderId:
          type: string
          description: For a return order, the id of the order it was placed against.
        externalReturnId:
          type: string
          description: For an eVital return order, eVital's return id.
        orderNumber:
          type: string
          description: >-
            Display order number (Dawakhana's own number, or eVital's order
            number).
        ipdId:
          type: string
          description: Patient IPD case number.
        status:
          type: string
          enum:
            - CREATED
            - DISPATCHED
            - CANCELLED
            - RETURNED
            - PARTIALLY_RETURNED
          description: Order status.
        createdBy:
          type: string
          description: Id of the user who placed the order.
        createdByName:
          type: string
          description: Name of the user who placed the order.
        rxId:
          type: string
          description: Id of the prescription the order is based on.
        isCollected:
          type: boolean
          description: '`true` when the patient has collected the medicines.'
        collectedBy:
          type: string
          description: Id of the user who marked the order collected.
        collectedByName:
          type: string
          description: Name of the user who marked the order collected.
        collectedAt:
          type: string
          description: Date-time the order was marked collected, as an ISO-8601 string.
        provider:
          type: string
          enum:
            - evital
            - dawakhana
          description: Pharmacy provider fulfilling the order.
        pharmacyId:
          type: string
          description: Id of the fulfilling pharmacy.
        patientName:
          type: string
          description: Name of the patient.
        mobile:
          type: string
          description: Mobile number of the patient.
        patientId:
          type: string
          description: Id of the patient.
        doctorName:
          type: string
          description: Name of the prescribing doctor.
        deliveryType:
          type: string
          enum:
            - pickup
            - delivery
          description: How the medicines reach the patient.
        rxPdfUrl:
          type: string
          description: URL of the prescription PDF.
        notes:
          type: string
          description: Order-level remarks.
        billedTotal:
          type: number
          description: Amount billed for the order, set when it is dispatched.
        fulfilmentType:
          type: string
          enum:
            - FULL
            - PARTIAL
          description: Whether the dispatched order was fulfilled fully or partially.
        dispatchNote:
          type: string
          description: Note added when the order was dispatched.
        dispatchedBy:
          type: string
          description: Id of the user who dispatched the order.
        dispatchedByName:
          type: string
          description: Name of the user who dispatched the order.
        dispatchedAt:
          type: string
          description: Date-time the order was dispatched, as an ISO-8601 string.
        cancelledBy:
          type: string
          description: Id of the user who cancelled the order.
        cancelledByName:
          type: string
          description: Name of the user who cancelled the order.
        cancelledAt:
          type: string
          description: Date-time the order was cancelled, as an ISO-8601 string.
        cancelReason:
          type: string
          description: Reason the order was cancelled.
        returnedBy:
          type: string
          description: Id of the user who returned the order.
        returnedByName:
          type: string
          description: Name of the user who returned the order.
        returnedAt:
          type: string
          description: Date-time the order was returned, as an ISO-8601 string.
        returnReason:
          type: string
          description: Reason the order was returned.
        returnedTotal:
          type: number
          description: Total amount returned against the order.
        createdAt:
          type: string
          description: Created date-time as an ISO-8601 string.
        updatedAt:
          type: string
          description: Last-updated date-time as an ISO-8601 string.
    IpdDawakhanaLine:
      title: IpdDawakhanaLine
      type: object
      properties:
        id:
          type: string
          description: Order line id. Use it as `itemId` when dispatching or returning.
        medicineId:
          type: string
          description: Id of the medicine.
        name:
          type: string
          description: Name of the medicine.
        genericName:
          type: string
          description: Generic (molecule) name of the medicine.
        orderedQty:
          type: number
          description: Quantity ordered.
        directions:
          type: string
          description: Dosage directions.
        fulfilledQty:
          type: number
          description: Quantity given, set at dispatch.
        rate:
          type: number
          description: Price per unit, set at dispatch.
        amount:
          type: number
          description: Line total (`fulfilledQty × rate`), set at dispatch.
        returnedQty:
          type: number
          description: Total quantity returned against this line.
        lineStatus:
          type: string
          enum:
            - PENDING
            - FULFILLED
            - PARTIAL
            - UNAVAILABLE
            - SUBSTITUTED
            - RETURNED
          description: Status of the line.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.