# API для работы с Заказами

## Используемые термины

**ТС** - транспортное средство, которое осуществляет перевозку груза по Заказу.

**Водитель** - водитель, который осуществляет перевозку груза по Заказу.

**Реквизиты** - юридическая информация о перевозчике, который перевозит груз по Заказу.

**Заказ** - перевозка, которая оформляется через сайт ATI.SU. Помимо сведений о грузе, сущность Заказа содержит информацию о ТС, водителе, реквизитах, статусе заказа, статусе перевозки и прочем.

**Взятие груза** - предоставление перевозчиком информации о ТС, водителе и реквизитах. Если на момент взятия груза заказ еще не был создан, то он создается.

После создания Заказа, груз уходит в архив, а при отмене Заказа - возвращается в публикующиеся.

**Завершение Заказа** - статус Заказа меняется на «завершён». Грузовладелец и перевозчик завершают Заказ независимо друг от друга, то есть один и тот же Заказ может быть завершённым для перевозчика, но ещё не завершённым для грузовладельца.

**Отмена Заказа** - статус Заказа меняется на «отменён». Грузовладелец и перевозчик могут отменить Заказ до его завершения.

**Статус Заказа** - текущее состояние Заказа: груз зарезервирован перевозчиком, грузовладелец отправил документ-заявку перевозчику и прочее. Полный список статусов содержится в описании метода API на получение информации по Заказу

**Статус перевозки** - состояние водителя и ТС: ожидает загрузки, едет на выгрузку, поломка и т.д. Полный список статусов содержится в описании метода API на смену статуса перевозки.

**Приложение АТИ Водитель** - приложение ATI.SU для мониторинга грузов и транспорта

**GPS Устройство** - любой источник географических данных

## Возможности API

API Заказов позволяет работать с [Заказами](https://help.ati.su/bezogovorochnye-sdelki).

С помощью API и **грузовладелец**, и **перевозчик** могут:

- [Получить Заказ по Id груза](https://ati.su/developers/raw/api/orders/deals.md#get-v1.2-orders-%7bdealId%7d)
- [Получить статусы Заказов по набору Id грузов](https://ati.su/developers/raw/api/orders/deals.md#post-v1.2-orders-get_orders_statuses)
- [Изменить статус перевозки](https://ati.su/developers/raw/api/orders/deals.md#post-v1.2-orders-%7bdealId%7d-inwork)
- [Отменить Заказ, пока он не завершён](https://ati.su/developers/raw/api/orders/deals.md#delete-v1.2-orders-%7bdealId%7d)
- [Завершить Заказ](https://ati.su/developers/raw/api/orders/deals.md#put-v1.2-orders-%7bdealId%7d-finish)

**Грузовладелец** может:

- [Пригласить перевозчика взять груз](https://ati.su/developers/raw/api/orders/personal-invitations.md#post-v1.2-orders-invites)
- [Оформить Заказ без документов](https://ati.su/developers/raw/api/orders/deals.md#post-v1.2-orders-%7bdealId%7d-move_to_work)
- [Создать документ на перевозку через АТИ-Доки](https://ati.su/developers/raw/api/orders/deals.md#post-v1.2-orders-%7bdealId%7d-accept)
- [Создать документ на перевозку из файла](https://ati.su/developers/raw/api/orders/deals.md#post-v1.2-orders-%7bdealId%7d-accept_file)
- [Изменить ставку](https://ati.su/developers/raw/api/orders/deals.md#изменение-ставки-в-заказе)

**Перевозчик** может:

- [Взять груз](https://ati.su/developers/raw/api/orders/deals.md#взятие-груза--редактирование-заказа)
- [Изменить Заказ (редактировать данные о ТС, водителе и реквизиты)](https://ati.su/developers/raw/api/orders/deals.md#взятие-груза--редактирование-заказа)

## Создание и выполнение Заказа

![order_flow](~/images/order/order_flow.png)

Для начала работы с заказом через API требуется [груз](https://ati.su/developers/raw/api/loads/index.md). Заказ может быть создан несколькими способами.

#### При взятии перевозчиком груза на Площадке

Грузовладелец размещает груз на Площадке. Перевозчик, который состоит на этой Площадке, видит груз и _берёт_ его. Заказ создан.

#### Автоматически для победителя Торгов

Грузовладелец проводит Торги. Участники соревнуются за груз, и один из них побеждает. Для победителя автоматически создаётся Заказ.

Заказ создаётся с незаполненной информацией о _ТС_, _водителе_ и _реквизитах_. Для дальнейшей работы с заказом перевозчик должен _взять_ груз.

#### При отправке персонального приглашения

Грузовладелец размещает груз и высылает персональное приглашение конкретному перевозчику. После того, как перевозчик взял груз, создаётся Заказ.

:::caution
В момент взятия груза создаётся его копия, а сам груз при этом переходит в архив. Заказ будет содержать в себе именно копию, а не сам груз. Это нужно, чтобы зафиксировать состояние груза на тот момент, когда его взяли.

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

## Заказ для грузовладельца

#### Одобрение заявки без создания документов на перевозку

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

В этом случае Заказ сразу будет отправлен перевозчику в работу, и он может приступить к выполнению.

#### Создание документов на перевозку

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

Если перевозчик изменит свое предложение после отправки документа, его нужно будет создать заново.

:::caution

Одобрение, возврат на доработку, и отмена Заказа производятся через [API АТИ-Доков](https://ati.su/developers/raw/api/doki/index.md)
:::

#### Заказ в работе

Перевозчик подтверждает документ (если Заказ был создан с документами на перевозку) и приступает к выполнению Заказа. После начала выполнения Заказа грузовладелец может изменять ставку, статус перевозки, а также создать счет или акт по Заказу.

#### Заказ завершен

Заказ завершен и перенесен в архив перевозчиком или грузовладельцем

:::caution

Заказ можно отменить на этапе согласования или после того, как он взят в работу. При отмене Заказа (созданного с документами в АТИ-Доках) в работе вам потребуется создать [уведомление о расторжении](https://ati.su/developers/raw/api/orders/documents.md#post-v1.2-orders-documents-%7bparentDocumentId%7d-unilateral_dissolution). Дальнейшее оформление происходит в [АТИ-Доках](https://ati.su/developers/raw/api/doki/index.md).
:::

## Заказ для перевозчика

#### Взятие груза

Для дальнейшей работы с Заказом перевозчик должен взять груз.

:::caution

Для взятия груза понадобятся ТС, водитель и реквизиты. Водителя и ТС можно получить с помощью [API Справочников пользователя](https://ati.su/developers/raw/api/catalogs/index.md), а реквизиты - через [API Фирм](https://ati.su/developers/raw/api/firms.md). Реквизиты укажите при необходимости. Однако, для некоторых грузовладельцев это требование остаётся обязательным.
:::

#### Одобрение документов

После создания заказа перевозчик ждёт от грузовладельца документы на перевозку или подтверждения заявки без создания документов на перевозку. Если грузовладелец создал Заказ с документами на перевозку, перевозчик может одобрить документы и начать выполнение заказа.

:::caution

Одобрение, возврат на доработку, и отмена Заказа производятся через [API АТИ-Доков](https://ati.su/developers/raw/api/doki/index.md).
:::

#### Заказ в работе

После начала выполнения Заказа, перевозчик может изменять статус перевозки, а также создать [счет](https://ati.su/developers/raw/api/orders/documents.md#post-v1.2-orders-documents-%7bparentDocumentId%7d-invoice) или [акт](https://ati.su/developers/raw/api/orders/documents.md#post-v1.2-orders-documents-%7bparentDocumentId%7d-act) по Заказу.

#### Завершение Заказа

После выполнения Заказа перевозчик может завершить Заказ.

:::caution

Заказ можно отменить на этапе согласования или после того, как он взят в работу. При отмене Заказа (созданного с документами в АТИ-Доках) в работе вам потребуется создать [уведомление о расторжении](https://ati.su/developers/raw/api/orders/documents.md#post-v1.2-orders-documents-%7bparentDocumentId%7d-unilateral_dissolution). Дальнейшее оформление происходит в [АТИ-Доках](https://api.ati.su/_help/openapi/atidocs.html).
:::
