Sync with Waxpeer session to auto-fill API key

Trade statuses

Two independent axes: legacy numeric status and escrow_status / is_released / release_date.

Trade status is two independent axes. Frontend copy and API numeric names differ slightly; the numbers below are the contract.

A) Legacy numeric status

Still returned on the wire. Documented as current values, with the old meaning of 0 called out.

statusAPI nameFrontend copyMeaningState
0Processing Processing tradeFunds frozen, trade session created. OLD docs said “waiting for user to buy more items” — that meaning is DEPRECATED.current
1Creating Creating exchangePushing the Steam offer. Also treat 2/4 without trade_id as creating.current
2Seller confirm Confirm trade / Waiting for sellerWaiting for seller Steam Guard.current
3unused DeprecatedDo not emit, do not document as valid.deprecated/unused
4Buyer accept Accept / Waiting for buyerTrade sent, buyer can accept. If release_date is set and is_released=false → TRADE HOLD (new).current + hold overlay
5Completed ConfirmedItem delivered.current
6Declined/refunded Cancelled / UnconfirmedFailed; see reason.current

B) New fields New

  • sending
  • is_released + release_date = Steam trade-hold after accept (status 4).
  • penalties on buyer-fault rollbacks: rollback_fee (20%), rollback_penalty (10%), total_penalty.

State diagram

0 Processing1 Creating2 Seller confirm4 Buyer accept5 Completed

From 4, if release_date is set and is_released=false, overlay hold until release, then 5. Any failure → 6 Declined. Status 3 is unused.

Auto-cancel timings

From GET /v1/buy-one-p2p :

  • Invalid seller → status 6 immediately
  • No trade created → 6 minutes
  • Confirm window → 11–15 minutes
  • Lost seller connection while waiting for mobile confirm → 6 hours

Check endpoints