Как устроена сделка

Сделка начинается с покупки и заканчивается, когда деньги получил продавец или они вернулись покупателю. Обычный путь короткий.

paid → sent → protected → settled

Статусы

paidДеньги покупателя удержаны, продавец должен отправить предмет. Без оффера продавец может отменить в любой момент, покупатель через 30 минут, а через 12 часов деньги вернутся сами. С оффером сделка ждёт его судьбу до 15 суток.
sentОффер подтверждён, покупатель может его принять. Через 24 часа без ответа продавец получает close_offer.
protectedПокупатель принял, но Steam ещё может откатить обмен, поэтому деньги ждут 8 суток. Покупатель может открыть спор.
settledХолд закончился, продавец получил деньги за вычетом комиссии.
cancelledОдна из сторон отменила сделку до появления оффера. Деньги вернулись покупателю.
failedОбмен не состоялся. Деньги вернулись покупателю.
rolled_backПродавец откатил обмен. Деньги вернулись покупателю, продавец заблокирован навсегда.
disputedНужно решение человека, до него деньги не двигаются. Отчёты Steam ждут в сделке.

deadline_at — когда сделка двинется сама, buyer_cancels_at — когда покупатель сможет её отменить.

Действия

Каждая сделка перечисляет в actions, что с ней можно сделать сейчас. Следуйте этому списку, а не выводите его из статуса: сайт показывает тот же.

sendПродавец: создайте оффер в Steam и запишите его.
cancelЛюбая сторона: отменить сделку.
close_offerПродавец: покупатель не ответил на оффер, отмените его в Steam и сообщите об этом в отчёте.
disputeПокупатель: сообщить о проблеме во время холда.

Причины

reason объясняет, почему сделка оказалась там, где она есть, если причина есть.

buyer_cancelledПокупатель отменил сделку.
seller_cancelledПродавец отменил сделку.
seller_did_not_sendЗа 12 часов оффера не появилось.
offer_declinedПокупатель отклонил оффер.
offer_cancelledОффер отменён в Steam.
offer_expiredСрок оффера истёк.
offer_voidОффер больше не действует, или покупатель ответил своим.
item_goneПредмета больше нет в инвентаре продавца.
trade_failedSteam сообщил, что обмен не удался.
buyer_disputeПокупатель открыл спор.
seller_bannedПродавец откатил другой обмен, поэтому остальные его сделки ждут решения человека.
dispute_refundЧеловек решил спор в пользу покупателя.
steam_offer_stateSteam прислал неизвестное состояние оффера, поэтому смотрит человек.
steam_trade_statusSteam прислал неизвестный статус обмена, поэтому смотрит человек.
stuckСделка не смогла двинуться сама, поэтому смотрит человек.