ASF has several API's available to support third-party check-in integrations for door access. Our recommendations on how to use the data available in the API when completing a check-in are below.
To request access to our APIs for your third party, please reach out to ASF support.
Checking in a Member (coming soon!)
To check in a member via API, the POST /api/v2/{clientId}/checkin should be used.
This API will both validate the member can access the club and check them in. We recommend completing as many check-ins as possible in real-time using this check-in API to ensure you are getting the most up-to-date issues or alerts on an account.
Submitting the Check-in
The following types of barcodes are supported for both members and prospects when posting a barcode to ASF:
- ASF User ID (account number + sequence)
- Alternate ID
Interpreting the Response
The POST response will indicate if the member should be allowed in the club. An example API response is below:
{
"clientId": 11010,
"userId": "1689982-02",
"altAccountNumber": "",
"checkinDate": "2022-05-12T17:29:28.000Z",
"source": "Club OS",
"sourceNote": "Front Door Philadelphia"
"allowEntry": false,
"checkinStatus": "Problem",
"checkinStatusReason": "Past Due"
"alerts": [
{
"alertType": 1,
"message": "Past Due",
"alertDate": "2024-04-04T14:49:20.818Z",
"allowDoorAccess": false
}
}
To confirm if a member should be granted access to the club on check-in, the `allowEntry` field should be used. This will provide a summary of all issues on the account to indicate overall access status.
allowEntry: false = Member should not be granted access to the club
allowEntry: true = Member should be granted access to the club
The checkInStatus will indicate one of the following based on the account's current state:
- Valid: Indicates no issues are present on the account.
- Warning: Indicates an issue is present on the account that does not block door access but should trigger a warning to the member.
- Problem: Indicates a high-priority issue is present on the account that blocks door access.
The checkInStatusReason will provide additional information to indicate why the member was blocked or which warning is present.
The following reasons may exist:
Check-In Status Reason |
Status |
Issue |
---|---|---|
Normal |
Normal |
No account issues present |
Not Allowed |
Problem |
Member is not allowed due to account issues. |
Cancelled |
Problem |
Account is canceled |
Inactive Card |
Problem |
Cardholder is inactive |
Deactivated |
Problem |
Prospect is deactivated |
Expired |
Problem |
Account is expired |
Expired Add On Payment Method |
Club-defined* |
Account has an add-on payment method that is expired. |
Expired Membership Payment Method |
Club-defined* |
Account has a membership payment method that is expired. |
Frozen |
Problem |
Account has a membership freeze that blocks access. |
Past Due Graced |
Warning |
Account is past due but within the grace period. |
Membership Expiring |
Club-defined* |
Account’s membership is expiring within the set threshold. |
Missing Photo |
Club-defined* |
Member does not have a photo present. |
Out Of Visits |
Problem |
Prospect has run out of eligible visits. |
Past Due |
Problem |
Account is past due. |
Card Code Restriction |
Problem |
Account’s card code does not have access at the current time based on configured card code restrictions. |
Returned |
Problem |
Account is returned. |
Recent Check-In |
Club-defined* |
A recent check-in occurred on the account within the club-defined timeframe. |
No access to location |
Problem |
Member does not have access to the location being checked into. |
*Club-defined alerts can be configured by the club to optionally display a warning or block access and will vary based on the clubs chosen configuration.
The alerts object will provide additional information for some problem alerts to help indicate the issue present and when the alert started. Please note, not all attendance problems will appear in alerts object.
Types of Alerts (Note: additional alerts may be added in the future)
Type | Issue |
1 | Past Due |
2 | Access Frozen |
3 | Canceled |
4 | Expired |
5 | Returned |
6 | Inactive |
Validating a Member prior to Check-in
When storing data to be used in cases where internet access is unavailable, we recommend using the data provided in the response from the GET /users request. This is always included when pulling an individual user (e.g. GET /users/{id}) but can also be included when pulling lists of members by specifying includeAlerts = true as a query parameter.
The following information should be used to validate club access:
- Alerts
- Location Access
Alerts
- If any alerts are present on a member in the API response from GET /users where allowDoorAccess = false the member should not be able to access the club.
- If multiple alerts are present, they will be shown in priority order, we typically recommend exposing the first alert to the user for information on why the check-in was blocked.
- When looking at the member record, if no blocking alerts are present but an alert is present that includes allowDoorAccess = true, this indicates a warning alert. This means that the member should not be blocked from accessing the club but has a warning issue present. You may choose to expose this alert to the club if desired.
Types of Alerts (Note: additional alerts may be added in the future)
Type | Issue |
1 | Past Due |
2 | Access Frozen |
3 | Canceled |
4 | Expired |
5 | Returned |
6 | Inactive |
Location Access
The clientAccess object should be used when determine which locations a member can access. If a location is not listed in the clientAccess object for the member then the member does not have access to that location.
* Please note, the singleClientAccess and reciprocalClient fields available in the API will soon be deprecated and should not be referenced.
Sample clientAccess object with alerts:
{
"result": {
"userData": [
{
"clientId": 4005,
"firstName": "John",
"lastName": "Smith",
"accountNumber": 1423553,
"userId": "1423553-01",
"altAccountNumber": "12345",
"status": "A",
"role": "Member",
"clientAccess": [
{
"id": 40051,
"name": "ASF Club"
},
{
"id": 40052,
"name": "ASF Club Two"
},
],
"alerts": [
{
"alertType": 1,
"message": "Past Due",
"alertDate": "2024-06-11T22:24:53.865Z",
"allowDoorAccess": true
}
]
}
],
Comments