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

Продажи (чеки) товаров по заказам⚓︎

Передача продаж по заказам⚓︎

Интегрированное с АСНА программное обеспечение периодически должно отправлять полные сведения о продажах по заказам с сайта АСНА. Периодичность может быть как ежедневная (желательно), так и еженедельная или ежемесячная. Передавать данные можно как по одной аптеке, так и по всем аптекам сети. Так как объем передаваемой информации о продажах может быть большой, пакет не обрабатывается сразу, а ставится в очередь на обработку.

ВНИМАНИЕ

Перед обработкой продаж и записью их в БД, сервис произведет удаление ВСЕХ продаж в БД за указанный в передаваемом пакете период, по указанным в пакете аптекам.

ЗАПРОС

POST    integration/v5/nets/{storeId}/sales

Описание⚓︎

Передать продажи по аптечной сети, в которую входит аптека storeId по протоколу v5

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

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

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

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

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

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

Имя Тип Обяз. Описание
beg_date datetime Дата начала выгружаемого периода продаж в формате yyyy-mm-dd, включительно
end_date datetime Дата конца выгружаемого продаж в формате yyyy-mm-dd, не включительно
checks Check[] Массив строк чеков

Объект запроса Check (строка чека)⚓︎

Имя Тип Обяз. Описание
store_id string(50) Уникальный код аптеки по справочнику АСНА
date datetime Дата строки чека в формате ISO-8601 с указанием часового пояса
order_num string(50) Номер заказа АСНА
sku string(50) Код товара по справочнику клиента. Максимум 50 символов.
name string Полное название товара, включая производителя и страну
ean string(13) Штрих-код производителя
qnt float Количество по строке чека
prc_opt decimal Цена оптовая без НДС
prc_sale decimal Цена продажи с учетом всех скидок
fiscal_date datetime Дата фискального документа в формате ISO8601
fiscal_sum decimal Сумма фискального документа. Сумма фискального документа должна сходиться с переданными суммами строк по данному чеку/документу
rn string(16) Регистрационный номер ККТ
fn string(16) Заводской номер фискального накопителя
fd string(10) Номер фискального документа
fp string(10) Фискальный признак документа
sgtin string(27) sGTIN товара, поле обязательно для маркированного товара

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

POST /integration/v5/nets/BC164E55-B612-4A04-800B-34CCF10F6858/sales 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
Accept: application/json
Cache-Control: no-cache

{
"beg_date": "2023-12-01",
"end_date": "2023-12-26",
"checks": [
   {
     "store_id": "7108c6b2-789c-4cb1-812e-026d5ba76b65",
     "date": "2023-12-06T09:00:00Z",
     "sku":"12345",
     "name": "Аспирин",
     "qnt": 1,
     "prc_sale": 2.03,
     "order_num": "123456",
     "fiscal_date":"2023-12-06T09:00:00Z",
     "fiscal_sum": 2.03,
     "fn":"1111111111111111",
     "fd":"2222222222",
     "fp":"3333333333",
     "sgtin": "123456789012345678901234567"
   }
  ]
}

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

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. Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса