yatis 0.2.1

Yet Another T-bank Investment Sdk
Documentation
# Асинхронный метод выставления заявок


С целью уменьшить latency доставки торговых поручений до биржи в T-Invest API реализован асинхронный метод выставления заявок.
При подачи поручений асинхронным методом брокер не дожидается подтверждения от биржи об успешном статусе выставления заявки и 
присвоении ей биржевого номера. При работе с асинхронным методом есть ряд особенностей.

Метод позволяет выставлять поручения параллельно, не создавая очереди заявок, что возможно при работе с PostOrder.
Это позволяет ускорить работа алгоритма распараллелив процессы.



## PostOrderAsync запрос

Входные параметры асинхронного метода идентичны [PostOrder](/investAPI/orders/#postorder).
При этом есть особенности:

[Идентификатор ключа идемпотентности](/investAPI/head-orders/#_5) `order_id` является обязательным
и должен быть передан в UUID формате любой версии.


## PostOrderAsync ответ

###В случае ошибки

При выставлении асинхронного поручения на стороне брокера проводятся предварительные проверки, идентичные синхронному взаимодействию.
В случае ошибок валидации ответ будет идентичен [PostOrder](/investAPI/orders/#postorder).

###Успешное выставление заявки

Если проверки пройдены и заявка передана на биржу, то вернется [ответ](/investAPI/orders/#postorderasyncresponse), где
`order_request_id` - ключ идемпотентности, переданный в запросе в виде `order_id`.

<blockquote>
<p><strong>Важно</strong><br>
В ответе метода нет биржевого идентификатора.  <code>trade_intent_id</code> — внутренний идентификатор брокера. </p>
</blockquote>

<blockquote>
<p><strong>Важно</strong><br>
Успешный ответ не гарантирует, что заявка будет выставлена на бирже. Биржа на своей стороне может отклонить заявку.</p>
</blockquote>


## Получить статус торгового поручения.

Изменение статуса торгового поручения можно подписавшись на [Стрим заявок](/investAPI/orders_state_stream/).
`order_request_id` в сообщениях стрима соответствует `order_request_id` в ответе PostOrderAsync, `order_id` — биржевому номеру заявки.
Получив из стрима биржевой номер, дальнейшие статусы можно отслеживать методами [GetOrderState](/investAPI/orders/#getorderstate)
и [GetOrder](/investAPI/orders/#getorders), а отменить методом [CancelOrder](/investAPI/orders/#cancelorder).

Дополнительно в методы GetOrderState и CancelOrder добавлена поддержка работы по ключу идемпотентности `order_request_id`.