Get Purchases
curl --request GET \
--url https://api.example.com/purchases \
--header 'Authorization: Bearer <token>' \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.example.com/purchases"
headers = {
"X-Api-Key": "<api-key>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Api-Key': '<api-key>', Authorization: 'Bearer <token>'}
};
fetch('https://api.example.com/purchases', 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",
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>",
"X-Api-Key: <api-key>"
],
]);
$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"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
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")
.header("X-Api-Key", "<api-key>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/purchases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"has_more": true,
"purchases": [
{
"date": "2024-01-01T00:00:00Z",
"purchase_id": "01J51S0JYV6N7K1030CV1ZKSJH",
"purchase_type": "online",
"status": "completed",
"total": "9.34"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Purchases
Get Purchases
Get a list of purchases from a connected account
GET
/
purchases
Get Purchases
curl --request GET \
--url https://api.example.com/purchases \
--header 'Authorization: Bearer <token>' \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.example.com/purchases"
headers = {
"X-Api-Key": "<api-key>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Api-Key': '<api-key>', Authorization: 'Bearer <token>'}
};
fetch('https://api.example.com/purchases', 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",
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>",
"X-Api-Key: <api-key>"
],
]);
$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"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
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")
.header("X-Api-Key", "<api-key>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/purchases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"has_more": true,
"purchases": [
{
"date": "2024-01-01T00:00:00Z",
"purchase_id": "01J51S0JYV6N7K1030CV1ZKSJH",
"purchase_type": "online",
"status": "completed",
"total": "9.34"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Purchase status
Each purchase object in the response 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
API key: your Subtotal API key.
Connection token: send Authorization: Bearer <connection_token> together with X-Api-Key. Get the token from POST /connections/{connection_id}/token.
Query Parameters
The maximum number of purchases to return
Required range:
1 <= x <= 50Example:
10
The purchase id of the last purchase you processed. The next purchase returned will be the next oldest purchase. An id that isn't one of this connection's purchases returns 400.
Example:
"01J51S0JYV6N7K1030CV1ZJH30"
Response
Successful Response
Whether there are more purchases available to fetch
Example:
true
The list of purchases for the connection sorted in descending order by purchase date
Show child attributes
Show child attributes
Example:
[
{
"date": "2024-01-01T00:00:00Z",
"purchase_id": "01J51S0JYV6N7K1030CV1ZKSJH",
"purchase_type": "online",
"status": "completed",
"total": "9.34"
}
]