Сделать, изменить или отменить ставку на торгах
Стенд по умолчанию — test. Сценарий изменяет данные. Порядок работы для агента.
Нужны идентификатор заказа и активный профиль исполнителя для выбранной организации. Перед записью на рабочем стенде получите подтверждение пользователя.
Проверить торги
Получите заказ через POST /api/orders/v0/transferOrder/getFlatForExecutor с идентификатором в data.exactOrderIds. Сверьте статус onMatch и возьмите matcher.demandId из карточки. Если данных о торгах ещё нет, перечитайте заказ позже. Уточните цену, валюту и условия ставки у пользователя.
Сделать ставку
Один и тот же вызов может оставить ставку в торгах или сразу выбрать вашу организацию победителем. Например, это возможно при достижении цены выкупа, в режиме «кто первый» или при прямом назначении. Перед отправкой на любом стенде проверьте условия торгов. Если немедленное принятие заказа возможно или его нельзя исключить, отдельно согласуйте с пользователем готовность принять заказ за эту цену. Если пользователь хочет только подать ставку или не подтвердил принятие, остановитесь.
Вызовите POST /api/bet/create/v1. Передайте идентификатор торгов в data.demandId, организацию в data.executorId, исходную цену в data.price.base и валюту в data.price.currency. Укажите согласованные признаки плательщика data.price.isVatPayer и неплательщика data.notVatPayer. Для плательщика в цене укажите сумму НДС (vatAmount) и итоговую цену (subTotalPrice). Если передаёте ставку НДС (vat), она должна согласовываться с суммами. Сохраните data.id, перечитайте заказ и сообщите, осталась ли ставка в торгах или заказ уже принят.
Изменить ставку
Чтобы изменить цену, сначала перечитайте заказ. Если торги ещё идут, повторите проверки из предыдущего шага для новой цены, включая возможность немедленного принятия заказа. Отправьте новую ставку через POST /api/bet/create/v1 для тех же торгов и организации. Сохраните data.id из нового ответа и проверьте состояние заказа.
Отменить ставку
Убедитесь, что торги ещё идут и выбранная ставка действует. Если заказ уже принят, остановитесь и сообщите об этом пользователю. Вызовите POST /api/bet/cancel/v0 с идентификатором действующей ставки в data.betId и комментарием в data.comment. Если идентификатор неизвестен, перечитайте заказ и найдите свою действующую ставку в matcher.bets. При неоднозначности остановитесь и уточните ставку у пользователя.
Перечитайте заказ для проверки текущего состояния торгов. Если карточка больше недоступна, сообщите результат самого вызова.
Ошибки
При 400 Bad Request проверьте параметры, в том числе шаг цены. При 403 Forbidden проверьте право организации на участие. Если торги завершены, перечитайте их состояние перед следующим действием.