☰ Меню · Резерви
Довідник API
Резерви
Кешбек, відкладений під час скану й підтверджений закритим чеком.
Об’єкт резерву
- iduuid
- Передавайте його як
hold_idразом із чеком. - memberstring
- Номер картки.
- amountinteger
- Відкладений кешбек у дрібних одиницях.
- statusstring
active,captured,releasedабоexpired.- captured_bystring або null
external_idчека, який його використав.- expires_atdatetime
- Коли невикористаний резерв зніметься сам.
POST
/v1/holdsПраво: transactions:write
Відкладає кешбек. Діють ті самі обмеження, що й для чека. Запит на більшу суму відхиляється з 402 insufficient_balance і limited_by. Передавайте Idempotency-Key.
- memberstring, обов’язковий
- Номер картки, відскановане значення, серійний номер, id учасника або телефон.
- amountinteger, обов’язковий
- Скільки кешбеку відкласти.
- check_amountinteger, обов’язковий
- Сума чека, для частки програми та правил категорій.
- register_idstring
- Id вашої каси.
- line_itemsarray
- Для правил категорій.
curl
curl https://loyaltyfy.io/api/v1/holds \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hold-R3-000131" \
-d '{ "member": "2000111703779", "amount": 3000, "check_amount": 20000, "register_id": "R3" }'
# at payment: the check captures it
curl https://loyaltyfy.io/api/v1/transactions \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{ "external_id": "000131", "register_id": "R3", "member": "2000111703779",
"amount": 20000, "hold_id": "5b0d6c1e-8f3a-4d7e-9a61-2c4b8e0f7d19" }'Відповідь · 201
{
"object": "hold",
"id": "5b0d6c1e-8f3a-4d7e-9a61-2c4b8e0f7d19",
"member": "2000111703779",
"amount": 3000,
"check_amount": 20000,
"status": "active",
"register_id": "R3",
"captured_by": null,
"expires_at": "2026-10-06T19:02:11.000+00:00",
"livemode": false,
"created_at": "2026-10-06T18:32:11.000+00:00",
"member_after": { "object": "member", "cashback": { "balance": 10200, "held": 3000, "available": 7200, ... }, ... }
}GET
/v1/holds/{id}Право: transactions:write
Один резерв із його поточним статусом.
POST
/v1/holds/{id}/releaseПраво: transactions:write
Одразу повертає гроші. Повторне зняття знятого резерву або резерву з вичерпаним терміном нічого не зламає. Для підтвердженого резерву відповідь буде 409 hold_captured (у цьому разі скасуйте чек).