# Podłącz płatności Revolut (z sandboxem i kartami testowymi) Goście płacą opłatę turystyczną, kaucję i dodatki przez **Twoje własne konto Revolut Business merchant**. Pieniądze trafiają bezpośrednio do Ciebie; nigdy ich nie przechowujemy. Potrzebujesz konta Revolut Business z włączonym produktem **Merchant** (akceptacja kart). Zdecydowanie zalecamy, aby najpierw podłączyć **sandbox**. Sandbox to oddzielna, testowa kopia Revolut Business: nie są przesyłane prawdziwe pieniądze, a za pomocą kart testowych możesz sprawdzić każdy możliwy wynik. ## 1. Utwórz konto sandbox w Revolut 1. Wejdź na `https://sandbox-business.revolut.com/signup` i zarejestruj się. 2. Jeśli nie wiesz, jaką formę prawną wybrać, wybierz **Public Limited Company** (konta freelancerów nie są obsługiwane w sandboxie). 3. Gdy pojawi się prośba o weryfikację e-maila, kliknij **Skip email verification**. Przy kodzie potwierdzającym kliknij **Autofill code**. Zatwierdzenia w sandboxie są automatyczne. > **Ważne:** Klucze sandbox działają tylko w trybie sandbox, a klucze produkcyjne (live) tylko w trybie live. Nie można ich mieszać. ## 2. Skopiuj klucze API sandbox 1. Zaloguj się na `https://sandbox-business.revolut.com/signin`. 2. Otwórz **Merchant**, kliknij menu **⋯** i wybierz **Merchant API** (link bezpośredni: `https://sandbox-business.revolut.com/settings/apis?tab=merchant-api`). 3. Kliknij **Generate** obok **Secret key**, jeśli klucz jeszcze nie istnieje, a następnie go skopiuj (zaczyna się od `sk_`). 4. Skopiuj też **Public key** (zaczyna się od `pk_`). Jest potrzebny do przycisków Apple Pay i Google Pay. ## 3. Wpisz klucze w swoim panelu 1. Otwórz **Settings → Payments** (Ustawienia → Płatności). 2. Wklej **Secret API key** i **Public API key**. 3. Zaznacz **Sandbox mode (test payments with Revolut test cards)**. 4. Kliknij **Save**, a potem **Test connection**. Powinien pojawić się komunikat *Connected to Revolut (sandbox)*. 5. Kliknij **Register webhook**. Od teraz Revolut natychmiast informuje Twój portal, gdy płatność się powiedzie, nie powiedzie albo gdy blokada kaucji zostanie pobrana lub zwolniona. Status zmieni się na *Registered*. Klucz tajny jest przechowywany w postaci zaszyfrowanej. Gdy wrócisz później, będzie wyświetlany zamaskowany — zostaw go bez zmian, aby zachować zapisany klucz. ![Settings → Payments](/site/img/docs/d-settings-payments.webp "Settings → Payments") ## 4. Testuj z kartami testowymi Revolut Utwórz testową rezerwację z własnym adresem e-mail, otwórz link dla gościa i zapłać. W sandboxie użyj dowolnej **przyszłej daty ważności** i **dowolnego 3-cyfrowego kodu CVV**. | Numer karty | Marka | Wynik | |---|---|---| | `4929 4205 7359 5709` | Visa | Płatność udana | | `5281 4388 0180 4148` | Mastercard | Płatność udana | | `4929 5736 3812 5985` | — | Odrzucona: brak środków | | `4532 3367 4387 4205` | — | Odrzucona: karta wygasła | | `2720 9988 3777 9594` | — | Odrzucona: do not honour (wydawca) | | `4242 4242 4242 4242` | — | Weryfikacja 3-D Secure nieudana (tylko dla kwot od 30,00 €) | | `5215 6741 1512 7070` | — | Nieudana: wydawca wymaga dodatkowej weryfikacji | | `2223 0000 1047 9399` | — | Pozostaje w przetwarzaniu (autoryzacja rozpoczęta) | Kwoty poniżej 30,00 € (lub 25,00 £) są w sandboxie zwolnione z 3-D Secure i przechodzą bez weryfikacji. Aby zobaczyć nieudaną weryfikację 3-D Secure, użyj testowej rezerwacji z kaucją co najmniej 30 €. Sprawdź w panelu, czy: - opłata turystyczna ma status **Paid**, a kaucja **Held** (preautoryzacja) lub **Paid** (tryb obciążenia), - portal gościa odblokowuje się po wykonaniu wszystkich kroków, - przychodzi e-mail z potwierdzeniem, - **Release deposit** w rezerwacji zwraca pieniądze lub zwalnia blokadę. ### Testowanie z poziomu Settings → Payments Do przetestowania całego łańcucha nie potrzebujesz rezerwacji. W **Settings → Payments → Test payments** wpisz kwotę (1–50) i naciśnij: - **Test charge & refund** — opłać zamówienie testowe w nowej karcie, a potem naciśnij **Refund**. Tak działają opłaty, dodatki i kaucje w trybie *charge & refund* (pobranie i zwrot). - **Test deposit hold & release** — opłać zamówienie testowe (kwota jest tylko blokowana na karcie), a potem naciśnij **Release hold** albo **Keep half, release rest**, a następnie **Refund the kept part**. To tryb kaucji *hold* (blokada). Każdy test pokazuje, co Revolut odpowiedział na każdym etapie, i zaznacza **Webhook received**, gdy podpisane powiadomienie Revolut dotarło do Guestbud — to właśnie ono samodzielnie potwierdza płatności gości. Jeśli webhook w ogóle nie dociera, naciśnij **Register webhook**. W trybie live test używa prawdziwej karty i jest od razu zwracany; Revolut może zatrzymać swoją prowizję. ## 5. Przejdź na tryb produkcyjny (live) 1. Na swoim produkcyjnym koncie Revolut Business (`https://business.revolut.com`) otwórz **Merchant → ⋯ → Merchant API** i skopiuj produkcyjne klucze: tajny i publiczny. 2. W **Settings → Payments** wklej je, odznacz **Sandbox mode**, kliknij **Save** i **Test connection** (*live*). 3. Ponownie kliknij **Register webhook** — konto produkcyjne potrzebuje własnego webhooka. 4. Wykonaj jedną małą, prawdziwą płatność własną kartą i zwróć ją w Revolut. ## Metody płatności W **Payment methods** wybierz, co oferujesz gościom: - **Card payment** — strona płatności Revolut (wszystkie główne karty, 3-D Secure). - **Apple Pay** i **Google Pay** — zobacz [Apple Pay i Google Pay](/docs/apple-pay-google-pay). - **Manual payment** — domyślnie wyłączona. Włącz ją, aby goście mogli wybrać gotówkę lub przelew bankowy; potwierdzasz ją przez **Mark as paid** w rezerwacji. Dodaj instrukcje, na przykład swój numer IBAN. ![Co gość widzi przy płatności](/site/img/docs/m-payment-sheet.webp "Co gość widzi przy płatności") ## Kaucje: blokada lub obciążenie Kaucja może być **preautoryzacją na karcie** (pieniądze są zarezerwowane, ale nie pobrane; zwalniane po wymeldowaniu) albo **obciążeniem**, które później zwracasz. Blokady domyślnie wygasają po 7 dniach; zaznacz **Deposits as card pre-authorisation for up to 30 days**, jeśli Twoje konto Revolut ma wydłużone autoryzacje. Szczegóły: [Kaucje i zwolnienia z opłat](/docs/deposits-and-waivers). ## Rozwiązywanie problemów ### Test połączenia pokazuje, że Revolut odrzucił klucz (401)? Prawdopodobnie w trybie sandbox wklejono klucz produkcyjny lub odwrotnie albo skopiowano klucz publiczny do pola klucza tajnego. Klucz tajny zaczyna się od `sk_`. ### Gość zapłacił, ale rezerwacja nadal pokazuje oczekiwanie na bank? Brakuje webhooka albo wskazuje on stary adres. Ponownie kliknij **Register webhook**. Portal sprawdza też ponownie otwarte płatności za każdym razem, gdy gość otwiera stronę. ### Czy mogę używać jednego konta Revolut dla kilku firm? Każdy najemca platformy (firma) podłącza własne konto merchant. Jeśli zarządzasz obiektami kilku właścicieli w ramach jednej firmy, jedno konto wystarczy. ### Czy portal gościa przechowuje dane kart? Nie. Dane karty są wprowadzane na stronach Revolut lub w oknie płatności Revolut i nigdy nie trafiają na nasze serwery. ## Tryb kaucji, okres zwolnienia i bezpieczeństwo sandboxa ![Tryb kaucji, okres zwolnienia i e-mail testowy sandbox](/site/img/docs/d-payments-deposit.webp "Tryb kaucji, okres zwolnienia i e-mail testowy sandbox") W **Settings → Payments → Revolut Merchant**: - **Deposit mode** — *Charge & refund* (domyślnie): kaucja jest pobierana z góry i zwracana po wymeldowaniu, w całości lub w części — bezpieczne przy pobycie o dowolnej długości. *Hold (pre-authorisation)*: kwota jest tylko blokowana na karcie i zwalniana automatycznie, ale blokada trwa maksymalnie 7 dni (30 z preautoryzacją), więc pasuje tylko do krótkich pobytów. Każdy obiekt stosuje to ustawienie domyślne, chyba że jego **Guide editor → Payments → How it is taken** stanowi inaczej; zaznacz **Use this deposit mode for all properties**, aby przełączyć wszystkie obiekty na ustawienie domyślne. - **Release the hold this many days after check-out** (domyślnie 2) — czas na sprawdzenie obiektu i zatrzymanie pieniędzy na pokrycie szkód, zanim Revolut sam zwolni blokadę. 0 = zwolnienie przy wymeldowaniu. - **Sandbox test email** — gdy **Sandbox mode** jest włączony, prawdziwi goście nigdy nie są kontaktowani: e-maile do gości trafiają na ten adres (puste = e-mail gospodarza), a wiadomości przez kanał rezerwacji są wstrzymywane. Wyłącz sandbox dopiero wtedy, gdy wszystko jest gotowe do przyjmowania prawdziwych płatności z kluczem produkcyjnym.