Punchh · AsyncAPI Specification
Punchh Webhooks
Version
View Spec
View on GitHub
Gift CardsGuest EngagementLoyaltyMarketingMobileOffersOnline OrderingPAR TechnologyPoint-of-SaleRestaurantRestaurant TechnologyWebhookAsyncAPIEvents
AsyncAPI Specification
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.
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.