Skip to content

Look up players

Find a top-up recipient's in-game name and avatar so the customer can confirm the account. A lookup never blocks the order.

This page shows how to check a player’s game account before the customer pays. It works for top-up products only.

Customers sometimes type the wrong player ID. A player lookup finds the game account for the ID they typed. Then you can ask “Is this you? Sandbox Player” before they pay. This prevents most top-ups to the wrong account.

When lookups work

  • A product supports lookups when its catalog row has "player_lookup": true.
  • For any other top-up, the lookup returns unsupported.
  • Lookups need the same store wallet requirement as live orders (see store wallet). If your store doesn’t meet it, lookups return 403 player_lookup_requirements_not_met.

Send the same recipient you will order with

Look up player profile takes the product_id and the full recipient that you will send to Create order. If fields are missing, you get the same 422 validation_failed details as when you create the order.

POST /player_profilesRecorded sandbox response
POST
Response

Handle all four statuses

status Show the customer Let them order?
found The profile.display_name and avatar next to the ID they typed, with a confirm step. Yes
not_found “We couldn’t find this ID. Check it and try again.” Yes, if they still want to
unavailable Nothing, or “We couldn’t check this ID right now.” Yes
unsupported Nothing. Yes

Limits and timing

  • Cardzone reuses answers for 10 minutes. So repeated lookups of the same player are fast.
  • Some games take several seconds to answer. Show a loading spinner, and keep the order button enabled.
  • Each store can make 500 lookups per minute, across all its API keys. Above that, you get 429 rate_limited.
  • When too many lookups are already waiting for game sites, players without a recent answer get unavailable.

Full example

// cardzone() stands for your own function that calls the Cardzone API with your API key.
async function confirmPlayer(productId, recipient) {
  const response = await cardzone("POST", "/player_profiles", { product_id: productId, recipient });

  if (response.status === 422) return { kind: "fix_fields", details: response.body.error.details };
  if (!response.ok) return { kind: "skip" }; // 403, 429, 5xx: never block checkout

  const { status, profile } = response.body;
  if (status === "found") return { kind: "confirm", name: profile.display_name, avatar: profile.image_url };
  if (status === "not_found") return { kind: "warn" };
  return { kind: "skip" }; // unavailable or unsupported
}

Sandbox lookups check the recipient against the sandbox top-up products. Then they always return found with a fixed Sandbox Player profile.

Cardzone
Back to Cardzone

Type to search…

↑↓ navigate↵ selectEsc close