---
title: "Get purchase"
method: GET
path: "/user/purchases/{id}"
tags: ["user-purchases"]
---

# Get purchase

`GET /user/purchases/{id}`

Get full detail for one buyer purchase.

Use this endpoint for order-tracking pages and deep purchase detail views.

What is included:
- Orders, items, shipments, adjustments, refunds, and linked cases.
- Seller user summaries.
- Item metadata resolved from catalog search infrastructure.

Rules:
- Purchase must belong to the authenticated user.
- Returns `404` when purchase is missing or not owned.

## Path parameters

- `id` string, required — Purchase ID

## Response `200`

Purchase

- object
  - `id` string, cuid2, required — Unique identifier for the purchase
  - `customerEmailAddress` string, email, required — Email address used for the purchase
  - `deliveryCharge` integer, required — Delivery charge in pence
  - `deliveryAddress` DeliveryAddress, required — Address where the order should be delivered
    - `name` string, required
    - `city` string, nullable
    - `country` string, nullable
    - `line1` string, nullable
    - `line2` string, nullable
    - `postal_code` string, nullable
    - `state` string, nullable
  - `subtotal` integer, required — Subtotal in pence
  - `total` integer, required — Total in pence
  - `serviceFee` integer, required — Service fee in pence
  - `status` 'ACTIVE' | 'REFUNDED' | 'COMPLETED' — Purchase status
  - `createdAt` string, date-time, required — Timestamp when the purchase was created
  - `updatedAt` string, date-time, required — Timestamp when the purchase was last updated
  - `invoiceId` string, nullable — Invoice identifier generated for the purchase
  - `user` object — User that purchased the items
    - `id` string, required — Unique identifier for the user
    - `username` string, required — Public username of the user
    - `joined` string, date-time — ISO timestamp when the user account was created
    - `avatar` string, uri — URL to the user's avatar image
    - `cover` string, uri — URL to the user's cover image
    - `profile` string — Information about the user
    - `reviews` integer, required — Total number of reviews the user has received
    - `rating` number, required — Confidence-based rating between 0 and 5
    - `score` number, required — Average rating between 0 and 5
    - `sales` integer, required — Total number of sales the user has made
    - `purchases` integer, required — Total number of purchases the user has made
  - `orders` object[], required — Orders included in the purchase
    - `id` string, cuid2, required — Unique identifier for the order
    - `sellerId` string, required — Seller user ID
    - `purchaseId` string, required — Purchase ID
    - `deliveryCharge` integer, required — Delivery charge in pence
    - `subtotal` integer, required — Subtotal in pence
    - `total` integer, required — Total in pence
    - `createdAt` string, date-time, nullable, required — Timestamp when the order was created
    - `updatedAt` string, date-time, nullable, required — Timestamp when the order was last updated
    - `shipments` Shipment[], required — Shipments for the order
      - `id` string, cuid2, required — Unique identifier for the shipment
      - `orderId` string, required
      - `trackingNumber` string, required — Carrier tracking number
      - `trackingStatus` string, required — Latest tracking status
      - `trackingStatusDetail` string, required — Detailed tracking status information
      - `trackingUrl` string, required — Public URL to track the shipment
      - `carrier` string, required — Shipping carrier
      - `createdAt` string, date-time, nullable, required — Timestamp when the shipment was created
      - `updatedAt` string, date-time, nullable, required — Timestamp when the shipment was last updated
      - `attachments` ShipmentAttachment[], required — Attachments linked to the shipment
        - `id` string, required — Image identifier
        - `url` string, uri, required — Public URL for the attachment
        - `hidden` boolean, required — True when the attachment is hidden from the buyer
    - `adjustments` object[] — Order-level adjustments (e.g., delivery refunds)
      - `amount` integer, required — Adjustment amount in pence, positive or negative
      - `comment` string, required — Reason for the adjustment
      - `createdAt` string, date-time, nullable, required — Timestamp when the adjustment was created
    - `reviews` object — Reviews for the order keyed by the reviewer's user ID with their rating
    - `user` UserSummary, required — A minimal representation of a user
      - `id` string, required — Unique identifier for the user
      - `username` string, required — Public username of the user
      - `joined` string, date-time — ISO timestamp when the user account was created
      - `avatar` string, uri — URL to the user's avatar image
      - `cover` string, uri — URL to the user's cover image
      - `profile` string — Information about the user
      - `reviews` integer, required — Total number of reviews the user has received
      - `rating` number, required — Confidence-based rating between 0 and 5
      - `score` number, required — Average rating between 0 and 5
      - `sales` integer, required — Total number of sales the user has made
      - `purchases` integer, required — Total number of purchases the user has made
  - `cases` object[], required — Cases associated with the purchase
    - `id` string, cuid2, required
    - `workflowId` string, required
    - `purchaseId` string, required
    - `reason` 'SNAD' | 'DAMAGED' | 'WRONG_ITEM' | 'NOT_RECEIVED' | 'OTHER' | 'CHARGEBACK', required
    - `comment` string, nullable
    - `status` 'OPEN' | 'REMEDIATION' | 'SETTLED' | 'CLOSED' | 'ESCALATED', required
    - `createdAt` string, date-time, nullable, required
    - `updatedAt` string, date-time, nullable, required
    - `outcomes` object[], required
      - `id` string, cuid2, required
      - `type` 'RETURN' | 'REFUND' | 'REPLACEMENT', required
      - `party` 'SELLER' | 'BUYER' | 'SYSTEM', required
      - `status` 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'RESOLVED', required
      - `caseId` string, cuid2, required
      - `amount` integer, required
      - `comment` string, nullable
      - `createdAt` string, date-time, nullable, required
      - `updatedAt` string, date-time, nullable, required
      - `deliveryAddress` unknown
    - `attachments` object[], required
      - `url` string, uri, required
      - `party` 'SELLER' | 'BUYER' | 'SYSTEM', required
      - `createdAt` union, required
        - string, date-time
        - string, date-time
  - `refunds` object[] — Refunds against this purchase (Stripe IDs omitted)
    - `amount` integer, required — Amount refunded in pence
    - `status` 'CREATED' | 'SUCCEEDED' | 'FAILED', required — Refund processing status
    - `initiator` 'BUYER' | 'SELLER' | 'SYSTEM' | 'EXTERNAL', required — Who initiated the refund
    - `comment` string, nullable — Reason/comment associated with the refund
    - `orderId` string, nullable — Related order ID if applicable
    - `createdAt` string, date-time, required — Timestamp when the refund was created

## Other responses

- `404` — Purchase not found

---

[API](https://skmtc.net/managem/apis/managem-api.md) · [All operations](https://skmtc.net/managem/apis/managem-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/managem/managem-api/versions/5ed45d6a9e2f/schema)
