---
title: "Dispense an Approved request from inventory at pickup (Dispense permission). Runs the shared dispense engine and fulfills the request's own Pending line; works for both Rx and phoned-in OTC requests."
method: POST
path: "/medication-requests/{id}/dispense"
tags: ["MedicationRequests"]
---

# Dispense an Approved request from inventory at pickup (Dispense permission). Runs the shared dispense engine and fulfills the request's own Pending line; works for both Rx and phoned-in OTC requests.

`POST /medication-requests/{id}/dispense`

## Request

- Base URL: `https://api.clinicos.vet/backend/business`
- URL: `https://api.clinicos.vet/backend/business/medication-requests/{id}/dispense`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/docs/medication-requests/:id/dispense/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `id` string, required

## Request body

- DispenseMedicationRequestDto: Dispense an Approved request from inventory (pickup).
  - `lotId` string, nullable
  - `locationId` string, nullable
  - `quantity` union: Confirmed quantity at dispense; defaults to the approved quantity.
    - number, double
    - string, double
  - `witnessUserId` string, nullable: Witness for controlled-substance dispenses. Required by the dispense engine (non-overridable) whenever the item has a DEA book.
  - `containerId` string, nullable: Physical container to draw from (controlled items, ITE-157).
  - `notes` string, nullable
  - `collectorName` string, nullable
  - `collectorIdChecked` boolean, nullable
  - `overrideValidation` boolean: The user confirmed dispensing past stock (ITE-1410, Warn mode) with string? DispenseMedicationRequestDto.OverrideReason. This door already waives VCPR / quantity on the user's behalf; this only covers a stock shortfall going on the overdraft lot.
  - `overrideReason` string, nullable

## Response `200`

OK

- MedicationRequestResultDto
  - `success` boolean
  - `prescriptionId` string, nullable
  - `transactionId` string, nullable
  - `patientId` string
  - `message` string
  - `invoiceLineItemId` string, nullable: Populated when the request supplied string? CreateMedicationRequestDto.InvoiceId and an estimate line item was created in the same call.
  - `invoiceId` string, nullable: The estimate the dispense was attached to — either the one the caller supplied or one auto-created/resolved server-side. Lets a client that had no estimate of its own adopt the server's estimate instead of failing to reconcile the line.
  - `estimateId` string, nullable: The estimate the request's billable line was placed on at creation (in-house / same-day requests). Null for external (non-billable) requests.
  - `estimateLineItemId` string, nullable: The Pending estimate line created for this request at creation, if any.
  - `medicationRequestId` string, nullable: The lifecycle MedicationRequest recorded for this operation. The compound endpoint applies capture → approve → dispense as far as the caller's permissions allow; string? MedicationRequestResultDto.RequestStatus says where it stopped.
  - `requestStatus` string, nullable: Lifecycle status after this call: requested | approved | dispensed.

## Other responses

- `400`: Bad Request
- `409`: Conflict

## Changes

- **2026-10-21** `85ee96c0bb96`: 6 info
  - added the new optional request property `overrideReason` (media type: application/json)
  - added the new optional request property `overrideReason` (media type: text/json)
  - added the new optional request property `overrideReason` (media type: application/*+json)
  - added the new optional request property `overrideValidation` (media type: application/json)
  - …2 more

[Operation history](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/changes/medication-requests/:id/dispense/post.md)

---

[API](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1.md) - [All operations](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/revisions/099cf36186e0?raw)
