ОлекстраПодключение аптечных сетейДокументация · редакция 16.10.2026

Основа для публикации backend-командой. Все адреса .invalid, карты, аптеки и ответы в примерах учебные. Публичный доступ к документации не даёт доступа к API; рабочий адрес и данные подключения выдаёт Олекстра.

PharmApi

JSON поверх POST. Поддерживаемые префиксы backend: /api/v1.0, /api/v1.1, /compat/pharmapi/v1.0, /compat/pharmapi/v1.1. Рабочий префикс определяется выданной инструкцией сети.

Аутентификация

JSON
authorization-token: NETWORK_LOGIN
authorization-secret: NETWORK_SECRET
Content-Type: application/json

Отсутствующий/пустой заголовок даёт 401; неизвестная, выключенная учётная запись или неверный секрет — 403. Проверка аутентификации выполняется до разбора метода.

1. Расчёт get_discount

HTTP
POST https://pos.example.invalid/api/v1.1/get_discount

{
  "card_number": "DEMO_CARD",
  "phone_number": "",
  "pharmacy_id": "DEMO_POINT",
  "pos_id": "1",
  "orders": [
    {
      "barcode": "4600000000008",
      "count": 1,
      "price": 100
    }
  ]
}

orders содержит barcode, count и price; any_data и qr_code передаются в применимом профиле. Денежные значения обрабатываются backend в десятичной арифметике. Успешный HTTP-ответ проверяется также по status, error_code и результатам строк. Для подтверждения сохраните все возвращённые коды transaction.

2. Подтверждение confirm_purchase

JSON
{
  "card_number": "DEMO_CARD",
  "phone_number": "",
  "pharmacy_id": "DEMO_POINT",
  "pos_id": "1",
  "transactions": [
    "RETURNED_TRANSACTION"
  ]
}

Адрес — тот же префикс с /confirm_purchase. Передайте полный набор кодов из расчёта. Отправка новой команды вместо повтора прежней не является способом устранить неопределённый исход.

3. Отмена cancel_purchase

JSON
{
  "card_number": "DEMO_CARD",
  "pharmacy_id": "DEMO_POINT",
  "pos_id": "1",
  "transactions": [
    "RETURNED_TRANSACTION"
  ]
}

Адрес — тот же префикс с /cancel_purchase. Возврат ограничен правилами программы. Не переносите сюда voucherId или confirmationToken из Сооплаты.

Справочник и данные

Backend имеет входы pl, update_pharmacies, update_prices и sellout. pl использует отдельный XML/multipart формат; он не является JSON-методом кассового расчёта. Состав и права загрузки уточняются в профиле сети.

Информационные подсказки

Штатного канала их передачи в PharmApi нет. Обычное message ошибки не является подтверждённым каналом рекламной подсказки.