Punchh · AsyncAPI Specification

Punchh Webhooks

Version

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

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.

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/punchh-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.