Reference

Webhooks

Fliko wysyła zdarzenia HTTP POST do Twojego endpointu w czasie rzeczywistym. Zintegruj je ze swoim CRM, systemem powiadomień email lub systemem zarządzania eventami.

Konfiguracja endpointu

Dodaj URL endpointu w panelu: Ustawienia → Webhooks → Dodaj endpoint. Fliko wyśle testowe zdarzenie po zapisaniu.

Endpoint musi zwrócić HTTP 200 w ciągu 5 sekund. Wolniejsze odpowiedzi traktowane są jako błąd i uruchamiają retry. Przetwarzaj zdarzenia asynchronicznie (wrzucaj na kolejkę, odpowiadaj 200 natychmiast).

Lista zdarzeń

Zdarzenie Kiedy Priorytet
payment.confirmed Płatność zaksięgowana wysoki
payment.failed Płatność odrzucona przez PSP wysoki
payment.refunded Zwrot zrealizowany średni
ticket.issued Bilet wyemitowany (po potwierdzeniu płatności) wysoki
ticket.transferred Bilet przetransferowany face-value średni
bot.account_flagged Konto oznaczone jako podejrzane wysoki
bot.blocked Transakcja zablokowana przez velocity/fingerprint średni
event.sold_out Pula biletów wyczerpana wysoki
event.capacity_warning Sprzedano 90% pojemności średni

Przykładowe payloady

payment.confirmed

JSON
{
  "event": "payment.confirmed",
  "timestamp": "2025-10-18T23:55:14Z",
  "webhook_id": "wh_a1b2c3d4",
  "data": {
    "ticket_id": "tkt_4f8a2c",
    "event_id": "evt_warsaw_01",
    "amount_pln": 85.00,
    "payment_method": "blik",
    "bot_score": 0.02,
    "buyer_email_hash": "sha256:9c2e..."
  }
}

bot.account_flagged

JSON
{
  "event": "bot.account_flagged",
  "timestamp": "2025-10-18T23:41:02Z",
  "webhook_id": "wh_e5f6g7h8",
  "data": {
    "account_id": "usr_7142",
    "reason": "cross_event_reseller_pattern",
    "events_involved": ["evt_warsaw_01", "evt_krakow_03"],
    "confidence": 0.91,
    "action": "blocked"
  }
}

Weryfikacja podpisu HMAC

Każde zdarzenie zawiera nagłówek Fliko-Signature — HMAC-SHA256 podpisany Twoim sekretem webhook. Zawsze weryfikuj podpis zanim przetworzysz zdarzenie.

Python
import hmac, hashlib

def verify_signature(payload_bytes, header, secret):
    expected = "sha256=" + hmac.new(
        secret.encode(), payload_bytes, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, header)

Retry policy

Jeśli endpoint nie odpowie 2xx w 5 sekund, Fliko ponowi wysyłkę z wykładniczym back-off:

  • Próba 1: natychmiast
  • Próba 2: po 30 sekundach
  • Próba 3: po 5 minutach
  • Próba 4: po 30 minutach
  • Próba 5: po 2 godzinach
  • Po 5 próbach: zdarzenie oznaczone jako delivery_failed, dostępne w logach panelu