Scan and Validate Tickets Using the Event Espresso API
"CHK_in": true,In order to scan tickets you must have a device (such as our mobile apps), to scan the tickets and post a request to your website to validate the ticket.
To validate a QR code registration in Event Espresso and determine if a registration is valid, you can utilize the /checkin endpoint of the Event Espresso REST API. This endpoint allows you to check attendees into or out of event datetimes, functioning similarly to the “Toggle Check-In” feature in the Event Espresso dashboard.
Steps to Validate a QR Code Registration:
- Extract Registration and Datetime IDs: When a QR code is scanned, it should contain data that includes the REG_ID (Registration ID) and DTT_ID (Datetime ID).
- Authenticate API Request: Ensure that the API request is authenticated and the user has the ee_edit_checkins capability.
- Send POST Request to /checkin Endpoint: Construct a POST request to the following URL:
https://yourwebsite.com/wp-json/ee/v4.8.33/registrations/{REG_ID}/toggle_checkin_for_datetime/{DTT_ID}Replace https://yourwebsite.com with your actual website URL.
Replace {REG_ID} and {DTT_ID} with the actual Registration ID and Datetime ID extracted from the QR code.
Here is an example Post
https://yourwebsite.com/wp-json/ee/v4.8.33/registrations/748/toggle_checkin_for_datetime/816
- Handle the API Response: The API will respond with the status of the check-in attempt. If the registration is valid and successfully checked in, the response will indicate a successful check-in. If the registration is invalid or there are issues (e.g., the registration is not approved), the response will provide an error message.
Here is an example of a successful response:
{ "CHK_ID": 61, "REG_ID": 748, "DTT_ID": 816, "CHK_in": true, "CHK_timestamp": "2025-02-18T09:54:50", "CHK_timestamp_gmt": "2025-02-18T16:54:50", "_links": { "self": [ { "href": "https://yourwebsite.com/wp-json/ee/v4.8.33/checkins/61" } ], "collection": [ { "href": "https://yourwebsite.com/wp-json/ee/v4.8.33/checkins" } ], "https://api.eventespresso.com/registration": [ { "href": "https://yourwebsite.com/wp-json/ee/v4.8.33/checkins/61/registration", "single": true } ], "https://api.eventespresso.com/datetime": [ { "href": "https://yourwebsite.com/wp-json/ee/v4.8.33/checkins/61/datetime", "single": true } ], "https://api.eventespresso.com/extra_metas": [ { "href": "https://yourwebsite.com/wp-json/ee/v4.8.33/checkins/61/extra_metas", "single": false } ], "https://api.eventespresso.com/change_logs": [ { "href": "https://yourwebsite.com/wp-json/ee/v4.8.33/checkins/61/change_logs", "single": false } ] }, "_protected": [] }
How to Interpret the API Responses:
-
If the Post response comes back with: "CHK_in": true, the person should be granted access.
-
If the Post response comes back with: "CHK_in": false, the person should be denied access.
Important Considerations:
- Registration Approval: By default, only approved registrations can be checked in. If you need to override this behavior, you can include the force=true parameter in your request to bypass the approval check.
- Check-In Limits: The system ensures that ticket check-in limits are not exceeded. For example, if a ticket allows check-in to only one datetime, the API will prevent additional check-ins beyond this limit.
For detailed information and implementation guidance, refer to the official Event Espresso REST API documentation here: https://github.com/eventespresso/event-espresso-core/blob/master/docs/C--REST-API/ee4-rest-api-rpc-checkin.md