{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Zwroty","description":"Znajdziesz tutaj wszystkie niezbędne informacje dotyczące integracji i obsługi systemu płatności SimPay.pl","siteUrl":"https://docs.simpay.pl","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"zwroty","__idx":0},"children":["Zwroty"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["System SimPay pozwala na łatwe i zautomatyzowane zwracanie środków klientom (np. w przypadku odstąpienia od umowy, reklamacji czy anulowania zamówienia). Proces ten możesz zainicjować bezpośrednio z poziomu naszego API, bez konieczności ręcznego zlecania przelewów z poziomu Panelu Billingowego."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"wymogi-formalne-i-techniczne","__idx":1},"children":["Wymogi formalne i techniczne"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Zanim zlecisz zwrot, upewnij się, że dana transakcja spełnia wszystkie poniższe warunki. W przypadku niespełnienia któregokolwiek z nich, API zwróci błąd."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Status transakcji:"]}," Transakcja musi być w pełni opłacona (posiadać status ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_paid"]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Dostępne saldo:"]}," Na Twoim koncie (saldu w SimPay) musi znajdować się kwota wystarczająca na pokrycie zlecanego zwrotu."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Maksymalna kwota:"]}," Suma wszystkich dotychczasowych zwrotów dla danej transakcji nie może przekroczyć jej pierwotnej wartości."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Wiek transakcji:"]}," Zlecenie zwrotu jest możliwe tylko dla transakcji, które nie są starsze niż ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["30 dni"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Brak testów:"]}," Zwrotów można dokonywać wyłącznie dla rzeczywistych (produkcyjnych) transakcji. Nie można zlecić zwrotu dla transakcji testowej."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Brak duplikatów:"]}," W danym momencie do transakcji nie może być przypisane inne, oczekujące zlecenie zwrotu (status ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refund_new"]}," lub ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refund_pending"]},"). Musisz poczekać na zakończenie przetwarzania poprzedniego zlecenia."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"zwroty-całkowite-i-częściowe","__idx":2},"children":["Zwroty całkowite i częściowe"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["W zależności od potrzeb, SimPay umożliwia dwa rodzaje zwrotów:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Zwrot częściowy"]}," – zwracasz klientowi tylko część kwoty (np. gdy odsyła tylko jeden z kilku zamówionych produktów). Aby go wykonać, przekaż w ciele zapytania (body) parametr ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}," z odpowiednią kwotą."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Zwrot całkowity (100%)"]}," – zwracasz całą wpłaconą kwotę. Masz tutaj dwie możliwości: możesz pominąć parametr ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}," w żądaniu (wtedy system domyślnie zwróci całą wartość transakcji) lub jawnie podać pierwotną kwotę zamówienia."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"tworzenie-zwrotu-przykłady-api","__idx":3},"children":["Tworzenie zwrotu (Przykłady API)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Aby wygenerować zwrot, wyślij żądanie ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," na endpoint:"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/payment/{serviceId}/transactions/{transactionId}/refunds"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"przykład-zwrot-częściowy-np-na-kwotę-2550-pln","__idx":4},"children":["Przykład: Zwrot częściowy (np. na kwotę 25.50 PLN)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.simpay.pl/payment/{serviceId}/transactions/{transactionId}/refunds\" \\\n  -H \"Authorization: Bearer TWÓJ_TOKEN_API\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -d '{\n    \"amount\": \"25.50\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"przykład-zwrot-całkowity-pominięcie-parametru-amount","__idx":5},"children":["Przykład: Zwrot całkowity (pominięcie parametru amount)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.simpay.pl/payment/{serviceId}/transactions/{transactionId}/refunds\" \\\n  -H \"Authorization: Bearer TWÓJ_TOKEN_API\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -d '{}'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"odpowiedź-z-api-i-identyfikator-refundid","__idx":6},"children":["Odpowiedź z API i identyfikator ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refundId"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Po wysłaniu poprawnego żądania, operacja trafi do kolejki i otrzyma wstępny status ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refund_new"]},". W odpowiedzi z naszego API otrzymasz obiekt zawierający unikalny identyfikator tego zlecenia – ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refundId"]}]},"."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Ważne:"]}," Pamiętaj, aby zapisać wartość ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refundId"]}," w swojej bazie danych obok identyfikatora transakcji! Będzie on niezbędny do poprawnego powiązania i obsłużenia przyszłych powiadomień IPN (webhooków) ze zmianami statusu dla tego konkretnego zwrotu."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"cykl-życia-zwrotu","__idx":7},"children":["Cykl życia zwrotu"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Zlecenie zwrotu nie oznacza natychmiastowego pojawienia się pieniędzy na koncie klienta. Proces ten podlega określonym etapom i statusom systemowym."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["👉 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/payment/statuses#statusGroup=Statusy+zwrot%C3%B3w"},"children":["Przejdź do strony: Statusy zwrotów"]}]},", aby sprawdzić pełny cykl życia, diagramy przejść oraz instrukcje, w jaki sposób powiadamiamy Twoją aplikację o udanym zakończeniu operacji zwrotu."]}]},"headings":[{"value":"Zwroty","id":"zwroty","depth":1},{"value":"Wymogi formalne i techniczne","id":"wymogi-formalne-i-techniczne","depth":2},{"value":"Zwroty całkowite i częściowe","id":"zwroty-całkowite-i-częściowe","depth":2},{"value":"Tworzenie zwrotu (Przykłady API)","id":"tworzenie-zwrotu-przykłady-api","depth":2},{"value":"Przykład: Zwrot częściowy (np. na kwotę 25.50 PLN)","id":"przykład-zwrot-częściowy-np-na-kwotę-2550-pln","depth":3},{"value":"Przykład: Zwrot całkowity (pominięcie parametru amount)","id":"przykład-zwrot-całkowity-pominięcie-parametru-amount","depth":3},{"value":"Odpowiedź z API i identyfikator refundId","id":"odpowiedź-z-api-i-identyfikator-refundid","depth":3},{"value":"Cykl życia zwrotu","id":"cykl-życia-zwrotu","depth":2}],"frontmatter":{"seo":{"title":"Zwroty"}},"lastModified":"2026-04-21T18:05:36.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/payment/refunds","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}