Skip to main content

Step 1: Send a test event

Send a single test event with a known event_id so you can trace it:
A successful response looks like:

Step 2: Confirm it appears in the dashboard

  1. Open the Scanova dashboard
  2. Go to Integrations → Conversion Tracking
  3. Open the tracking site
  4. Your test_event should appear within 30–60 seconds

Step 3: Test deduplication

Resend the same request with the same event_id:
The second request will return 200 but the event will be marked as a duplicate and excluded from conversion counts. Confirm the event count in reports did not increase.

Common errors and fixes

401 — Missing API key

The X-API-Key header is absent from the request.

403 — Invalid key or unauthorized site

Either the API key is invalid, revoked, or the site_id in the payload does not match the site the key belongs to. Verify:
  • The key was copied correctly (no trailing spaces or newline characters)
  • The site_id in the request body matches exactly the site that generated the key
  • The key has not been revoked in the dashboard

422 — Validation error

The payload failed schema validation. The response body includes details:
Common causes:
  • Missing required field (site_id, event_name, or scan_session_id)
  • scan_session_id is not a valid UUID format
  • conversion_value.currency is not a 3-letter ISO code
  • properties object exceeds 10 KB
  • Raw email address in properties (use user_identifiers.email_hash instead)

429 — Rate limit exceeded

You are sending more than 1,000 events per minute per API key. Back off and retry:
  • Check the Retry-After header in the response
  • Use the batch endpoint (POST /server-events/batch) to consolidate multiple events into fewer requests

Event delivered but not appearing in reports

  • Wait 60 seconds — there is a short processing delay
  • Verify the site_id in your payload matches the tracking site you are viewing in the dashboard
  • Check that the scan_session_id is a valid UUID — invalid format is rejected with 422
  • Confirm the scan_session_id you sent is a real scan session from a QR Code scan, not a test UUID — events with unresolvable sessions are not attributed and may not appear in reports