# Wprowadzenie do DirectBilling (DCB)

DirectBilling (znany również jako Direct Carrier Billing lub Zamów z Orange/Play/Plus/T-Mobile) to nowoczesna metoda płatności, w której koszt zakupu doliczany jest bezpośrednio do rachunku telefonicznego klienta (lub pobierany z konta pre-paid).

Dzięki temu proces płatności jest niezwykle szybki i wygodny – klient nie musi logować się do banku ani podawać danych karty płatniczej. Wystarczy mu jedynie telefon komórkowy pod ręką. Metoda ta idealnie sprawdza się w przypadku mikropłatności, dostępu do treści cyfrowych, gier czy usług VOD.

## Obsługiwani operatorzy

SimPay obsługuje największych operatorów telekomunikacji w Polsce, co gwarantuje najwyższą dostępność usług i najlepsze stawki prowizyjne. Obsługujemy płatności w sieciach:

* **Orange**
* **Play**
* **Plus**
* **T-Mobile**
* **Netia**


## Cykl życia transakcji (Statusy)

Transakcje DirectBilling charakteryzują się specyficznym cyklem życia. Ponieważ weryfikacja następuje u operatora GSM, status płatności może zmieniać się dynamicznie.

Poniżej znajduje się pełna lista wartości, jakie może przyjąć pole `status` w powiadomieniach IPN oraz odpowiedziach z API:

* **`transaction_db_new`** – Transakcja została poprawnie wygenerowana w systemie SimPay. Klient rozpoczął proces płatności.
* **`transaction_db_confirmed`** – Transakcja została potwierdzona przez operatora GSM (np. klient prawidłowo przepisał kod PIN ze swojego telefonu). System oczekuje na ostateczne potwierdzenie pobrania środków.
* **`transaction_db_payed`** – **Sukces!** Środki zostały pomyślnie pobrane z konta klienta lub doliczone do jego abonamentu.
* **`transaction_db_rejected`** – Transakcja została ostatecznie odrzucona przez operatora. Najczęstsze powody to: brak wystarczających środków na koncie pre-paid, założona blokada na usługi Premium/DCB u operatora, lub przekroczenie miesięcznego limitu na tego typu usługi.
* **`transaction_db_canceled`** – Transakcja została anulowana. Może to nastąpić, gdy klient sam zrezygnuje z płatności (np. kliknie "Anuluj") lub gdy minie maksymalny czas na wpisanie kodu PIN (timeout).
* **`transaction_db_generate_error`** – Wystąpił niespodziewany błąd techniczny podczas próby nawiązania połączenia i wygenerowania żądania bezpośrednio po stronie operatora GSM.


Wskazówka
Pamiętaj, aby wydawać klientowi produkt lub dostęp do usługi cyfrowej **wyłącznie** wtedy, gdy otrzymasz powiadomienie IPN ze statusem **`transaction_db_payed`**. Status `transaction_db_confirmed` oznacza jedynie udaną autoryzację, ale nie gwarantuje jeszcze pobrania środków.

## Co dalej?

Teraz, gdy wiesz już, czym jest DirectBilling i jakie statusy mogą przyjmować transakcje, przejdź do kolejnych sekcji, aby zaimplementować tę metodę w swoim systemie:

👉 **[Generowanie transakcji](/directbilling/transaction)** – dowiedz się, jak wysłać żądanie inicjujące płatność.

👉 **[Powiadomienia IPN](/notifications/directbilling)** – sprawdź, jak zintegrować odbieranie webhooków o zmianie statusu transakcji DirectBilling.