☰ Меню · Сканирования
Справочник API

Сканирования

Превращает то, что считал сканер, в участника и список доступных для него действий.

POST/v1/scans
Право: members:read или devices:write

Находит участника по отсканированному значению и перечисляет, что устройство может сделать дальше. Ничего не начисляется и не списывается. Отправляет событие member.scanned. Если совпадений нет, возвращает 404 member_not_found.

codestring, обязательный
Ровно то, что выдал сканер: номер карты, содержимое QR, Code 128 с префиксом ]C1 или без него, ссылку на страницу карты или телефон. Переводы строк и табуляции удаляются.
device_idstring
Ваш id устройства, передаётся дальше в событие.
curl
curl https://loyaltyfy.io/api/v1/scans \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "code": "]C14285324286429\r", "device_id": "door-1" }'
Ответ · 200
{
  "object": "scan",
  "matched": true,
  "matched_by": "4285324286429",
  "device_id": "door-1",
  "mechanic": "stamps",
  "member": {
    "object": "member",
    "card_number": "4285324286429",
    "first_name": "Ana",
    "stamps": { "current": 1, "required": 5, "rewards_available": 0 },
    ...
  },
  "actions": [
    { "type": "visit", "method": "POST", "path": "/v1/visits" },
    { "type": "transaction", "method": "POST", "path": "/v1/transactions" }
  ]
}
action.typeЗначение
visitПрограмма награждает за визиты: можно вызвать POST /v1/visits.
transactionМожно провести чек через POST /v1/transactions.
redeem_rewardГостя ждёт награда за штампы. path это запрос, который нужно сделать, available это сколько наград доступно.
redeem_cashbackЕсть баланс. max_amount равен балансу, лимит на один чек задаёт redeem_max_percent.