Program partnerski

1 Program partnerski

Dzięki programowi partnerskiemu PayU możesz zarabiać polecając usługi płatnicze PayU.
Rekomendacyjny program partnerski skierowany jest do wszystkich, którzy chcą współpracować z PayU w zakresie polecania klientów. W szczególności dotyczy to operatorów wszelkiego rodzaju platform sklepowych i web-developerów integrujących usługi płatnicze.

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.

2 Rejestracja poprzez link

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).

3 Regulamin

Regulamin Programu Rekomendacyjnego PayU obowiązujący od 1 kwietnia 2017 jest do pobrania tutaj.

Poprzednia wersja regulaminu jest tutaj.

4 Materiały graficzne

Materiały graficzne do pobrania:

Standardowe

Alternatywne

5 Rejestracja poprzez API

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).

5.1 Przedmowa

Pomimo automatycznego utworzenia merchanta (wspomaganego przez partnera), "Merchant Registration API" zakłada, że PayU wykonuje następujące procesy:

  1. Weryfikację merchanta poprzez procedurę KYC (eng. Know-Your-Customer) w tym kontrolę AML (eng. Anti-Money-Laundering).
  2. Zawieranie umów handlowych, zazwyczaj przez Internet za pośrednictwem panelu merchanta.
  3. Aktywację merchanta w celu umożliwienia akceptowania płatności.

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ą:

  1. Firma - osoba prawna (nazwa, adres, identyfikator podatkowy itp.).
  2. Adres URL strony - adres internetowy sklepu, działalności charytatywnej lub innego płatnego serwisu.
  3. Sklep - na tym poziomie, zdefiniowane są: waluta płatnicza, saldo oraz szczegóły dotyczące wypłat (wraz z numerem konta merchanta).
  4. POS (eng. point of sale) - punkt płatności, na którym konfigurowane są dostępne metody płatności. Zlecenia płatności są generowane na tym poziomie.

5.2 Wprowadzenie

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:

  • client_id = egmcvdo5
  • client_secret = 9e0cad643b2d4f0bc1fe1750b9b706ec

Pełen proces rejestracji nowego merchanta w PayU:

  1. Uzyskanie ogólnego tokena dostępowego OAuth w celu stworzenia Firmy.
  2. Stworzenie nowej firmy, otrzymanie publicznego firmId.
  3. Uzyskanie tokena dostępowego w kontekście danej Firmy dla tworzenia kolejnych encji dla Firmy.
  4. Stworzenie URL dla Firmy, uzyskanie publicznego urlId.
  5. Stworzenie Sklepu przypisanego do URL, uzyskanie publicznego shopId.
  6. Stworzenie POSa dla sklepu, uzyskanie publicznego posId.
  7. Uzyskanie danych konfiguracyjnych POSa i dodanie ich do twojej paltformy SaaS w celu tworzenia transakcji płatniczych w imieniu merchanta.
  8. Uzyskanie tokena dostępowego OAuth2 w celu pobrania metod płatności z POSa.
  9. Pobranie metod płatności wraz z ich statusami. Początkowo POS ma dostępną jedynie testową płatność i nie ma włączonych automatycznych wypłat. Dodanie aktywnych metod płatności oznacza aktywację merchanta przez PayU.

5.3 Tworzenie firmy

OAuth

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"
                    }
    

Tworzenie firmy

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.

Czeska firma   Polska firma
               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"
						}
					}'
    
               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"
	                   	}
                   }'
    

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"
		}
	

5.4 Uwierzytelnienie firmy (OAuth)

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"
                    }
    

5.5 Tworzenie adresu URL

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.

Przykład żądania

               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",
               "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"
    }
  

Parametry żądania

Parametr Opis Wymagany
value Adres URL. Tak
services Tablica typów usług. Tak
service.type Wartość słownikowa. Możliwe wartości:
  • TRANSFERS - przelewy internetowe ("pay-by-links" i standardowe przelewy bankowe, w tym Blik),
  • CARDS - karty (Visa, Mastercard) i portfele elektroniczne (Apple Pay, Google Pay, Masterpass, Visa Checkout),
  • INSTALLMENTS - raty internetowe,
  • DELAYED_PAYMENTS - metody "płacę później".
Tak

5.6 Zakładanie sklepu

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.

Przykład żądania

               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"
       }
  

Parametry żądania

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

5.7 Zakładanie POS

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.

Przykład żądania

               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.

Pobieranie danych POS

     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.

5.8 Parametry firmy

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:
  • NIP - firma zarejestrowana w Polsce dla celów podatku VAT;
  • VAT_EU - firma zerejestrowana w EU (poza Polską) dla celów podatku VAT;
  • TAX_ID - identyfikator podatkowy spoza EU.
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:
  • MANAGER - użytkownik z pełnym dostępem,
  • USER - użytkownik z ograniczonym dostępem (zakres dostępu może zostać zdefiniowany w panelu merchanta przez użytkownika z pełnym dostępem).
Musi zostać zdefiniowany przynajmniej jeden użytkownik z pełnym dostępem.
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 ISO 3166-1. 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 ISO 3166-1. 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

5.9 Typy firm

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

5.10 Dalsze działania

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.