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:

  1. 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).
  2. Authenticate API Request: Ensure that the API request is authenticated and the user has the ee_edit_checkins capability.
  3. 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
  1. 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

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us