Перейти к содержанию

Сводный прайс-лист (предзаказ)⚓︎


Сводный прайс-лист - это прайс-лист, сформированный из прайс-листов всех поставщиков аптеки, где по каждой номенклатуре выбирается только один поставщик, с наиболее выгодной для аптеке ценой. Исходя из этого, сводный прайс-лист должен содержать в себе только строки с уникальными (не повторяющимися в пределах прайс-листа) кодами номенклатуры (nnt).

Передача сводных прайс-листов в АСНА⚓︎

Передача сводных прайс-листов в АСНА осуществляется следующими методами:

  1. Передача полного сводного прайс-листа
  2. Передача изменений по сводному прайс-листу

Передача полного сводного прайс-листа юридического лица⚓︎

Ежедневно, желательно в период наименьшей загруженности сервисов, интегрированное с АСНА программное обеспечение должно отправлять полный сводный прайс-лист по каждому юридическому лицу. Выгрузка полного сводного прайс-листа должна производиться не чаще одного раза в сутки. Так как объем передаваемой информации большой, она не обрабатывается сразу, а ставится в очередь на обработку.

ВНИМАНИЕ!

Перед обработкой полного прайс-листа и записью его в БД, сервис произведет удаление сводного прайс-листа в БД по этому юрлицу.

POST /v5/legal_entities/{storeId}/preorders

Описание⚓︎

Передать полный сводный прайс-лист по юрлицу аптеки storeId по протоколу v5

Параметры запроса⚓︎

Имя Тип Обяз. Описание
storeId GUID Идентификатор аптеки по справочнику АСНА. По нему мы определяем юридическое лицо.

Заголовки запроса⚓︎

Имя Описание
Authorization Bearer token
Content-Type application/json

Тело запроса⚓︎

Объект запроса⚓︎

Имя Тип Обяз. Описание
date datetime Дата выгрузки полного прайс-листа в формате ISO8601 с указанием часового пояса
preorders Preorder[] Массив строк полного прайс-листа

Объект запроса Preorder(строка прайс-листа)⚓︎

Имя Тип Обяз. Описание
nnt int Код товара по справочнику АСНА
sku string(50) Код товара по справочнику клиента. Максимум 50 символов.
qnt float Количество товара
supInn string ИНН поставщика. Обязательно, если хотите получать ИНН в строках заказа с asna.ru
supDate datetime Дата поставки в формате ISO8601 с указанием часового пояса
exp datetime Cрок годности в формате ISO8601. Поле не является обязательным, т.к. не у всех товаров есть срок годности, но если у товара есть срок, убедительная просьба его заполнять. Покупатели хотят видеть срок на сайте. Для сервиса Контроль сроков годности поле обязательно
prcOptNds decimal Цена оптовая (закупочная) с НДС. Обязательно, если не передается Цена реализации
prcRet decimal Цена реализации. Обязательно, если не передается Цена оптовая (закупочная) с НДС
prcGnvlsMax decimal Максимально допустимая розничная цена для ЖНВЛС (поле обязательно для ЖНВЛС). Если эта цена не указана, то АСНА не будет контролировать превышение наценки на ЖНВЛС при расчете розничной цены. В этом случае ПО должно делать это самостоятельно. Если ПО самостоятельно не контролирует максимально допустимые цены ЖНВЛС то поле обязательно
prclDate datetime Дата прайс-листа в формате ISO8601 с указанием часового пояса
plType int Тип прайслиста, 0 - для юрлица, 1 - для хаба, 2 - для аптеки
status int Признак активной или удаленной строки (0 - активная, 1 - удаленная). В полном прайс-листе всегда 0, т.к. в нем должны быть только активные строки

Ссылка на JSON схему для валидации и тестирования

Пример запроса⚓︎

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
POST /v5/legal_entities/BC164E55-B612-4A04-800B-34CCF10F6858/preorders HTTP/1.1
Host: api.asna.cloud
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdGQzk0RDU4N0UzQzg4QUM0M0FDQkQyOEU0Njk4RDZCOTE3RkQyOUUiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmOGxOV0g0OGlLeERyTDBvNUdtTmE1Rl8wcDQifQ.eyJuYmYiOjE0OTE1NzY2MDcsImV4cCI6MTQ5MTU4MDIwNywiaXNzIjoiaHR0cHM6Ly9zc28uYXNuYS5jbG91ZDoxODgxIiwiYXVkIjpbImh0dHBzOi8vc3NvLmFzbmEuY2xvdWQ6MTg4MS9yZXNvdXJjZXMiLCJhcGkiXSwiY2xpZW50X2lkIjoiRTQ1RDM0OTEtNzlFRS00RUVBLTkyQjItMjJDRUJFNEJCOEI1IiwiY2xpZW50X2FjY2VzcyI6WyJzdG9ja3MuZWRpdCIsInN0b2Nrcy5mdWxsX2FjY2VzcyIsInN0b2Nrcy52aWV3Il0sInNjb3BlIjpbImFwaSJdfQ.OvGjvdbOk6QI3CNRyjOmj5mSrUZ7v1LjWRgH9TjwhNTTKiEaww1iEr8CnSKOfpGUdhkFGiup8kzvW0PIsqrVZHEx2r5gmT9SO6orznDg-ESprgjjiBC-uYSSTzK_WmPZp-cjP4OVt8ovGY3ncNhrTYFmBy0CJh0XBtMmO5IkE9ASxyaw5Ou5by0SaMTF8Vh9ocE0Uaj8xf-m6ivKQYv_4gEsKs6XEjKBN0khfZGOvv1qQJ4iBn-fVtOqPUpv1ypcOskGZhVHo200ZjvPalbemV-51D45k1KZcE_K9qiYK8Y1vX_lzRDSaQI30PACuQc-VpB-WcCMAtVEEuo0paL2fw
Content-Type: application/json
Cache-Control: no-cache

{
    "date": "2017-06-22T00:21:12.1788669+00:00",
    "preorders": [
        {
            "nnt": 65192,
            "sku": "840883",
            "supInn": "3769761555",
            "prcOptNds": 21.27,
            "prcGnvlsMax": 25.37,
            "status": 0,
            "exp": "2020-11-14T09:32:32.437353+00:00",
            "supDate": "2017-06-24T20:26:37.0825228+00:00",
            "prclDate": "2017-06-21T14:43:56.604495+00:00",
            "plType": 0
        },
        {
            "nnt": 78713,
            "sku": "045998",
            "supInn": "7444215734",
            "prcOptNds": 489.06,
            "prcGnvlsMax": 614.44,
            "status": 0,
            "exp": "2018-11-22T15:37:11.8230938+00:00",
            "supDate": "2017-06-24T20:43:40.4941116+00:00",
            "prclDate": "2017-06-21T14:12:31.2273135+00:00",
            "plType": 1
        },
        {
            "nnt": 10990,
            "sku": "090794",
            "supInn": "2671494234",
            "prcOptNds": 852.67,
            "prcGnvlsMax": 1089.3,
            "status": 0,
            "exp": "2020-04-13T21:00:34.6708683+00:00",
            "supDate": "2017-06-23T10:23:07.3306094+00:00",
            "prclDate": "2017-06-20T17:53:03.778358+00:00",
            "plType": 0
        }
    ]
}

Успешный ответ⚓︎

HTTP cтатус Значение
202 Accepted. Принято к обработке. В заголовке Location содержится URL для получения статуса обработки переданного пакета.

Пример ответа⚓︎

1
2
3
HTTP/1.1 202 Accepted
Vary: Accept
Location: https://api.asna.cloud/v5/messages/09006a8b-826d-48a0-91ad-f4d05a454b56/status

Неуспешный ответ⚓︎

HTTP статус Значение
400 Bad Request. Полученные службой данные содержат ошибки. Информация об ошибке возвращается в теле ответа.
401 Unauthorized. Токен авторизации неверный или истек срок его действия
403 Forbidden. У вас нет прав на выполнение данной операции
429 Too Many Requests. Слишком много запросов с одного IP адреса за промежуток времени
500 Internal Server Error. Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса

Передача изменений по сводному прайс-листу юридического лица⚓︎

С определенной периодичностью, интегрированное с АСНА программное обеспечение должно отправлять изменения по сводному прайс-листу для каждого юрлица. При отсутствии изменений по сводному прайс-листу, отправлять данные не нужно.

ВНИМАНИЕ!

Если товар был удален из сводного прайс-листа, то необходимо передать эту запись со статусом равным 1.

ИНФОРМАЦИЯ

Перед обработкой изменений по сводному прайс-листу юрлица и записью их в БД, сервис не будет производить удаление сводного прайс-листа в БД по этому юрлицу. Будет произведена операция upsert (update для уже имеющихся в БД строк и insert для отсутствующих).

PUT /v5/legal_entities/{storeId}/preorders

Описание⚓︎

Передать изменения по сводному прайс-листу юрлица аптеки storeId по протоколу v5

Параметры запроса⚓︎

Имя Тип Обяз. Описание
storeId GUID Идентификатор аптеки по справочнику АСНА. По нему мы определяем юридическое лицо.

Заголовки запроса⚓︎

Имя Описание
Authorization Bearer token
Content-Type application/json

Тело запроса⚓︎

Объект запроса⚓︎

Имя Тип Обяз. Описание
date datetime Дата выгрузки полного прайс-листа в формате ISO8601 с указанием часового пояса
preorders Preorder[] Массив строк полного прайс-листа

Объект запроса Preorder(строка прайс-листа)⚓︎

Имя Тип Обяз. Описание
nnt int Код товара по справочнику АСНА
sku string Код товара по справочнику клиента. Максимум 50 символов.
qnt float Количество товара
supInn string ИНН поставщика. Обязательно, если хотите получать ИНН в строках заказа с asna.ru
supDate datetime Дата поставки в формате ISO8601 с указанием часового пояса
exp datetime Cрок годности в формате ISO8601. Поле не является обязательным, т.к. не у всех товаров есть срок годности, но если у товара есть срок, убедительная просьба его заполнять. Покупатели хотят видеть срок на сайте. Для сервиса Контроль сроков годности поле обязательно
prcOptNds decimal Цена оптовая (закупочная) с НДС. Обязательно, если не передается Цена реализации
prcRet decimal Цена реализации. Обязательно, если не передается Цена оптовая (закупочная) с НДС
prcGnvlsMax decimal Максимально допустимая розничная цена для ЖНВЛС (поле обязательно для ЖНВЛС). Если эта цена не указана, то АСНА не будет контролировать превышение наценки на ЖНВЛС при расчете розничной цены. В этом случае ПО должно делать это самостоятельно. Если ПО самостоятельно не контролирует максимально допустимые цены ЖНВЛС то поле обязательно
prclDate datetime Дата прайс-листа в формате ISO8601 с указанием часового пояса
plType int Тип прайслиста, 0 - для юрлица, 1 - для хаба, 2 - для аптеки
status int Признак активной или удаленной строки (0 - активная, 1 - удаленная). В полном прайс-листе всегда 0, т.к. в нем должны быть только активные строки

Ссылка на JSON схему для валидации и тестирования

Пример запроса⚓︎

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
PUT /v5/legal_entities/BC164E55-B612-4A04-800B-34CCF10F6858/preorders HTTP/1.1
Host: api.asna.cloud
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdGQzk0RDU4N0UzQzg4QUM0M0FDQkQyOEU0Njk4RDZCOTE3RkQyOUUiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmOGxOV0g0OGlLeERyTDBvNUdtTmE1Rl8wcDQifQ.eyJuYmYiOjE0OTE1NzY2MDcsImV4cCI6MTQ5MTU4MDIwNywiaXNzIjoiaHR0cHM6Ly9zc28uYXNuYS5jbG91ZDoxODgxIiwiYXVkIjpbImh0dHBzOi8vc3NvLmFzbmEuY2xvdWQ6MTg4MS9yZXNvdXJjZXMiLCJhcGkiXSwiY2xpZW50X2lkIjoiRTQ1RDM0OTEtNzlFRS00RUVBLTkyQjItMjJDRUJFNEJCOEI1IiwiY2xpZW50X2FjY2VzcyI6WyJzdG9ja3MuZWRpdCIsInN0b2Nrcy5mdWxsX2FjY2VzcyIsInN0b2Nrcy52aWV3Il0sInNjb3BlIjpbImFwaSJdfQ.OvGjvdbOk6QI3CNRyjOmj5mSrUZ7v1LjWRgH9TjwhNTTKiEaww1iEr8CnSKOfpGUdhkFGiup8kzvW0PIsqrVZHEx2r5gmT9SO6orznDg-ESprgjjiBC-uYSSTzK_WmPZp-cjP4OVt8ovGY3ncNhrTYFmBy0CJh0XBtMmO5IkE9ASxyaw5Ou5by0SaMTF8Vh9ocE0Uaj8xf-m6ivKQYv_4gEsKs6XEjKBN0khfZGOvv1qQJ4iBn-fVtOqPUpv1ypcOskGZhVHo200ZjvPalbemV-51D45k1KZcE_K9qiYK8Y1vX_lzRDSaQI30PACuQc-VpB-WcCMAtVEEuo0paL2fw
Content-Type: application/json
Cache-Control: no-cache

{
    "date": "2017-06-22T00:21:12.1788669+00:00",
    "preorders": [
        {
            "nnt": 65192,
            "sku": "840883",
            "supInn": "3769761555",
            "prcOptNds": 21.27,
            "prcGnvlsMax": 25.37,
            "status": 0,
            "exp": "2020-11-14T09:32:32.437353+00:00",
            "supDate": "2017-06-24T20:26:37.0825228+00:00",
            "prclDate": "2017-06-21T14:43:56.604495+00:00",
            "plType": 0
        },
        {
            "nnt": 78713,
            "sku": "045998",
            "supInn": "7444215734",
            "prcOptNds": 489.06,
            "prcGnvlsMax": 614.44,
            "status": 1,
            "exp": "2018-11-22T15:37:11.8230938+00:00",
            "supDate": "2017-06-24T20:43:40.4941116+00:00",
            "prclDate": "2017-06-21T14:12:31.2273135+00:00",
            "plType": 0
        },
        {
            "nnt": 10990,
            "sku": "090794",
            "supInn": "2671494234",
            "prcOptNds": 852.67,
            "prcGnvlsMax": 1089.3,
            "status": 1,
            "exp": "2020-04-13T21:00:34.6708683+00:00",
            "supDate": "2017-06-23T10:23:07.3306094+00:00",
            "prclDate": "2017-06-20T17:53:03.778358+00:00",
            "plType": 0
        }
    ]
}

Успешный ответ⚓︎

HTTP cтатус Значение
202 Accepted. Принято к обработке. В заголовке Location содержится URL для получения статуса обработки переданного пакета.

Пример ответа⚓︎

1
2
3
HTTP/1.1 202 Accepted
Vary: Accept
Location: https://api.asna.cloud/v5/messages/09006a8b-826d-48a0-91ad-f4d05a454b56/status

Неуспешный ответ⚓︎

HTTP статус Значение
400 Bad Request. Полученные службой данные содержат ошибки. Информация об ошибке возвращается в теле ответа.
401 Unauthorized. Токен авторизации неверный или истек срок его действия
403 Forbidden. У вас нет прав на выполнение данной операции
429 Too Many Requests. Слишком много запросов с одного IP адреса за промежуток времени
500 Internal Server Error. Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса

Получение информации по сводному прайс-листу юрлица⚓︎

Для периодической проверки информации по сводному прайс-листу, переданному в АСНА, вы можете получить данные по сводному прайс-листу юрлица, используя следующий запрос:

GET /v5/legal_entities/{storeId}/preorders?since={since}

Описание⚓︎

Получить сводный прайс-лист по юрлицу аптеки storeId по протоколу v5, с даты since

Параметры запроса⚓︎

Имя Тип Обяз. Описание
storeId GUID Идентификатор аптеки по справочнику АСНА. По нему мы определяем юридическое лицо
since datetime Дата/время в формате ISO8601, с которой необходимо получить сводный прайс-лист

Заголовки запроса⚓︎

Имя Описание
Authorization Bearer token
Accept application/json или application/x-json-full

Пример запроса⚓︎

1
2
3
GET /v5/legal_entities/BC164E55-B612-4A04-800B-34CCF10F6858/preorders?since=2017-04-20T02:29:31.104986%2B00:00 HTTP/1.1
Host: api.asna.cloud
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdGQzk0RDU4N0UzQzg4QUM0M0FDQkQyOEU0Njk4RDZCOTE3RkQyOUUiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmOGxOV0g0OGlLeERyTDBvNUdtTmE1Rl8wcDQifQ.eyJuYmYiOjE0OTE1NzY2MDcsImV4cCI6MTQ5MTU4MDIwNywiaXNzIjoiaHR0cHM6Ly9zc28uYXNuYS5jbG91ZDoxODgxIiwiYXVkIjpbImh0dHBzOi8vc3NvLmFzbmEuY2xvdWQ6MTg4MS9yZXNvdXJjZXMiLCJhcGkiXSwiY2xpZW50X2lkIjoiRTQ1RDM0OTEtNzlFRS00RUVBLTkyQjItMjJDRUJFNEJCOEI1IiwiY2xpZW50X2FjY2VzcyI6WyJzdG9ja3MuZWRpdCIsInN0b2Nrcy5mdWxsX2FjY2VzcyIsInN0b2Nrcy52aWV3Il0sInNjb3BlIjpbImFwaSJdfQ.OvGjvdbOk6QI3CNRyjOmj5mSrUZ7v1LjWRgH9TjwhNTTKiEaww1iEr8CnSKOfpGUdhkFGiup8kzvW0PIsqrVZHEx2r5gmT9SO6orznDg-ESprgjjiBC-uYSSTzK_WmPZp-cjP4OVt8ovGY3ncNhrTYFmBy0CJh0XBtMmO5IkE9ASxyaw5Ou5by0SaMTF8Vh9ocE0Uaj8xf-m6ivKQYv_4gEsKs6XEjKBN0khfZGOvv1qQJ4iBn-fVtOqPUpv1ypcOskGZhVHo200ZjvPalbemV-51D45k1KZcE_K9qiYK8Y1vX_lzRDSaQI30PACuQc-VpB-WcCMAtVEEuo0paL2fw

Успешный ответ⚓︎

HTTP cтатус Значение
200 OK. Успешный запрос. В теле ответа содержится массив строк прайс-листа

Пример ответа⚓︎

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[
  {
    "srcId": "bc164e55-b612-4a04-800b-34ccf10f6858",
    "nnt": 73357,
    "sku": "587457",
    "supInn": "6178564994",
    "prcOptNds": 729.64,
    "prcGnvlsMax": 901.73,
    "exp": "2020-09-02T02:03:19.3303596+00:00",
    "supDate": "2017-06-28T09:57:04.651992+00:00",
    "prclDate": "2017-06-26T05:47:37.4603053+00:00",
    "status": 1
  },
  {
    "srcId": "bc164e55-b612-4a04-800b-34ccf10f6858",
    "nnt": 23317,
    "sku": "446478",
    "supInn": "9473035455",
    "prcOptNds": 317.57,
    "prcGnvlsMax": 374.97,
    "exp": "2020-01-15T09:05:44.8573497+00:00",
    "supDate": "2017-06-28T00:00:20.3622931+00:00",
    "prclDate": "2017-06-25T18:54:06.2889833+00:00",
    "status": 0
  }
]

Объект ответа (строка прайс-листа)⚓︎

Имя Тип Описание
srcId GUID Уникальный код юрлица по справочнику АСНА
nnt int Код товара по справочнику АСНА
sku string Код товара по справочнику клиента. Максимум 50 символов.
qnt float Количество товара
supInn string ИНН поставщика
supDate datetime Дата поставки в формате ISO8601 с указанием часового пояса
exp datetime Cрок годности в формате ISO8601. Поле не является обязательным, т.к. не у всех товаров есть срок годности, но если у товара есть срок, убедительная просьба его заполнять. Покупатели хотят видеть срок на сайте
prcOptNds decimal Цена оптовая (закупочная) с НДС
prcRet decimal Цена реализации
prcGnvlsMax decimal Максимально допустимая розничная цена для ЖНВЛС (поле обязательно для ЖНВЛС). Если эта цена не указана, то АСНА не будет контролировать превышение наценки на ЖНВЛС при расчете розничной цены. В этом случае ПО должно делать это самостоятельно
prclDate datetime Дата прайс-листа в формате ISO8601 с указанием часового пояса
plType int Тип прайслиста, 0 - для юрлица, 1 - для хаба, 2 - для аптеки
status int Признак активной или удаленной строки (0 - активная, 1 - удаленная). В полном прайс-листе всегда 0, т.к. в нем должны быть только активные строки

Неуспешный ответ⚓︎

HTTP статус Значение
400 Bad Request. Полученные службой данные содержат ошибки. Информация об ошибке возвращается в теле ответа.
401 Unauthorized. Токен авторизации неверный или истек срок его действия
403 Forbidden. У вас нет прав на выполнение данной операции
429 Too Many Requests. Слишком много запросов с одного IP адреса за промежуток времени
500 Internal Server Error. Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса

Передача полного сводного прайс-листа аптеки⚓︎

Ежедневно, желательно в период наименьшей загруженности сервисов, интегрированное с АСНА программное обеспечение может отправлять полный сводный прайс-лист по аптеке. Выгрузка полного сводного прайс-листа должна производиться не чаще одного раза в сутки. Так как объем передаваемой информации большой, она не обрабатывается сразу, а ставится в очередь на обработку.

ВНИМАНИЕ!

Перед обработкой полного прайс-листа и записью его в БД, сервис произведет удаление сводного прайс-листа в БД по этой аптеке.

POST /v5/stores/{storeId}/preorders

Описание⚓︎

Передать полный сводный прайс-лист по аптеке storeId по протоколу v5

Параметры запроса⚓︎

Имя Тип Обяз. Описание
storeId GUID Идентификатор аптеки по справочнику АСНА. По нему мы определяем юридическое лицо.

Заголовки запроса⚓︎

Имя Описание
Authorization Bearer token
Content-Type application/json

Тело запроса⚓︎

Объект запроса⚓︎

Имя Тип Обяз. Описание
date datetime Дата выгрузки полного прайс-листа в формате ISO8601 с указанием часового пояса
preorders Preorder[] Массив строк полного прайс-листа

Объект запроса Preorder(строка прайс-листа)⚓︎

Имя Тип Обяз. Описание
nnt int Код товара по справочнику АСНА
sku string Код товара по справочнику клиента. Максимум 50 символов.
qnt float Количество товара
supInn string ИНН поставщика
supDate datetime Дата поставки в формате ISO8601 с указанием часового пояса
exp datetime Cрок годности в формате ISO8601. Поле не является обязательным, т.к. не у всех товаров есть срок годности, но если у товара есть срок, убедительная просьба его заполнять. Покупатели хотят видеть срок на сайте
prcOptNds decimal Цена оптовая (закупочная) с НДС
prcRet decimal Цена реализации
prcGnvlsMax decimal Максимально допустимая розничная цена для ЖНВЛС (поле обязательно для ЖНВЛС). Если эта цена не указана, то АСНА не будет контролировать превышение наценки на ЖНВЛС при расчете розничной цены. В этом случае ПО должно делать это самостоятельно
prclDate datetime Дата прайс-листа в формате ISO8601 с указанием часового пояса
plType int Тип прайслиста, 0 - для юрлица, 1 - для хаба, 2 - для аптеки
status int Признак активной или удаленной строки (0 - активная, 1 - удаленная). В полном прайс-листе всегда 0, т.к. в нем должны быть только активные строки

Ссылка на JSON схему для валидации и тестирования

Пример запроса⚓︎

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
POST /v5/stores/BC164E55-B612-4A04-800B-34CCF10F6858/preorders HTTP/1.1
Host: api.asna.cloud
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdGQzk0RDU4N0UzQzg4QUM0M0FDQkQyOEU0Njk4RDZCOTE3RkQyOUUiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmOGxOV0g0OGlLeERyTDBvNUdtTmE1Rl8wcDQifQ.eyJuYmYiOjE0OTE1NzY2MDcsImV4cCI6MTQ5MTU4MDIwNywiaXNzIjoiaHR0cHM6Ly9zc28uYXNuYS5jbG91ZDoxODgxIiwiYXVkIjpbImh0dHBzOi8vc3NvLmFzbmEuY2xvdWQ6MTg4MS9yZXNvdXJjZXMiLCJhcGkiXSwiY2xpZW50X2lkIjoiRTQ1RDM0OTEtNzlFRS00RUVBLTkyQjItMjJDRUJFNEJCOEI1IiwiY2xpZW50X2FjY2VzcyI6WyJzdG9ja3MuZWRpdCIsInN0b2Nrcy5mdWxsX2FjY2VzcyIsInN0b2Nrcy52aWV3Il0sInNjb3BlIjpbImFwaSJdfQ.OvGjvdbOk6QI3CNRyjOmj5mSrUZ7v1LjWRgH9TjwhNTTKiEaww1iEr8CnSKOfpGUdhkFGiup8kzvW0PIsqrVZHEx2r5gmT9SO6orznDg-ESprgjjiBC-uYSSTzK_WmPZp-cjP4OVt8ovGY3ncNhrTYFmBy0CJh0XBtMmO5IkE9ASxyaw5Ou5by0SaMTF8Vh9ocE0Uaj8xf-m6ivKQYv_4gEsKs6XEjKBN0khfZGOvv1qQJ4iBn-fVtOqPUpv1ypcOskGZhVHo200ZjvPalbemV-51D45k1KZcE_K9qiYK8Y1vX_lzRDSaQI30PACuQc-VpB-WcCMAtVEEuo0paL2fw
Content-Type: application/json
Cache-Control: no-cache

{
    "date": "2017-06-22T00:21:12.1788669+00:00",
    "preorders": [
        {
            "nnt": 65192,
            "sku": "840883",
            "supInn": "3769761555",
            "prcOptNds": 21.27,
            "prcGnvlsMax": 25.37,
            "status": 0,
            "exp": "2020-11-14T09:32:32.437353+00:00",
            "supDate": "2017-06-24T20:26:37.0825228+00:00",
            "prclDate": "2017-06-21T14:43:56.604495+00:00",
            "plType": 2,
            "qnt": 100,
            "prcRet": 24.00
        },
        {
            "nnt": 78713,
            "sku": "045998",
            "supInn": "7444215734",
            "prcOptNds": 489.06,
            "prcGnvlsMax": 614.44,
            "status": 0,
            "exp": "2018-11-22T15:37:11.8230938+00:00",
            "supDate": "2017-06-24T20:43:40.4941116+00:00",
            "prclDate": "2017-06-21T14:12:31.2273135+00:00",
            "plType": 2,
            "qnt": 100,
            "prcRet": 500.00
        },
        {
            "nnt": 10990,
            "sku": "090794",
            "supInn": "2671494234",
            "prcOptNds": 852.67,
            "prcGnvlsMax": 1089.3,
            "status": 0,
            "exp": "2020-04-13T21:00:34.6708683+00:00",
            "supDate": "2017-06-23T10:23:07.3306094+00:00",
            "prclDate": "2017-06-20T17:53:03.778358+00:00",
            "plType": 2,
            "qnt": 100,
            "prcRet": 900.00
        }
    ]
}

Успешный ответ⚓︎

HTTP cтатус Значение
202 Accepted. Принято к обработке. В заголовке Location содержится URL для получения статуса обработки переданного пакета.

Пример ответа⚓︎

1
2
3
HTTP/1.1 202 Accepted
Vary: Accept
Location: https://api.asna.cloud/v5/messages/09006a8b-826d-48a0-91ad-f4d05a454b56/status

Неуспешный ответ⚓︎

HTTP статус Значение
400 Bad Request. Полученные службой данные содержат ошибки. Информация об ошибке возвращается в теле ответа.
401 Unauthorized. Токен авторизации неверный или истек срок его действия
403 Forbidden. У вас нет прав на выполнение данной операции
429 Too Many Requests. Слишком много запросов с одного IP адреса за промежуток времени
500 Internal Server Error. Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса

Передача изменений по сводному прайс-листу аптеки⚓︎

С определенной периодичностью, интегрированное с АСНА программное обеспечение может отправлять изменения по сводному прайс-листу аптеки. При отсутствии изменений по сводному прайс-листу, отправлять данные не нужно.

ВНИМАНИЕ!

Если товар был удален из сводного прайс-листа, то необходимо передать эту запись со статусом равным 1.

ИНФОРМАЦИЯ

Перед обработкой изменений по сводному прайс-листу аптеки и записью их в БД, сервис не будет производить удаление сводного прайс-листа в БД по этой аптеке. Будет произведена операция upsert (update для уже имеющихся в БД строк и insert для отсутствующих).

PUT /v5/stores/{storeId}/preorders

Описание⚓︎

Передать изменения по сводному прайс-листу аптеки storeId по протоколу v5

Параметры запроса⚓︎

Имя Тип Обяз. Описание
storeId GUID Идентификатор аптеки по справочнику АСНА. По нему мы определяем юридическое лицо.

Заголовки запроса⚓︎

Имя Описание
Authorization Bearer token
Content-Type application/json

Тело запроса⚓︎

Объект запроса⚓︎

Имя Тип Обяз. Описание
date datetime Дата выгрузки полного прайс-листа в формате ISO8601 с указанием часового пояса
preorders Preorder[] Массив строк полного прайс-листа

Объект запроса Preorder(строка прайс-листа)⚓︎

Имя Тип Обяз. Описание
nnt int Код товара по справочнику АСНА
sku string(50) Код товара по справочнику клиента. Максимум 50 символов.
qnt float Количество товара
supInn string(50) ИНН поставщика
supDate datetime Дата поставки в формате ISO8601 с указанием часового пояса
exp datetime Cрок годности в формате ISO8601. Поле не является обязательным, т.к. не у всех товаров есть срок годности, но если у товара есть срок, убедительная просьба его заполнять. Покупатели хотят видеть срок на сайте
prcOptNds decimal Цена оптовая (закупочная) с НДС
prcRet decimal Цена реализации
prcGnvlsMax decimal Максимально допустимая розничная цена для ЖНВЛС (поле обязательно для ЖНВЛС). Если эта цена не указана, то АСНА не будет контролировать превышение наценки на ЖНВЛС при расчете розничной цены. В этом случае ПО должно делать это самостоятельно
prclDate datetime Дата прайс-листа в формате ISO8601 с указанием часового пояса
plType int Тип прайслиста, 0 - для юрлица, 1 - для хаба, 2 - для аптеки
status int Признак активной или удаленной строки (0 - активная, 1 - удаленная). В полном прайс-листе всегда 0, т.к. в нем должны быть только активные строки

Ссылка на JSON схему для валидации и тестирования

Пример запроса⚓︎

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
PUT /v5/stores/BC164E55-B612-4A04-800B-34CCF10F6858/preorders HTTP/1.1
Host: api.asna.cloud
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdGQzk0RDU4N0UzQzg4QUM0M0FDQkQyOEU0Njk4RDZCOTE3RkQyOUUiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmOGxOV0g0OGlLeERyTDBvNUdtTmE1Rl8wcDQifQ.eyJuYmYiOjE0OTE1NzY2MDcsImV4cCI6MTQ5MTU4MDIwNywiaXNzIjoiaHR0cHM6Ly9zc28uYXNuYS5jbG91ZDoxODgxIiwiYXVkIjpbImh0dHBzOi8vc3NvLmFzbmEuY2xvdWQ6MTg4MS9yZXNvdXJjZXMiLCJhcGkiXSwiY2xpZW50X2lkIjoiRTQ1RDM0OTEtNzlFRS00RUVBLTkyQjItMjJDRUJFNEJCOEI1IiwiY2xpZW50X2FjY2VzcyI6WyJzdG9ja3MuZWRpdCIsInN0b2Nrcy5mdWxsX2FjY2VzcyIsInN0b2Nrcy52aWV3Il0sInNjb3BlIjpbImFwaSJdfQ.OvGjvdbOk6QI3CNRyjOmj5mSrUZ7v1LjWRgH9TjwhNTTKiEaww1iEr8CnSKOfpGUdhkFGiup8kzvW0PIsqrVZHEx2r5gmT9SO6orznDg-ESprgjjiBC-uYSSTzK_WmPZp-cjP4OVt8ovGY3ncNhrTYFmBy0CJh0XBtMmO5IkE9ASxyaw5Ou5by0SaMTF8Vh9ocE0Uaj8xf-m6ivKQYv_4gEsKs6XEjKBN0khfZGOvv1qQJ4iBn-fVtOqPUpv1ypcOskGZhVHo200ZjvPalbemV-51D45k1KZcE_K9qiYK8Y1vX_lzRDSaQI30PACuQc-VpB-WcCMAtVEEuo0paL2fw
Content-Type: application/json
Cache-Control: no-cache

{
    "date": "2017-06-22T00:21:12.1788669+00:00",
    "preorders": [
        {
            "nnt": 65192,
            "sku": "840883",
            "supInn": "3769761555",
            "prcOptNds": 21.27,
            "prcGnvlsMax": 25.37,
            "status": 0,
            "exp": "2020-11-14T09:32:32.437353+00:00",
            "supDate": "2017-06-24T20:26:37.0825228+00:00",
            "prclDate": "2017-06-21T14:43:56.604495+00:00",
            "plType": 2,
            "qnt": 100,
            "prcRet": 24.00
        },
        {
            "nnt": 78713,
            "sku": "045998",
            "supInn": "7444215734",
            "prcOptNds": 489.06,
            "prcGnvlsMax": 614.44,
            "status": 1,
            "exp": "2018-11-22T15:37:11.8230938+00:00",
            "supDate": "2017-06-24T20:43:40.4941116+00:00",
            "prclDate": "2017-06-21T14:12:31.2273135+00:00",
            "plType": 2,
            "qnt": 100,
            "prcRet": 500.00
        },
        {
            "nnt": 10990,
            "sku": "090794",
            "supInn": "2671494234",
            "prcOptNds": 852.67,
            "prcGnvlsMax": 1089.3,
            "status": 1,
            "exp": "2020-04-13T21:00:34.6708683+00:00",
            "supDate": "2017-06-23T10:23:07.3306094+00:00",
            "prclDate": "2017-06-20T17:53:03.778358+00:00",
            "plType": 2,
            "qnt": 100,
            "prcRet": 900.00
        }
    ]
}

Успешный ответ⚓︎

HTTP cтатус Значение
202 Accepted. Принято к обработке. В заголовке Location содержится URL для получения статуса обработки переданного пакета.

Пример ответа⚓︎

1
2
3
HTTP/1.1 202 Accepted
Vary: Accept
Location: https://api.asna.cloud/v5/messages/09006a8b-826d-48a0-91ad-f4d05a454b56/status

Неуспешный ответ⚓︎

HTTP статус Значение
400 Bad Request. Полученные службой данные содержат ошибки. Информация об ошибке возвращается в теле ответа.
401 Unauthorized. Токен авторизации неверный или истек срок его действия
403 Forbidden. У вас нет прав на выполнение данной операции
429 Too Many Requests. Слишком много запросов с одного IP адреса за промежуток времени
500 Internal Server Error. Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса

Получение информации по сводному прайс-листу аптеки⚓︎

Для периодической проверки информации по сводному прайс-листу, переданному в АСНА, вы можете получить данные по сводному прайс-листу аптеки, используя следующий запрос:

GET /v5/stores/{storeId}/preorders?since={since}

Описание⚓︎

Получить сводный прайс-лист по аптеке storeId по протоколу v5, с даты since

Параметры запроса⚓︎

Имя Тип Обяз. Описание
storeId GUID Идентификатор аптеки по справочнику АСНА. По нему мы определяем юридическое лицо
since datetime Дата/время в формате формат ISO8601, с которой необходимо получить сводный прайс-лист

Заголовки запроса⚓︎

Имя Описание
Authorization Bearer token
Accept application/json или application/x-json-full

Пример запроса⚓︎

1
2
3
GET /v5/stores/BC164E55-B612-4A04-800B-34CCF10F6858/preorders?since=2017-04-20T02:29:31.104986%2B00:00 HTTP/1.1
Host: api.asna.cloud
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdGQzk0RDU4N0UzQzg4QUM0M0FDQkQyOEU0Njk4RDZCOTE3RkQyOUUiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmOGxOV0g0OGlLeERyTDBvNUdtTmE1Rl8wcDQifQ.eyJuYmYiOjE0OTE1NzY2MDcsImV4cCI6MTQ5MTU4MDIwNywiaXNzIjoiaHR0cHM6Ly9zc28uYXNuYS5jbG91ZDoxODgxIiwiYXVkIjpbImh0dHBzOi8vc3NvLmFzbmEuY2xvdWQ6MTg4MS9yZXNvdXJjZXMiLCJhcGkiXSwiY2xpZW50X2lkIjoiRTQ1RDM0OTEtNzlFRS00RUVBLTkyQjItMjJDRUJFNEJCOEI1IiwiY2xpZW50X2FjY2VzcyI6WyJzdG9ja3MuZWRpdCIsInN0b2Nrcy5mdWxsX2FjY2VzcyIsInN0b2Nrcy52aWV3Il0sInNjb3BlIjpbImFwaSJdfQ.OvGjvdbOk6QI3CNRyjOmj5mSrUZ7v1LjWRgH9TjwhNTTKiEaww1iEr8CnSKOfpGUdhkFGiup8kzvW0PIsqrVZHEx2r5gmT9SO6orznDg-ESprgjjiBC-uYSSTzK_WmPZp-cjP4OVt8ovGY3ncNhrTYFmBy0CJh0XBtMmO5IkE9ASxyaw5Ou5by0SaMTF8Vh9ocE0Uaj8xf-m6ivKQYv_4gEsKs6XEjKBN0khfZGOvv1qQJ4iBn-fVtOqPUpv1ypcOskGZhVHo200ZjvPalbemV-51D45k1KZcE_K9qiYK8Y1vX_lzRDSaQI30PACuQc-VpB-WcCMAtVEEuo0paL2fw

Успешный ответ⚓︎

HTTP cтатус Значение
200 OK. Успешный запрос. В теле ответа содержится массив строк прайс-листа

Пример ответа⚓︎

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[
  {
    "srcId": "bc164e55-b612-4a04-800b-34ccf10f6858",
    "nnt": 73357,
    "sku": "587457",
    "supInn": "6178564994",
    "prcOptNds": 729.64,
    "prcGnvlsMax": 901.73,
    "exp": "2020-09-02T02:03:19.3303596+00:00",
    "supDate": "2017-06-28T09:57:04.651992+00:00",
    "prclDate": "2017-06-26T05:47:37.4603053+00:00",
    "status": 1
  },
  {
    "srcId": "bc164e55-b612-4a04-800b-34ccf10f6858",
    "nnt": 23317,
    "sku": "446478",
    "supInn": "9473035455",
    "prcOptNds": 317.57,
    "prcGnvlsMax": 374.97,
    "exp": "2020-01-15T09:05:44.8573497+00:00",
    "supDate": "2017-06-28T00:00:20.3622931+00:00",
    "prclDate": "2017-06-25T18:54:06.2889833+00:00",
    "status": 0
  }
]

Объект ответа (строка прайс-листа)⚓︎

Имя Тип Описание
srcId GUID Уникальный код юрлица по справочнику АСНА
nnt int Код товара по справочнику АСНА
sku string Код товара по справочнику клиента. Максимум 50 символов.
qnt float Количество товара
supInn string ИНН поставщика
supDate datetime Дата поставки в формате ISO8601 с указанием часового пояса
exp datetime Cрок годности в формате ISO8601. Поле не является обязательным, т.к. не у всех товаров есть срок годности, но если у товара есть срок, убедительная просьба его заполнять. Покупатели хотят видеть срок на сайте
prcOptNds decimal Цена оптовая (закупочная) с НДС
prcRet decimal Цена реализации
prcGnvlsMax decimal Максимально допустимая розничная цена для ЖНВЛС (поле обязательно для ЖНВЛС). Если эта цена не указана, то АСНА не будет контролировать превышение наценки на ЖНВЛС при расчете розничной цены. В этом случае ПО должно делать это самостоятельно
prclDate datetime Дата прайс-листа в формате ISO8601 с указанием часового пояса
plType int Тип прайслиста, 0 - для юрлица, 1 - для хаба, 2 - для аптеки
status int Признак активной или удаленной строки (0 - активная, 1 - удаленная). В полном прайс-листе всегда 0, т.к. в нем должны быть только активные строки

Неуспешный ответ⚓︎

HTTP статус Значение
400 Bad Request. Полученные службой данные содержат ошибки. Информация об ошибке возвращается в теле ответа.
401 Unauthorized. Токен авторизации неверный или истек срок его действия
403 Forbidden. У вас нет прав на выполнение данной операции
429 Too Many Requests. Слишком много запросов с одного IP адреса за промежуток времени
500 Internal Server Error. Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса

Последнее обновление: 19 августа 2021 г. 14:45:33
Созданный: 5 августа 2021 г. 12:36:05

Комментарии

Back to top