
# Konta agencji

## Czym są konta agencji?

Konta agencji pozwalają zarządzać wieloma kontami klientów z poziomu jednego pulpitu nawigacyjnego. Zamiast logować się do osobnych kont dla każdego klienta, otrzymujesz scentralizowany widok, w którym możesz tworzyć subkonta, monitorować kampanie, przydzielać kredyty i błyskawicznie przełączać się między klientami.

To rozwiązanie zostało zaprojektowane z myślą o agencjach marketingowych, konsultantach i resellerach, którzy zarządzają aplikacją w imieniu wielu firm.

::: walkthrough agency-accounts
:::

Dwie strony, które to umożliwiają — **Subkonta** i **Tryb SaaS** — mają swoje własne miejsce na pasku bocznym, zamiast być ukryte w Ustawieniach. Ta strona stanowi przegląd; codzienna obsługa odbywa się w sekcji [Zarządzanie subkontami](sub-accounts.md).

---

## Współdzielony system kredytowy

Jedną z kluczowych różnic między kontami agencji a zwykłymi kontami jest sposób działania kredytów:

- **Kredyty są współdzielone** między Twoim kontem agencji a wszystkimi subkontami.
- Gdy subkonto wykorzystuje kredyty (na odpowiedzi AI, kampanie itp.), są one odejmowane od salda Twojej agencji.
- Subkonta nie widzą salda kredytów — widzą jedynie swoje zużycie. Ty, jako agencja, zarządzasz całą pulą kredytów.

**Przykład:** Masz 1000 kredytów na koncie agencji. Klient A wysyła kampanię do 50 kontaktów (50 kredytów). Bot AI klienta B odpowiada na 30 konwersacji (30 kredytów). Twoje pozostałe saldo wynosi 920 kredytów.

---

## Tworzenie subkont

::: master-only
<figure><img src="../.gitbook/assets/v2-sub-accounts.png" alt="Strona kont podrzędnych w wersji v2, pokazująca sześć kafelków statystyk (Konta podrzędne, Z problemami, Aktywne kampanie, Wstrzymane kampanie, Przydzielone klientom, Nieprzydzielone), pasek wyszukiwania oraz jeden wiersz klienta w tabeli"><figcaption><p>Strona kont podrzędnych: kafelki statystyk na górze (dwa po prawej dzielą pulę kredytów na to, co jest już zajęte przez limity klientów, oraz to, co jest jeszcze wolne), przycisk <strong>Dodaj konto</strong> oraz skrót do <strong>trybu SaaS</strong>.</p></figcaption></figure>
:::

1. Kliknij **Subkonta** na głównym pasku bocznym — to osobna strona, znajdująca się tuż nad **Ustawieniami**.
2. Kliknij zielony przycisk **Dodaj konto** (w prawym górnym rogu).
3. Wypełnij dane klienta w 3-krokowym oknie modalnym: konto (imię, nazwisko, e-mail), firma (nazwa firmy, adres, opis) oraz funkcje.

::: master-only
<figure><img src="../.gitbook/assets/v2-sub-account-add-modal.png" alt="Okno modalne Dodaj subkonto w kroku Konto, pokazujące 3-stopniowy postęp (Konto, Firma, Funkcje) z polami imienia, nazwiska i adresu e-mail"><figcaption><p>Okno modalne Dodawania subkonta. Trzy kroki: Konto → Firma → Funkcje. Wprowadzony adres e-mail staje się adresem logowania klienta.</p></figcaption></figure>
:::

4. Kliknij **Utwórz konto**.

Ekran potwierdzenia wyświetli wygenerowane hasło logowania — skopiuj je przed zamknięciem. Klient otrzyma je również e-mailem. Pełna instrukcja: [Zarządzanie subkontami — tworzenie subkonta](sub-accounts.md#creating-a-sub-account).

---

## Pokazywanie potencjalnemu klientowi wersji demonstracyjnej na żywo

Zanim klient się zarejestruje, możesz pokazać mu podgląd na żywo asystenta czatu działającego na jego własnej stronie internetowej — bez konieczności instalacji po jego stronie. Użyj **linku do wersji demonstracyjnej dla klienta**.

> **Obecnie niedostępne.** Sekcja **Link demo dla klienta** z poprzedniej wersji aplikacji nie jest obecnie częścią ekranu Zarządzania widżetem czatu, więc poniższe kroki nie mogą zostać jeszcze wykonane. Zostały one zachowane jako opis działania linku demo.

**Jak to działa:** wklejasz adres strony internetowej klienta, a platforma generuje link, który można udostępnić. Gdy klient otworzy ten link, zobaczy swoją własną stronę internetową z Twoim widżetem czatu na wierzchu — w pełni działającym i gotowym do rozmowy. Nic nie zmienia się na jego faktycznej stronie internetowej i nie musi on ingerować w żaden kod. Podgląd istnieje w całości pod Twoim linkiem.

**Jak tam dotrzeć:** otwórz **Ustawienia → Kanały → Kanały**, kliknij kartę **Widżet czatu**, znajdź sekcję **Link do wersji demonstracyjnej dla klienta**, wpisz lub wklej adres strony internetowej klienta (na przykład `theirbusiness.com`) i kliknij **Kopiuj link do wersji demonstracyjnej**. Następnie wyślij ten link klientowi w dowolny sposób — e-mailem, przez WhatsApp, w wiadomości lub gdziekolwiek indziej.

::: master-only
<figure><img src="../.gitbook/assets/v2-agency-channels-chat-widget-card.png" alt="Ustawienia → Kanały → Strona Kanały pokazująca kartę widżetu czatu na stronie z przyciskiem Zarządzaj"><figcaption><p>Ustawienia → Kanały → Kanały: karta <strong>Widżet czatu na stronie</strong> jest punktem wejścia do konfiguracji widżetu.</p></figcaption></figure>
:::

::: master-only
<figure><img src="../.gitbook/assets/v2-agency-chat-widget-manage-modal.png" alt="Modal Zarządzania widżetem czatu, pokazujący ustawienia Wyglądu i panel podglądu na żywo — nie posiada sekcji Link demo dla klienta"><figcaption><p>Obecny modal Zarządzania: sekcje Wygląd, Zachowanie, Pozyskiwanie leadów oraz Kanały i osadzanie, ale brak sekcji Link demo dla klienta.</p></figcaption></figure>
:::

Kilka rzeczy, o których warto wiedzieć:

- Niektóre strony internetowe nie pozwalają na wyświetlanie ich wewnątrz innej strony (ustawienie bezpieczeństwa po ich stronie). Gdy tak się dzieje, link do wersji demonstracyjnej nadal działa — pokazuje czystą ramkę podglądu z adresem strony internetowej, a asystent czatu jest nadal w pełni aktywny i gotowy do przetestowania. Doświadczenie rozmowy jest identyczne; różni się tylko tło strony internetowej.
- Wersja demonstracyjna wykorzystuje Twoją rzeczywistą konfigurację widżetu, więc wszelkie wiadomości wysyłane przez klienta podczas testów trafiają do Ciebie tak samo, jak każda inna rozmowa przez widżet czatu.

---

## Dane logowania klienta

Kiedy tworzysz subkonto:

- Klient otrzymuje e-mail i hasło, których może użyć do zalogowania się na własne konto, na Twojej stronie logowania z własną marką (white-labeled).
- Przyznanie klientom dostępu do logowania jest **opcjonalne** — jeśli wolisz, możesz zarządzać wszystkim w ich imieniu.
- Jeśli klient się zaloguje, zobaczy własny pulpit nawigacyjny ze swoimi kampaniami, kontaktami i czatami. Nie widzi Twojego pulpitu nawigacyjnego agencji ani innych subkont.
- Saldo kredytów jest ukryte przed subkontami, ponieważ zarządzasz wspólną pulą kredytów.

---

## Przełączanie między subkontami

Istnieją dwa sposoby na przełączenie się na konto klienta:

**Przełącznik kont, z dowolnego miejsca:**

1. Na górze paska bocznego kliknij **Przełącz konto**.

::: master-only
<figure><img src="../.gitbook/assets/v2-agency-switch-account-dropdown.png" alt="Rozwinięte menu rozwijane Przełącz konto na pasku bocznym, pokazujące pole wyszukiwania subkont"><figcaption><p>Menu rozwijane <strong>Przełącz konto</strong>, otwierane z dowolnego miejsca na pasku bocznym. Ta agencja nie ma jeszcze żadnych subkont, więc lista jest pusta — gdy utworzysz subkonto, pojawi się ono tutaj i będzie można je wyszukać po nazwie lub adresie e-mail.</p></figcaption></figure>
:::

2. Wyszukaj subkonto według nazwy lub adresu e-mail albo przewiń listę.
3. Kliknij je. Pulpit nawigacyjny zostanie przeładowany w kontekście wybranego subkonta.

**Ze strony Subkonta:**

1. Na pasku bocznym kliknij **Subkonta**.
2. Znajdź subkonto na liście. W jego wierszu kliknij menu **Więcej** (ikona trzech kropek po prawej stronie).
3. Kliknij **Zaloguj się jako użytkownik**.

Tak czy inaczej, gdy znajdujesz się na subkoncie, przełącznik na pasku bocznym zmienia kolor na bursztynowy i wyświetla komunikat **Assisting: <name>**. Kliknij go i wybierz **Back to my agency**, aby powrócić do własnego pulpitu nawigacyjnego. Bursztynowy pasek **Assisting** u góry strony oferuje taką samą opcję wyjścia; kliknij znajdujący się na nim znak **×**, aby ukryć pasek do końca bieżącej sesji, jeśli potrzebujesz więcej miejsca.

Jeśli klient ma włączone uwierzytelnianie dwuskładnikowe, nie zostaniesz poproszony o jego kod: zalogowałeś się już jako Ty, a kod trafiłby do klienta, a nie do Ciebie.

---

## Śledzenie zużycia kredytów

Jako agencja możesz śledzić sposób wykorzystania kredytów we wszystkich subkontach:

- **Kafelki statystyk na stronie Subkonta** — zbiorcze dane o liczbie aktywnych/wstrzymanych kampanii oraz o tym, ile subkont ma problemy.
- **Śledzenie dla poszczególnych subkont** — informacja o tym, ile kredytów zużywa każde subkonto, dostępna w menu **Więcej** w danym wierszu.
- **Szczegóły zużycia kredytów** — dedykowany widok dla każdego subkonta, pokazujący zakupione kredyty, zużyte kredyty, pozostałe saldo, zużycie według przyczyny, najpopularniejsze kampanie pod względem wydatków oraz tabelę transakcji z możliwością filtrowania.

::: master-only
<figure><img src="../.gitbook/assets/v2-sub-accounts.png" alt="Strona Subkonta w wersji v2, pokazująca sześć kafelków ze statystykami: Subkonta, Z problemami, Aktywne kampanie, Wstrzymane kampanie, Przydzielone klientom, Nieprzydzielone"><figcaption><p>Kafelki ze statystykami u góry strony Subkonta — ogólny podgląd stanu kampanii u wszystkich klientów oraz informacja o tym, jaka część puli kredytów jest już zajęta przez limity wydatków klientów (<strong>Przydzielone klientom</strong> / <strong>Nieprzydzielone</strong>). Menu <strong>Więcej</strong> w każdym wierszu (niewidoczne — wymaga co najmniej jednego subkonta) to miejsce, w którym znajdują się szczegóły dotyczące śledzenia kredytów dla poszczególnych kont oraz wykorzystania kredytów.</p></figcaption></figure>
:::

Ta przejrzystość pomaga zrozumieć koszty, zidentyfikować klientów o wysokim zużyciu i ustalić odpowiednie ceny za świadczone usługi.

---

## Odsprzedaż kredytów (tzw. tryb SaaS)

Odsprzedaż kredytów pozwala na sprzedaż kredytów subkontom według własnych cen, tworząc strumień przychodów dla Twojej agencji. Cały ten obszar znajduje się na osobnej stronie paska bocznego o nazwie **Tryb SaaS** — to ta sama funkcja, którą możesz znać pod nazwą „Odsprzedaż kredytów” (Credit Reselling), zgodnie z jej standardową nazwą branżową. Jest ona dostępna w planie **Agencja** i jest zabezpieczona flagą funkcji **white-labeling**. Jeśli Twój plan obejmuje white-labeling — co dotyczy każdego poziomu dożywotniej licencji, w którym jest on wymieniony — odsprzedaż jest już Twoja: nie ograniczasz się tylko do zarządzania aplikacją dla klientów, możesz sprzedawać plany pod własną marką, według własnych cen, za pośrednictwem własnego konta Stripe lub PayPal. Nie musisz niczego dokupować.

### Jak to działa

1. **Otwórz Tryb SaaS** — kliknij jego wpis w głównym pasku bocznym (znajduje się obok Subkont, blisko dołu menu) lub kliknij pigułkę **Tryb SaaS** u góry strony Subkont.
2. **Włącz odsprzedaż kredytów dla subkonta** w jego oknie modalnym **Edytuj** (strona Subkonta → menu **Więcej** w wierszu → **Edytuj** → **Zarządzanie kredytami**), zmieniając tryb z Ręcznego na Odsprzedaż. Odsprzedaż jest oferowana tylko wtedy, gdy Twoja agencja ma włączony white-labeling w swoim planie.
3. **Ustal swoje ceny** — zdefiniuj pakiety kredytów i ceny za kredyt, które będą widzieć Twoje subkonta przy zakupie kredytów.
4. **Egzekwowanie cen minimalnych** — platforma wymusza minimalną cenę kredytu, aby zapewnić zrównoważone ceny w całym systemie.
5. **Subkonta kupują kredyty** za pośrednictwem Twojej niestandardowej kasy, obsługiwanej przez dowolnego dostawcę płatności, którego podłączysz — Stripe, PayPal lub obu. Płatności trafiają bezpośrednio na Twoje konto u tego dostawcy.
6. **Kredyty są dostarczane automatycznie** na subkonto po zakupie. Kredyty trafiają do zakupionego salda klienta, a ta sama liczba kredytów jest odejmowana z puli Twojej agencji — to odliczenie jest Twoim kosztem sprzedaży, podczas gdy płatność klienta trafia na Twoje konto płatnicze.

### Ekonomia kredytów

Gdy klient kupuje kredyty, są one dodawane do jego własnego salda zakupionego, a taka sama liczba kredytów jest **odejmowana z puli Twojej agencji**. Pieniądze klienta trafiają na Twoje konto Stripe; odliczenie z puli to Twój koszt platformy związany ze sprzedażą. Twój zysk to różnica między ustaloną przez Ciebie ceną a kosztem tych kredytów dla Ciebie — dlatego też istnieje minimalna cena za kredyt (nie możesz wycenić pakietu poniżej własnego kosztu kredytu na platformie).

Utrzymuj pokrycie swojej puli: kasa wymaga, aby pula Twojej agencji zawierała co najmniej tyle kredytów, ile wynosi kupowany pakiet. Jeśli w momencie płatności Twoja pula nadal nie może pokryć zakupu, platforma automatycznie obciąży kartę Twojej agencji zapisaną w systemie, aby ją doładować — a jeśli to automatyczne obciążenie nie powiedzie się, płatność klienta zostanie zwrócona, a kredyty nie zostaną dostarczone.

**Przykład:** Sprzedajesz 150 kredytów za 25 USD. 150 kredytów trafia do salda zakupionego przez klienta, 25 USD trafia na Twoje konto Stripe, a 150 kredytów jest odejmowanych z puli Twojej agencji. Jeśli te kredyty z puli kosztowały Cię 15 USD, Twoja marża na sprzedaży wynosi 10 USD.

Zakupione kredyty pokrywają **wszystko, co wydaje klient** — odpowiedzi AI, narzędzia, działania następcze, a także koszty WhatsApp niezwiązane z AI (wynajem numeru oraz, od 1 października 2026 r., opłaty operatora za wiadomość). Wszystko to jest w pierwszej kolejności pobierane z zakupionego salda klienta; pula Twojej agencji pokrywa tylko to, czego to saldo nie wystarcza. Nie ma oddzielnej marży na klienta w przypadku kosztów WhatsApp (pole **Stawka klienta** zmienia cenę tylko dla akcji AI Max i Mini), więc jeśli odsprzedajesz WhatsApp, uwzględnij te koszty w swoich planach. SMS-y nie są w to wliczane: SMS-y zawsze działają na koncie Twilio, które podłączasz samodzielnie, więc Twilio obciąża Cię za nie bezpośrednio i nie są tu wykorzystywane żadne kredyty.

### Co się dzieje, gdy saldo klienta osiągnie zero

Wydatki klienta korzystającego z odsprzedaży pozostają ograniczone do zakupionych przez niego kredytów, **o ile jego miesięczny limit wynosi zero**. Bez limitu, w momencie gdy zakupione saldo osiągnie zero, **bot AI przestaje odpowiadać dla tego subkonta** — nie przełącza się na pulę Twojej agencji — a klient musi kupić kolejny plan lub pakiet kredytów przez Twój system płatności, aby wznowić działanie. Jest to twarde odcięcie, które zapobiega wyczerpaniu salda Twojej agencji przez jednego klienta.

Jeśli subkonto nadal ma ustawiony **Miesięczny limit** (zobacz [Tryby zarządzania kredytami](sub-accounts.md#credit-management-modes)), limit ten jest przyznawany co miesiąc i pobierany z Twojej puli dokładnie tak samo, jak w trybie ręcznym, więc klient może kontynuować działanie po wyczerpaniu zakupionych kredytów. Ustaw limit na zero w oknie **Edycji** subkonta, jeśli chcesz uzyskać czysty model płatności za użycie (pay-to-play). (SMS-y są w każdym przypadku rozliczane bezpośrednio przez Twilio, więc nie wiążą się z pobraniem kredytów.)

### Proces samodzielnej rejestracji

Celem odsprzedaży kredytów jest to, abyś **nie** zarządzał rejestracjami ręcznie. Proces wygląda następująco:

1. Publikujesz link do płatności (w wiadomości e-mail, na swojej stronie internetowej, w reklamie).
2. Nowy klient klika w niego, dokonuje płatności, a subkonto jest tworzone automatycznie. (Jeśli plan przewiduje bezpłatny okres próbny, klient rozpoczyna go bez ponoszenia żadnych kosztów — opłata zostanie pobrana automatycznie po zakończeniu okresu próbnego).
3. Klient otrzymuje wiadomość e-mail z danymi do logowania i tymczasowym hasłem.
4. Loguje się, przechodzi proces wdrożenia i zaczyna korzystać z platformy.

Wkraczasz tylko wtedy, gdy potrzebują pomocy — doładowania salda, ponowne próby płatności itp. działają na autopilocie.

Istnieją trzy sposoby na skonfigurowanie tego procesu: **Stripe** (zalecane, w pełni wbudowane), **PayPal** (również w pełni wbudowane i zazwyczaj wybierane, gdy Stripe nie jest dostępny w Twoim regionie) lub **Niestandardowy dostawca płatności** (każdy inny system, z którego już korzystasz — wymaga nieco pracy integracyjnej).

---

### Konfiguracja odsprzedaży kredytów

::: master-only
<figure><img src="../.gitbook/assets/v2-saas-mode-step1.png" alt="Kreator konfiguracji Trybu SaaS, krok 1 z 5: Utwórz konto Stripe, z przyciskami Otwórz Stripe i Mam konto oraz alternatywą w postaci niestandardowego dostawcy płatności"><figcaption><p>Kreator konfiguracji Trybu SaaS (krok 1 z 5). Stripe to standardowa ścieżka; pole na dole oferuje opcję niestandardowego dostawcy płatności, jeśli Stripe nie jest dostępny w Twoim kraju.</p></figcaption></figure>
:::

1. Kliknij **Tryb SaaS** w głównym pasku bocznym.
2. Jeśli jesteś tu po raz pierwszy, trafisz do kreatora konfiguracji. Wybierz jedną z trzech ścieżek:
   - **Mam konto / Połącz Stripe** — zalecane. Zobacz [Opcja 1: Połącz Stripe](#option-1-connect-stripe) poniżej.
   - **Użyj zamiast tego niestandardowego dostawcy płatności** — dla każdego innego dostawcy płatności, którego chcesz obsługiwać samodzielnie. Zobacz [Opcja 2: Niestandardowy dostawca płatności](#option-2-custom-payment-provider) poniżej.
   - **Połącz zamiast tego PayPal** — wbudowane tak jak Stripe, z pieniędzmi trafiającymi na Twoje konto PayPal Business. Zobacz [Opcja 3: Połącz PayPal](#option-3-connect-paypal) poniżej.

> Stripe to ścieżka najmniejszego oporu. Jeśli Stripe nie jest dostępny w Twoim kraju lub Twoi klienci po prostu wolą PayPal, połącz PayPal — jest on równie wbudowany i nie wymaga żadnej pracy integracyjnej. Ścieżkę niestandardowego dostawcy płatności zachowaj dla systemu rozliczeniowego, który już posiadasz i chcesz zachować (Mollie, Paddle, GoCardless, własny backend itp.).

Możesz połączyć Stripe i PayPal jednocześnie. Twoi klienci otrzymają wtedy przycisk dla każdej z tych opcji i wybiorą tę, którą preferują.

---

### Opcja 1: Połącz Stripe

To zalecana ścieżka. Platforma zajmuje się obsługą płatności, tworzeniem kont i dostarczaniem kredytów — Ty po prostu przekazujesz Stripe odpowiednie klucze.

#### Krok 1 — Utwórz ograniczony klucz API Stripe

1. W kreatorze trybu SaaS zostaniesz poproszony o podanie **klucza tajnego Stripe** (Stripe Secret Key).
2. Otwórz pulpit nawigacyjny Stripe w nowej karcie → **Developers** → **API keys** → **Create restricted key**.
3. Nadaj kluczowi nazwę (np. *<span data-t="appName">DM Champ</span> Reselling*) i przyznaj następujące uprawnienia:
   - **Checkout Sessions** → Write
   - **Products** → Write
   - **Prices** → Write
   - **Subscriptions** → Write (oznacza subskrypcję każdego klienta, dzięki czemu odnowienia — oraz konwersja bezpłatnych wersji próbnych na płatne — są przypisywane do odpowiedniego konta, a platforma może sprawdzić poziom subskrypcji aktywnych subskrybentów przed jego usunięciem)
   - **Customers** → Write, **Setup Intents** → Read oraz **Customer portal** → Write (używane, gdy klient zapisuje kartę w celu automatycznego doładowania lub zarządza swoją subskrypcją)
   - **Account** → Read
   - **Webhook Endpoints** → Write (pozwala platformie sprawdzić, czy Twój punkt końcowy webhook jest zarejestrowany z odpowiednimi zdarzeniami i naprawić go w razie potrzeby — zobacz [sprawdzanie poprawności webhooka](#webhook-health-check) poniżej)
4. Kliknij **Create key**, a następnie skopiuj klucz.

> **Masz już połączenie z mniejszą liczbą uprawnień?** Nie potrzebujesz nowego klucza. W Stripe otwórz **Developers → API keys**, kliknij swój istniejący ograniczony klucz, zaznacz brakujące uprawnienia i zapisz — platforma wykryje je przy następnym żądaniu. Objawem wskazującym na brak uprawnienia **Subscriptions** jest błąd *"Could not verify if this tier has active subscribers"* (Nie można zweryfikować, czy ten poziom ma aktywnych subskrybentów) podczas próby usunięcia poziomu cenowego.
5. Wklej go do kreatora i kliknij **Save & Continue** (Zapisz i kontynuuj).

#### Krok 2 — Zarejestruj webhook Stripe

1. Kreator pokaże Ci **adres URL webhooka**. Skopiuj go.
2. W Stripe przejdź do **Developers** → **Webhooks** → **Add endpoint**.
3. Wklej adres URL webhooka jako miejsce docelowe.
4. W sekcji zdarzeń wybierz **`checkout.session.completed`** (początkowe zakupy), **`invoice.paid`** (odnowienia oraz pierwsza opłata po zakończeniu bezpłatnego okresu próbnego — bez tego odnowienie subskrypcji klienta zostanie opłacone w Stripe, ale jego środki nie zostaną doładowane), **`customer.subscription.updated`** (zmiany planów dokonane w portalu klienta Stripe — bez tego klient, który dokonał aktualizacji, zachowa stary limit, dopóki nie naprawisz tego ręcznie) oraz **`customer.subscription.deleted`** (anulowania — bez tego klient, który anuluje subskrypcję w Stripe, będzie nadal widoczny jako subskrybent w naszym systemie).
5. Stripe wyświetli **klucz tajny (signing secret)** dla nowego webhooka. Skopiuj go i wklej do kreatora, a następnie kliknij **Save & Continue**.

##### Sprawdzanie poprawności webhooka

Gdy tylko zapiszesz klucz tajny podpisywania, a następnie raz dziennie, platforma użyje Twojego klucza Stripe, aby sprawdzić, czy Twój punkt końcowy webhook jest włączony i zasubskrybowany do wszystkich czterech zdarzeń. Jeśli brakuje zdarzeń, a Twój klucz posiada uprawnienie **Webhook Endpoints → Write**, zostaną one dodane automatycznie. Jeśli platforma nie może rozwiązać problemu (nie znaleziono punktu końcowego, punkt końcowy jest wyłączony, klucz nie ma odpowiednich uprawnień lub Stripe odrzuca klucz, ponieważ wygasł lub został cofnięty), pulpit nawigacyjny trybu SaaS wyświetli ostrzeżenie **"Webhook needs attention"** z dokładną instrukcją, co należy zrobić. Rozwiąż ten problem niezwłocznie: dopóki ostrzeżenie jest widoczne, odnowienia subskrypcji Twoich klientów są nadal naliczane w Stripe, ale ich środki nie są uzupełniane.

#### Krok 3 — Skonfiguruj poziomy cenowe

1. Zdefiniuj pakiety kredytów, które mogą kupować Twoi klienci (do 20 poziomów — np. *Starter — 1000 kredytów / 29 USD*, *Pro — 5000 kredytów / 99 USD*) oraz opcjonalnie funkcje, które odblokowuje każdy poziom.
   - **Potrzebujesz tego samego planu w dwóch cyklach rozliczeniowych — powiedzmy miesięcznym i rocznym?** Skonfiguruj go raz, a następnie kliknij ikonę **Duplikuj** (obok ikony kosza na poziomie) zamiast tworzyć go od nowa. Kopia przenosi wszystkie ustawienia oryginału — kredyty, cenę, funkcje, limity, okres próbny — z dopiskiem *(kopia)* przy etykiecie i nie jest jeszcze opublikowana: zmień jej **Rozliczenia** na Roczne, dostosuj cenę i etykietę, a następnie zapisz, a otrzyma własny produkt i cenę w Stripe. Kopia jest celowo dodawana na **końcu** Twojej listy Planów: Twoje linki do płatności i kod osadzony wskazują plany według ich pozycji na liście (zobacz [Krok 4 — Udostępnij swoje linki do płatności](#step-4--share-your-payment-links)), więc nic, co już umieściłeś na swojej stronie, nie zostanie przesunięte.
2. Wybierz sposób rozliczania planu za pomocą selektora **Rozliczenia**: **Miesięcznie**, **Rocznie** lub **Co N tygodni**. W trybie miesięcznym nic się nie zmienia — wprowadzona cena jest pobierana co miesiąc. W trybie **Rocznym** wprowadzona cena to cena za **cały rok**, podczas gdy pole **Kredyty miesięcznie** nadal oznacza dokładnie to samo — kredyty, które klient otrzymuje **co miesiąc**. Zatem *1000 kredytów / 290 USD / Rocznie* oznacza, że klient płaci Ci 290 USD raz w roku i otrzymuje 1000 kredytów co miesiąc. Ich przydział jest przyznawany miesiąc po miesiącu — w pierwszym miesiącu zakupu, a następnie automatycznie w każdym kolejnym miesiącu, z resetowaniem licznika przy każdym rocznym odnowieniu — zamiast otrzymywania kredytów za dwanaście miesięcy pierwszego dnia. Ma to znaczenie dla Twojej puli: sprzedaż roczna nie zabiera z niej od razu kredytów za cały rok. Jeśli klient anuluje subskrypcję, miesięczne przydziały ustają. **Co N tygodni** jest przeznaczone dla każdego innego cyklu: wybierz tę opcję i wprowadź **Liczbę tygodni między płatnościami** (od 1 do 52) — powiedzmy *co 4 tygodnie*, co daje 13 płatności w roku zamiast 12. W planie typu tygodniowego cena i kredyty dotyczą **okresu rozliczeniowego**: plan *1000 kredytów / 29 USD / co 4 tygodnie* pobiera 29 USD co cztery tygodnie i przyznaje 1000 kredytów co cztery tygodnie. Zmiana cyklu rozliczeniowego zapisanego planu tworzy nową cenę w Twoim Stripe, więc obecni subskrybenci pozostają przy tym, na co się zapisali.
3. Jeśli chcesz, dodaj do planu **bezpłatny okres próbny**. **Bezpłatny okres próbny (dni)** przyjmuje wartość od 1 do 90 — pozostaw **0** dla braku okresu próbnego — a **Kredyty próbne** ustawia, z iloma kredytami klient zaczyna (domyślnie jest to miesięczna liczba kredytów planu, możesz ją obniżyć — do minimum 1, ponieważ konto próbne bez żadnych kredytów nie mogłoby zakończyć własnej konfiguracji). Z ustawionym okresem próbnym nowy klient **nie jest obciążany przy rejestracji**: otrzymuje kredyty próbne pierwszego dnia i może od razu korzystać z planu. Gdy okres próbny się kończy, Stripe automatycznie pobiera cenę planu, a klient od tego momentu przechodzi na pełny miesięczny przydział. Kilka rzeczy do zapamiętania:
   - **Kredyty próbne pochodzą z puli Twojej agencji**, dokładnie tak jak każde inne kredyty w planie. Hojny okres próbny w planie, który szeroko promujesz, jest realnym kosztem, więc ustaw tę liczbę świadomie, zamiast pozostawiać ją na poziomie pełnego miesięcznego przydziału.
   - **Okres próbny jest dla nowych rejestracji.** Rejestracja przez Twój link do płatności lub osadzoną kasę otrzymuje okres próbny dokładnie tak, jak skonfigurowano w planie. Subkonto, które już istnieje — stworzone przez Ciebie, wcześniej subskrybowane lub już korzystające z okresu próbnego — kupujące z własnej strony Rozliczeń, jest obciążane od razu, bez drugiego okresu próbnego. Klient, który anuluje subskrypcję w trakcie okresu próbnego, nigdy nie jest obciążany i zachowuje pozostałe kredyty próbne.
   - **Karta czy brak karty — Twoja decyzja.** Domyślnie okres próbny nadal prosi klienta o kartę przy rejestracji, a Stripe obciąża ją po zakończeniu okresu próbnego. Wyłącz **Wymagaj karty, aby rozpocząć okres próbny**, a kasa całkowicie pominie kartę: klient zaczyna tylko z adresem e-mail. Jeśli nie doda karty do czasu zakończenia okresu próbnego, plan po prostu wygasa — jego subkonto jest oznaczane jako anulowane, nie są przyznawane kolejne kredyty, a klient zachowuje to, co zostało z kredytów próbnych. Okres próbny bez karty konwertuje mniej automatycznie niż ten z kartą w pliku, więc warto przypomnieć klientowi o dodaniu karty przed końcem.
   - **Twarde wygaśnięcie po okresie próbnym — odbierz niewykorzystane kredyty.** Obok przełącznika karty znajduje się **Twarde wygaśnięcie po okresie próbnym**: *gdy okres próbny kończy się bez aktualizacji, niewykorzystane kredyty próbne wracają do Twojej puli, a konto klienta jest blokowane do czasu subskrypcji.* Pozostaw to wyłączone (domyślnie) i nic nie zmienia się w stosunku do powyższego akapitu — plan jest anulowany, nie są przyznawane kolejne kredyty, a klient zachowuje to, co zostało z kredytów próbnych, więc jego AI działa dalej, dopóki się nie wyczerpią. Włącz to, a w momencie zakończenia okresu próbnego bez aktualizacji, niewykorzystane kredyty próbne wracają **do puli Twojej agencji**, a konto klienta zostaje zablokowane: wysyłanie i odpowiedzi AI zostają wstrzymane, a klient widzi komunikat *„Twój bezpłatny okres próbny dobiegł końca. Skontaktuj się ze swoim dostawcą, aby kontynuować.”* Wraca tylko to, czego nie wydali — okres próbny, z którego faktycznie skorzystali, kosztuje Cię tyle, ile zużyli. Blokada znika automatycznie, gdy tylko kupią jakikolwiek plan, a Ty możesz ją zdjąć lub zmienić samodzielnie z poziomu okna modalnego **Edytuj** subkonta, używając tych samych [kontrolek blokowania](sub-accounts.md#blocking-pausing-a-sub-account), co w przypadku klienta, który zalega z płatnościami. (Blokada, którą już nałożyłeś ręcznie, nigdy nie jest przez to ruszana — Twój powód jest ważniejszy niż nasz.) Twarde wygaśnięcie działa zarówno w okresach próbnych z wymaganą kartą, jak i bez niej; w przypadku okresu próbnego bez karty kasa informuje kupującego z góry, że jego plan **oraz** wszelkie pozostałe kredyty próbne wygasną automatycznie po okresie próbnym, chyba że doda metodę płatności.
4. Grupa **Kanały** zawiera **Limit kanałów** planu — liczbę, nie przełącznik, działającą dokładnie tak jak miejsca w zespole i limit agentów AI. Wybierz **Nie ustawiono** (domyślnie — plan nie zarządza tą liczbą, więc to, co konto już posiada, pozostaje bez zmian), **Bez limitu** lub **Niestandardowy** z dokładną liczbą kanałów przesyłania wiadomości, które klienci w tym planie mogą mieć podłączone jednocześnie — w tym **0**, dla planów, w których sam podłączasz i zarządzasz kanałami. Limit jest stosowany, gdy klient subskrybuje, i odświeżany przy każdym odnowieniu, a limit ustawiony ręcznie na konkretnym subkoncie (w jego oknie modalnym Edytuj) nigdy nie jest nadpisywany przez odnowienie. Kontroluje on *liczbę* kanałów, a nie *które* — to jest w następnej grupie. Liczba dotyczy **połączenia**, a nie typu kanału: każdy numer WhatsApp zajmuje własne miejsce (zarówno WhatsApp Web, jak i Business API), podczas gdy Instagram i Messenger przychodzą przez to samo połączenie strony Meta i razem zajmują jedno miejsce. Klient, który osiągnął limit, widzi jasny komunikat, gdy próbuje podłączyć kolejny kanał; ponowne łączenie już istniejącego nigdy nie jest blokowane.
5. Wewnątrz listy funkcji każdego poziomu znajdziesz również grupę **Typy kanałów** wymieniającą typy kanałów, które można udostępnić klientowi — Widżet czatu, WhatsApp Business API, WhatsApp Web, Instagram, Facebook Messenger, Telegram, LINE, Viber, E-mail, SMS i iMessage. Typy kanałów są domyślnie włączone, chyba że niektóre wyłączysz, dzięki czemu możesz zarezerwować określone kanały dla wyższych poziomów — powiedzmy, plan startowy tylko z widżetem i WhatsApp Business API od poziomu Pro wzwyż. Klienci na poziomie, który wyklucza kanał, widzą go jako zablokowany na swojej stronie Kanałów z informacją o konieczności aktualizacji.
6. Lista funkcji zawiera również grupę **Zespół**, więc każdy plan może zdefiniować własny przydział miejsc w zespole. Jeden selektor, **Miejsca w zespole**, decyduje zarówno o tym, czy klienci w planie w ogóle otrzymują członków zespołu, jak i o ich liczbie: wybierz **Nie uwzględniono** (domyślnie — klienci w tym planie nie mogą zapraszać członków zespołu), jeden z gotowych zestawów (3 / 5 / 10 / Bez limitu) lub **Niestandardowy** z dowolną dokładną liczbą — Starter z 3 miejscami, Professional z 10, Enterprise bez limitu lub cokolwiek, co pasuje do Twoich cen. Przydział jest stosowany automatycznie, gdy klient subskrybuje, i odświeżany przy każdym odnowieniu, więc nie ma nic do ustawiania ręcznie dla każdego klienta. Dwie rzeczy do zapamiętania: **Nie ustawiono** oznacza, że członkowie zespołu są uwzględnieni, ale plan nie zarządza ich liczbą — jakikolwiek limit miejsc konto już posiada, pozostaje nienaruszony — a limit miejsc ustawiony ręcznie na konkretnym subkoncie (w jego oknie modalnym Edytuj lub przez API) nigdy nie jest nadpisywany przez odnowienie, więc jednorazowe wyjątki przetrwają cykle rozliczeniowe. Istnieje również grupa **Produktywność** (Zadania, Podsumowania dzienne, Biblioteka mediów AI), jeśli chcesz zarezerwować je dla wyższych planów.
7. Grupa **Kontakty i Agenci AI** zawiera **Limit agentów AI** planu — liczbę, nie przełącznik, działającą dokładnie tak jak miejsca w zespole. Wybierz **Nie ustawiono** (domyślnie — plan nie zarządza tą liczbą, więc to, co konto już posiada, pozostaje bez zmian), **Bez limitu** lub **Niestandardowy** z dokładną liczbą agentów AI, których klienci w tym planie mogą mieć — w tym **0**, dla planów, w których sam budujesz i zarządzasz agentami, a klienci nie powinni tworzyć własnych. Limit jest stosowany, gdy klient subskrybuje, i odświeżany przy każdym odnowieniu, a limit ustawiony ręcznie na konkretnym subkoncie (w jego oknie modalnym Edytuj) nigdy nie jest nadpisywany przez odnowienie. Klient, który osiągnął limit, widzi jasny komunikat, gdy próbuje utworzyć lub zduplikować agenta; kopiowanie agenta do subkonta z Twojej strony agencji nigdy nie jest przez to blokowane.
8. Grupa **Niewykorzystane kredyty** decyduje o tym, co dzieje się z pozostałymi kredytami klienta po odnowieniu planu. **Zachowaj maksymalnie** to liczba miesięcy przydziału, którą klient w tym planie może przenieść: przy każdym odnowieniu jego niewykorzystane saldo jest przycinane do maksymalnie tej wielokrotności miesięcznego przydziału, a następnie nowe kredyty trafiają na wierzch — `1` zachowuje równowartość jednego miesiąca, `0.5` połowę miesiąca, `0` nie przenosi niczego. **Wygasaj niewykorzystane kredyty po** to liczba dni: kredyty, które leżały niewykorzystane tak długo, są usuwane przy pierwszym odnowieniu po osiągnięciu tego wieku, a ponieważ wydatki zawsze są odejmowane od najstarszych kredytów, klient, który co miesiąc wykorzystuje swój przydział, nigdy nic nie traci. Pozostaw oba pola puste — domyślnie, i tak jak w każdym planie, który już sprzedajesz — a nic nie będzie ograniczone ani wygaszone. Warto je ustawić w tanim planie lub planie z ceną promocyjną, gdzie klient, który prawie nie korzysta z produktu, buduje saldo, za które odpowiada Twoja pula. Wartość ustawiona na konkretnym subkoncie przeważa nad wartością planu, więc nadal możesz zrobić wyjątek dla jednego klienta. Zobacz [Ograniczanie tego, co przechodzi na kolejny okres](sub-accounts.md#capping-what-rolls-over).
9. Ustaw **cenę za kredyt** — to właśnie płacą klienci za doraźne doładowania.
10. Kliknij **Zapisz i kontynuuj**.

> **Kontakty to funkcja typu tak/nie, a nie liczba.** Ta sama grupa **Kontakty i agenci AI** zawiera **Nieograniczoną liczbę kontaktów** jako prosty przełącznik włączania/wyłączania i celowo nie ma pola do wpisania liczby kontaktów. Wyłączenie tej opcji nie pozwala na ustawienie limitu kontaktów — więc jeśli nie masz konkretnego powodu, pozostaw ją włączoną. Trzy limity, które można wyrazić jako konkretną liczbę, to **Limit kanałów**, **Limit agentów AI** oraz **Miejsca w zespole**, z których każdy ma opcje: Nie ustawiono / Nieograniczone / Niestandardowe.

> **Nie ma limitu kampanii ani transmisji w ramach planu.** Jeśli chcesz ograniczyć wielkość planu startowego, należy ograniczyć liczbę agentów — użyj powyższego **Limitu agentów AI**.

> **Poziomy to subskrypcje, a nie jednorazowe zakupy.** Każdy poziom cenowy to subskrypcja cykliczna — pobierana co miesiąc, raz w roku lub co N tygodni, w zależności od selektora **Rozliczenia** — i trwa, dopóki klient jej nie anuluje. Plany miesięczne i roczne przyznają limit kredytów **co miesiąc**; plan typu tygodniowego przyznaje go **w każdym okresie rozliczeniowym**. W przypadku jednorazowych doładowań użyj opcji niestandardowej kwoty za kredyt. Ponieważ poziomy są aktywnymi subskrypcjami, poziomu, który nadal ma aktywnych subskrybentów, nie można usunąć — najpierw anuluj lub przenieś tych klientów.

> ⚠️ **Lista funkcji poziomu jest nadrzędna przy każdym odnowieniu.** Gdy klient subskrybuje poziom i za każdym razem, gdy subskrypcja się odnawia, jego funkcje są resetowane dokładnie do tego, co zawiera dany poziom. Jeśli więc włączysz dodatkową funkcję dla jednego klienta w sekcji **Edit Sub Account**, dodaj ją również do jego poziomu — w przeciwnym razie zostanie ona wyłączona przy następnym odnowieniu. (Niestandardowe jednorazowe zakupy kredytów nie wpływają na funkcje).

#### Sprzedaż planu w określonej domenie white label

Jeśli korzystasz z więcej niż jednej [domeny white label](white-labeling.md#up-to-three-white-labels), każdy poziom otrzyma selektor **Sprzedawane w** (pojawia się on dopiero po dodaniu dwóch lub więcej domen). Pozostaw ustawienie **Główna domena**, a nic się nie zmieni. Wybierz jedną ze swoich pozostałych domen — powiedzmy domenę Lead Finder — a:

- **Strona płatności** tego poziomu będzie zawierać branding danej domeny, a po dokonaniu płatności kupujący zostanie przekierowany na tę domenę, a nie na Twoją główną.
- Podkonto kupującego zostanie **automatycznie przypisane do tej domeny**, dzięki czemu jego e-maile i branding logowania będą z nią zgodne od pierwszego dnia (to samo przypisanie, które możesz ustawić ręcznie w selektorze **White label** na podkoncie).
- Klienci zalogowani w tej domenie zobaczą na swojej stronie Kredytów kartę **Plany**, zawierającą tylko plany sprzedawane w tej domenie, wraz z przyciskiem aktualizacji — dzięki temu klient w Twojej domenie Lead Finder może dokonać subskrypcji, nigdy nie widząc Twojej głównej marki.

Plany sprzedawane w Twojej głównej domenie nigdy nie pojawiają się w innych domenach i odwrotnie.

Jeśli później [ustawisz inną domenę jako główną](white-labeling.md#changing-which-domain-is-main), każdy plan, który znajdował się w **Głównej domenie**, zostanie przypisany do domeny, na której faktycznie był sprzedawany, więc dla klientów dokonujących tam zakupów nic się nie zmieni.

Przejdziesz do ekranu **Wszystko gotowe!** z listą kontrolną (połączone konto Stripe, skonfigurowane poziomy cenowe, zarejestrowany webhook) oraz wskazówką dotyczącą testowania za pomocą karty testowej Stripe `4242 4242 4242 4242`. Stamtąd przycisk **Wyświetl pulpit** przeniesie Cię do pulpitu nawigacyjnego trybu SaaS.

#### Klienci zmieniający plany

Jeśli pozwalasz klientom na samodzielne zarządzanie subskrypcją z poziomu portalu klienta Stripe, mogą oni sami przełączać się między Twoimi planami. Oto jak wpływa to na ich środki.

- **Aktualizacja planu w trakcie cyklu powoduje natychmiastowe doładowanie.** Klient korzystający z planu Starter (100 środków miesięcznie), który 10. dnia przejdzie na plan Professional (1000 miesięcznie), otrzyma różnicę — 900 środków — od razu, a pełne 1000 środków przy każdym kolejnym odnowieniu. Stripe pobierze opłatę za różnicę w cenie za pozostałą część okresu; środki, jak zawsze, pochodzą z Twojej puli.
- **Obniżenie planu nigdy nie powoduje odebrania środków.** Wszystko, co klient już otrzymał, pozostaje u niego i nic nie wraca do Twojej puli. Mniejszy limit zacznie obowiązywać od kolejnego odnowienia.
- **Wielokrotne przełączanie planów w górę i w dół nie pozwala na dwukrotne uzyskanie limitu.** Platforma pamięta najwyższy limit, jaki został już przyznany w bieżącym okresie rozliczeniowym klienta, więc zmiana Starter → Professional → Starter → Professional w ciągu jednego miesiąca spowoduje przyznanie różnicy 900 środków tylko raz, a nie dwa razy.
- **Funkcje planu, miejsca i limity zmieniają się zgodnie z nowym planem natychmiast**, w obu kierunkach.

Dwie rzeczy, o które należy zadbać w ustawieniach portalu klienta Stripe:

- **Utrzymuj opcję „customers can change quantity” (klienci mogą zmieniać ilość) wyłączoną.** Ilość mnoży kwotę, którą jest obciążany klient, ale nigdy nie zwiększa liczby otrzymywanych środków — klient, który ustawi ilość na 3, zapłaci trzykrotność ceny, ale nadal otrzyma limit tylko jednego planu.
- **Planowanie obniżenia planu na koniec okresu rozliczeniowego jest rozsądnym domyślnym ustawieniem pod kątem finansowym.** Obniżenie planu, które wchodzi w życie natychmiast, przenosi klienta na tańszy plan w okresie, za który już zapłacił wyższą cenę, a żadne z już przyznanych środków nie wracają do Ciebie.

#### Krok 4 — Udostępnij swoje linki do płatności

Karta **Płatności** na pulpicie nawigacyjnym zawiera listę Twoich linków do płatności. Linki te wykorzystują domenę, w której jesteś zalogowany: otwórz pulpit nawigacyjny z `app.youraiconnector.com`, a będą one zaczynać się od `app.youraiconnector.com`; zaloguj się z własnej domeny typu white-label, a będą one zawierać Twoją domenę — przypomina o tym notatka pod linkami. (Możesz również po prostu ręcznie zamienić część domenową skopiowanego adresu URL). Sama strona płatności jest zawsze oznaczona marką white-label z Twoim logo i nazwą firmy.

Na tej samej karcie znajduje się również opcja **Kopiuj kod osadzenia** (Copy Embed Code), jeśli chcesz umieścić karty z cennikiem bezpośrednio na własnej stronie internetowej.

Prowadzisz reklamy Meta? Kod osadzenia przekazuje również identyfikator kliknięcia reklamy Meta (`fbclid`) ze strony do przycisków płatności, a zwykły link do płatności również go akceptuje (`...&fbclid=...`). W połączeniu z **identyfikatorem Meta Pixel** w Twojej domenie white-label, pozwala to firmie Meta przypisać rejestrację do reklamy. Zobacz [Śledzenie konwersji reklam Meta](white-labeling.md#tracking-meta-ads-conversions).

Jeśli masz również podłączony PayPal, każdy plan ma link PayPal obok linku Stripe, a kod osadzony umieszcza jeden przycisk dla każdej podłączonej metody płatności na każdej karcie cenowej.

Każdy link do płatności wskazuje na plan zgodnie z jego pozycją na liście planów (pierwszy plan to `tier=0`, drugi `tier=1` itd.). Jeśli usuniesz plan, kolejne plany przesuną się o jedną pozycję w górę — dlatego po usunięciu planu skopiuj ponownie linki i kod do osadzenia z zakładki Płatności, w przeciwnym razie przycisk na Twojej stronie może wskazywać na niewłaściwy plan lub taki, który już nie istnieje. Plany są wyświetlane klientom w kolejności, w jakiej znajdują się na Twojej liście planów.

**Co kupujący mogą wpisać przy kasie.** Oprócz karty, strona płatności Stripe prosi kupującego o adres e-mail, numer telefonu i adres rozliczeniowy, a także oferuje opcjonalne pole **Nazwa firmy** oraz pole wyboru **„Dokonuję zakupu jako firma”**, gdzie mogą dodać swój numer NIP / identyfikator podatkowy. Nazwa firmy i identyfikator podatkowy są zapisywane przy kliencie na Twoim koncie Stripe, dzięki czemu możesz je pobrać do własnych faktur.

Numer telefonu jest wymagany domyślnie, ale można tę opcję wyłączyć. Na karcie **Płatności** (**Payments**), w sekcji **Pola kasy** (**Checkout Fields**), wyłącz opcję **Pytaj o numer telefonu przy kasie** (**Ask for a phone number at checkout**), a kupujący będą podawać tylko swój adres e-mail, kartę i adres rozliczeniowy. Zmiana ta od razu dotyczy Twoich linków do płatności oraz osadzonej kasy — nie trzeba niczego ponownie kopiować — a konta, które zarejestrują się przy wyłączonej tej opcji, po prostu nie będą miały zapisanego numeru telefonu, co nie zmienia niczego innego w ich działaniu.

> ⚠️ **Nie usuwaj produktów, które platforma tworzy na Twoim koncie Stripe.** Podczas konfigurowania poziomów cenowych platforma automatycznie tworzy pasujące produkty i ceny w Stripe. Usunięcie ich w Stripe spowoduje przerwanie działania Twoich linków do płatności. Zarządzaj cennikiem z poziomu pulpitu nawigacyjnego SaaS Mode, a nie bezpośrednio w Stripe.

---

### Opcja 2: Niestandardowy dostawca płatności

Wybierz tę ścieżkę, jeśli Stripe nie jest dla Ciebie opcją. Platforma udostępnia jedno pole na adres URL webhooka — za resztę integracji odpowiadasz samodzielnie. Musisz samodzielnie skonfigurować **dwie** rzeczy:

1. **Początkowa rejestracja** — gdy nowy klient opłaci link do płatności, wywołujesz API platformy, aby utworzyć subkonto.
2. **Automatyczne doładowania** — gdy środki na subkoncie się kończą, platforma wywołuje Twój webhook, aby umożliwić Ci obciążenie karty i przyznanie dodatkowych środków.

#### Co musisz zbudować samodzielnie

- **Produkty / linki do płatności** u własnego dostawcy płatności (Stripe poza Stripe Connect, Mollie, Paddle, GoCardless, fakturowanie ręczne itp.).
- **Przepływ pracy (workflow) uruchamiany po udanej płatności**, który wywołuje API platformy w celu:
  - Utworzenia subkonta ([POST `/v1/sub-accounts`](https://help.dmchamp.com/api/reference)).
  - Opcjonalnego wysłania klientowi e-maila z tymczasowym hasłem.
- **Przepływ pracy obsługujący webhooki automatycznego doładowania** z platformy: obciążenie zapisanej karty, a następnie wywołanie API platformy w celu dodania środków.

Nie musisz programować tego od zera — Zapier, Make, n8n lub dowolne narzędzie low-code może wywoływać API REST platformy oraz API Twojego dostawcy płatności w odpowiedniej kolejności.

#### Krok 1 — Znajdź dokumentację API

Pełna dokumentacja API znajduje się pod adresem **help.dmchamp.com → API Reference → Sub Accounts**.

> Otwórz `help.dmchamp.com` bezpośrednio, a nie adres URL swojej dokumentacji white-label. Dokumentacja API jest wyłączona z dokumentacji white-label, aby Twoi klienci jej nie widzieli.

Sekcja Sub Accounts zawiera punkt końcowy (endpoint) tworzenia subkonta, strukturę odpowiedzi (w tym tymczasowe hasło, którego możesz użyć w e-mailu powitalnym) oraz dostępne flagi funkcji, które możesz przekazać podczas tworzenia konta.

#### Krok 2 — Skonfiguruj webhook automatycznego doładowania

1. W kreatorze trybu SaaS wybierz **Użyj własnego dostawcy płatności**.
2. Wprowadź swój **adres URL webhooka** — punkt końcowy na Twoim serwerze (lub w narzędziach takich jak Zapier / Make / n8n), który będzie obsługiwał zdarzenia niskiego stanu środków.
3. Kliknij **Wyślij zdarzenie testowe**, aby sprawdzić, czy punkt końcowy jest osiągalny. Panel wyników pokaże status HTTP zwrócony przez Twój serwer, opóźnienie (latency), treść odpowiedzi oraz dokładny ładunek JSON, który został wysłany — dzięki temu możesz budować i debugować swój moduł obsługi od początku do końca, bez czekania, aż rzeczywistemu klientowi skończą się środki. Zdarzenia testowe zawierają `test: true` w ładunku, dzięki czemu Twój serwer może przerwać działanie przed obciążeniem kogokolwiek.
4. Kliknij **Zapisz adres URL webhooka**.

Po skonfigurowaniu, za każdym razem, gdy saldo kredytów subkonta spadnie poniżej progu automatycznego doładowania:

- Platforma wysyła powiadomienie na Twój adres URL webhooka z danymi subkonta i informacją, ilu kredytów potrzebuje.
- Twój serwer przetwarza płatność w dowolny sposób (obciążenie karty klienta, wystawienie faktury, odliczenie od salda przedpłaconego itp.).
- Po potwierdzeniu płatności Twój serwer wywołuje API, aby przyznać kredyty subkontu.

Szczegóły techniczne dotyczące ładunku webhooka i wywołania API znajdują się w sekcji [Automatyczne doładowanie subkonta (własny dostawca płatności)](sub-account-auto-recharge.md).

---

### Opcja 3: Połącz PayPal

Wybierz tę ścieżkę, jeśli Stripe nie jest dostępny w Twoim kraju lub jeśli Twoi klienci wolą płacić przez PayPal. Jest on wbudowany dokładnie tak jak Stripe — platforma obsługuje kasę, tworzy subkonto i dostarcza kredyty — a pieniądze trafiają bezpośrednio na **Twoje konto PayPal Business**. Potrzebujesz konta PayPal Business z utworzoną w nim aplikacją REST; nie ma nic do budowania.

Podłączenie PayPal nie zastępuje Stripe. Jeśli masz oba, Twoi klienci otrzymają oba przyciski, na swojej stronie Rozliczeń i na Twoich kartach cenowych.

#### Krok 1 — Połącz swoją aplikację PayPal

1. W kreatorze Trybu SaaS wybierz **Połącz zamiast tego PayPal**.
2. W nowej karcie otwórz pulpit nawigacyjny programisty PayPal i utwórz **aplikację REST** na swoim koncie Business.
3. Skopiuj **Client ID** i **Secret** aplikacji i wklej je do kreatora.
4. Wybierz środowisko: **Live** dla prawdziwych płatności lub **Sandbox**, jeśli chcesz najpierw przetestować cały proces z testowymi kupującymi PayPal. Client ID i Secret muszą pochodzić z tego samego środowiska, które wybierzesz, a płatności w Sandbox nie są prawdziwymi pieniędzmi — przełącz połączenie na Live, zanim udostępnisz swoje linki.
5. Kliknij **Zapisz i kontynuuj**. Platforma od razu sprawdza poświadczenia w PayPal; jeśli PayPal je odrzuci, nic nie zostanie zapisane i możesz wkleić je ponownie.

#### Krok 2 — Zarejestruj webhook PayPal

Webhook to sposób, w jaki Twoje konto PayPal informuje platformę, że płatność została zrealizowana, subskrypcja odnowiona lub płatność zwrócona. Bez niego Twoi klienci płacą, ale ich kredyty nie są dostarczane.

1. Kreator wyświetli **adres URL webhooka**. Skopiuj go.
2. W tej samej aplikacji PayPal REST dodaj webhook z tym adresem URL i zasubskrybuj go do następujących zdarzeń:
   - `CHECKOUT.ORDER.APPROVED`
   - `PAYMENT.CAPTURE.COMPLETED`, `PAYMENT.CAPTURE.DENIED`, `PAYMENT.CAPTURE.REFUNDED`, `PAYMENT.CAPTURE.REVERSED`
   - `PAYMENT.SALE.COMPLETED`, `PAYMENT.SALE.REFUNDED`
   - `BILLING.SUBSCRIPTION.ACTIVATED`, `BILLING.SUBSCRIPTION.CANCELLED`, `BILLING.SUBSCRIPTION.SUSPENDED`, `BILLING.SUBSCRIPTION.EXPIRED`, `BILLING.SUBSCRIPTION.PAYMENT.FAILED`
   - `VAULT.PAYMENT-TOKEN.DELETED`
3. PayPal nada nowemu webhookowi **identyfikator (ID)**. Skopiuj go, wklej do kreatora i kliknij **Zapisz**.

Twoje plany pozostają takie same niezależnie od wybranej metody — skonfiguruj je raz, zgodnie z [Krokiem 3 — Konfiguracja poziomów cenowych](#step-3--set-up-pricing-tiers), a będą sprzedawane za pośrednictwem wszystkich podłączonych metod płatności.

#### Co widzą Twoi klienci

- **Doładowania** — przycisk **Zapłać przez PayPal** na stronie rozliczeń, obok opcji karty, w tej samej cenie za kredyt, którą ustawiłeś.
- **Plany** — każdy poziom cenowy otrzymuje link do płatności PayPal obok linku Stripe na karcie **Płatności**, a opcja **Kopiuj kod osadzenia** generuje jeden przycisk dla każdej podłączonej metody płatności, dzięki czemu karta cenowa na Twojej stronie może oferować płatność kartą i przez PayPal obok siebie.
- **Automatyczne doładowania** — zobacz poniżej.

#### Automatyczne doładowania przez PayPal

Jedno ustawienie, **Opłata za automatyczne doładowania**, decyduje o tym, która z podłączonych metod obsługuje automatyczne doładowania: Stripe, PayPal czy Twój własny webhook. Tylko jedna z nich może to robić w danym momencie, nawet jeśli masz podłączone zarówno Stripe, jak i PayPal — wszystkie inne funkcje (ręczne doładowania, zakup planu) nadal oferują obie metody.

Ustaw tę opcję na **PayPal**, a każdy klient jednorazowo połączy swoje konto PayPal z poziomu karty **Automatyczne doładowanie** na swojej stronie rozliczeń. Od tego momentu, gdy saldo klienta spadnie poniżej ustalonego progu, platforma obciąży zapisane konto PayPal kwotą doładowania zgodnie z Twoją ceną za kredyt i automatycznie dostarczy kredyty, dokładnie tak samo, jak w przypadku płatności kartą Stripe. Klient, który jeszcze nie połączył konta PayPal, po prostu nie zostanie obciążony — jego saldo będzie się wyczerpywać, dopóki nie połączy konta lub nie kupi kredytów ręcznie. Jeśli PayPal odrzuci płatność, kredyty nie zostaną dostarczone, a platforma ponowi próbę przy kolejnym spadku salda poniżej progu. Klienci mogą w każdej chwili usunąć swoje konto PayPal z tej samej karty.

Jeśli później odłączysz PayPal w trybie SaaS, a był on używany do obsługi automatycznych doładowań, system powróci do Stripe (jeśli jest podłączony) lub do Twojego własnego webhooka, jeśli został skonfigurowany.

#### Warto wiedzieć o PayPal

- **Plan zawsze wymaga od klienta posiadania konta PayPal, nawet w przypadku bezpłatnego okresu próbnego.** Okresy próbne działają normalnie — nic nie jest pobierane do momentu zakończenia okresu próbnego — ale PayPal wymaga, aby kupujący zatwierdził płatność kontem z góry, więc przełącznik **Wymagaj karty, aby rozpocząć okres próbny** nie ma wpływu na płatności przez PayPal. Jeśli polegasz na okresach próbnych bez konieczności posiadania konta, sprzedawaj ten plan przez Stripe.
- **Ceny są pobierane dokładnie tak, jak je ustawiłeś.** PayPal nie dodaje osobnej linii podatkowej przy kasie, więc uwzględnij wszelkie należne podatki w cenie swoich planów oraz w cenie za kredyt.
- **Zmiana planu oznacza anulowanie i ponowną subskrypcję.** Klient korzystający z subskrypcji PayPal nie może zmienić poziomu w ramach tej samej subskrypcji: musi anulować obecną i kupić nowy plan za pomocą dedykowanego linku. (Klienci płacący kartą nadal mogą zmieniać plany w portalu klienta Stripe — zobacz [Zmiana planów przez klientów](#clients-switching-plans)).
- **Zwrot pieniędzy nie powoduje odebrania kredytów.** Jeśli zwrócisz płatność PayPal ze swojego konta PayPal, zwrot zostanie odnotowany w systemie, ale dostarczone już kredyty pozostaną na saldzie klienta — tak samo jak w przypadku Stripe.

---

### Konfiguracja cen

- **Poziomy cenowe** — zdefiniuj pakiety kredytów, które mogą kupować Twoi klienci (do 10, np. "Pakiet startowy: 100 kredytów za 15 USD"), konfigurowane na karcie **Plany** w trybie SaaS. Każdy plan jest rozliczany **miesięcznie, rocznie lub co N tygodni** (cena roczna nadal przyznaje kredyty co miesiąc; plan tygodniowy przyznaje je w każdym okresie rozliczeniowym) i może zawierać **bezpłatny okres próbny** trwający 1–90 dni z własną liczbą kredytów próbnych, z wymogiem podania karty lub bez, oraz z opcją **twardego wygaśnięcia** (niewykorzystane kredyty próbne wracają do Twojej puli, a konto zostaje zablokowane, jeśli okres próbny zakończy się bez przejścia na płatny plan). Zobacz [Krok 3 — Konfiguracja poziomów cenowych](#step-3--set-up-pricing-tiers). Każdy plan otrzymuje własny link do płatności na karcie **Płatności** — Stripe, PayPal lub oba, w zależności od tego, co masz podłączone. Każdy plan może również ograniczać liczbę kredytów, które klient przenosi między okresami rozliczeniowymi: grupa **Niewykorzystane kredyty** ustawia **Zachowaj maksymalnie** (miesiące przyznanych kredytów) oraz **Wygasaj niewykorzystane kredyty po** (dniach), co dotyczy każdego klienta w danym planie — zobacz [Ograniczanie przenoszenia kredytów](sub-accounts.md#capping-what-rolls-over). Możesz również zarządzać tym wszystkim z poziomu kodu — zobacz [Zarządzaj poziomami cenowymi przez API](api-for-agencies.md#manage-your-pricing-tiers-over-the-api).
- **Cena za kredyt** — ustaw niestandardową cenę za kredyt dla elastycznych doładowań. Niestandardowe (ad-hoc) zakupy kredytów muszą mieścić się w przedziale od 10 do 10 000 kredytów na transakcję. Subskrypcje poziomów obejmują stałe kwoty; kwota niestandardowa obsługuje wszystko pomiędzy. Opcjonalna **notatka** (do 200 znaków) jest wyświetlana klientom bezpośrednio pod ceną na ich stronie rozliczeń — przydatne, gdy wyceniasz w jednej walucie, ale pobierasz opłaty w innej, np. *"0,25 USD za kredyt według naszego kursu referencyjnego"*. Cenę i notatkę można również odczytywać i zmieniać z poziomu kodu — zobacz [Ustaw cenę za kredyt przez API](api-for-agencies.md#set-your-per-credit-price-over-the-api).
- **Minimalna cena za kredyt** — platforma wymusza minimalną cenę za kredyt, aby zapewnić stabilność platformy. Możesz ustawić swoją cenę na poziomie tej wartości minimalnej lub wyższym.

### Pulpit nawigacyjny kredytów subkonta

Szczegóły **zużycia kredytów** każdego subkonta (dostępne w menu **Więcej** w wierszu danego subkonta na stronie Subkonta) pokazują:

- Zakupione kredyty i całkowite wydatki
- Zużyte kredyty i pozostałe saldo
- Trendy zużycia w czasie, z podziałem na przyczyny i główne kampanie

> **Co pokazuje pulpit nawigacyjny.** Gdy subkonto korzysta z klucza API Twojej agencji, pulpit pokazuje zużycie kredytów, ale ukrywa bazowy koszt w dolarach. Sumy zużycia obejmują tylko faktycznie wykorzystane kredyty — bonusy promocyjne, miesięczne odnowienia i korekty planów są wykluczone, aby wskaźnik „zużytych kredytów” odzwierciedlał rzeczywistą aktywność.

---

## Kopiowanie kampanii do subkont

Możesz skopiować sprawdzoną kampanię ze swojego konta agencji (lub dowolnego subkonta) do jednego lub wielu subkont jednocześnie — konfiguracja bota, wiadomość powitalna, baza wiedzy i FAQ, funkcje niestandardowe oraz multimedia zostaną przeniesione, więc nie musisz budować wszystkiego ręcznie. Kopia trafia do wersji roboczych (Draft), a kilka elementów specyficznych dla konta (szablony WhatsApp, kanały i numer telefonu, lista kontaktów) należy skonfigurować ponownie na każdym subkoncie.

Zacznij od strony **Subkonta** — otwórz menu **Więcej** w wybranym wierszu i wybierz **Kopiuj kampanię tutaj**. Aby skopiować agenta AI, użyj opcji **Kopiuj agenta tutaj** w tym samym menu lub ikony **Kopiuj tego agenta do subkonta** w wierszu agenta na stronie **Agenci AI**. Aby przekazać klientowi całą konfigurację za jednym razem, zamiast pojedynczego agenta, użyj **Migawki** — zobacz [Migawki](snapshots.md).

Pełną instrukcję krok po kroku, listę elementów kopiowanych oraz tych, które wymagają ponownej konfiguracji, znajdziesz w sekcji [Kopiowanie kampanii do subkonta](sub-accounts.md#copy-a-campaign-to-a-sub-account).

---

## Tryb logowania (działanie jako subkonto)

Możesz wejść na pulpit nawigacyjny subkonta bezpośrednio ze swojego konta agencji, tak jakbyś był klientem. Jest to ta sama funkcja, którą niektóre platformy nazywają „asystą” lub „podszywaniem się” — tutaj akcja jest oznaczona jako **Zaloguj jako użytkownik**.

1. Na pasku bocznym kliknij **Subkonta**.
2. Znajdź subkonto na liście. W tym wierszu kliknij menu **Więcej** (ikona trzech kropek po prawej stronie).
3. Kliknij **Zaloguj się jako użytkownik**.
4. Pulpit nawigacyjny przeładuje się jako to subkonto — uzyskasz pełny dostęp do jego kampanii, kontaktów, czatów i ustawień.
5. Po zakończeniu kliknij bursztynowy przycisk **Pomoc: <name>** u góry paska bocznego i wybierz **Powrót do mojej agencji**.

Jest to szczególnie przydatne do zapewniania bezpośredniego wsparcia klientom bez konieczności proszenia ich o udostępnienie danych logowania.

---

## Zarządzanie funkcjami subkonta

W zależności od poziomu Twojej agencji możesz kontrolować, do jakich funkcji ma dostęp każde subkonto. Przydzielanie funkcji jest zarządzane dla każdego subkonta z osobna oraz poprzez Twoje plany cenowe.

W oknie **Edycja** subkonta możesz precyzyjnie dostosować jego ustawienia: włączać lub wyłączać poszczególne funkcje, ukrywać określone strony w menu bocznym i ustawieniach, wybierać odbiorców wiadomości e-mail z powiadomieniami (zobacz [Kierowanie powiadomień](sub-accounts.md#notification-routing)), ustawić miesięczny limit wydatków dla własnego klucza API oraz włączać lub wyłączać poziom Max AI.

Edytor funkcji zawiera grupę **Typy kanałów**, która decyduje o tym, które kanały komunikacji klient może podłączyć — Chat Widget, WhatsApp Business API, WhatsApp Web, Instagram, Facebook Messenger, Telegram, LINE, Viber, Email, SMS oraz iMessage. Typy kanałów są domyślnie włączone, chyba że wyłączysz niektóre z nich; kanał, który wyłączyłeś, będzie widoczny jako zablokowany na stronie Kanałów klienta, z informacją, że nie jest on uwzględniony w jego obecnym planie.

> **Jeśli klient korzysta z płatnego poziomu, umieść tę funkcję również na tym poziomie.** Przełączniki ustawione tutaj są zastępowane listą funkcji danego poziomu przy każdym odnowieniu subskrypcji klienta. Używaj modala **Edytuj** do jednorazowych korekt, a poziomu cenowego do wszystkiego, co klient powinien zachować na stałe.

> **Maksymalny poziom AI i Twój własny klucz API.** Jeśli Twoja agencja korzysta z własnego klucza API, włączenie poziomu Max dla klienta zmienia sposób rozliczania użycia AI przez tego klienta z „bezpłatnie w ramach Twojego klucza” na 0,25 kredytu za akcję, pobierane z puli Twojej agencji. To samo dotyczy poziomu **Mini**, który jest dostępny wraz z poziomem Max — również działa on w oparciu o naszą infrastrukturę i kosztuje 0,15 kredytu za akcję, nigdy nie wykorzystując Twojego klucza.

---

## Potrzebujesz pomocy?

If you have questions about agency accounts or sub-account management, reach out via our [email support](mailto:hi@dmchamp.com).
