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