Skip to main content
POST
/
server-events
Send server-side event
curl --request POST \
  --url https://track.scanova.io/server-events \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "site_id": "site_abc123",
  "event_name": "purchase",
  "scan_session_id": "550e8400-e29b-41d4-a716-446655440000",
  "conversion_value": {
    "amount": 99.99,
    "currency": "USD"
  },
  "user_identifiers": {
    "email_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "external_id": "user_12345"
  },
  "properties": {
    "order_id": "order_789",
    "product_ids": [
      "prod_1",
      "prod_2"
    ]
  }
}
'
{
  "success": true,
  "event_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "message": "Event received"
}
Use this endpoint for single conversion or backend events such as purchase, signup, and lead.

Authorizations

X-API-Key
string
header
required

Site-scoped server API key generated from Dashboard > Integrations > Conversion Tracking > Script/API > API tab

Body

application/json
site_id
string
required

Tracking site ID

Required string length: 1 - 64
event_name
string
required

Event name (normalized to lowercase/underscore by API)

Required string length: 1 - 64
scan_session_id
string<uuid>

QR scan session id from scnv redirect

event_id
string<uuid>

Unique event ID for deduplication

event_time
string<date-time>

Event occurrence time

user_identifiers
object
conversion_value
object
properties
object

Custom properties. Max serialized size 10KB. Do not include raw email addresses.

Consent signal propagated from browser-side tracking

Available options:
granted,
denied,
pending

Response

Event accepted

success
boolean
required
Example:

true

event_id
string<uuid>
required
message
string
required
Example:

"Event received"