Redeem Ticket (Check In)
Validate and redeem a ticket in one step. This is the primary check-in endpoint โ it validates the ticket, marks it as redeemed, checks in the participant, and updates the booking status.
Endpointโ
POST /v1/tickets/redeem
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/redeem \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ticket_code": "EQTK-A3F8X9B2"}'
Responseโ
Success (200)โ
{
"data": {
"success": true,
"ticket_code": "EQTK-A3F8X9B2",
"message": "Successfully checked in Sophie Marshall for Beginner Surf Lesson.",
"booking": {
"booking_id": 132,
"booking_reference": 132,
"customer_name": "Sophie Marshall",
"experience_name": "Beginner Surf Lesson",
"schedule_date": "March 28th 2026",
"schedule_time": "7:00 AM",
"schedule_id": 213,
"ticket_type": "participant",
"participant_name": "Sophie Marshall",
"rate_category": "Adult"
}
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-03-28T09:15:00Z"
}
}
Already Redeemed (409)โ
{
"error": {
"code": "redemption_error",
"message": "This ticket was already checked in at 9:15 AM."
},
"meta": {
"request_id": "req_abc123"
}
}
Not Found (404)โ
{
"error": {
"code": "redemption_error",
"message": "Ticket not found."
}
}
Side Effectsโ
When a ticket is redeemed:
- Ticket status changes from
activetoredeemed - The associated participant's
checked_in_attimestamp is set - The booking status changes to
checked_in(if not already)
Scanner Integrationโ
USB/Bluetooth barcode scanners act as keyboard input โ they type the scanned value followed by Enter. The QR code on each ticket encodes a URL like https://app.equipdash.com/t/EQTK-A3F8X9B2.
You can pass either format to this endpoint:
- Just the code:
EQTK-A3F8X9B2 - The full URL:
https://app.equipdash.com/t/EQTK-A3F8X9B2
The API automatically extracts the code from URLs.