Przejdź do głównej zawartości

Mass Collect

Gdy klient zamierza zapłacić rachunek, uzyskuje dostęp do platformy internetowej przedsiębiorstwa. W ramach tego systemu wybiera PayU i dokonuje płatności za pomocą karty lub metody pay-by-link. PayU ułatwia transfer płatności na indywidualne konto skonfigurowane w systemie przedsiębiorstwa energetycznego klienta. Następnie system rozliczeniowy przedsiębiorstwa rejestruje otrzymane środki na indywidualnym koncie klienta.

Powyższy scenariusz służy jako przykład tego, kiedy włączenie usługi Mass Collect na stronie internetowej staje się opłacalne. PayU | Mass Collect umożliwia klientom inicjowanie płatności bezpośrednio na wskazane indywidualne konto powiązane z daną usługą. Rozwiązanie to jest szczególnie korzystne dla różnych sektorów, w tym firm telekomunikacyjnych, operatorów telewizji kablowej, dostawców internetu, dostawców energii, a także firm leasingowych i ubezpieczeniowych.

Konfiguracja

Konfiguracja usługi Mass Collect wymaga konfiguracji w systemie PayU. Przed rozpoczęciem integracji PayU | Mass Collect, skontaktuj się z PayU za pośrednictwem swojego opiekuna handlowego.

Tworzenie zamówienia

Zamówienie z jednym rachunkiem wypłatowym

Mass Collect oparty jest na standardowej integracji z PayU poprzez REST API. Rozszerzeniem komunikatu jest pole targetAccount, w którym PayU otrzymuje indywidualny rachunek użytkownika na który zostaną przelane środki.

Przykład zamówienia Mass Collect z jednym rachunkiem
curl -v -X POST https://secure.payu.com/api/v2_1/orders \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 0089270b-5027-42f1-8f51-8a47fe99d9cd" \
-d '{
"notifyUrl":"https://your.eshop.com/notify",
"customerIp":"127.0.0.1",
"merchantPosId":"199022",
"description":"Invoice payment ",
"additionalDescription":"1111/01/02/2017",
"currencyCode":"PLN",
"totalAmount":"15000",
"extOrderId":"tlmnkfqdjc7irodvbs4gb6",
"targetAccount":"PL23080049181648726886601824",
"products":[
{
"name":"Invoice payment",
"unitPrice":"15000",
"quantity":"1"
}
],
"buyer": {
"email": "john.doe@example.com",
"phone": "654111654",
"firstName": "John",
"lastName": "Doe"
}
}'

Szczegóły parametrów znajdziesz w sekcji Creating an Order w naszej referencji API.

Zamówienie z wieloma rachunkami wypłatowymi

W przypadku transakcji Mass Collect, w których określono wiele kont, standardowe zamówienie powinno zostać rozszerzone o dodatkowe pole targetAccounts, które dostarczy dla PayU indywidualne konta użytkowników na które mają zostać przelane środki (maksymalna liczba indywidualnych rachunków w tablicy targetAccounts wynosi 50).

Przykład zamówienia Mass Collect z wieloma rachunkami
curl -v -X POST https://secure.payu.com/api/v2_1/orders \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 0089270b-5027-42f1-8f51-8a47fe99d9cd" \
-d '{
    "notifyUrl":"https://your.eshop.com/notify",
    "customerIp":"127.0.0.1",
    "merchantPosId":"199022",
    "description":"Oplata za ",
    "additionalDescription":"gaz, prad",
    "currencyCode":"PLN",
    "totalAmount":"15000",
    "extOrderId":"dsvg82i7fl4y79lpljxjy9",
"targetAccounts":[
{
"account":"PL23080049181648726886601824",
"amount":"5000",
"description":"Rozksiegowanie wewnetrzne AAA"
},
{
"account":"PL83520640964843486631050632",
"amount":"8000",
"description":"Rozksiegowanie wewnetrzne BBB"
},
{
"account":"PL42718382961584083942417177",
"amount":"2000",
"description":"Rozksiegowanie wewnetrzne CCC"
}
],
"products":[
{
"name":"Oplata za fakture XXX",
"unitPrice":"10000",
"quantity":"1"
},
{
"name":"Oplata za fakture YYY",
"unitPrice":"5000",
"quantity":"1"
}
],
"buyer": {
"email": "john.doe@example.com",
"phone": "654111654",
"firstName": "John",
"lastName": "Doe"
}
}'

Szczegóły parametrów znajdziesz w sekcji Creating an Order w naszej referencji API.

Walidacja poprawności danych
  • kwota zamówienia (totalAmount) jest równa sumie kwot wskazanych dla poszczególnych rachunków,
  • wszystkie podane rachunki są rachunkami dozwolonymi, tzn., zostały zdefiniowane na liście zaufanych rachunków po stronie PayU,
  • na liście targetAccounts nie przekroczono maksymalnej liczby rachunków (50),
  • liczba rachunków nie musi być równa liczbie produków z sekcji products; opcja taka pozwala na agregowanie wpłat za poszczególne produkty lub dowolne dzielenie opłaty uiszczonej przez użytkownika na subkonta wewnętrzne jak również rachunki zewnętrzne.

Wypłaty otrzymają tytuły, zgodne z ustawionym szablonem. Szczegóły zawarto w punkcie Tytuły wypłat. Dodatkowo zostanie dodany atrybut targetAccounts.description do szablonu definiującego tytuł wypłaty.

Szablon dla tytułów wypłat
description(<40characters),targetAccounts.description(<40characters),buyer's details(<40characters)

Tytuły operacji przychodzących (wpłat na podane w zamówieniu rachunki bankowe) dla powyższego przykładowego zamówienia przedstawiają się następująco:

  • Oplata za gaz, prad,Rozksiegowanie wewnetrzne AAA,Jan Nowak ul.Polna 1 61-051 Opole
  • Oplata za gaz, prad,Rozksiegowanie wewnetrzne BBB,Jan Nowak ul.Polna 1 61-051 Opole
  • Oplata za gaz, prad,Rozksiegowanie wewnetrzne CCC,Jan Nowak ul.Polna 1 61-051 Opole
Notatka

Należy zauważyć, że w tym przykładzie podano trzy różne rachunki bankowe, będą to zatem trzy odzielne zestawienia bankowe.

Testowanie usługi Mass Collect

Możesz przetestować usługę Mass Collect na środowisku sandbox, korzystając z dedykowanego punktu płatności:

Testowy punkt płatności z włączoną usługą Mass Collect
Id punktu płatności (pos_id):	    478674
Drugi klucz (MD5): eaab0d1f51b99f77e4ebc6fe368c252e
Protokół OAuth - client_id : 478674
Protokół OAuth - client_secret: 3152a46e0d28ff0e3fa528c0fba48550

Kody błędów

Błędy specyficzne dla Mass Collect
Kod statusuKodCodeLiteralOpis
ERROR_VALUE_MISSING
MISSING_TARGET_ACCOUNT
8093
targetAccount jest wymagane dla POS ze skonfigurowaną funkcją Mass Collect.
ERROR_VALUE_INVALID
TARGET_ACCOUNT_NOT_ON_WHITELIST
8308
Brak numeru rachunku na liście rachunków dozwolonych (whitelist).
ERROR_VALUE_INVALID
TOO_MANY_ITEMS_IN_TARGET_ACCOUNTS
8312
Zbyt wiele obiektów w tablicy targetAccounts.

Tytuły wypłat

PayU może nadać tytuł wypłaty na podstawie danych otrzymanych w zamówieniu i/lub danych uzyskanych z banku.

Przykładowe tytuły wypłat:

  • Oplata za fakture 1111/01/02/2017,Jan Nowak
  • Oplata za fakture 1111/01/02/2017,Oliwia Nowak ul. Ptasia 89 Opole
Notatka

Należy zaznaczyć, że faktyczny zakres danych zależy od wybranego w procesie płatnościowym banku. Zależnie od banku wypłatowego PayU oraz wpłatowego odbiorcy znaki specjalne mogą zostać zastąpione w różny sposób.

Powyższe tytuły zostały nadane w oparciu o zdefiniowany po stronie PayU szablon: opis (60 znaków), separator (przecinek), dane Płatnika (60 znaków). Poniżej zawarto szczegóły dotyczące tego przykładu:

  • Order.description (przycięte do 50 znaków) + Order.additionalDescription (przycięte do 50 znaków), następnie tak złączony ciąg zostanie przycięty do 60 znaków,
  • przecinek,
  • imię i nazwisko płacącego uzyskane z banku (czasami w tych danych jest również adres), przycięte do 60 znaków. Niewypełnione dla kart i płatności blik.
Atrybuty, które można ustawić w szablonie wypłaty
AtrybutŹródło
opis
komunikat zamówienia
imię i nazwisko płatnika
bank
adres płatnika
bank
numer rachunku płatnika
bank
identyfikator transakcji
transaction
opis wypłaty dla danego konta
pole targetAccounts.description w komunikacie zamówienia
Notatka

Skontaktuj się z PayU w celu konfiguracji tytułu wypłat.