curl --request GET \
--url https://api.example.com/purchases/{purchase_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/purchases/{purchase_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/purchases/{purchase_id}', 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/purchases/{purchase_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/purchases/{purchase_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/purchases/{purchase_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/purchases/{purchase_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"purchase_id": "01J51S0JYV6N7K1030CV1ZKSCF",
"date": "2024-01-01T00:00:00Z",
"total": "9.34",
"tax": "0.85",
"subtotal": "8.49",
"item_count": 1,
"items": [
{
"item_id": "01J51S0JYV6N7K1030CV1ZKSCA",
"price": "8.49",
"product": {
"brand": "diet-coke",
"description": "Diet Coke - 12pk/12oz cans",
"name": "Diet Coke 12pk",
"product_id": "01J51S0JYV6N7K1030CV1ZKSCB",
"upc": "049000028911"
},
"quantity": 1
}
],
"purchase_type": "online",
"status": "completed"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Get Purchase
Get purchase details using partner OAuth Bearer authentication, or legacy X-API-Key plus a connection access token
curl --request GET \
--url https://api.example.com/purchases/{purchase_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/purchases/{purchase_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/purchases/{purchase_id}', 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/purchases/{purchase_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/purchases/{purchase_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/purchases/{purchase_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/purchases/{purchase_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"purchase_id": "01J51S0JYV6N7K1030CV1ZKSCF",
"date": "2024-01-01T00:00:00Z",
"total": "9.34",
"tax": "0.85",
"subtotal": "8.49",
"item_count": 1,
"items": [
{
"item_id": "01J51S0JYV6N7K1030CV1ZKSCA",
"price": "8.49",
"product": {
"brand": "diet-coke",
"description": "Diet Coke - 12pk/12oz cans",
"name": "Diet Coke 12pk",
"product_id": "01J51S0JYV6N7K1030CV1ZKSCB",
"upc": "049000028911"
},
"quantity": 1
}
],
"purchase_type": "online",
"status": "completed"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Purchase status
The purchase object includes astatus field.
status is the purchase status the retailer last showed. The value is a string, or null when unknown.
The possible string values are:
pendingshippedready_for_pickupcompletedcancelled
null.
completed and cancelled are final. Once a purchase reaches either status, its status does not change again.Authorizations
Partner OAuth: send Authorization: Bearer <access_token>, an OAuth access token from Subtotal's authorization server with the scope this endpoint needs.
Path Parameters
Response
Successful Response
The unique identifier for the purchase
"01J51S0JYV6N7K1030CV1ZKSCF"
The date and time of the purchase
"2024-01-01T00:00:00Z"
The total amount of the purchase
^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$"9.34"
The tax amount of the purchase
^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$"0.85"
The subtotal amount of the purchase
^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$"8.49"
The number of items in the purchase
1
The list of items in the purchase
Show child attributes
Show child attributes
[
{
"item_id": "01J51S0JYV6N7K1030CV1ZKSCA",
"price": "8.49",
"product": {
"brand": "diet-coke",
"description": "Diet Coke - 12pk/12oz cans",
"name": "Diet Coke 12pk",
"product_id": "01J51S0JYV6N7K1030CV1ZKSCB",
"upc": "049000028911"
},
"quantity": 1
}
]
The purchase type: 'in_store', 'online', 'delivery', 'pickup' or 'return'. Null when unknown.
online, in_store, delivery, pickup, return "online"
The purchase status the retailer last showed: 'pending', 'shipped', 'ready_for_pickup', 'completed' or 'cancelled'. Null when never observed.
pending, shipped, ready_for_pickup, completed, cancelled "completed"