# Kody odpowiedzi HTTP
| Kod HTTP | Opis |
|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| `200` | Zapytanie wykonane poprawnie. |
| `400` | Błędne zapytanie, niepoprawny payload zapytania. |
| `401` | Nieautoryzowany dostęp. Żądanie zasobu, który wymaga uwierzytelnienia. Upewnij się, że podajesz prawidłlowy [token autoryzacyjny](#topic-authentication). |
| `403` | Brak uprawnień do wykonania zapytania. |
| `404` | Nieznany zasób.
Informacje na temat obsługi tego błędu znajdziesz niżej. |
| `406` | Zapytanie jest poprawne, ale zawiera wartości, które nie mogą zostać obecnie zaakceptowane. Błąd ten będzie zwrócony, gdy zostanie wykorzystana metoda lub kanał płatności, który jest nieaktywny w sklepie, lub tymczasowo ograniczona jest jego dostępność globalnie.
Informacje na temat obsługi tego błędu znajdziesz niżej. |
| `422` | Zapytanie nie zawiera wymaganaych parametrów, zawiera niedopuszczalne parametry, lub przesłane w nich wartości nie spełniają wymogów.
Informacje na temat obsługi tego błędu znajdziesz niżej. |
| `500` | Błąd serwera dostawcy metody płatności lub serwera imoje.
Informacje na temat obsługi tego błędu znajdziesz niżej. |
| `503` | System niedostępny.
Informacje na temat obsługi tego błędu znajdziesz niżej. |
| `504` | Przekroczony czas bramy.
Informacje na temat obsługi tego błędu znajdziesz niżej. |
# Obsługa kodów odpowiedzi
## 404
Kod błędu 404 oznacza, że wysyłasz zapytanie na endpoint, który nie jest przez nas zdefiniowany. Sprawdź sekcję `Endpoints` lub zajrzyj do punktu [Metody RESTful API](https://bump.sh/pgw/doc/imoje-api#topic-metody-restful-api) i upewnij się, że używany endpoint istnieje i jest przez Ciebie prawidłowo sformułowany.
## 406
Na ten błąd możesz natrafić, jeśli spróbujesz utworzyć transakcję dla metody/kanału płatności, która jest nieaktywna w Twoim sklepie, lub tymczasowo wyłączyliśmy ją globalnie z powodu awarii bądź zaplanowanych prac technicznych.
Możesz całkowicie uniknąć tego błędu, jeśli będziesz sprawdzać dostępność metod i kanałów płatności. Zrobisz to, korzystając z zapytania o [dostępne metody płatności](https://bump.sh/pgw/doc/imoje-api/group/endpoint-get-payment-methods) lub zapytania o [dane sklepu](https://bump.sh/pgw/doc/imoje-api/group/endpoint-service). Obydwa rozwiązania zwracają kluczowy parametr `isOnline`, na podstawie którego możesz wyświetlać lub np. wyszarzać poszczególne metody i kanały płatności.
**[Zobacz przykład błędu](https://bump.sh/pgw/doc/imoje-api/operation/operation-post-parameter-transaction#operation-post-parameter-transaction-406)**
## 422
Upewnij się, że wszystkie parametry oraz wartości przesyłane w zapytaniu są zgodne z naszymi wymaganiami. Zwróć szczególną uwagę, jakie typy danych oraz jakie znaki są dopuszczalne w obrębie każdego parametru, który chcesz użyć. Zakresy dopuszczalnych znaków znajdziesz w sekcji `Body` każdego zapytania.
**[Zobacz przykład błędu](https://bump.sh/pgw/doc/imoje-api/operation/operation-post-parameter-transaction#operation-post-parameter-transaction-422)**
## 500
To jest błąd, który może pojawić się nagle i warto dobrze się do niego przygotować, aby płynność w płatnościach nie była zbytnio zachwiana oraz by użytkownicy nie mieli kłopotu z realizacją swojego zamówienia. Błąd ten pojawi się najczęściej, gdy spróbujesz utworzyć transakcję dla metody i kanału płatności, w którym natrafimy na problem w komunikacji z różnymi systemami płatności np. przez awarię i nasz system nie zdąży jeszcze nałożyć odpowiedniego limitu dostępności.
**Jak najlepiej obsłużyć błąd 500?**
Zalecamy w takiej sytuacji wyłączyć w Twoim systemie dany kanał płatności na kilka minut, aby użytkownicy nie natrafiali na kolejne błędy. Następnie możesz zrobić jedną z czynności:
1. Dać użytkownikom możliwość ponowienia płatności poprzez wybranie innej metody/kanału.
2. Nie pokazywać użytkownikom błędu, lub odpowiednio dopasować komunikat i od razu po jego pojawieniu się, generować [link płatności](https://bump.sh/pgw/doc/imoje-api/operation/operation-post-parameter-payment) i bezpośrednio do niego kierować. Aby mieć pewność, że użytkownik nie wybierze ponownie na naszej bramce tej samej metody/kanału, skorzystaj z tablicy [`visibleMethod`](https://bump.sh/pgw/doc/imoje-api/operation/operation-post-parameter-payment#operation-post-parameter-payment-body-application-json-visiblemethod) i wskaż tam wszystkie metody płatności, które chcesz z wyjątkiem metody, przy której wystąpił błąd.
> info
> W przypadku wykrycia przez nas nadmiernej ilości błędów 500 staramy się jak najszybciej nałożyć limit na daną metodę/kanał płatności. Próba utworzenia transakcji w takiej sytuacji wiązać będzie się z błędem `406`. Upewnij się, że wiesz również jak obsługiwać ten błąd.
**[Zobacz przykład błędu](https://bump.sh/pgw/doc/imoje-api/operation/operation-post-parameter-transaction#operation-post-parameter-transaction-500)**
## 503 i 504
Błędy te oznaczają, że są problemy z dostępnością naszego systemu. W przypadku natrafienia na któryś z nich, najlepiej tymczasowo wyłączyć możliwość korzystania z płatności imoje w Twojej aplikacji i sprawdzić status sytuacji po np. 5 minutach za pomocą pojedynczego, dowolnego zapytania metodą `GET`.