---
title: "Get a purchase by reference"
method: GET
path: "/v1/sdk/purchases/{purchaseRef}"
tags: ["Purchases"]
---

# Get a purchase by reference

`GET /v1/sdk/purchases/{purchaseRef}`

Retrieves a single purchase including plan snapshot, usage, and billing details.

## Path parameters

- `purchaseRef` string, required

## Response `200`

Purchase retrieved successfully

- SdkPurchaseResponse
  - `amount` number, required — Amount in USD cents (normalised for aggregation)
  - `autoRenew` boolean — Auto-renew enabled
  - `billingCycle` 'weekly' | 'monthly' | 'quarterly' | 'yearly' — Billing cycle
  - `cancellationReason` string — Cancellation reason
  - `cancelledAt` string — Cancelled at
  - `createdAt` string, required — Created at
  - `currency` string, required — Original payment currency code
  - `customerEmail` string — Customer email
  - `customerRef` string, required — Customer reference
  - `endDate` string — End date
  - `exchangeRate` number — Exchange rate from original currency to USD
  - `isRecurring` boolean, required — Is recurring
  - `metadata` object — Arbitrary metadata attached to the purchase
  - `nextBillingDate` string — Next billing date
  - `origin` 'paid' | 'free_default' | 'manual' | 'one_time' | 'credit_topup' | 'admin_assignment' — How the purchase originated
  - `originalAmount` number — Original amount in the payment currency (cents/pence)
  - `paidAt` string — Paid at timestamp
  - `planSnapshot` SdkPlanSnapshotDto
    - `currency` string, required — Currency code
    - `features` object, nullable — Plan features
    - `name` string — Plan name captured at purchase time
    - `options` object[] — Frozen composable pricing options captured at purchase time
    - `price` number, required — Headline plan price in minor units (e.g. cents)
    - `reference` string — Plan reference
  - `productName` string — Product name
  - `productRef` string — Product reference
  - `reference` string, required — Purchase reference
  - `requiresPayment` boolean — Whether the purchase requires payment
  - `startDate` string, required — Start date
  - `status` string, required — Purchase status
  - `usage` UsageBillingDto
    - `overageCost` number, required — Overage cost in cents
    - `overageUnits` number, required — Units exceeding the plan limit
    - `periodEnd` string — Period end date
    - `periodStart` string — Period start date
    - `used` number, required — Units consumed in current period

## Other responses

- `404` — Purchase not found

## Changes

- **2026-08-13** `e356f6586bf2` — 4 warning
  - removed the optional property `planSnapshot/allOf[#/components/schemas/SdkPlanSnapshotDto]/billingCycle` from the response with the `200` status
  - removed the optional property `planSnapshot/allOf[#/components/schemas/SdkPlanSnapshotDto]/includedUnits` from the response with the `200` status
  - removed the optional property `planSnapshot/allOf[#/components/schemas/SdkPlanSnapshotDto]/meterRef` from the response with the `200` status
  - removed the optional property `planSnapshot/allOf[#/components/schemas/SdkPlanSnapshotDto]/type` from the response with the `200` status
- **2026-08-05** `032545ac8d13` — 1 breaking, 4 warning, 3 info
  - removed the required property `planSnapshot/allOf[#/components/schemas/SdkPlanSnapshotDto]/planType` from the response with the `200` status
  - removed the optional property `planSnapshot/allOf[#/components/schemas/SdkPlanSnapshotDto]/creditsPerUnit` from the response with the `200` status
  - removed the optional property `planSnapshot/allOf[#/components/schemas/SdkPlanSnapshotDto]/freeUnits` from the response with the `200` status
  - removed the optional property `planSnapshot/allOf[#/components/schemas/SdkPlanSnapshotDto]/limit` from the response with the `200` status
  - …4 more
- …earlier changes not shown

[Full history](https://skmtc.dev/solvapay/apis/solvapay-rest-api/changes/v1/sdk/purchases/:purchaseRef/get.md)

---

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