Dzięki programowi partnerskiemu PayU możesz zarabiać polecając usługi płatnicze PayU.
W celu otrzymania wszelkich informacji związanych z warunkami współpracy i tym jak zostać partnerem PayU, prosimy o kontakt z nami pod adresem partnerzy@payu.pl.
Poniżej znajdują się informacje o tym jak zarejestrować poleconego klienta ("merchanta") w systemie PayU.
Link do rejestracji to najprostszy sposób rejestracji poleconych klientów w systemie PayU
Uwaga: obecnie poprzez link można rejestrować tylko sklepy internetowe zamierzające działać na rynku polskim.
Link może być wysłany do potencjalnych klientów PayU pocztą elektroniczną lub zostać umieszczony na stronie internetowej partnera PayU. Link może być użyty dowolną ilość razy, każdy kto w niego kliknie zostanie przekierowany do procesu rejestracji PayU. Tak zarejestrowany merchant zostanie od razu oznaczony jako polecony przez partnera.
Link wygląda następująco:
https://secure.payu.com/boarding/#/form?lang=pl&nsf=false&partnerId=someid
Parametry są opisane poniżej:
Parametr | Opis |
---|---|
nsf | Opcjonalny. Jeśli jest używany z wartością 'true', merchant zostanie zarejestrowany z pominięciem akceptacji umowy elektronicznej. Ta opcja może być użyta jeśli polecani merchanci nie kwalifikują się do zawarcia standardowej umowy z PayU. |
partnerId | ID partnera nadane przez PayU. |
lang | Opcjonalny. Jeśli nie jest użyty, wtedy rejestracja będzie w języku domyślnym. Możliwe wartości: 'en' (angielski, domyślny), 'pl' (polski). |
Regulamin Programu Rekomendacyjnego PayU obowiązujący od 1 kwietnia 2017 jest do pobrania tutaj.
Poprzednia wersja regulaminu jest tutaj.
API służy do rejestracji merchantów w systemie PayU bezpośrednio ze strony partnera.
"Merchant Registration API" pozwala partnerom rejestrować merchantow bezpośrednio w systemie PayU. API jest skierowane w szczególności do integratorów usług płatniczych i operatorów platform typu SaaS (eng. Software as a Service).
Pomimo automatycznego utworzenia merchanta (wspomaganego przez partnera), "Merchant Registration API" zakłada, że PayU wykonuje następujące procesy:
Dla celów tej dokumentacji "merchant" oznacza zestaw podmiotów wyznaczających rodzaj klienta, który generuje płatności i otrzymuje zapłaty od płatników.
W skrócie tymi podmiotami są:
Aby móc korzystać z "Registration API", musisz zarejestrować się jako "partner" (tj. zapisać się do programu partnereskiego PayU) i otrzymać własne klucze client_id i client_secret umożliwiające uwierzytelnienie połączenia z API.
"Registration API" jest również dostępne na sandbox.
Zanim uzyskasz klucze produkcyjne, możesz użyć ponizszych kluczy testowych:
Pełen proces rejestracji nowego merchanta w PayU:
Aby móc komunikować się z serwerami PayU, musisz pobrać token uwierzytelniający w standardzie OAuth.
Przykładowe żądanie pobrania tokena OAuth na sandbox:
curl -X POST 'https://secure.snd.payu.com/pl/standard/user/oauth/authorize' \
-d 'grant_type=client_credentials' \
-d 'client_id=egmcvdo5' \
-d 'client_secret=9e0cad643b2d4f0bc1fe1750b9b706ec'
Przykład odpowiedzi:
{
"access_token":"7524f96e-2d22-45da-bc64-778a61cbfc26",
"token_type":"bearer",
"expires_in":43199, //expiration time in seconds
"grant_type":"client_credentials"
}
Poniżej znajdują się przykłady żądań zawierających minimum danych koniecznych do utworzenia czeskiej i polskiej firmy. Więcej szczegółów na temat parametrów firmy możesz znaleźć w sekcji Parametry firmy.
curl -X POST https://secure.snd.payu.com/api/v2_1/firms \
-H "Content-Type: application/json" \
-H "Authorization: Bearer d9a4536e-62ba-4f60-8017-6053211d3f47" \
-d '{
"name": "Testowa sp. z o.o.",
"type": "SO",
"taxId": "3771910486",
"taxIdType": "NIP",
"cin": "138237420",
"bankAccount": "PL92906300080597567560803897",
"partnerId": "egmcvdo5",
"businessArea": {
"origin": "PL"
},
"users": [
{
"name": "Jan",
"surname": "Nowak",
"email": "jan.nowak@testowa.pl",
"phone": "123123123",
"role": "manager"
}
],
"representatives": [
{
"name": "Jan",
"surname": "Nowak",
"nin": "80010104578",
"countryCode": "PL"
}
],
"contactData": {
"phone": "123123123",
"email": "biuro@@testowa.pl"
},
"address": {
"street": "Grunwaldzka",
"houseNo": "186",
"apartmentNo": "1",
"postalCode": "61-166",
"city": "Poznań",
"countryCode": "PL"
}
}'
curl -X POST https://secure.snd.payu.com/api/v2_1/firms \
-H "Content-Type: application/json" \
-H "Authorization: Bearer a9a4536e-62ba-4f60-8017-6053211d3f47" \
-d '{
"name": "e-shop a.s.",
"type": "AS",
"cin": "138237420",
"taxIdType": "VAT_EU",
"bankAccount": "2000145399/0800",
"partnerId": "egmcvdo5",
"businessArea": {
"origin": "CZ"
},
"users": [
{
"name": "Jana",
"surname": "Nováková",
"email": "jana@e-shop.cz",
"role": "MANAGER"
}
],
"representatives": [
{
"name": "Jana",
"surname": "Nováková",
"countryCode": "CZ",
"birthDate": "1990-01-01"
}
],
"contactData": {
"phone": "123123123",
"email": "office@@e-shop.cz"
},
"address": {
"street": "Antala Staška",
"houseNo": "2027",
"apartmentNo": "77",
"postalCode": "140 00",
"city": "Praha",
"countryCode": "CZ"
}
}'
W odpowiedzi otrzymasz parametr firmId
, który powinien być przechowywany w
twoim systemie. Zostanie on użyty w celu stworzenia kolejnych podmiotów należących
do danej
firmy.
{
"firmId": "KzXy4ZzD"
}
W celu utworzenia podmiotów, w ramach wcześniej zarejestrowanej firmy, potrzebujesz konkretnego dla danej firmy tokena OAuth.
Przykładowe żądanie pobrania tokena na sandbox:
curl -X POST 'https://secure.snd.payu.com/pl/standard/user/oauth/authorize' \
-d 'grant_type=partner' \
-d 'client_id=egmcvdo5' \
-d 'client_secret=9e0cad643b2d4f0bc1fe1750b9b706ec' \
-d 'firm_id=nZzFT4I5'
Przykładowa odpowiedź:
{
"access_token": "2f8fc432-81df-4cc6-8286-d1115214aca5",
"token_type": "bearer",
"refresh_token": "c4326c52-53b0-4191-850c-cb52a9f8da4c",
"expires_in": 43199,
"grant_type": "partner"
}
Po stworzeniu firmy i uzyskaniu tokena OAuth, musisz stworzyć adres URL.
URL powinien być prawdziwym adresem, z którego rozpoczynana jest "podróż klienta" (np. strona sklepu internetowego albo organizacji charytatywnej itp.).
Przy tworzeniu URL musisz wskazać pożądane usługi płatnicze.
W ścieżce endpointu zawiera się parametr firmId
.
curl -X POST 'https://secure.snd.payu.com/api/v2_1/firms/KzXy4ZzD/urls' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer d9a4536e-62ba-4f60-8017-6053211d3f47" \ -d '{ "value":"http://www.test-url.com", "mcc": "0742", "services":[ { "type":"TRANSFERS" }, { "type":"CARD" } ] }'
W odpowiedzi otrzymasz parameter urlId
, który powinien być zachowany w twoim
systemie. Zostanie on wykorzystany do stworzenia sklepu.
{ "urlId": "PItR5x0v" }
Parametr | Opis | Wymagany |
---|---|---|
value | Adres URL. | Tak |
mcc | Merchant Category Code odpowiednik polskiego PKWiU (wartość jest walidowana). Typ
danych: ENUM. Lista wartości:
|
Nie |
services | Tablica typów usług. | Tak |
service.type | Wartość słownikowa. Możliwe wartości:
|
Tak |
Po stworzeniu firmy i adresu URL musisz założyć sklep.
Sklep wymaga odwołania do adresu URL. Jest on wykorzystywany do przechowywania
salda konta płatniczego, dlatego jego najważniejszym parametrem jest
currency
.
W ścieżce endpointu zawiera się parametr firmId
.
curl -X POST 'https://secure.snd.payu.com/api/v2_1/firms/KzXy4ZzD/shops' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer d9a4536e-62ba-4f60-8017-6053211d3f47" \ -d '{ "name":"Shop name", "description":"Shop description", "currencyCode":"EUR", "urlId":"PItR5x0v" }'
W odpowiedzi otrzymasz parametr shopId
, który powinien być przechowywany w
twoim systemie i zostanie użyty przy tworzeniu POS.
{ "shopId": "ycmGyfCv" }
Parameter | Description | Required |
---|---|---|
name | Nazwa sklepu - będzie widoczna w panelu merchanta. | Tak |
description | Opis sklepu - bardziej szczegółowe informacje są widoczne w panelu merchanta. | Nie |
currencyCode | Trzyliterowy kod waluty ISO 4217. Aby uzyskać więcej informacji na temat dostępnych walut, skontaktuj się ze swoim opiekunem handlowym. | Tak |
urlId | Odniesienie do stworzonego wcześniej URL. | Tak |
POS (eng. point of sale) jest ostatnim podmiotem, który powinieneś założyć.
POS jest zakładany w ramach sklepu, po którym dziedziczy waluty. Dane uwierzytelniające płatności są przechowywane na danym punkcie płatności.
W ścieżce endpointu powinien być zawarty parameter shopId
.
curl -X POST https://secure.snd.payu.com/api/v2_1/shops/ycmGyfCv/poses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer d9a4536e-62ba-4f60-8017-6053211d3f47" \ -d '{ "name":"Test POS", "type":"REST" }'
W odpowiedzi otrzymasz parametr posId
, który powinien być przechowywany w
twoim systemie, w celu pobrania danych POS.
{ "posId": "JyoMIVTY" }
Żądanie zawiera parametry name
i type
konkretnego
POS. Parametr type
domyślnie przyjmuje wartość REST i pozwala to
na integrację płatności przez REST
API.
W rzadkich przypakach, w których wymagane będzie użycie typu CLASSIC. W celu uzyskania dalszych wskazówek prosimy o kontakt z obsługą techniczą PayU.
curl -X POST 'https://secure.snd.payu.com/api/v2_1/poses/JyoMIVTY' \ -H 'Authorization: Bearer d9a4536e-62ba-4f60-8017-6053211d3f47'
W odpowiedzi otrzymasz pełen zestaw danych, które pozwolą ci na uwierzytelnienie płatności, zwrotów, a także umożliwią sprawdzenie powiadomień o statusie płatności.
{ "posId": "JyoMIVTY", "type": "REST", "name": "Test POS", "encoding": "UTF-8", "authorization": { "standard": { "merchantPosId": "385234", "key": "9c0041e05fdee99749de4c2d2ce4c66e", "secondKey": "f096a39d78fbe03b8d23dde43b728cfd", "authKey": "uHcZ9Ly" } } }
Parametr | Opis |
---|---|
posId | Publiczny identyfikator POS. |
type | Typ POS (określa które API może zostać użyte). |
encoding | Określa kodowanie używane przez system PayU do odczytu żądań API. W przypadku REST jest to zawsze UTF-8. |
authorization.standard.merchantPosId | Identyfikator POS dla połączeń z API. |
authorization.standard.key | Pierwszy klucz API (client_id) wykorzystywany do pobrania tokena OAuth uwierzytelniającego połączenia z REST API. |
authorization.standard.secondKey | Drugi klucz API (client_id) wykorzystywany do podpisywania formularzy REST API oraz do walidacji powiadomień. |
authorization.standard.authKey | Nie jest wymagany przy REST API. |
Parametr | Opis | Wymagany |
---|---|---|
partnerId | Twój identyfikator partnera. | Tak |
businessArea.origin | Oznacza kraj pochodzenia firmy oraz określa wymagania dotyczące danego pochodzenia. Obecnie dostępne są tylko dwie wartości: CZ i PL. Nadal istnieje możliwość rejestracji firmy, kótra została założona poza Chechami lub Polską. | Tak |
name | Pełna nazwa prawna. | Tak |
type | Wartość słownikowa - typ osoby prawnej. Wartości dla konkretnych miejsc pochodzenia
znajdują się Tutaj. Dla firm, których parametr
address.countryCode nie jest taki sam jak businessArea.origin należy
wstawić FZ. Podanie dokładnego typu przyśpiesza
weryfikację merchanta. |
Tak |
taxId | Identyfikator podatkowy. | Tak dla pochodzących z PL. Nie dla CZ. |
taxIdType | Typ identyfikatora podatkowego. Możliwe wartości:
|
Tak |
cin | Identyfikator gospodarczy np. IČ (CZ) lub REGON (PL). | Tak |
bankAccount | Główne konto bankowe, na które będą przelewane wpłaty za przeprowadzone płatności.
Podane konto jest dziedziczone przez wszystkie sklepy utworzone w
ramach danej firmy. U firm z parametrem origin o
wartości PL, numer konta musi zgadzać się ze standardem IBAN.
Różne konta bankowe mogą zostać ręcznie zdefiniowane na
poziomie sklepu w panelu merchanta PayU. |
Tak |
users | Tablica użytkowników panelu merchanta. Przynajmniej jeden musi zostać podany. | Tak |
user.name | Imię użytkownika. | Tak |
user.surname | Nazwisko użytkownika. | Tak |
user.email | Adres email użytkownika | Tak |
user.phone | Numer telefonu użytkownika. | Nie |
user.role | Rola użytkownika. Możliwe wartości:
|
Tak |
representatives | Tablica przedstawicieli prawnych firmy. Musi zostać podany przynajmniej jeden. | Tak |
representative.name | Imię przedstawiciela prawnego. | Tak |
representative.surname | Nazwisko przedstawiciela prawnego. | Tak |
representative.countryCode | Obywatelstwo przedstawiciela prawnego. Musi to być prawidłowy dwuliterowy kod kraju zgodny z ISO-3166. | Tak |
representative.nin | Krajowy numer identyfikacyjny przedstawiciela prawnego (PESEL). | Tak (tylko dla polskich obywateli ) |
representative.birthDate | Data urodzenia przedstawiciela prawnego. | Tak (dla osób nie posiadających polskiego obywatelstwa) |
contactData | Obiekt zawierający dane kontaktowe firmy. | Tak |
contactData.email | Adres email firmy. | Tak |
contactData.phone | Numer telefonu firmy. | Tak |
technicalContactData | Obiekt zawierający dane kontaktowe firmy w sprawach technicznych (np. do dewelopera odpowiedzialnego za integrację z PayU). | Nie |
address | Zarejestrowany adres firmy. | Tak |
address.street | Ulica | Tak |
address.houseNo | Numer budynku | Tak |
address.apartmentNo | Numer mieszkania | Tak |
address.postalCode | Kod pocztowy | Tak |
address.city | Miasto | Tak |
address.countryCode | Kod kraju. Musi to być prawidłowy dwuliterowy kod kraju zgodny z ISO-3166. | Tak |
correspondenceAddress | Adres korespondencyjny firmy (należy podać jeżeli jest inny niż zarejestrowany adres firmy). W zakresie tego obiektu występują takie same pola jak w przypadku sekcji address. | Nie |
Typ | pl | en | cs |
---|---|---|---|
PP | jednoosobowa działalność gospodarcza | sole trader | podnikající fyzická osoba tuzemská |
SO | spółka z ograniczoną odpowiedzialnością | limited liability company | společnost s ručením omezeným |
SC | spółka cywilna | civil law partnership | občanské sdružení |
SJ | spółka jawna | general partnership | komora (hospodářská, agrární) |
SA | spółka akcyjna | joint-stock company | akciová společnost |
FU | fundacja | foundation | nadace |
SK | spółka komandytowa | limited liability partnership | společnost komanditní |
ST | stowarzyszenie | association | spolek |
SP | spółka partnerska | professional partnership | samosprávná stavovská organizace (profesní komora) |
SD | spółka komandytowo-akcyjna | limited joint-stock partnership | společnost komanditní na akcie |
PO | placówka oświaty | educational institution | školská právnická osoba |
SPOL | spółdzielnia | cooperative | družstvo |
KOP | kościelna osoba prawna lub jej jednostka organizacyjna | church legal person | evidované církevní právnické osoby |
JST | jednostka samorządu terytorialnego | local government unit | obec, kraj, městská část, městský obvod |
IB | instytut badawczy | research institute | veřejná výzkumná instituce |
PPZ | przedstawicielstwo przedsiębiorstwa zagranicznego | agency of foreign company | odštěpný závod zahraniční právnické osoby |
PRPA | przedsiębiorstwo państwowe | state company | státní podnik |
SIK | publiczna instytucja kultury | public culture institution | veřejná kulturní instituce |
FZ | zagraniczna osoba prawna | foreign legal body | zahraniční spolek |
Po otrzymaniu danych POS możesz rozważyć wykorzystanie ich, nie tylko w kontekście integracji usług płatniczych określonych w REST API, ale także do wywołań API niezwiązanych bezpośrednio z płatnościami, np.