sync.error

Fired when a PMS/OTA data sync fails. Check the error field for details.

Payload

Every delivery uses the same outer envelope (type, deliveryId, createdAt, data). Dedupe on deliveryId — retries reuse the same id.

{
  "event": "sync.error",
  "timestamp": "2026-04-04T03:05:00Z",
  "data": {
    "provider": "guesty",
    "syncType": "incremental",
    "error": "Authentication failed — token expired",
    "retriesRemaining": 2
  }
}

Verifying signatures

Every delivery includes an X-Repull-Signature header containing an HMAC-SHA256 of the raw request body computed with your subscription's signing secret. Verify it before processing — see Verify Signatures for full Node.js and Python examples.

Use the raw body

Verify the HMAC against the raw request body, not a re-stringified JSON object. Re-serialisation can reorder keys or change whitespace and break the signature.

Example handler

if (event === 'sync.error') {
  console.error('Sync failed:', data.provider, data.error)
  if (data.retriesRemaining === 0) {
    // Alert: connection may need re-authentication
  }
}

Tip: Acknowledge with a 2xx status within 5 seconds. Failed deliveries are retried up to 5 times with exponential backoff.Webhook reliability →

AI