Skip to content
TCGPlaytestdocsDashboard
Documentation Resources
Resources

Errors & retries

Understand failures and retry safely without creating duplicate carts.

Errors and retries

Field / limitDescription
image_unreachableThe image host could not be reached, the response was incomplete, or the final response was not HTTP 200.
image_url_unsafeThe URL or redirect is not public IPv4 HTTPS; private/local destinations are blocked.
image_redirect_limitMore than three redirects.
image_timeoutThe 15-second total download deadline was exceeded, including DNS, TLS, redirects and body reads.
image_too_largeSource or prepared print image exceeds 20 MiB (20,971,520 bytes).
image_invalidNot a fully decodable, single-frame PNG/JPEG.
image_pixels_exceededSource or image including automatic bleed exceeds 40,000,000 pixels (width × height).
image_hash_mismatchAn optional supplied SHA-256 does not match the downloaded bytes.
content_blockedThis artwork cannot be accepted.
validation_unavailableValidation/storage could not complete. Create a new cart or contact support.

Malformed requests fail immediately with this envelope; item_index is omitted when the error does not refer to an item:

HTTP request error
{
  "error": {
    "code": "invalid_request",
    "message": "quantity must be a positive integer",
    "item_index": 0
  }
}
Field / limitDescription
400 invalid_requestCorrect missing/invalid fields or headers. Remove certification if an older integration still sends it.
401 invalid_api_keyMissing, invalid, revoked or unavailable key. Check the environment and account access.
403 terms_required / content_blockedA person must accept current terms in the dashboard, or submitted artwork is blocked. Do not bypass a block.
404 not_foundCart/order is not found for this partner and key mode. An unpaid cart has no manufacturing order yet.
409 idempotency_conflictThe key was already used with different instructions. Use a new Idempotency-Key for the changed request.
413 invalid_requestRequest JSON exceeds 512,000 bytes. Send URLs, not image bytes or base64.
429 rate_limitedWait Retry-After: 60 seconds, then retry. Cart polling is exempt.
500 server_errorRetry with backoff. Preserve the original body and Idempotency-Key for a POST.
503 live_not_enabled / checkout_unavailable / configuration_errorDeployment setup is incomplete or invalid. Contact the platform operator; retry after it is resolved.

An identical POST retry returns the original cart: 202 while validating, otherwise 200. Reusing an idempotency key cannot reopen a failed or expired cart. After an ambiguous network failure, retry with the same key to avoid a duplicate cart.

24 topics

Get startedOverview

Everything you need to turn artwork into printed cards.

Get startedFirst order in 10 minutes

A runnable sandbox example from test key to verified webhook delivery.

Get startedOrder with AI · MCP

Connect ChatGPT, Claude, Gemini or your developer tools, preview your cards and check out without a TCGPlaytest account or customer API key.

Get startedTest checkout & events

Simulate checkout, verify the order, return to your store and trigger signed test events.

Get startedQuickstart & authentication

Set up your account, protect your API key and make your first integration.

Get startedHow checkout works

Create a cart, wait for artwork validation and open checkout on your website.

Get startedCode examples

Working server examples in your preferred language.

Build your integrationCheckout widget

Connect finished images to a ready-made review and checkout experience.

Build your integrationEmbedded checkout

Keep delivery details and artwork confirmation inside your own website.

Build your integrationCheckout branding

Make checkout feel like your store with saved branding and style presets.

Build your integrationCustom success page

Return customers to your registered website after verified payment.

Build your integrationStripe Connect payouts

Set your card selling price and receive earnings, with a 5% reserve for 15 days.

Build your integrationPrinting credits

Use your balance for printing, with customer shipping and tax paid through Stripe.

API referenceUpload artwork

Request a temporary upload URL. Send file bytes directly to private storage.

API referenceCreate a cart

Submit finished artwork, quantities and your success URL for validation.

API referenceRetrieve a cart

Read validation progress, quality warnings and checkout availability.

API referenceRetrieve an order

Track a funded manufacturing order from payment to shipment.

API referenceWebhooks

Receive signed order updates on your server.

ResourcesArtwork & API limits

File specifications, card limits and request allowances for this deployment.

ResourcesErrors & retries

Understand failures and retry safely without creating duplicate carts.

ResourcesGoing live

Partner launch checklist: verified orders, allowed origins and live checkout.

ResourcesAffiliate codes

Apply your approved affiliate preference to new carts.

ResourcesExpiry & retention

Understand cart lifetimes, artwork storage and cleanup.

ResourcesTerms & image rights

Know your responsibilities and the customer acceptance requirements.