Skip to main content
GET
/
v1
/
sdk
/
purchases
/
{purchaseRef}
Get a purchase by reference
curl --request GET \
  --url https://api.example.com/v1/sdk/purchases/{purchaseRef}
import requests

url = "https://api.example.com/v1/sdk/purchases/{purchaseRef}"

response = requests.get(url)

print(response.text)
const options = {method: 'GET'};

fetch('https://api.example.com/v1/sdk/purchases/{purchaseRef}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/sdk/purchases/{purchaseRef}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.example.com/v1/sdk/purchases/{purchaseRef}"

req, _ := http.NewRequest("GET", url, nil)

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.example.com/v1/sdk/purchases/{purchaseRef}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.example.com/v1/sdk/purchases/{purchaseRef}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
{
  "amount": 9900,
  "createdAt": "<string>",
  "currency": "GBP",
  "customerEmail": "customer@example.com",
  "customerRef": "cus_3C4D5E6F",
  "isRecurring": true,
  "productRef": "prd_1A2B3C4D",
  "reference": "pur_1A2B3C4D",
  "startDate": "<string>",
  "status": "active",
  "autoRenew": true,
  "cancellationReason": "<string>",
  "cancelledAt": "<string>",
  "endDate": "<string>",
  "exchangeRate": 1.3082,
  "metadata": {},
  "nextBillingDate": "<string>",
  "originalAmount": 10000,
  "paidAt": "<string>",
  "planSnapshot": {
    "currency": "USD",
    "planType": "recurring",
    "price": 2999,
    "billingCycle": "monthly",
    "creditsPerUnit": 1,
    "features": {},
    "freeUnits": 100,
    "limit": 5000,
    "limits": {},
    "meterRef": "mtr_1A2B3C4D",
    "name": "Pro Monthly",
    "reference": "pln_1A2B3C4D"
  },
  "productName": "API Gateway Manager",
  "usage": {
    "overageCost": 0,
    "overageUnits": 0,
    "used": 150,
    "periodEnd": "2025-11-01T00:00:00Z",
    "periodStart": "2025-10-01T00:00:00Z"
  }
}

Path Parameters

purchaseRef
string
required

Purchase reference or ID

Example:

"pur_1A2B3C4D"

Response

Purchase retrieved successfully

amount
number
required

Amount in USD cents (normalised for aggregation)

Example:

9900

createdAt
string
required

Created at

currency
string
required

Original payment currency code

Example:

"GBP"

customerEmail
string
required

Customer email

Example:

"customer@example.com"

customerRef
string
required

Customer reference

Example:

"cus_3C4D5E6F"

isRecurring
boolean
required

Is recurring

Example:

true

productRef
string
required

Product reference

Example:

"prd_1A2B3C4D"

reference
string
required

Purchase reference

Example:

"pur_1A2B3C4D"

startDate
string
required

Start date

status
string
required

Purchase status

Example:

"active"

autoRenew
boolean

Auto-renew enabled

billingCycle
enum<string>

Billing cycle

Available options:
weekly,
monthly,
quarterly,
yearly
cancellationReason
string

Cancellation reason

cancelledAt
string

Cancelled at

endDate
string

End date

exchangeRate
number

Exchange rate from original currency to USD

Example:

1.3082

metadata
object

Arbitrary metadata attached to the purchase

nextBillingDate
string

Next billing date

originalAmount
number

Original amount in the payment currency (cents/pence)

Example:

10000

paidAt
string

Paid at timestamp

planSnapshot
object

Plan snapshot at time of purchase (null for credit topups)

productName
string

Product name

Example:

"API Gateway Manager"

usage
object

Usage billing state for usage-based plans