Punchh · AsyncAPI Specification

Punchh Webhooks

Version

View Spec View on GitHub Gift CardsGuest EngagementLoyaltyMarketingMobileOffersOnline OrderingPAR TechnologyPoint-of-SaleRestaurantRestaurant TechnologyWebhookAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: https://developers.partech.com/docs/dev-portal-webhooks-manager
provider: PAR Punchh
providerId: punchh
type: Webhooks
asyncapi_published: false
description: PAR Punchh ships a first-class outbound event surface — the Webhooks Manager / Events Framework — with
  a documented envelope, documented delivery semantics, a circuit breaker, and a per-event payload reference page
  for every event type. It does NOT publish an AsyncAPI document, so no AsyncAPI artifact is claimed here; this
  file is the honest webhook catalog harvested from the provider's own event pages.
docs:
- https://developers.partech.com/docs/dev-portal-webhooks-manager
- https://developers.partech.com/docs/dev-portal-webhooks-manager/events-framework-overview-of-webhooks-manager
- https://developers.partech.com/docs/dev-portal-webhooks-manager/meta-fields
- https://developers.partech.com/docs/dev-portal-webhooks-manager/configuration
- https://developers.partech.com/docs/dev-portal-webhooks-manager/webhook-delivery-error-handling-and-retry-logic
transport:
  method: POST
  content_type: application/json
  tls: HTTPS required
  timeout_seconds: 15
  health_check: HTTPS GET against the same URL, once a day or every 6 hours, to verify and keep the endpoint active.
authentication:
  note: Punchh requires the consumer to pick one of four schemes; "none" is discouraged in the provider docs.
  methods:
  - name: Basic
    header: authorization
    value: basic base64(username:password)
  - name: Bearer
    header: authorization
    value: bearer <token>
  - name: HMAC-SHA1
    header: authorization + x-pch-key
    value: hmac sha1(<URI+BODY>, <secret>)
  - name: HMAC-SHA256
    header: authorization + x-pch-key
    value: hmac sha256(<URI+BODY>, <secret>)
envelope:
  fields:
  - name: content_id
    type: string
    description: Random UUID identifying message uniqueness — the idempotency key for consumers.
  - name: timestamp
    type: integer
    description: UTC epoch (milliseconds) when the message was created.
  - name: business_id
    type: integer
    description: Business identifier in the Punchh platform.
  - name: business_uuid
    type: string
    description: Business UUID; used for POS integration.
  - name: business_slug
    type: string
    description: Business slug used in iframe URLs.
  - name: event_name
    type: string
    description: Event family (users, checkins, redemptions, rewards, coupons, ...).
  - name: event_type
    type: string
    description: Specific event type within the family.
  - name: action
    type: string
    description: Operation associated with the event (create/update/delete, or POS/console/online for check-ins).
  - name: payload
    type: object
    description: The event body — user, checkin, redemption, and so on.
  note: All Punchh integer ID fields in payload models must be handled as 64-bit integers (int64).
delivery:
  ordering: NOT guaranteed. Punchh states a later event can be processed before its parent event.
  at_least_once: true
  duplicate_handling: Consumers must make processing idempotent on content_id + timestamp.
  latency: Typically within 50-60 seconds of the event.
  success_codes:
  - 200
  - 202
  retry:
  - trigger: 429 Too Many Requests
    attempts: 3
    intervals_seconds:
    - 15
    - 45
    - 180
  - trigger: 408 Timeout
    attempts: 3
    intervals_seconds:
    - 15
    - 45
    - 180
  - trigger: 5xx server error
    attempts: 7
    intervals_seconds:
    - 60
    - 120
    - 300
    - 600
    - 1800
    - 3600
    - 7200
  - trigger: 3xx redirect
    attempts: 0
    note: Treated as a failure and never retried.
  circuit_breaker:
    threshold: 1000
    behaviour: After the retry period, if the failure counter exceeds 1000 the event and its queued events are SUSPENDED
      and no new requests are sent.
    reactivation: Respond successfully to a ping webhook. Punchh auto-pings at 5 minutes, 10 minutes, then every
      2 hours for 6 attempts; after that the webhook is DEACTIVATED.
  logs:
    granularity:
    - 30 minutes
    - 1 hour
    - 3 hours
    - 6 hours
    - 12 hours
    - 24 hours
    retention_days: 7
  locale: ENU only; timestamps in UTC. Locale and timezone conversion is the consumer's responsibility.
  transformation: Punchh publishes its own JSON structure and performs no transformation to the target system's
    schema.
event_families:
- checkins
- coupons
- marketing_notifications
- redeemables
- redemptions
- rewards
- transactional_notifications
- user_coupon_redemptions
- users
event_count: 71
adapter_count: 16
events:
- name: Anniversary Campaign
  event_name: marketing_notifications
  event_type: anniversary_campaign
  action: create
- name: Bumped Membership Level
  event_name: transactional_notifications
  event_type: bumped_membership_level
  action: create
- name: Business Migration Notification
  event_name: transactional_notifications
  event_type: business_migration_notification
  action: create
- name: Card Completion
  event_name: transactional_notifications
  event_type: card_completion
  action: create
- name: Challenge Campaign
  event_name: marketing_notifications
  event_type: challenge_campaign
  action: create
- name: Check-in - Gift and Loyalty
  event_name: checkins
  event_type: gift
  action: create
- name: Check-in Retry Fail
  event_name: transactional_notifications
  event_type: checkin_retry_fail
  action: create
- name: Check-in Retry Success
  event_name: _notifications
  event_type: checkin_retry_success
  action: create
- name: Check-in Void
  event_name: _notifications
  event_type: checkin_void
  action: create
- name: Compression Campaign
  event_name: marketing_notifications
  event_type: compression_campaign
  action: create
- name: Coupon Campaign
  event_name: marketing_notifications
  event_type: coupon_campaign
  action: create
- name: Coupon Expiry Reminder
  event_name: transactional_notifications
  event_type: coupon_expiry_reminder
  action: create
- name: Coupon Issuance - Discount Type
  event_name: coupons
  event_type: null
  action: create
- name: Coupon Issuance - Unlock Type
  event_name: coupons
  event_type: null
  action: create
- name: Coupon Redemption
  event_name: user_coupon_redemptions
  event_type: null
  action: create
- name: Currency Expiry Reminder
  event_name: transactional_notifications
  event_type: currency_expiry_reminder
  action: create
- name: Email Confirmation
  event_name: transactional_notifications
  event_type: confirmation_email
  action: create
- name: Feedback Reply
  event_name: transactional_notifications
  event_type: feedback_reply
  action: create
- name: Game Reward Notification
  event_name: transactional_notifications
  event_type: game_reward_notification
  action: create
- name: Gift Card Auto Reload
  event_name: transactional_notifications
  event_type: gift_card_auto_reload
  action: create
- name: Gift Card Auto Reload Disabled
  event_name: transactional_notifications
  event_type: gift_card_auto_reload_disabled
  action: create
- name: Gift Card Auto Reload Enabled
  event_name: transactional_notifications
  event_type: gift_card_auto_reload_enabled
  action: create
- name: Gift Card Auto Reload Payment Error
  event_name: transactional_notifications
  event_type: gift_card_auto_reload_payment_error
  action: create
- name: Gift Card Auto Reload Reminder
  event_name: transactional_notifications
  event_type: gift_card_pre_auto_reload_reminder
  action: create
- name: Gift Card Gifted
  event_name: _notifications
  event_type: gift_card_gifted
  action: create
- name: Gift Card Post Payment Error
  event_name: _notifications
  event_type: gift_card_post_payment_error
  action: create
- name: Gift Card Purchased
  event_name: _notifications
  event_type: gift_card_purchased
  action: create
- name: Gift Card Received
  event_name: _notifications
  event_type: gift_card_received
  action: create
- name: Gift Card Redeemed
  event_name: _notifications
  event_type: gift_card_redeemed
  action: create
- name: Gift Card Reloaded
  event_name: _notifications
  event_type: gift_card_reloaded
  action: create
- name: Gift Card Shared
  event_name: _notifications
  event_type: gift_card_shared
  action: create
- name: Gift Card Sharing Revoked
  event_name: _notifications
  event_type: gift_card_sharing_revoked
  action: create
- name: Gift Card Transferred
  event_name: _notifications
  event_type: gift_card_transferred
  action: create
- name: Guest
  event_name: users
  event_type: null
  action: create
- name: Invalid Receipt
  event_name: transactional_notifications
  event_type: invalid_receipt
  action: create
- name: Invitation Accepted
  event_name: _notifications
  event_type: invitation_accepted
  action: create
- name: Invitation Revoked
  event_name: _notifications
  event_type: invitation_revoked
  action: create
- name: Login From New Device
  event_name: _notifications
  event_type: login_from_new_device
  action: create
- name: Loyalty Transfer
  event_name: _notifications
  event_type: loyalty_transfer
  action: create
- name: Migration Verification
  event_name: _notifications
  event_type: migration_verification
  action: create
- name: POS Scanner Check-in
  event_name: transactional_notifications
  event_type: pos_scanner_checkin
  action: create
- name: Payment Card Expired
  event_name: transactional_notifications
  event_type: payment_card_expired
  action: create
- name: Payment Card Expiry Reminder
  event_name: transactional_notifications
  event_type: payment_card_expiry_reminder
  action: create
- name: Payment Refunded
  event_name: _notifications
  event_type: payment_refunded
  action: create
- name: Pending Check-in
  event_name: _notifications
  event_type: pending_checkin
  action: create
- name: Points Expiry
  event_name: transactional_notifications
  event_type: points_expiry
  action: create
- name: Points Expiry Reminder
  event_name: transactional_notifications
  event_type: points_expiry_reminder
  action: create
- name: Points to Reward
  event_name: transactional_notifications
  event_type: points_to_reward
  action: create
- name: Post Check-in Campaign Gift
  event_name: marketing_notifications
  event_type: post_checkin_campaign
  action: create
- name: Post Check-in Campaign Notification
  event_name: marketing_notifications
  event_type: post_checkin_campaign
  action: create
- name: Post Payment Campaign
  event_name: marketing_notifications
  event_type: post_payment_campaign
  action: create
- name: Profile Update Campaign
  event_name: marketing_notifications
  event_type: profile_update_campaign
  action: create
- name: Promo Campaign Notification
  event_name: marketing_notifications
  event_type: post_checkin_campaign
  action: create
- name: Recall Campaign
  event_name: marketing_notifications
  event_type: recall_campaign
  action: create
- name: Redeemable Unlocked
  event_name: transactional_notifications
  event_type: redeemable_unlocked
  action: create
- name: Redeemables
  event_name: redeemables
  event_type: null
  action: create
- name: Redemption Applied
  event_name: transactional_notifications
  event_type: redemption_applied
  action: create
- name: Redemptions
  event_name: redemptions
  event_type: null
  action: create
- name: Referral Campaign
  event_name: marketing_notifications
  event_type: referral_campaign
  action: create
- name: Reset Password Instruction
  event_name: transactional_notifications
  event_type: reset_password_instruction
  action: create
- name: Reward Notification
  event_name: transactional_notifications
  event_type: reward_notification
  action: create
- name: Rewards
  event_name: rewards
  event_type: null
  action: create
- name: Rewards Expiry Reminder
  event_name: transactional_notifications
  event_type: reward_expiry_reminder
  action: create
- name: Sign-up Campaign
  event_name: marketing_notifications
  event_type: signup_campaign
  action: create
- name: Social Cause Campaign
  event_name: marketing_notifications
  event_type: social_cause_campaign
  action: create
- name: Update Check-in
  event_name: _notifications
  event_type: update_checkin
  action: create
- name: User Notification
  event_name: transactional_notifications
  event_type: user_signup
  action: create
- name: Visits Expiry Reminder
  event_name: transactional_notifications
  event_type: visit_expiry_reminder
  action: create
- name: WiFi Registration
  event_name: _notifications
  event_type: wifi_registration
  action: create
- name: eClub Registration
  event_name: transactional_notifications
  event_type: eclub_registration
  action: create
- name: Reset Passcode Instruction
  event_name: transactional_notifications
  event_type: reset_passcode_instruction
  action: create
adapters:
- name: Braze Event - Coupon Issuance - Unlock Type
  target: Braze
- name: Braze Event - Coupon Redemptions
  target: Braze
- name: Braze Event - Gift Check-in
  target: Braze
- name: Braze Event - Guest
  target: Braze
- name: Braze Event - Loyalty Check-in
  target: Braze
- name: Braze Event - Pending Check-ins
  target: Braze
- name: Braze Event - Post Check-in Campaign Gift
  target: Braze
- name: Braze Event - Redemptions
  target: Braze
- name: Braze Event - Rewards
  target: Braze
- name: mParticle Event - Gift Check-in
  target: mParticle
- name: mParticle Event - Guest
  target: mParticle
- name: mParticle Event - Loyalty Check-in
  target: mParticle
- name: mParticle Event - Marketing Notifications
  target: mParticle
- name: mParticle Event - Redemptions
  target: mParticle
- name: mParticle Event - Rewards
  target: mParticle
- name: mParticle Event - Transactional Notifications
  target: mParticle
notes:
- Punchh publishes purpose-built adapter documentation for two marketing/CDP destinations — Braze and mParticle
  — each with its own re-shaped event pages alongside the native Punchh events.
- Several published event pages print event_name as the literal string "_notifications". That is what PAR's own
  documentation shows; it appears to be a truncation of transactional_notifications / marketing_notifications in
  the rendered sample. Recorded verbatim rather than guessed.
- The events framework must be enabled per business by a Punchh representative; it is not self-service.
- No AsyncAPI, CloudEvents or event JSON Schema is published for this surface.