Een toegangspoging of weigering vastleggen

Legt een toegangspoging of weigering vast waarover je systeem al heeft beslist. Er wordt geen contact gemaakt met de Door/Gate Controller en de deur wordt niet ontgrendeld.

Gebruik dit wanneer je systeem de toegang weigert, of wanneer een poging zonder ontgrendeling in de Toegangslogboeken van Door & Gate Access moet verschijnen. Performance Hub beoordeelt geen lidmaatschapsstatus, toegangsuren of andere toegangsregels.

Een geweigerde gebeurtenis verschijnt in de Toegangslogboeken van Door & Gate Access met de uitkomst Denied, je partnernaam, de deur, de identificatie van het lid als je die meestuurt en de redencode in leesbare vorm. membership_expired wordt bijvoorbeeld weergegeven als "Membership Expired". reason_display_text en user_email worden bij de gebeurtenis opgeslagen.

Parameters

  • door_id string verplicht

    ID van de Door/Gate Controller dat door het list-endpoint wordt geretourneerd.

  • facility_id string een van beideGeef het type faciliteitidentificatie op dat voor je integratie is geconfigureerd: gebruik facility_id voor integraties met Direct Link of linking_identifier voor integraties met een Linking Identifier. Stuur ze niet allebei: de API gebruikt het identificatietype dat voor je partneraccount is geconfigureerd en negeert het andere. Meer informatie

    Faciliteit-ID in Performance Hub. Verplicht voor integraties met Direct Link.

  • linking_identifier string een van beideGeef het type faciliteitidentificatie op dat voor je integratie is geconfigureerd: gebruik facility_id voor integraties met Direct Link of linking_identifier voor integraties met een Linking Identifier. Stuur ze niet allebei: de API gebruikt het identificatietype dat voor je partneraccount is geconfigureerd en negeert het andere. Meer informatie

    Faciliteitidentificatie van de partner. Verplicht voor integraties met een Linking Identifier.

  • outcome string verplicht

    denied of attempted.

  • reason string optioneel

    Redencode in snake_case met kleine letters, maximaal 64 tekens. Verplicht wanneer outcome denied is. Voorbeeld: membership_expired.

  • reason_display_text string optioneel

    Leesbare reden, maximaal 256 tekens. Voorbeeld: Membership expired on 2026-04-01.

  • member_id string optioneel

    Lid-ID van de partner. Laat dit weg wanneer de inloggegevens niet bij een lid hoorden, zoals bij een onbekende kaart.

  • user_email string optioneel

    E-mailadres van de persoon die toegang probeerde te krijgen.

  • timestamp string optioneel

    Wanneer de poging plaatsvond, als ISO 8601 met een tijdzone. Voorbeeld: 2026-05-18T10:15:30Z. Standaard het tijdstip waarop het verzoek wordt ontvangen. Mag niet meer dan 5 minuten in de toekomst liggen of ouder zijn dan 30 dagen.

  • idempotency_key string optioneel

    Sleutel ter bescherming tegen herhaling, maximaal 128 tekens. Als je dezelfde sleutel opnieuw gebruikt voor dezelfde partner, faciliteit en deur, wordt het oorspronkelijke resultaat geretourneerd.

Retourwaarde

Retourneert 201 wanneer de gebeurtenis is vastgelegd. Een herhaling met dezelfde idempotency_key retourneert 200 met idempotent ingesteld op true en maakt geen nieuwe gebeurtenis aan.

Een dry-run-sleutel retourneert 200 met dry_run ingesteld op true. Er wordt niets vastgelegd.

Veelvoorkomende fouten:

  • 400 - de body is ongeldig, een weigering heeft geen reason, de tijdstempel valt buiten het toegestane bereik, of facility_id / linking_identifier komt niet overeen met een gekoppelde faciliteit.
  • 403 - de sleutel is read-only.
  • 403 integration_not_enabled - je integratie is niet ingeschakeld voor de faciliteit. message geeft de reden.
  • 404 - de Door/Gate Controller is niet gevonden voor de gekoppelde faciliteit.

Verzoek

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"
  }'

Respons

{
  "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"
}

Idempotente herhaling

{
  "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
}