curl --request GET \
--url https://catchbackcards.com/api/partner/v1/orders/{checkout_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://catchbackcards.com/api/partner/v1/orders/{checkout_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://catchbackcards.com/api/partner/v1/orders/{checkout_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://catchbackcards.com/api/partner/v1/orders/{checkout_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://catchbackcards.com/api/partner/v1/orders/{checkout_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://catchbackcards.com/api/partner/v1/orders/{checkout_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://catchbackcards.com/api/partner/v1/orders/{checkout_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{
"checkout_id": "3e1ab17c-…",
"order_id": "order-1042",
"type": "pack_purchase",
"status": "completed",
"created_at": "2026-10-20T04:54:57.373+00:00",
"completed_at": "2026-10-20T04:54:58.563+00:00",
"amount": 25,
"fee": 0,
"balance_change": -25,
"reconciled": false,
"pack_type": "bronze",
"quantity": 1,
"pull_ids": [
"e9d27918-…"
],
"card_id": null,
"listing_id": null,
"transaction_id": null,
"pulls": [
{
"pull_id": "e9d27918-…",
"kind": "card",
"item": {
"id": "e3d7148d-…",
"category": "pokemon",
"name": "Pyroar",
"set": "Pokemon Xy2-Flashfire",
"grading_company": "PSA",
"grading_rank": 10,
"slab_label": "2014 Flashfire Pyroar",
"language": "english",
"cert_number": "84512377",
"market_value": 20,
"front_image": "https://…/e3d7148d-….png",
"back_image": "https://…/e3d7148d-…-back.png",
"render_image": "https://…/e3d7148d-…-render.png",
"image_url": "https://…/e3d7148d-…-render.png"
},
"value": 20,
"hit": {
"rarity_tier": "starter",
"bucket": "P0",
"bucket_odds": 0.72,
"is_chase": false,
"chase_label": null
}
}
],
"item": null,
"payout_rate": null,
"basis_value": null
}{
"error": "Missing or malformed API key"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "Order not found"
}{
"error": "<string>",
"code": "<string>"
}Get an order
Scope: read:account (needs a linked account).
One order on your account, with what it contains: a pack purchase’s pulls, or the card for any other order. It answers while an order is still running, so after a timeout, a 409 IDEMPOTENCY_IN_PROGRESS or a PAYMENT_OUTCOME_UNKNOWN, follow the order here rather than resending it. A pull here has no catchback offer and no proof.
curl --request GET \
--url https://catchbackcards.com/api/partner/v1/orders/{checkout_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://catchbackcards.com/api/partner/v1/orders/{checkout_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://catchbackcards.com/api/partner/v1/orders/{checkout_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://catchbackcards.com/api/partner/v1/orders/{checkout_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://catchbackcards.com/api/partner/v1/orders/{checkout_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://catchbackcards.com/api/partner/v1/orders/{checkout_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://catchbackcards.com/api/partner/v1/orders/{checkout_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{
"checkout_id": "3e1ab17c-…",
"order_id": "order-1042",
"type": "pack_purchase",
"status": "completed",
"created_at": "2026-10-20T04:54:57.373+00:00",
"completed_at": "2026-10-20T04:54:58.563+00:00",
"amount": 25,
"fee": 0,
"balance_change": -25,
"reconciled": false,
"pack_type": "bronze",
"quantity": 1,
"pull_ids": [
"e9d27918-…"
],
"card_id": null,
"listing_id": null,
"transaction_id": null,
"pulls": [
{
"pull_id": "e9d27918-…",
"kind": "card",
"item": {
"id": "e3d7148d-…",
"category": "pokemon",
"name": "Pyroar",
"set": "Pokemon Xy2-Flashfire",
"grading_company": "PSA",
"grading_rank": 10,
"slab_label": "2014 Flashfire Pyroar",
"language": "english",
"cert_number": "84512377",
"market_value": 20,
"front_image": "https://…/e3d7148d-….png",
"back_image": "https://…/e3d7148d-…-back.png",
"render_image": "https://…/e3d7148d-…-render.png",
"image_url": "https://…/e3d7148d-…-render.png"
},
"value": 20,
"hit": {
"rarity_tier": "starter",
"bucket": "P0",
"bucket_odds": 0.72,
"is_chase": false,
"chase_label": null
}
}
],
"item": null,
"payout_rate": null,
"basis_value": null
}{
"error": "Missing or malformed API key"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "Order not found"
}{
"error": "<string>",
"code": "<string>"
}Authorizations
Your API key, sent as a bearer token. Keep it on your server. See Authentication. A request from a location we refuse gets a 403 with Access denied, whether or not it has a valid key: where you can call from.
Path Parameters
The checkout_id Buy packs or Buy a card returned, the transaction_id of a sell-back, or any order's checkout_id from List orders.
Response
The order.
The order's id. Get an order takes it.
The Idempotency-Key you sent with a purchase. null for a sell-back or a sale.
pack_purchase, card_purchase, sell_back, listing_sale completed, or pending while a purchase is still running or held for review. New values can be added, so don't fail on one you don't know.
What a purchase charged (a card buy includes its $1 fee), what a sell-back paid, or what a listing sold for, in USD.
The $1 buyer fee on a card buy or the $1 seller fee on a sale. 0 otherwise.
The order's effect on your balance. null until something shows the order was charged.
The order went through but its response was lost, and we closed it from our own records.
For a card buy, the purchase_id that Get vault and Sell back use.
A pack purchase's pulls. Empty for any other order.
Show child attributes
Show child attributes
The card, for a card buy, a sell-back or a sale.
Show child attributes
Show child attributes
Sell-backs only.
Sell-backs only.

