☰ Menu · Visits
API reference
Visits
A check-in without a check, for stamp and visit programs.
POST
/v1/visitsScope: transactions:write or devices:write
Records a visit and gives the program's per-visit reward. Returns an object like a transaction with object: "visit" and amount: 0. Repeating an external_id returns the stored visit with 200. Cashback programs answer 400 visit_not_supported.
- external_idstring, required
- Your id of this check-in. Shares the namespace with transactions.
- memberstring, required
- Anything that identifies the member, including the raw value from a scanner.
- device_idstring
- Which device recorded it. Shown in reports as the register.
- visited_atdatetime
- When it happened. Default: now.
curl
curl https://loyaltyfy.io/api/v1/visits \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"external_id": "door-1-2026-10-06-0042",
"member": "4285324286429",
"device_id": "door-1"
}'Response · 201
{
"object": "visit",
"id": "feb2ad75-ac7b-4bb6-8b64-192323b7f6ea",
"external_id": "door-1-2026-10-06-0042",
"status": "completed",
"amount": 0,
"stamps_earned": 1,
"reward_unlocked": false,
"register_id": "door-1",
"livemode": false,
"created_at": "2026-10-06T18:17:28.209+00:00",
"member": {
"object": "member",
"card_number": "4285324286429",
"stamps": { "current": 2, "required": 5, "rewards_available": 0 },
...
},
...
}A visit can be voided like a check: POST /v1/transactions/{external_id}/void.