webhook-payload.json
Project-level events
These events are triggered in the context of your entire project:link.createdlink.updatedlink.deletedqrcode.createdqrcode.updatedqrcode.deletedpage.createdpage.updatedpage.deletedlead.createdsale.createdpartner.enrolled
link.created
This event is triggered when a new link is created in your CodeQR project. The event payload contains the created link’s details.
Here’s an example payload:
Sample payload
Sample payload
link.created
link.updated
This event is triggered when a link is updated in your CodeQR project. The event payload contains the updated link’s details.
Here’s an example payload:
Sample payload
Sample payload
link.updated
link.deleted
This event is triggered when a link is deleted in your CodeQR project. The event payload contains the deleted link’s details.
Here’s an example payload:
Sample payload
Sample payload
link.deleted
qrcode.created
This event is triggered when a new QR code is created in your CodeQR project. The event payload contains the created QR code’s details (under data.qrcode).
Sample payload
Sample payload
qrcode.created
qrcode.updated
This event is triggered when a QR code is updated in your CodeQR project. The event payload contains the updated QR code’s details (under data.qrcode).
qrcode.deleted
This event is triggered when a QR code is deleted in your CodeQR project. The event payload contains the deleted QR code’s details (under data.qrcode).
page.created
This event is triggered when a new page is created in your CodeQR project. The event payload contains the created page’s details (under data.page).
Sample payload
Sample payload
page.created
page.updated
This event is triggered when a page is updated in your CodeQR project. The event payload contains the updated page’s details (under data.page).
page.deleted
This event is triggered when a page is deleted in your CodeQR project. The event payload contains the deleted page’s details (under data.page).
lead.created
This event is triggered when a new lead is created via CodeQR Conversions. The event payload contains the following:
eventName: The name of the event that was tracked.customer: Details about the customer that signed up.interaction: The click/scan/view event that led to the lead (same shape asdata.interactionfor link.clicked, qrcode.scanned, page.visited).link/qrcode/page: Details about the referral resource the lead is associated with, when applicable.
Sample payload
Sample payload
lead.created
sale.created
This event is triggered when a new sale is tracked via CodeQR Conversions. The event payload contains the following:
eventName: Optional; the name of the event that was tracked.customer: Details about the customer that made the purchase.interaction: Optional; the click/scan/view event that led to the sale (when available; e.g. not sent from Stripe checkout).link/qrcode/page: Details about the referral resource the sale is associated with, when applicable.sale: Amount, currency, payment processor, invoice ID.
Sample payload
Sample payload
sale.created
partner.enrolled
This event is triggered when a new partner is enrolled in your partner program. The event payload contains the following:
partner: Details about the partner that was enrolled.links: An array of referral links.
Sample payload
Sample payload
partner.enrolled
Payload field: interaction
“Interaction” is not an event type. It is a field inside the data object that we send for click, scan, and view events. We always use the same key data.interaction and the same structure (the click-event shape: timestamp, clickId, url, ip, continent, country, city, device, browser, os, ua, bot, qr, referer, etc.) for:
- Link-level
link.clicked—data.interaction(click event) +data.link - QR Code-level
qrcode.scanned—data.interaction(scan event, same shape) +data.qrcode - Page-level
page.visited—data.interaction(view event, same shape) + optionallydata.page - Project-level
lead.created—data.interaction(the click that led to the lead) +data.customer,data.link/data.qrcode/data.page
data.click, data.scan, or data.view; we send data.interaction for all of these. We do not send a separate webhook event named “interaction”. Only the event types listed in this document are sent.
Link-level events
Due to the high volume nature of these events, these events are scoped to a specific link. This means that you need to specify the link when creating a webhook – though you can select multiple links for the same webhook if you’d like.link.clicked
This event is triggered when a user clicks on a link. The event payload contains data.interaction (the click event) and data.link (full link details).
Here’s an example payload:
Sample payload
Sample payload
link.clicked
QR Code-level events
Due to the high volume nature of these events, they are scoped to a specific QR code. You need to specify the QR code(s) when creating a webhook.qrcode.scanned
This event is triggered when a user scans a QR code. The event payload contains data.interaction (the scan event, same shape as click event) and data.qrcode (full QR code details).
Sample payload
Sample payload
qrcode.scanned
Page-level events
Due to the high volume nature of these events, they are scoped to a specific page. You need to specify the page(s) when creating a webhook.page.visited
This event is triggered when a user visits a page. The event payload contains data.interaction (the view event, same shape as click event) and optionally data.page (full page details).
Sample payload
Sample payload
page.visited

