---
title: "POST /PurchaseOrders/{id}/cancel"
method: POST
path: "/PurchaseOrders/{id}/cancel"
tags: ["PurchaseOrders"]
---

# POST /PurchaseOrders/{id}/cancel

`POST /PurchaseOrders/{id}/cancel`

## Request

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

## Path parameters

- `id` string, required

## Response `200`

OK

- PurchaseOrderDto
  - `id` string
  - `overdraftSettlements` OverdraftSettlementDto[]: On a receive response only: what each received line paid off of its item's open overdraft lot (ITE-1410). Empty otherwise.
    - `overdraftLotId` string
    - `sourceLotId` string, nullable: The lot whose stock paid it; null for a write-off by stock count.
    - `quantity` union
      - number, double
      - string, double
    - `overdraftBalance` union: The overdraft lot's balance afterwards; 0 means it is settled and closed.
      - number, double
      - string, double
    - `dispenseCount` union
      - integer
      - string, int32
    - `firstDispensedAt` string, date-time, nullable
    - `lastDispensedAt` string, date-time, nullable
  - `overdraftSettlementApprovalIds` string[]: Review mode (ITE-1410): the overdraft-settlement approvals this receive filed instead of settling. Empty in Automatic mode.
  - `orderNumber` string
  - `vendorId` string
  - `vendor` VendorSummaryDto
    - `id` string
    - `name` string
    - `code` string, nullable
  - `status` string
  - `orderDate` string, date-time
  - `expectedDeliveryDate` string, date-time, nullable
  - `receivedDate` string, date-time, nullable
  - `subTotal` union
    - number, double
    - string, double
  - `taxAmount` union
    - number, double
    - string, double
  - `shippingAmount` union
    - number, double
    - string, double
  - `totalAmount` union
    - number, double
    - string, double
  - `externalOrderNumber` string, nullable
  - `trackingNumber` string, nullable
  - `notes` string, nullable
  - `createdBy` DEAUserSummaryDto
    - `id` string
    - `displayName` string
    - `firstName` string, nullable
    - `lastName` string, nullable
    - `email` string
  - `approvedBy` DEAUserSummaryDto
    - `id` string
    - `displayName` string
    - `firstName` string, nullable
    - `lastName` string, nullable
    - `email` string
  - `items` PurchaseOrderItemDto[]
    - `id` string
    - `purchaseOrderId` string
    - `inventoryItemId` string
    - `inventoryItem` InventoryItemSummaryDto
      - `id` string
      - `name` string
      - `sku` string, nullable
      - `category` string
      - `trackLots` boolean
      - `totalOnHand` union
        - integer
        - string, int32
      - `reorderPoint` union
        - integer
        - string, int32
    - `quantityOrdered` union
      - number, double
      - string, double
    - `quantityReceived` union
      - number, double
      - string, double
    - `quantityBackordered` union
      - number, double
      - string, double
    - `unitCost` union
      - number, double
      - string, double
    - `lineTotal` union
      - number, double
      - string, double
    - `vatCategory` string, nullable: UK VAT category (standard/reduced/zero/exempt) for VAT-mode clinics; null otherwise.
    - `vatAmount` union: Input VAT on the line. 0 outside VAT mode.
      - number, double
      - string, double
    - `lotNumber` string, nullable
    - `expirationDate` string, date-time, nullable
    - `containerId` string, nullable
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## Changes

- **2026-10-28** `099cf36186e0`: 6 info
  - added the optional property `items/items/vatAmount` to the response with the `200` status (media type: text/plain)
  - added the optional property `items/items/vatAmount` to the response with the `200` status (media type: application/json)
  - added the optional property `items/items/vatAmount` to the response with the `200` status (media type: text/json)
  - added the optional property `items/items/vatCategory` to the response with the `200` status (media type: text/plain)
  - …2 more
- **2026-10-21** `85ee96c0bb96`: 6 info
  - added the optional property `overdraftSettlementApprovalIds` to the response with the `200` status (media type: text/plain)
  - added the optional property `overdraftSettlementApprovalIds` to the response with the `200` status (media type: application/json)
  - added the optional property `overdraftSettlementApprovalIds` to the response with the `200` status (media type: text/json)
  - added the optional property `overdraftSettlements` to the response with the `200` status (media type: text/plain)
  - …2 more

[Operation history](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/changes/PurchaseOrders/:id/cancel/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)
