アクセスの試行または拒否を記録する
お使いのシステムですでに判断したアクセスの試行または拒否を記録します。ドア/ゲートコントローラーには接続されず、ドアは解錠されません。
システムが入場を拒否した場合や、解錠せずに試行をドア/ゲートアクセスのアクセスログに表示させたい場合に使用します。Performance Hub は、会員ステータス、アクセス時間、その他のアクセスルールを評価しません。
拒否イベントは、Denied の結果、パートナー名、ドア、会員識別子(送信した場合)、読みやすい形式の理由コードとともに、ドア/ゲートアクセスのアクセスログに表示されます。たとえば、membership_expired は「Membership Expired」と表示されます。reason_display_text と user_email はイベントとともに保存されます。
パラメーター
-
door_id
string必須一覧エンドポイントから返されたドア/ゲートコントローラーの ID。
-
facility_id
stringいずれか一方連携に設定されている施設識別子の種類を指定してください。Direct Link の連携では facility_id を、Linking Identifier の連携では linking_identifier を使用します。両方を送信しないでください。API はパートナーアカウントに設定された識別子の種類を使用し、もう一方は無視します。詳細Performance Hub の施設 ID。Direct Link の連携で必須です。
-
linking_identifier
stringいずれか一方連携に設定されている施設識別子の種類を指定してください。Direct Link の連携では facility_id を、Linking Identifier の連携では linking_identifier を使用します。両方を送信しないでください。API はパートナーアカウントに設定された識別子の種類を使用し、もう一方は無視します。詳細パートナーの施設識別子。Linking Identifier の連携で必須です。
-
outcome
string必須deniedまたはattempted。 -
reason
string省略可小文字の snake_case による理由コード(最大 64 文字)。
outcomeがdeniedの場合は必須です。例:membership_expired。 -
reason_display_text
string省略可人が読める形式の理由(最大 256 文字)。例:
Membership expired on 2026-04-01。 -
member_id
string省略可パートナーの会員 ID。不明なカードなど、資格情報が会員と一致しなかった場合は省略します。
-
user_email
string省略可アクセスを試みた人物のメールアドレス。
-
timestamp
string省略可試行が発生した日時(タイムゾーン付きの ISO 8601 形式)。例:
2026-05-18T10:15:30Z。既定値はリクエストを受信した時刻です。5 分を超える未来の日時や、30 日より前の日時は指定できません。 -
idempotency_key
string省略可リプレイ防止用のキー(最大 128 文字)。同じパートナー、施設、ドアに対して同じキーを再利用すると、元の結果が返されます。
戻り値
イベントが記録されると 201 を返します。同じ idempotency_key で再送信すると、idempotent が true に設定された 200 が返され、新しいイベントは作成されません。
dry-run キーを使用すると、dry_run が true に設定された 200 が返されます。何も記録されません。
主なエラー:
400- 本文が無効である、拒否にreasonがない、タイムスタンプが範囲外である、またはfacility_id/linking_identifierがリンク済みの施設と一致しない。403- キーが読み取り専用である。403 integration_not_enabled- 施設で連携が有効になっていない。理由はmessageに示されます。404- リンク済みの施設でドア/ゲートコントローラーが見つからなかった。
リクエスト
curl -X POST https://partner-api.performancehub.co/partner/v1/access-control/doors/00000000000000000000000000000007/access-events \
-u sk_live_YOUR_PARTNER_SECRET_KEY: \
-H "Content-Type: application/json" \
-d '{
"facility_id": "550e8400-e29b-41d4-a716-446655440000",
"outcome": "denied",
"reason": "membership_expired",
"reason_display_text": "Membership expired on 2026-04-01",
"member_id": "mem_12345",
"user_email": "member@example.com",
"timestamp": "2026-05-18T10:15:30Z",
"idempotency_key": "evt_abc12345"
}'
レスポンス
{
"status": "recorded",
"event_id": "00000000-0000-0000-0000-000000000045",
"outcome": "denied",
"door_id": "00000000000000000000000000000007",
"facility_id": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-05-18T10:15:30.000Z"
}
冪等なリプレイ
{
"status": "recorded",
"event_id": "00000000-0000-0000-0000-000000000045",
"outcome": "denied",
"door_id": "00000000000000000000000000000007",
"facility_id": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-05-18T10:15:30.000Z",
"idempotent": true
}