jan.kowalski@demo-saas.example Wyloguj
JA
AffiWave/API & Webhooks

API & Webhooks

Integracja trackingu i konwersji przez API oraz zdarzenia po stronie serwera

Klucze API

Nowy klucz API
NazwaPrefiksStatusOstatnio użyty
Production backend ak_1cb0b48b Aktywny 2026-10-02 15:07
Edytuj

Endpointy webhookow

Nowy webhook
EndpointZdarzeniaStatus
https://demo-saas.example/webhooks/affiwave conversion.created conversion.approved payout.paid Aktywny
Edytuj

Każda dostawa to żądanie POST z treścią JSON. Gdy ustawiono sekret, nagłówek niesie HMAC-SHA256. Niedziałające endpointy są ponawiane; po wielokrotnych błędach webhook jest automatycznie wyłączany. X-AffiWave-Signature: t=<ts>,v1=<hmac>

Log webhookow

CzasEndpointZdarzenieKod
Oct 2, 17:08:01 https://demo-saas.example/webhooks/affiwave payout.paid blad
Oct 2, 17:07:56 https://demo-saas.example/webhooks/affiwave payout.paid blad
Oct 2, 17:07:56 https://demo-saas.example/webhooks/affiwave payout.paid blad
Oct 2, 17:07:54 https://demo-saas.example/webhooks/affiwave payout.paid blad
Oct 2, 17:07:54 https://demo-saas.example/webhooks/affiwave payout.paid blad
Oct 2, 17:07:52 https://demo-saas.example/webhooks/affiwave payout.paid blad
Oct 2, 17:07:52 https://demo-saas.example/webhooks/affiwave payout.paid blad

Skrypt trackingu

Ten piksel zgłasza do AffiWave zrealizowane zamówienie - wklej go na stronie potwierdzenia zamówienia. W przeciwieństwie do zapytania API po stronie serwera (sekcja obok) nie trzeba tu podawać żadnego tokenu: „token” (identyfikator linku śledzącego afilianta - ten sam, co w adresie /r/{token} wysyłanym afiliantowi) jest pobierany automatycznie z ciasteczka, które przeglądarka dostała, gdy odwiedzający kliknął w ten link.

<!-- Wklej na stronie potwierdzenia zamowienia -->
<img src="https://affiwave.com/px/c.gif?order_id=ORD-1042&amount=49.99&currency=USD"
     width="1" height="1" style="display:none" alt="">

Alternatywa: atrybucja przez kupon

Kod kuponu użyty w zamówieniu identyfikuje afilianta - dopisz go do piksela jako parametr coupon, a konwersja zostanie przypisana temu afiliantowi, nawet bez wcześniejszego kliknięcia w jego link.

<!-- Atrybucja przez kupon zamiast tokenu z ciasteczka -->
<img src="https://affiwave.com/px/c.gif?coupon=SUMMER10&order_id=ORD-1042&amount=49.99&currency=USD"
     width="1" height="1" style="display:none" alt="">

Konwersja po stronie serwera

Zapisz konwersję z backendu po potwierdzeniu zamówienia, używając klucza API (scope conversions:write). To wywołanie idzie serwer-serwer, bez udziału przeglądarki klienta - więc ciasteczko atrybucji z piksela NIE jest tu dostępne. Token trzeba przekazać samemu w treści żądania, a Twoja aplikacja musi go wcześniej gdzieś zapisać (np. odczytać przy wejściu klienta z linku partnera i dopisać do zamówienia). Jeśli tego nie robisz, prościej jest użyć pola coupon (patrz przykład niżej) - to Twoje własne dane zamówienia, bez potrzeby wcześniejszego śledzenia.

// POST https://affiwave.com/api/conversion
curl -X POST https://affiwave.com/api/conversion \
  -H "Authorization: Bearer ak_ab12cd34.<secret>" \
  -H "Content-Type: application/json" \
  -d '{
    "token": "AFF-9X2K-7QPL",
    "external_order_id": "ORD-1042",
    "amount": "49.99",
    "currency": "USD"
  }'

Prościej: atrybucja przez kupon (bez śledzenia)

Kod kuponu użyty w zamówieniu identyfikuje afilianta - przekaż go w polu coupon zamiast tokenu; to dane, które i tak już masz w zamówieniu, więc nie trzeba niczego wcześniej śledzić.

// POST https://affiwave.com/api/conversion
curl -X POST https://affiwave.com/api/conversion \
  -H "Authorization: Bearer ak_ab12cd34.<secret>" \
  -H "Content-Type: application/json" \
  -d '{
    "coupon": "SUMMER10",
    "external_order_id": "ORD-1042",
    "amount": "49.99",
    "currency": "USD"
  }'