---
title: "Get order by ID"
method: GET
path: "/orders/{id}"
tags: ["Order Controller"]
---

# Get order by ID

`GET /orders/{id}`

Get complete order details by ID. When called with a valid Bearer token, also returns draftEmailAttachments.

## Path parameters

- `id` number, required

## Response `200`

- OrderDetailsResponseDto
  - `id` number, required — Order ID
  - `titleNumber` string — Title number
  - `instrumentCopyNumber` string — Instrument copy number
  - `customerEmail` string — Customer email
  - `customerId` number, required — Customer ID
  - `emailValid` boolean — Email valid
  - `tenure` string — Tenure type
  - `refundReason` string — Refund reason
  - `refundedAmount` number, required — Total refunded amount
  - `refundDateTime` string, date-time — Refund date time
  - `address1` string — Address line 1
  - `flatUnit` string — Flat/Unit
  - `municipality` string — Municipality
  - `registry` string — Registry
  - `cruIdufir` string — CRU / IDUFIR
  - `identificationType` string — Identification type
  - `identificationNumber` string — Identification number
  - `nameAsPerIdentification` string — Name as per identification
  - `city` string — City
  - `suburb` string — Suburb
  - `county` string — County
  - `postCode` string — Post code
  - `country` string — Country
  - `countryId` number — Country ID
  - `stateId` number — State ID
  - `stateName` string — State Name
  - `currency` string — Currency code
  - `currencySymbol` string — Currency symbol
  - `totalAmount` number, required — Total order amount
  - `orderStatus` OrderStatusInfoDto, required
    - `id` number, required — Order status ID
    - `status` string, required — Order status name
    - `backgroundColor` string — Background color
    - `textColor` string — Text color
    - `borderColor` string — Border color
  - `orderDateTime` string, date-time — Order date time
  - `products` OrderProductResponseDto[], required — Products in the order
    - `productId` number, required — Product ID
    - `productName` string, required — Product name
    - `price` number, required — Product price
  - `shippingAddress1` string — Shipping address line 1
  - `shippingAddress2` string — Shipping address line 2
  - `shippingCity` string — Shipping city
  - `shippingPostcode` string — Shipping postcode
  - `shippingCounty` string — Shipping county
  - `shippingPhone` string — Shipping phone number
  - `shippingFirstName` string — Shipping first name
  - `shippingLastName` string — Shipping last name
  - `isExpressDelivery` boolean, required — Is express delivery
  - `isRequestedPaperCopy` boolean, required — Customer requested paper copy
  - `utmCampaign` string — UTM Campaign
  - `utmTerm` string — UTM Term
  - `utmContent` string — UTM Content
  - `utmSource` string — UTM Source
  - `utmMedium` string — UTM Medium
  - `orderLng` string — Order language
  - `paymentMethod` string — Payment method used
  - `ghostOrderId` number — Ghost order ID associated with this order
  - `childOrderIds` number[] — All descendant order IDs (full subtree, including nested upsells), excluding orders in System Generated status
  - `createdAt` string, date-time, required — Created at timestamp
  - `updatedAt` string, date-time, required — Updated at timestamp
  - `documentAccessLink` string — Permanent document access link
  - `isCertified` boolean — Whether the order contains certified products
  - `applicationNumber` string, nullable — Land registry application number (set via send-email when certified; not shown in email body)
  - `upSellSource` 'ORDER' | 'EMAIL' — Source of upsell order (ORDER=from order page, EMAIL=from email)
  - `upSellEntryChannel` string — How the customer reached the tracking page before buying (Document Link upsells)
  - `upSellAttribution` object — Extra attribution detail for Document Link upsells (reminder day/time/tz, email type, etc.)
  - `parentOrderId` number — Parent order ID if this is an upsell
  - `stopAbandonmentEmails` boolean, required — Whether abandonment emails are stopped for this order
  - `isAbandonmentRecovered` boolean, required — Whether this order was successfully paid after an abandonment email was sent
  - `hasSwimmingPool` boolean, required — Whether the property has a swimming pool
  - `trackingLink` string — Tracking link for the order
  - `documentLinkValidUntil` string, date-time — Extended document link validity (UTC). Null when only the default tracking expiry window applies.
  - `draftEmailAttachments` object[] — Draft email attachments staged for this order. Only returned when the request is authenticated (admin/employee). Cleared automatically when the email is sent.
    - `filename` string
    - `url` string
    - `contentType` string
    - `size` number, nullable
  - `billingEmail` string — Billing email for root summary: latest attempt for Stripe/PayPal; for Revolut, earliest successful attempt when multiple rows exist.
  - `transactionPaymentId` string — Gateway transaction id for root summary: latest attempt for Stripe/PayPal; for Revolut, earliest successful attempt.
  - `transactionDashboardUrl` string — Dashboard URL for root summary: latest attempt for Stripe/PayPal; for Revolut, earliest successful attempt.
  - `payments` OrderDetailsPaymentDto[], required — Payment details for the order
    - `id` number, required — Payment ID
    - `paymentProvider` string, required — Payment provider (stripe, paypal, etc.)
    - `amount` number, required — Payment amount
    - `currency` string, required — Payment currency
    - `status` string, required — Payment status
    - `paymentSource` string — Payment method/source
    - `billingEmail` string — Billing email captured by payment gateway
    - `transactionPaymentId` string — Gateway transaction/payment identifier (e.g. Stripe PaymentIntent ID pi_...)
    - `transactionDashboardUrl` string — Full URL to view this transaction in the payment gateway dashboard
    - `paymentMethod` string — User-friendly payment method name
    - `paymentOrigin` string — Payment origin
    - `cardBrand` string — Card brand (visa, mastercard, etc.)
    - `cardLast4` string — Last 4 digits of card
    - `createdAt` string, date-time, required — Payment creation timestamp
  - `refundHistory` OrderRefundRecordDto[] — Full refund history for this order, newest first
    - `id` number, required — Refund record ID
    - `amount` number, required — Amount refunded in this action
    - `method` 'manual' | 'gateway' | 'dispute', required — manual = admin manually refunded; gateway = via payment provider
    - `reason` string — Reason given for this refund
    - `performedByUserId` number — User ID who performed the refund
    - `performedByName` string — Full name of the user who performed the refund
    - `source` 'admin_panel' | 'webhook', required — admin_panel = triggered from dashboard; webhook = from gateway
    - `isFullRefund` boolean, required — Was the order fully refunded after this action?
    - `totalRefundedAfter` number, required — Business-visible total refunded amount on the order after this action
    - `remainingAfter` number — Remaining refundable amount after this action
    - `currency` string — Currency code
    - `gatewayRefundId` string — Gateway-assigned refund ID
    - `createdAt` string, date-time, required — When this refund was recorded
  - `refundSummary` OrderRefundSummaryDto
    - `totalCount` number, required — Total number of refund actions on this order
    - `manualCount` number, required — Number of manual refunds
    - `gatewayCount` number, required — Number of gateway refunds
    - `disputeCount` number — Number of dispute records

---

[API](https://skmtc.dev/findmydocument/apis/land-registry-api.md) · [All operations](https://skmtc.dev/findmydocument/apis/land-registry-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/findmydocument/land-registry-api/revisions/b55a990514fb/schema)
