PIING
Event catalogue
Every piing.* event, when it fires, and what's in the payload.
Browse documentation
Setup
Integrations
Reference
FAQ
Questions or hardware orders: contact@piing.io
Every customer interaction in Piing generates an event. Connected integrations (Klaviyo, Attentive, Ometria, webhooks, your data warehouse) receive these through their enabled delivery route, and the Reward Relay uses a subset of them to award points in your loyalty platform.
Events marked "on by default" are enabled automatically for new integrations; the rest can be switched on per destination under Integrations. All timestamps are UTC in ISO 8601. PII handling varies by event; check the payload fields below. Fields marked req are required.
Scope. This catalogue covers Piing, the check-in platform: its check-in, wallet, loyalty, attribution and Shopify order events. Piing: Intelligence and Piing: Alerts are separate products, documented in their own sections of this documentation at Piing: Intelligence and Piing: Alerts. Neither publishes an event catalogue, so nothing below applies to them.
Check-in events
Fires the moment a customer is recognised at a store, from any of the four ways in: a tap on a door reader (a Tap Box, or an NFC reader beside any till), a pass held up to a tablet kiosk, a printed QR sign scanned with the customer's own phone, or a check-in from the Piing tile in Shopify POS, where the barcode scanner already at the till can read the QR on the pass. To split buyers from browsers inside a single Klaviyo flow, add a conditional split on this event after a wait. To run two separate flows, or to reach a tool that cannot wait, subscribe to piing.purchase.attributed and piing.checkin.no_purchase below. The purchase event follows an attributed order; the no-purchase event follows its configured waiting window.
Payload fields
Fires when staff void or delete a check-in. Add it to a suppression flow so voided visits do not receive post-visit emails.
Payload fields
Low-level event fired the moment an NFC tap hits a reader, before any check-in processing. Most CRM teams do not need this; enable it for debugging or to spot tap-without-check-in drop-off.
Payload fields
Fires when a repeat tap is blocked by the deduplication window. Useful for spotting confused customers or hardware issues, not for marketing flows.
Payload fields
Fires when an anonymous NFC tap redirects to the merchant's account page for sign-up. Tracks in-store customer acquisition from Piing devices.
Payload fields
Fires the first time a customer is seen, via NFC tap or account creation. Trigger a welcome flow or first-visit offer; split on source (nfc_tap vs signup).
Payload fields
Fires when a customer adds a Piing pass to Apple Wallet or Google Wallet. Includes the platform, so you can segment by wallet preference.
Payload fields
Loyalty events
Fires when a customer is linked to a Piing member profile for the first time, via NFC tap, wallet pass claim, or account creation.
Payload fields
Fires when a customer earns loyalty points from a purchase, check-in, or manual award. Includes the amount and new balance.
Payload fields
Fires when points are deducted or adjusted, typically from a refund or manual correction. points is negative for deductions.
Payload fields
Fires when a customer redeems a loyalty reward. Includes the reward details and the discount code generated.
Payload fields
Attribution events
Fires when a customer places an order within the attribution window after a check-in. This is the event that links a check-in, at whichever point it happened, to revenue.
Payload fields
Emitted by a periodic background check when the configured no-purchase window has elapsed without a qualifying order. You can set this window separately in hours; otherwise it follows the purchase-attribution window. Use it for a relevant follow-up such as an offer of help from the store. Timing starts at check-in, not detected departure.
Payload fields
Fires when a customer purchases a wishlisted item after receiving a Piing push notification. Tracks the push-to-purchase funnel end to end.
Payload fields
Shopify webhook events
Fires when a Shopify order is paid. PII (email, phone) is excluded; use Klaviyo profile enrichment instead. Pairs with piing.checkin.created for purchased-after-visit attribution.
Payload fields
Fires when a Shopify order is fulfilled. Useful for post-delivery feedback or review flows.
Payload fields
Sample payload
A piing.checkin.created event as delivered to a webhook destination:
piing.checkin.created
Webhook destinations support bearer auth, per-event filtering and payload transforms, configured under Integrations then Webhooks & Data Warehouse. Failed deliveries retry with exponential backoff, and you can inspect delivery history per destination.