Wypłaty

1 Autoryzacja

Klient autoryzuje się przy pomocy standardu OAuth. Pobierając token, który wykorzystuje do utworzenia wypłaty oraz pobrania statusu wypłaty.

1.1 Gdzie znaleźć dane niezbędne do autoryzacji?

Dane autoryzacyjne można pobrać z panelu klienta:

Aby pobrać dane autoryzacyjne należy przejść do następującej lokalizacji: Moje sklepy -> Detale sklepu -> Zakładka punkty płatności -> Detale punktu płatności:

  • client_id: Id punktu płatności (protokół OAuth - client_id)
  • client_secret: Klucz MD5 (protokół OAuth - client_secret)

1.2 Pobranie tokena autoryzacyjnego

Użytkownik może pobrać token autoryzacyjny z usługi autoryzacyjnej OAuth. Pobranie tokena umożliwia dostęp do Payout API. Aby pobrać token postępuj zgodnie z opisem dostępnym w sekcji Pobranie tokena autoryzacyjnego.

1.3 Nagłówek autoryzacyjny w request-cie do Payout API

Obie dostępne metody (utworzenie payouta oraz pobranie danych wypłaty) autoryzujemy przez dodanie nagłówka:

                Authorization: Bearer [access_token]
            

Bearer oznacza autoryzację OAuth, access_token jest tokenem otrzymanym w odpowiedzi od serwisu autoryzacyjnego oauth, patrz 1.2.

2 Utworzenie wypłaty

Wypłata jest wykonywana na Rachunek Bankowy zdefiniowany na poziomie Sklepu bądź Firmy.

Specyfikacja komunikatu tworzącego Wypłatę:

Pole Wymagalność Komentarz
payout.extPayoutId nie Identyfikator Zewnętrzny Wypłaty, nadany przez klienta. Klient może zlecić tylko jedną wypłatę o zadanym identyfikatorze zewnętrznym. Wymagana jest unikalność extPayoutId w obrębie wypłat tego samego sklepu.
payout.amount nie Kwota wypłaty w najmniejszej jednostce danej waluty (np. grosz, cent, itp.). Jeżeli zostanie podana, to z Salda Sklepu zostanie zlecona Wypłata na podaną Kwotę Wypłaty – oczywiście tylko w przypadku, gdy stan salda Sklepu to umożliwia.
payout.description nie Opis Wypłaty.
payout.additionalVariables nie Umożliwia przesłanie do systemu dodatkowych informacji (Variable symbol). Wartość tego pola powinna być w postaci: VS=888111. Dane z tego pola przesyłane są do banku (tylko dla banków obsługujących). Rozwiązanie jest dedykowane na rynek czeski.
shopId tak Identyfikator sklepu, z którego chcemy wypłacić środki.

2.1 Przykłady żądań wypłat

Każde żądanie powinno zawierać nagłówek autoryzacyjny pokazany w punkcie 1.3 oraz definicję typu przesyłanych danych Content-Type application/json.

Wypłata podanej kwoty:

                curl -X POST https://secure.payu.com/api/v2_1/payouts \
                -H "Content-Type: application/json" \
                -H "Authorization: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd" \
                -d '{  
                    "shopId": "n7Cd7y1U",  
                    "payout": 
                    {    
                        "amount": 1100  
                    }
                }'
            

Metody uwierzytelnienia znajdują się w: Uwierzytelnienie użytkownika API.

W szczególności, jeżeli Sklep chce dokonać pełnej Wypłaty wszystkich dostępnych środków, to wystarczy, że wyśle żądanie HTTP zawierające tylko shopId na adres URL:

https://secure.payu.com/api/v2_1/payouts

Wypłata całej kwoty:

                curl -X POST https://secure.payu.com/api/v2_1/payouts \
                -H "Content-Type: application/json" \
                -H "Authorization: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd" \
                -d '{
                     "shopId": "n7Cd7y1U"
                 }'
            

Pozostałe dane zostaną uzupełnione z informacji przechowywanych w systemie PayU.

Przykładowe utworzenie wypłaty z Variable symbol:

                curl -X POST https://secure.payu.com/api/v2_1/payouts \
                -H "Content-Type: application/json" \
                -H "Authorization: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd" \
                -d '{  
                    "shopId": "n7Cd7y1U",  
                    "payout":
                    {    
                        "amount": 1100,
                        "additionalVariables": "VS=888111"  
                    }
                }'
                
            

2.2 Przykład odpowiedzi

Przykład odpowiedzi na wysłanie żądania utworzenia Wypłaty:

                {
                    "payout": {
                        "payoutId": "133bfe5f400e4b2c8da44abfdf753d79",
                        "extCustomerId": "123123",
                        "status": "PENDING"
                    },
                    "status": {
                        "statusCode": "SUCCESS"
                    }
                }
                
            

Opis pól odpowiedzi:

Pole Komentarz
payout.payoutId Jest publicznym identyfikatorem wypłaty, który należy wykorzystać odpytując o status wypłaty (sekcja Pobranie danych Wypłaty).
payout.extCustomerId Jest identyfikatorem użytkownika (pole opcjonalne; zostanie zwrócony jeżeli został podany w żądaniu).
payout.status Aktualny status wypłaty.
status.statusCode W sekcji status oznacza status żądania.

apiary

3 Utworzenie wypłaty na podany rachunek bankowy

Wypłatę na wskazany Rachunek Bankowy można zlecić na:

  • rachunek bankowy krajowy
  • rachunek bankowy zagraniczny
  • jako zlecenie przelewu pocztowego (tylko i wyłącznie dla polskich sklepów)

co wpływa na zakres przekazywanych informacji w komunikacie wejściowym. Walidacja zakresu danych wejściowych dla Wypłaty na podany Rachunek Bankowy jest zupełnie inna niż dla standardowej Wypłaty.

Uwaga! Utworzenie Wypłaty ze wskazaniem Rachunku Bankowego jest dostępne tylko i wyłącznie dla sklepów spełniających kryteria weryfikacyjne. W celu rozpoczęcia procesu weryfikacyjnego skontaktuj się z PayU poprzez naszą stronę kontaktową.

Specyfikacja komunikatu tworzącego Wypłatę na wskazany Rachunek Bankowy:

Pole Wymagalność Komentarz
payout.extPayoutId nie Identyfikator Zewnętrzny Wypłaty, nadany przez klienta. Klient może zlecić tylko jedną wypłatę o zadanym identyfikatorze zewnętrznym. Wymagana jest unikalność extPayoutId w obrębie wypłat tego samego sklepu
payout.amount tak Kwota Wypłaty
payout.description nie Opis Wypłaty
payout.foreign Domyślnie flaga nie jest ustawiona Flaga określająca czy Wypłata na rachunek zagraniczny
payout.postalOrder Domyślnie flaga nie jest ustawiona Flaga określająca czy Wypłata w postaci zlecenia przelewu pocztowego. Ustawienie flagi wymusza uzupełnienie pól adresowych i zdejmuje wymagalność dla pola numer rachunku
account.accountNumber Pole opcjonalne dla ustawionej flagi postalOrder, w pozostałych przypadkach wymagane Numer Rachunku Bankowego. Wymagane formaty rachunków dla przelewów zagranicznych:
  • rachunki polskie: NRB, IBAN
  • rachunki czeskie: IBAN, wewnętrze w formie ([0-9]{1,6}[ -])?[0-9]{2,10}[ /][0-9]{4})
Dla przelewów krajowych aktualnie brak ograniczeń na format
account.bankName Pole wymagane dla Wypłat na rachunek zagraniczny (ustawiona flaga foreign), w pozostałych przypadkach opcjonalne Nazwa Banku
account.swiftCode Pole wymagane dla Wypłat na rachunek zagraniczny (ustawiona flaga foreign), w pozostałych przypadkach opcjonalne Kod SWIFT Banku
customerAddress.street Pole wymagane dla:
  • wypłat na rachunek zagraniczny (ustawiona flaga foreign)
  • dla przekazów pocztowych (ustawiona flaga postalOrder)
Dane adresowe Odbiorcy Wypłaty
customerAddress.postalCode Pole wymagane dla przekazów pocztowych (ustawiona flaga postalOrder), w pozostałych przypadkach opcjonalne Dane adresowe Odbiorcy Wypłaty
customerAddress.city Pole wymagane dla:
  • wypłat na rachunek zagraniczny (ustawiona flaga foreign)
  • dla przekazów pocztowych (ustawiona flaga postalOrder)
Dane adresowe Odbiorcy Wypłaty
customerAddress.countryCode Pole wymagane dla Wypłat na rachunek zagraniczny (ustawiona flaga foreign), w pozostałych przypadkach opcjonalne Dane adresowe Odbiorcy Wypłaty. Dwuliterowy kod kraju zgodny z ISO-3166
customerAddress.name tak Nazwa Odbiorcy Wypłaty
bankAddress.street Pole wymagane dla Wypłat na rachunek zagraniczny (ustawiona flaga foreign), w pozostałych przypadkach opcjonalne Dane adresowe Banku
bankAddress.postalCode Pole wymagane dla Wypłat na rachunek zagraniczny (ustawiona flaga foreign), w pozostałych przypadkach opcjonalne Dane adresowe Banku
bankAddress.city Pole wymagane dla Wypłat na rachunek zagraniczny (ustawiona flaga foreign), w pozostałych przypadkach opcjonalne Dane adresowe Banku
bankAddress.countryCode Pole wymagane dla Wypłat na rachunek zagraniczny (ustawiona flaga foreign), w pozostałych przypadkach opcjonalne Dane adresowe Banku. Dwuliterowy kod kraju zgodny z ISO-3166

Specyfikacja odpowiedzi na żądanie tworzące Wypłatę:

Pole Komentarz
payout/payoutId Unikalne Id Wypłaty nadane przez PayU
payout/extPayoutId Identyfikator Zewnętrzny Wypłaty – echo informacji przesłanej w komunikacie wejściowym
payout/status Status Wypłaty Dziedzina wartości:
  • PENDING - oczekuje na realizację,
  • WAITING - w trakcie realizacji,
  • CANCELLED - anulowana,
  • REALIZED - zakończona.

3.1 Przykłady

Każde żądanie powinno zawierać nagłówek autoryzacyjny pokazany w punkcie 1.3 oraz definicję typu przesyłanych danych Content-Type application/json.

Wypłata na rachunek krajowy:

                curl -X POST https://secure.payu.com/api/v2_1/payouts \
                -H "Content-Type: application/json" \
                -H "Authorization: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd" \
                -d '{  
                    "shopId":"n7Cd7y1U",  
                    "payout": {    
                        "amount":"1000",    
                        "description":"Some payout"  
                    },  
                    "account": {    
                        "accountNumber":"59114072854040477132976504"  
                    },  
                    "customerAddress": {    
                        "name":"Stefan Jaracz"  
                    }
                }'       
            

Metody uwierzytelnienia znajdują się w: Uwierzytelnienie użytkownika API.

Wypłata na rachunek zagraniczny z wykorzystaniem Kodu SWIFT i nazwy banku:

                curl -X POST https://secure.payu.com/api/v2_1/payouts \
                -H "Content-Type: application/json" \
                -H "Authorization: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd" \
                -d '{ 
                    "shopId":"n7Cd7y1U",
                    "payout": {
                        "amount":"1000",
                        "description":"Some foreign payout",
                    "foreign":"true"
                    },
                    "account": {
                        "accountNumber":"DE610639036594575851447918096101",
                        "swiftCode":"AARBDE5W700",
                        "bankName":"Aareal Bank"
                    },
                    "customerAddress": {
                        "street":"RICHARD STRAUSS STRASSE 24",
                        "city":"MUENCHEN",
                        "countryCode":"DE",
                        "name":"Steffen von Klaus"
                    }
                }'
            

4 Utworzenie wypłaty na kartę płatniczą

Usługa pozwala na szybką wypłatę środków z salda sklepu na wskazaną w żądaniu kartę płatniczą. Wypłaty zostaną zrealizowane za pośrednictwem usług Visa Direct (dla kart Visa).

Uwaga! Utworzenie Wypłaty na kartę płatniczą jest dostępne wyłącznie dla sklepów spełniających kryteria weryfikacyjne. W celu rozpoczęcia procesu weryfikacyjnego należy skontaktować się ze swoim opiekunem handlowym w PayU, lub przez formularz kontaktowy.

Karta, na którą mają trafić środki, powinna zostać przesłana do PayU w postaci tokena kartowego uzyskanego od PayU po dokonaniu tokenizacji przez właściciela karty.

Możliwe jest również przesłanie danych kartowych w postaci tekstowej (tylko dla podmiotów uprawnionych do przetwarzania danych kartowych po swojej stronie).

4.1 Struktura komunikatu

Walidacja zakresu danych wejściowych dla Wypłaty na kartę płatniczą jest zupełnie inna niż dla standardowej Wypłaty.

Pole Wymagalność Komentarz
shopId tak Identyfikator sklepu, z którego chcemy wypłacić środki.
payout.extPayoutId nie Identyfikator zewnętrzny wypłaty, nadany przez klienta. Klient może zlecić tylko jedną wypłatę o danym identyfikatorze zewnętrznym. Wymagana jest unikalność extPayoutId w obrębie wypłat tego samego sklepu
payout.amount tak Kwota wypłaty.
payout.description nie Opis wypłaty.
customerAddress.name tak Imię i nazwisko / Nazwa odbiorcy wypłaty.
cardToken.value tak w przypadku wypłaty na token kartowy Token kartowy.
card.number tak w przypadku wypłaty na numer karty Numer karty.
card.expirationMonth tak w przypadku wypłaty na numer karty Data ważności - miesiąc.
card.expirationYear tak w przypadku wypłaty na numer karty Data ważności - rok.

Struktura odpowiedzi opisana jest w punkcie 2.2.

Każde żądanie powinno zawierać nagłówek autoryzacyjny pokazany w punkcie 1.3 oraz definicję typu przesyłanych danych Content-Type application/json.

4.2 Wypłata na token kartowy

Zalecany sposób integracji polega na przesłaniu w żądaniu tokenu kartowego, który reprezentuje kartę płatniczą, na którą następnie zostanie zlecona wypłata środków.

                curl -X POST https://secure.payu.com/api/v2_1/payouts \
                    -H "Content-Type: application/json" \
                    -H "Authorization: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd" \
                    -d '{  
                        "shopId":"n7Cd7y1U",  
                        "payout": {
			                "extPayoutId":"externalId12345",    
                            "amount":"1000",    
                            "description":"Some payout" 
                        },  
                        "customerAddress": {    
                            "name":"Stefan Jaracz"  
                        },
                        "cardToken": {    
                            "value":"TOKC_2IHRST6HKSST3H62K2GS8pElI862"  
                        }  
                    }'

            

Token kartowy do zlecenia wypłaty może być tym samym, który był wcześniej używany do realizacji płatności, lub też może zostać utworzony specjalnie w tym celu. Aby uzyskać nowy token należy przeprowadzić właściciela karty przez proces jej tokenizacji z parametrem type=MULTI który pozwoli na zapisanie karty, wykonanie nią płatności i uzyskanie tokenu wielorazowego, który może posłużyć do realizacji wypłaty środków z salda sklepu.

Ze względu na wymagania bezpieczeństwa, konieczne jest potwierdzenie tożsamości właściciela karty. Token kartowy, na który ma zostać zlecona wypłata środków musi zostać wcześniej zweryfikowany, na przykład w procesie płatności z silnym uwierzytelnieniem.

W celu zagwarantowania silnego uwierzytelnienia właściciela karty należy przy tworzeniu zamówienia REST API dołączyć następujący fragment:

                "threeDsAuthentication": {
                    "challengeRequested": "MANDATE"
                }
             
            

Szczegółowy opis wszystkich parametrów REST API znajduje się w sekcji Parametry JSON.

Tokeny silnie uwierzytelnione (kod odpowiedzi ECI o wartości 5) mogą być wykorzystywane do wypłaty środków. Poziom uwierzytelnienia transakcji można odczytać z pola cardEciCode po pobraniu danych transakcji.

W przypadku, gdy karta nie wspiera silnego uwierzytelnienia, lub z jakiegoś innego powodu niemożliwe jest jego przeprowadzenie, merchant zobowiązany jest do przeprowadzenia weryfikacji w inny sposób, na przykład poprzez obciążenie karty na losową kwotę i poproszenie klienta o podanie tej wartości. W celu uruchomienia takiego rozwiązania należy skontaktować się ze swoim opiekunem handlowym w PayU, lub przez formularz kontaktowy.

4.3 Wypłata na numer karty

Uwaga! Ten sposób integracji jest przeznaczony tylko dla podmiotów, które spełniają wymogi określone przez PCI DSS i są uprawnione do przetwarzania danych kartowych po swojej stronie. Wymagają również dodatkowej konfiguracji. Dlatego przed przystąpieniem do integracji należy skontaktować się z opiekunem handlowym w PayU.
                curl -X POST https://secure.payu.com/api/v2_1/payouts \
                    -H "Content-Type: application/json" \
                    -H "Authorization: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd" \
                    -d '{  
                        "shopId":"n7Cd7y1U",  
                        "payout": {
                            "extPayoutId":"externalId12345",    
                            "amount":"1000",    
                            "description":"Some payout" 
                        },  
                        "customerAddress": {    
                            "name":"Stefan Jaracz"  
                        },
                        "card": {    
                            "number":"4444333322221111",  
                            "expirationMonth":"11",  
                            "expirationYear":"2029"  
                        }  
                    }'    

            

4.4 Testowanie wypłat na kartę płatniczą

Przygotowaliśmy kilka numerów kart na potrzeby testów na środowisku Sandbox. Numery kart i skutki zakończenia procesu wypłaty przy ich użyciu znajdują się w tabeli poniżej.

Numer Data ważności Marka Status wypłaty
4655413107713609 12/2030 Visa Wypłata w statusie REALIZED.
4302193177728334 12/2030 Visa Wypłata w statusie CANCELLED.
5575278649907280 12/2030 Mastercard Wypłata w statusie REALIZED.
5436518288281326 12/2030 Mastercard Wypłata w statusie CANCELLED.

5 Pobranie danych Wypłaty

Aby pobrać dane wypłaty należy wysłać żądanie HTTP GET na adres URL skonstruowany w postaci:

https://secure.payu.com/api/v2_1/payouts/{payoutId}

payoutId jest publicznym identyfikatorem Wypłaty zwróconym w odpowiedzi na żadanie utworzenia wypłaty.

Pobieranie danych o wypłatach jest ograniczone do ostatnich 2 tygodni.

Każde żądanie powinno zawierać nagłówek autoryzacyjny pokazany w punkcie 1.3 oraz definicję typu przesyłanych danych Content-Type application/json.

Przykład żądania:

                curl -X GET https://secure.payu.com/api/v2_1/payouts/133bfe5f400e4b2c8da44abfdf753d79 
                -H "Content-Type: application/json" 
                -H "Authorization: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd"
            

Przykład odpowiedzi:

                {
                  "payout": {
                    "payoutId": "133bfe5f400e4b2c8da44abfdf753d79",
                    "amount": "1100",
                    "description": "Billing: 169602484",
                    "status": "PENDING"
                  },
                  "status": {
                    "statusCode": "SUCCESS"
                  }
                }                
            

Opis pól:

Pole Komentarz
payout.payoutId Publiczny identyfikator wypłaty
payout.amount Kwota wypłaty podana w groszach
payout.description Wygenerowany tytuł wypłaty
payout.status Obecny status wypłaty
status.statusCode Status żądania

Przykład błędnej odpowiedzi (przypadek podania błędnego publicznego identyfikatora Wypłaty):

                {
                  "status": {
                    "statusCode": "DATA_NOT_FOUND",
                    "severity": "ERROR",
                    "code": "8354",
                    "codeLiteral": "INCORRECT_MERCHANT_POS",
                    "statusDesc": "INCORRECT_MERCHANT_POS"
                  }
                }               
            

Specyfikacja sekcji statusowej komunikatów odpowiedzi:

Pole Komentarz
status.statusCode Status realizacji żądania
status.severity Poziom błędu:
  • INFO
  • WARNING
  • ERROR
status.code Kod błędu z sekcji 5
status.codeLiteral Opis kodu błędu

6 Kody błędów

Kody błędów w procesowaniu komunikatu odsyłane są w komunikatach response w sekcji statusowej.

Kod błędu Status Opis kodu błędu Status HTTP
100 GENERAL_ERROR GENERAL_ERROR 500 Internal Server Error
101 ERROR_VALUE_INVALID UNKNOWN_MERCHANT 403 Forbidden
102 GENERAL_ERROR SERVICE_TEMPORARY_UNAVAILABLE 500 Internal Server Error
8300 ERROR_VALUE_MISSING MISSING_PAYOUT_AMOUNT 400 Bad Request
8301 ERROR_VALUE_MISSING MISSING_ACCOUNT_NUMBER 400 Bad Request
8302 ERROR_VALUE_MISSING MISSING_CUSTOMER_NAME 400 Bad Request
8303 ERROR_VALUE_MISSING MISSING_BANK_NAME 400 Bad Request
8304 ERROR_VALUE_MISSING MISSING_BANK_ADDRESS 400 Bad Request
8305 ERROR_VALUE_MISSING MISSING_BANK_ADDRESS_STREET 400 Bad Request
8306 ERROR_VALUE_MISSING MISSING_BANK_ADDRESS_CITY 400 Bad Request
8307 ERROR_VALUE_MISSING MISSING_BANK_ADDRESS_COUNTRY 400 Bad Request
8308 ERROR_VALUE_MISSING MISSING_SWIFT_CODE 400 Bad Request
8309 ERROR_VALUE_MISSING MISSING_CUSTOMER_ADDRESS_STREET 400 Bad Request
8310 ERROR_VALUE_MISSING MISSING_CUSTOMER_ADDRESS_CITY 400 Bad Request
8311 ERROR_VALUE_MISSING MISSING_CUSTOMER_ADDRESS_COUNTRY 400 Bad Request
8312 ERROR_VALUE_MISSING MISSING_CUSTOMER_ADDRESS_POSTAL_CODE 400 Bad Request
8313 ERROR_VALUE_MISSING MISSING_MERCHANT_POS_ID 400 Bad Request
8314 ERROR_VALUE_MISSING MISSING_USER_NAME 400 Bad Request
8315 ERROR_VALUE_MISSING MISSING_TIMESTAMP 400 Bad Request
8316 ERROR_VALUE_INVALID PAYOUT_DESCRIPTION_TOO_LONG 400 Bad Request
8317 ERROR_VALUE_INVALID ACCOUNT_NUMBER_TOO_LONG 400 Bad Request
8318 ERROR_VALUE_INVALID BANK_NAME_TOO_LONG 400 Bad Request
8319 ERROR_VALUE_INVALID SWIFT_CODE_TOO_LONG 400 Bad Request
8320 ERROR_VALUE_INVALID CUSTOMER_ADDRESS_STREET_​TOO_LONG 400 Bad Request
8321 ERROR_VALUE_INVALID CUSTOMER_ADDRESS_POSTAL_CODE_​TOO_LONG 400 Bad Request
8322 ERROR_VALUE_INVALID CUSTOMER_ADDRESS_CITY_TOO_LONG 400 Bad Request
8323 ERROR_VALUE_INVALID CUSTOMER_ADDRESS_COUNTRY_CODE_​TOO_LONG 400 Bad Request
8324 ERROR_VALUE_INVALID CUSTOMER_ADDRESS_POSTAL_CITY_​TOO_LONG 400 Bad Request
8325 ERROR_VALUE_INVALID CUSTOMER_ADDRESS_POSTAL_NAME_​TOO_LONG 400 Bad Request
8326 ERROR_VALUE_INVALID CUSTOMER_ADDRESS_NAME_TOO_LONG 400 Bad Request
8327 ERROR_VALUE_INVALID CUSTOMER_NAME_TOO_LONG 400 Bad Request
8328 ERROR_VALUE_INVALID BANK_ADDRESS_STREET_TOO_LONG 400 Bad Request
8329 ERROR_VALUE_INVALID BANK_ADDRESS_POSTAL_CODE_TOO_LONG 400 Bad Request
8330 ERROR_VALUE_INVALID BANK_ADDRESS_POSTAL_CITY_TOO_LONG 400 Bad Request
8331 ERROR_VALUE_INVALID BANK_ADDRESS_POSTAL_NAME_TOO_LONG 400 Bad Request
8332 ERROR_VALUE_INVALID BANK_ADDRESS_CITY_TOO_LONG 400 Bad Request
8333 ERROR_VALUE_INVALID BANK_ADDRESS_COUNTRY_CODE_TOO_LONG 400 Bad Request
8334 ERROR_VALUE_INVALID INCORRECT_DESCRIPTION 400 Bad Request
8335 ERROR_VALUE_INVALID INCORRECT_PUBLIC_ID 400 Bad Request
8336 ERROR_VALUE_INVALID WRONG_CURRENCY 400 Bad Request
8350 ERROR_VALUE_INVALID INCORRECT_PAYOUT_AMOUNT 400 Bad Request
8351 ERROR_VALUE_INVALID INCORRECT_ACCOUNT_NUMBER 400 Bad Request
8352 BUSINESS_ERROR NOT_ENOUGH_FUNDS 403 Forbidden
8353 DATA_NOT_FOUND INCORRECT_PAYOUT 404 Not Found
8354 DATA_NOT_FOUND INCORRECT_MERCHANT_POS 404 Not Found
8355 BUSINESS_ERROR INCORRECT_REQUEST 403 Forbidden
8356 BUSINESS_ERROR PAYOUT_ALREADY_EXISTS 403 Forbidden
8357 UNAUTHORIZED_REQUEST UNAUTHORIZED_REQUEST 401 Unauthorized
8358 BUSINESS_ERROR NO_PERMISSION 403 Forbidden
8359 BUSINESS_ERROR SHOP_NOT_ALLOWED 403 Forbidden
8360 BUSINESS_ERROR FIRM_NOT_ALLOWED 403 Forbidden
8361 ERROR_VALUE_MISSING MISSING_MERCHANT_SHOP_ID 400 Bad Request
8362 ERROR_VALUE_MISSING PAYOUT_TOKEN_MISSING 400 Bad Request
8363 ERROR_VALUE_INVALID PAYOUT_TOKEN_WITH_SHARING
_AGREEMENT
400 Bad Request
8364 BUSINESS_ERROR PAYOUT_TOKEN_INSUFFICIENT
_AUTHENTICATION_LEVEL
403 Forbidden
8365 ERROR_VALUE_MISSING MISSING_PAYER_NAME 400 Bad Request
8366 ERROR_VALUE_MISSING INVALID_PAYEE_PROVIDER 400 Bad Request