Klient autoryzuje się przy pomocy standardu OAuth
. Pobierając token, który
wykorzystuje do utworzenia wypłaty oraz pobrania statusu wypłaty.
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) 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.
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.
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. |
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" } }'
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. |
Wypłatę na wskazany Rachunek Bankowy można zlecić na:
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:
|
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:
|
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:
|
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:
|
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" } }'
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).
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
.
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.
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" } }'
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. |
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:
|
status.code | Kod błędu z sekcji 5 |
status.codeLiteral | Opis kodu błędu |
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 |