Skip to content

Purchasing Playtests

There are three ways to pay for private playtests on We Playtest Games.

Section titled “Option 1: Pre-Purchased Credit (Recommended)”

The simplest flow for API integrations. Add credit to your account, then spend it on playtests without going through checkout each time.

Terminal window
curl -X POST https://app.weplaytestgames.com/api/v1/billing/credit \
-H "Authorization: Bearer wpg_sk_..." \
-H "Content-Type: application/json" \
-d '{"amountCents": 20000}'

This returns a Stripe Checkout URL. Complete the payment to add $200 to your balance.

Terminal window
curl -H "Authorization: Bearer wpg_sk_..." \
"https://app.weplaytestgames.com/api/v1/billing/balance"

With sufficient credit, playtests are created and charged instantly:

Terminal window
curl -X POST https://app.weplaytestgames.com/api/v1/games/game_xyz/playtests \
-H "Authorization: Bearer wpg_sk_..." \
-H "Content-Type: application/json" \
-d '{"visibility": "private", "quantity": 5}'

Cost: 5 slots x $20 = $100 deducted from credit.

If credit is insufficient, you get a 402 Payment Required error with your current balance and the required amount.

Pay directly with cryptocurrency using the x402 protocol. Best for AI agents and crypto-native workflows.

Terminal window
curl -X POST https://app.weplaytestgames.com/api/v1/games/game_xyz/playtests \
-H "Authorization: Bearer wpg_sk_..." \
-H "Content-Type: application/json" \
-H "X-Payment-Method: x402" \
-d '{"visibility": "private", "quantity": 1}'

If credit is insufficient, the server responds with 402 and payment instructions. See x402 Payments for the full flow.

You can also top up credit with crypto:

Terminal window
curl -X POST https://app.weplaytestgames.com/api/v1/billing/credit/x402 \
-H "Authorization: Bearer wpg_sk_..." \
-H "X-Payment-Method: x402"

Public playtests are free — no credit or payment required:

Terminal window
curl -X POST https://app.weplaytestgames.com/api/v1/games/game_xyz/playtests \
-H "Authorization: Bearer wpg_sk_..." \
-H "Content-Type: application/json" \
-d '{"visibility": "public", "quantity": 1}'

Public playtests are 30 minutes and the video is published to YouTube.

Paying with Playtest Hours (Subscriptions)

Section titled “Paying with Playtest Hours (Subscriptions)”

Accounts on an Indie or Studio plan receive playtest hours every billing period (stored in minutes, 1 hour = 60). A playtest costs durationMinutes × playerCount × quantity — a 2-player 2-hour playtest is 4 playtest hours.

Check the balance first:

Terminal window
curl -H "Authorization: Bearer wpg_sk_..." \
"https://app.weplaytestgames.com/api/v1/billing/playtest-hours"
{ "data": { "balanceMinutes": 300, "balanceHours": 5 } }

Then create the playtest exactly as in Option 1. When the balance covers the whole order, the hours are spent automatically and the playtest is activated with no payment step:

{
"data": {
"playtest": { "id": "pt-uuid", "status": "active", "...": "..." },
"paid": true,
"paidWithPlaytestHours": true,
"playtestMinutesUsed": 120,
"playtestMinutesRemaining": 180
}
}

If the balance does not cover the whole order, the hours stay untouched and you get the normal requiresPayment: true response, now with playtestMinutesNeeded and playtestMinutesAvailable so you can shrink the order (length, players or quantity) to fit the hours. Hours are never combined with credit, crypto or discount codes on a single order.

Plans are listed at GET /billing/plans; subscribing (POST /billing/subscription/checkout) returns a Stripe Checkout URL that a human completes in a browser. See the Billing endpoints.

  • Deleting an unclaimed playtest slot returns its price as account credit (or as playtest hours if the order was paid with hours)
  • No refund after a playtester claims a slot
  • Subscription payments are non-refundable; cancelling stops future renewals and keeps unused hours