# Obsługa BLIK Level 0 w SimPay BLIK Level 0 to uproszczona metoda płatności BLIK, w której użytkownik wpisuje kod BLIK bezpośrednio na stronie Partnera, bez potrzeby przekierowania na stronę eblik.pl. Uwaga Twoim obowiązkiem jest spełnienie warunków checklisty BLIK do płatności Level 0, która jest dostępna tutaj. ### Generowanie transakcji 1. Podczas generowania transakcji należy: - ustawić pole `directChannel` na wartość `blik-level0`, - przesłać antifraud.useragent płacącego, - przesłać customer.email płacącego, - przesłać customer.ip płacącego, - przesłać customer.countryCode płacącego (obecnie obsługiwany tylko PL), - ustawić walutę transakcji na PLN (BLIK obecnie wspiera tylko PLN). 1. Następnie należy wysłać request na: `POST https://api.simpay.pl/payment/:serviceId/blik/level0/:transactionId` w body należy przesłać: ```json { "ticket":{ "T6":"KOD_BLIK" } } ``` W przypadku poprawnego kodu BLIK zwrócony zostanie status HTTP 204 Uwaga Zwrócenie kodu 204 nie oznacza, że transakcja jest opłacona. Musisz obsłużyć obydwa eventy IPN podane poniżej. W przypadku błędnego kodu odpowiedź wygląda następująco: HTTP 4xx ```json { "success": false, "message": "Error message", "errorCode": "ERROR_CODE" } ``` Wartości errorCode dostępne są w tabeli pod sekcją IPNv2. ### Obsługa eventu IPNv2 W przypadku transakcji BLIK Level 0, SimPay wysyła 2 wiadomości IPN: - `transaction:status_changed` (ten sam co przy każdej metodzie), - `transaction_blik_level0:code_status_changed`. Ta wiadomość zawiera informację o ważności kodu BLIK (pole data.ticket_status). Przykładowy IPN: ```json { "type": "transaction_blik_level0:code_status_changed", "notification_id": "019736c4-50c3-7108-944c-11a0f9c12b72", "date": "2025-06-03T19:08:44+02:00", "data": { "ticket_status": "VALID", "transaction": { "id": "70bc5ab3-4973-4275-a0eb-08e3f2ab54f2", "payer_transaction_id": "6PB8JKKN", "service_id": "e65c7519", "status": "transaction_paid", "amount": { "final_currency": "PLN", "final_value": "360.00", "original_currency": "PLN", "original_value": "360.00", "commission_system": "5.36", "commission_partner": "354.64", "commission_currency": "PLN" }, "control": "111122223333" } }, "signature": "236197b1a75a8e1c33b0feea94cab753f4b0d7f5ffd044abeea36ea8b89566cc" } ``` W przypadku ticket_status innego niż VALID należy poinformować płacącego co było powodem odrzucenia transakcji. Tutaj kierujemy do checklisty BLIKA (sekcja Authorization errors). Checklista BLIK od "INSUFFICIENT_FUNDS" w dół. ### Lista błędów przy podawaniu kodu BLIK | Kod | Znaczenie | | --- | --- | | `INVALID_BLIK_CODE` | Nieprawidłowy kod BLIK. | | `PAYER_APP_NOT_ACTIVE` | BLIK nie został aktywowany w aplikacji bankowej płacącego. | | `PAYER_APP_NOT_FOUND` | Nie znaleziono BLIK w aplikacji bankowej płacącego. | | `INVALID_BLIK_CODE_FORMAT` | Nieprawidłowy format kodu BLIK. | | `BLIK_CODE_EXPIRED` | Kod BLIK wygasł. | | `BLIK_CODE_LIMIT` | Przekroczono limit dla tego kodu. | | `BLIK_CODE_CANCELLED` | Kod BLIK został anulowany. | | `BLIK_CODE_NOT_SUPPORTED` | Kod BLIK nie jest obsługiwany. | | `BLIK_CODE_USED` | Kod BLIK został już użyty. | | `BLIK_GENERAL_ERROR` | Ogólny błąd BLIK. | | `BLIK_TECHNICAL_BREAK` | Przerwa techniczna w działaniu BLIK. | ### Lista testowych kodów T6 Kody testowe Aby kody testowe T6 zadziałały wymagane jest włączenie trybu testowego w ustawieniach usługi w Panelu Klienta SimPay. | Kod T6 | Znaczenie kodu | | --- | --- | | `999000` | Poprawny kod BLIK | | `100001` | PAYER_APP_NOT_ACTIVE | | `100002` | PAYER_APP_NOT_FOUND | | `100003` | INVALID_BLIK_CODE_FORMAT | | `100004` | BLIK_CODE_EXPIRED | | `100005` | BLIK_CODE_LIMIT | | `100006` | BLIK_CODE_CANCELLED | | `100007` | BLIK_CODE_NOT_SUPPORTED | | `100008` | BLIK_CODE_USED | | `100009` | BLIK_GENERAL_ERROR | | `100010` | BLIK_TECHNICAL_BREAK | | `200001` | INSUFFICIENT_FUNDS | | `200002` | LIMIT_EXCEEDED | | `200003` | TIMEOUT | | `200004` | GENERAL_ERROR | | `200005` | SYSTEM_ERROR | | `200006` | SEC_DECLINED | | `200007` | USER_DECLINED | | `200008` | TAS_DECLINED | | `{każdy inny}` | INVALID_BLIK_CODE | Kody testowe zaczynające się od `1` oznaczają błąd zwrócony przy inicjacji transakcji Level 0. Kody testowe zaczynające się od `2` oznaczają błąd przesłany w IPN w evencie `transaction_blik_level0:code_status_changed`.