{
    "title": "Webhook bulk events",
    "purpose": "Kupona sends many events in one request. GHI processes new rows, updates changed rows, and skips exact duplicates.",
    "direction": "Kupona to GHI dashboard",
    "endpoint": "POST /api/kupona/webhook",
    "idempotency": "Each record uses event_type + source_event_id. Same ID with changed data is treated as an update.",
    "payload": {
        "records": [
            {
                "event_type": "referral_status_updates",
                "source_event_id": "KUP-REF-02400-001",
                "employee_id": "PS-10042",
                "occurred_at": "2026-08-14T09:40:00+02:00",
                "data": {
                    "referral_id": "REF-02400",
                    "kupona_status": "Accepted",
                    "compliance_status": "Compliant"
                }
            },
            {
                "event_type": "intervention_outcomes",
                "source_event_id": "KUP-OUT-02400-001",
                "employee_id": "PS-10042",
                "occurred_at": "2026-08-28T10:00:00+02:00",
                "data": {
                    "referral_id": "REF-02400",
                    "intervention_status": "Successful",
                    "outcome_band": "Improved"
                }
            }
        ]
    },
    "response_example": {
        "status": "processed",
        "received": 10,
        "created": 2,
        "updated": 2,
        "duplicates": 6,
        "invalid": 0
    }
}