Self Check-In
Customer-driven check-in โ the same flow the customer uses on their ticket page or the meeting-point poster. Unlike Redeem Ticket, self check-in:
- Only works when the supplier has self check-in enabled (Settings โ Experiences).
- Is allowed only inside the check-in window (opens a configurable number of minutes before the session start, closes at session end).
- Requires any applicable waivers to be signed first โ when they aren't, the response lists what still needs signing instead of failing.
- Never clears the staff gear/safety checklist. Attendance is recorded; if a pre-check-in checklist is still outstanding the response returns
gear_pending: trueand the team completes it on the manifest.
Endpointโ
POST /v1/tickets/self-checkin
Required Scopeโ
tickets:write
Request Bodyโ
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_code | string | Yes | The ticket code or full QR URL |
Example Requestโ
curl -X POST https://app.equipdash.com/api/v1/tickets/self-checkin \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ticket_code": "EQTK-A3F8X9B2"}'
Responseโ
Success (200)โ
{
"data": {
"success": true,
"already": false,
"gear_pending": false,
"ticket_code": "EQTK-A3F8X9B2",
"message": "You're checked in. See you soon!",
"booking": {
"booking_id": 132,
"customer_name": "Sophie Marshall",
"experience_name": "Beginner Surf Lesson",
"schedule_time": "7:00 AM"
}
},
"meta": { "request_id": "req_abc123", "timestamp": "2026-03-28T06:40:00Z" }
}
gear_pending: true means the customer is marked as arrived but a staff gear/safety checklist still needs completing. already: true means the ticket was already checked in (idempotent).
Waiver Required (200)โ
Not an error โ the customer must sign before check-in completes. Each form URL opens the live, booking-linked waiver.
{
"data": {
"success": false,
"requires_waiver": true,
"message": "Please sign your waiver to check in.",
"waiver_forms": [
{ "id": 8, "name": "Liability Waiver", "url": "https://app.equipdash.com/form/AB12CD34?code=..." }
]
},
"meta": { "request_id": "req_abc123" }
}
Outside the Window (422)โ
{
"error": { "code": "self_checkin_error", "message": "Check-in isn't open yet." },
"meta": { "request_id": "req_abc123" }
}
Disabled / Not Found (404 or 409)โ
Returned when self check-in is off for the account, or the ticket can't be checked in (cancelled/expired).
Find Booking for Check-In
Look up a customer's checkable party from the meeting-point poster flow, by last name and email. Scoped to the authenticated supplier and only to sessions whose check-in window is currently open. A non-match returns an empty list โ it never enumerates other customers.
Endpointโ
POST /v1/checkin/find
Required Scopeโ
tickets:read
Request Bodyโ
| Parameter | Type | Required | Description |
|---|---|---|---|
last_name | string | Yes | Customer's last name |
email | string | Yes | Customer's email address |
Example Requestโ
curl -X POST https://app.equipdash.com/api/v1/checkin/find \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"last_name": "Marshall", "email": "sophie@example.com"}'
Responseโ
Success (200)โ
{
"data": {
"parties": [
{
"booking_id": 132,
"reference": "#132",
"customer_name": "Sophie Marshall",
"experience_name": "Beginner Surf Lesson",
"schedule_date": "March 28th 2026",
"schedule_time": "7:00 AM",
"tickets": [
{ "ticket_code": "EQTK-A3F8X9B2", "type": "participant", "name": "Sophie Marshall", "rate": "Adult", "checked_in": false }
]
}
]
},
"meta": { "request_id": "req_abc123", "timestamp": "2026-03-28T06:40:00Z" }
}
Check each returned ticket in with Self Check-In using its ticket_code.