Dokumentacja / API Reference

Webhooks API

2 min czytania

API Webhooks pozwala tworzyć, zarządzać i testować endpointy webhooków dla powiadomień w czasie rzeczywistym.

Utwórz webhook

Zarejestruj nowy endpoint webhooka.

POST /v1/webhooks

Body żądania

Pole Typ Wymagane Opis
url string Tak URL endpointu HTTPS
events array Tak Typy zdarzeń do otrzymywania
description string Nie Czytelny opis
secret string Nie Własny sekret podpisu (auto-generowany jeśli pominięty)

Dostępne zdarzenia

Zdarzenie Opis
delivered Email zaakceptowany przez serwer odbiorcy
bounced Email odrzucony
deferred Tymczasowy błąd, ponowimy próbę
opened Odbiorca otworzył email
clicked Odbiorca kliknął link
unsubscribed Odbiorca się wypisał
complained Oznaczono jako spam
inbound Otrzymano email przychodzący

Przykładowe żądanie

curl -X POST https://api.mailingapi.com/v1/webhooks \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://twojaapka.pl/webhooks/mailingapi",
    "events": ["delivered", "bounced", "complained", "opened", "clicked"],
    "description": "Produkcyjny webhook"
  }'

Odpowiedź

{
  "id": "wh_abc123",
  "url": "https://twojaapka.pl/webhooks/mailingapi",
  "events": ["delivered", "bounced", "complained", "opened", "clicked"],
  "description": "Produkcyjny webhook",
  "secret": "whsec_1a2b3c4d5e6f...",
  "status": "active",
  "created_at": "2024-01-15T10:00:00Z"
}

Ważne: Zapisz secret — będzie potrzebny do weryfikacji podpisów webhooków.


Lista webhooków

Pobierz wszystkie webhooki dla Twojego konta.

GET /v1/webhooks

Przykładowe żądanie

curl https://api.mailingapi.com/v1/webhooks \
  -H "Authorization: Bearer $API_KEY"

Odpowiedź

{
  "data": [
    {
      "id": "wh_abc123",
      "url": "https://twojaapka.pl/webhooks/mailingapi",
      "events": ["delivered", "bounced"],
      "status": "active",
      "created_at": "2024-01-15T10:00:00Z"
    }
  ]
}

Pobierz webhook

Pobierz szczegóły konkretnego webhooka.

GET /v1/webhooks/{webhook_id}

Przykładowe żądanie

curl https://api.mailingapi.com/v1/webhooks/wh_abc123 \
  -H "Authorization: Bearer $API_KEY"

Odpowiedź

{
  "id": "wh_abc123",
  "url": "https://twojaapka.pl/webhooks/mailingapi",
  "events": ["delivered", "bounced", "complained", "opened", "clicked"],
  "description": "Produkcyjny webhook",
  "status": "active",
  "created_at": "2024-01-15T10:00:00Z",
  "stats": {
    "total_sent": 15420,
    "successful": 15380,
    "failed": 40,
    "last_success": "2024-01-20T15:30:00Z",
    "last_failure": "2024-01-20T14:00:00Z"
  }
}

Statusy webhooka

Status Opis
active Webhook otrzymuje zdarzenia
paused Tymczasowo wyłączony
failing Wiele kolejnych błędów
disabled Permanentnie wyłączony

Aktualizuj webhook

Zaktualizuj konfigurację webhooka.

PATCH /v1/webhooks/{webhook_id}

Body żądania

Pole Typ Opis
url string Nowy URL endpointu
events array Nowa lista zdarzeń
description string Nowy opis
status string active lub paused

Przykładowe żądanie

curl -X PATCH https://api.mailingapi.com/v1/webhooks/wh_abc123 \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "events": ["delivered", "bounced"],
    "status": "paused"
  }'

Odpowiedź

{
  "id": "wh_abc123",
  "url": "https://twojaapka.pl/webhooks/mailingapi",
  "events": ["delivered", "bounced"],
  "status": "paused",
  "updated_at": "2024-01-20T16:00:00Z"
}

Usuń webhook

Usuń endpoint webhooka.

DELETE /v1/webhooks/{webhook_id}

Przykładowe żądanie

curl -X DELETE https://api.mailingapi.com/v1/webhooks/wh_abc123 \
  -H "Authorization: Bearer $API_KEY"

Odpowiedź

204 No Content

Format payloadu webhooka

Wszystkie payloady webhooków mają tę strukturę:

{
  "id": "evt_1234567890",
  "type": "delivered",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "message_id": "msg_abc123",
    "from": "hello@twojadomena.pl",
    "to": "user@example.com",
    "subject": "Twoje zamówienie wysłane",
    "metadata": {
      "user_id": "usr_123"
    }
  }
}

Weryfikacja podpisu

Weryfikuj autentyczność webhooka używając nagłówka X-MailingAPI-Signature:

X-MailingAPI-Signature: t=1705315800,v1=5d2a...

Zobacz przewodnik Webhooks po przykłady implementacji.


Kody błędów

Kod Opis
invalid_url URL musi być HTTPS
invalid_events Nieznany typ zdarzenia
webhook_not_found ID webhooka nie znalezione
webhook_disabled Webhook został wyłączony