1. Definicje
Bank - Credit Agricole Bank Polska S.A.
Partner - podmiot prowadzący sklep internetowy, który podpisał umowę z Bankiem na oferowanie sprzedaży ratalnej (kredyt na zakup towarów i usług, zwany dalej ratami lub kredytem ratalnym).
eWniosek - aplikacja internetowa udostępniona przez Bank, umożliwiająca wykonanie symulacji kredytu ratalnego, złożenie wniosku przez Klienta, a w przypadku pozytywnej decyzji kredytowej zdalną identyfikację i podpisanie umowy. Umożliwia również monitowanie statusu złożonego wniosku.
identyfikatorSklepu - numer identyfikujący Partnera, nadany przez Bank po podpisaniu umowy o współpracy, np. PSP1234567.
Oferta - zestaw parametrów (oprocentowanie, liczba rat, itd.) na podstawie których zostanie uruchomiony kredyt ratalny. Partner ma dostęp do jednej lub wielu ofert w ramach umowy z Bankiem.
2. Wstęp
2.1. eWniosek - proces zdalnego podpisywania umowy kredytu ratalnego
eWniosek umożliwia zdalne podpisanie przez Klienta umowy o kredyt ratalny, bez konieczności kontaktu z pracownikiem Banku.
Proces online obejmuje:
- wykonanie symulacji kredytu, wypełnienie wniosku i wysłanie go do decyzji,
- otrzymanie online decyzji kredytowej,
- identyfikację za pomocą przelewu 1 zł,
- jeśli to konieczne - załączenie zdjęć dokumentów,
- podpisanie umowy kodem SMS.
W standardowej (pozytywnej) ścieżce cały powyższy proces Klient jest w stanie przejść w 10 minut, w ramach jednej sesji.
Niniejsza instrukcja opisuje udostępnione metody integracji z systemem eWniosek, tak, by umożliwić sprzedaż towarów na raty z wykorzystaniem powyższego procesu. Zamieszczono tu również przykłady kodu w javascript i HTML a także gotowe biblioteki, do wykorzystania w Państwa e-Commerce.
2.2 Modele integracji
Zakłada się dwa modele integracji: podstawowy i rozszerzony. Wybór danego modelu zależy od Państwa strategii biznesowej.
Integracja podstawowa | Integracja rozszerzona |
---|---|
Jeśli chcesz zintegrować swój eCommerce z systemem ratalnym Banku, minimalizując koszt związany z IT. | Jeśli chcesz maksymalnie zautomatyzować obsługę zamówień w eCommerce |
W ramach integracji podstawowej:
| Aby zautomatyzować proces obsługi zamówień z płatnością ratalną, możesz dodatkowo:
|
W dalszej części zostaną omówione oba powyższe modele, wraz z przykładami kodu w HTML i javascript.
2.3 Wymagania wstępne
- Partner po podpisaniu umowy o współpracy otrzymuje m.in. identyfikator sklepu (numer PSP), którym posługuje się w komunikacji z systemem Banku.
- Na stronach informacyjnych sklepu musi znajdować się odnośnik do procedury zakupów ratalnych wraz z logotypem CABP Raty. Niezbędne pliki graficzne prezentujące płatność CABP Raty są udostępnione Partnerom na serwerach Banku. Pliki (logotyp CABP Raty i buttony) muszą zostać podlinkowane z serwerów Banku, banery promocyjne umieszczane są lokalnie na stronach sklepów, ze względu na konieczność ich przeskalowania i linkowania do podstron sklepu. Bank zastrzega sobie prawo do modyfikacji elementów graficznych obsługujących CABP Raty. W takim przypadku Partner, po otrzymaniu powiadomienia, powinien zmodyfikować elementy graficzne udostępnione lokalnie.
- Partner jest zobowiązany do umieszczenia informacji o współpracy z Bankiem, w miejscu do tego przeznaczonym na stronie sklepu, najczęściej na podstronie Płatności/Raty. Treści do umieszczenia są zamieszczone w rozdziale 5, podrozdział 5.1 Treść na strony sklepów instrukcji.
- Na stronach z opisem produktu należy umieścić odnośnik do symulatora kredytowego. Zakup ratalny powinien być dostępny jedynie dla zamówień, które spełniają warunki umowy pomiędzy Partnerem, a Bankiem. W szczególności kupowany produkt musi należeć do dozwolonego asortymentu. Jeżeli towar należy do kategorii niekredytowanej (np. telefony komórkowe) na stronie produktowej symulator nie powinien być dostępny. Jeżeli taki towar jest w koszyku, płatność CABP Raty powinna być zablokowana.
- Partner ustala i przekazuje hasło wykorzystywane do komunikacji z Bankiem. Minimalna liczba znaków w haśle to 8, a maksymalna 64. Hasło wykorzystywane jest do uwierzytelnienia sklepu Partnera w kontekście wywołania wniosku kredytowego.
- Klient po skompletowaniu zamówienia powinien mieć możliwość wyboru płatności ratalnej. Po jej wyborze mechanizmy sklepu Partnera powinny przesłać podstawowe informacje o zamówieniu do eWniosku (zgodnie z poniższą instrukcją) oraz przekierować przeglądarkę Klienta do eWniosku.
- Wdrożenie CABP Rat na sklepie Partnera powinno zostać zaakceptowane przez pracownika Banku przed produkcyjnym uruchomieniem. Dotyczy to zarówno działania mechanizmów (przesyłanie danych) jak i rozwiązań graficznych (np. sposób wykorzystania logotypu CABP Raty i ewentualnie logotypu Banku).
- Po podpisaniu umowy o współpracy Partner podaje adres/adresy źródłowe sklepu a także:
- URL powrotu do sklepu w przypadku pozytywnego zakończenia procesu,
- URL powrotu do sklepu w przypadku negatywnego zakończenia procesu.
3. Integracja podstawowa
3.1 Strona główna sklepu
3.1.1 Zamieszczenie logotypu
Strona główna sklepu Partnera powinna zawierać logotyp CABP Raty (przykład rys. 1). Zaleca się umieszczenie logotypu w głównym layoucie strony, tak aby był on widoczny również na wszystkich podstronach. Logotyp powinien być widoczny co najmniej w jednym z poniższych miejsc:
- na głównej stronie sklepu
- w miejscu prezentacji innych operatorów płatności: na stronie głównej (zwykle na dole) lub na dedykowanej podstronie Płatności/Raty
Lista dostępnych logotypów (zamieszczona w serwisie internetowym Banku) znajduje się w załączniku w w rozdziale 5, podrozdział 5.2.3 Przyciski Raty.
Ważne! Prosimy nie kopiować i nie zapisywać przycisków lokalnie. Niedozwolone są jakiekolwiek modyfikacje grafik - podlegają one prawom autorskim Banku.
3.1.2 Przekierowanie do procedury ratalnej
Kliknięcie w logotyp CABP Raty powinno otwierać procedurę ratalną w nowym oknie:
https://ewniosek.credit-agricole.pl/eWniosek/procedure.jsp?PARAM_TYPE=RAT&PARAM_PROFILE=identyfikatorSklepu
Przykładowy adres:
https://ewniosek.credit-agricole.pl/eWniosek/procedure.jsp?PARAM_TYPE=RAT&PARAM_PROFILE=PSP1234567

3.1.3 Przykład kodu
<a href="https://ewniosek.credit-agricole.pl/eWniosek/procedure.jsp?PARAM_TYPE=RAT&PARAM_PROFILE=PSP1234567"><img src="https://ewniosek.credit-agricole.pl/eWniosek/res/CA_grafika/485_duckblue.png"/></a>
3.2 Obliczanie raty dla produktu lub koszyka
W tym rozdziale pokazujemy, w jaki sposób można umożliwić Klientowi obliczenie raty dla danego produktu lub całego zmówienia. Proponujemy 3 sposoby o różnym stopniu zaawansowania, a do Państwa należy decyzja, który sposób wybierzecie.
Ważne jest, aby symulator ratalny otwierał się w nowym oknie. Zabronione jest w tym przypadku korzystanie z technologii iFrame.
3.2.1 Zamieszczenie przycisku "Oblicz ratę"
Najprostszym sposobem jest umieszczenie przycisku „CA Oblicz ratę” . Przycisk należy umieścić na karcie ze szczegółami produktu (przykład rys. 2)

oraz w koszyku, w miejscu, gdzie wyświetlona jest lista wszystkich zamówionych produktów wraz z kosztami przesyłki (przykład rys. 3).

Kliknięcie w przycisk powinno skutkować otwarciem w nowym oknie symulatora ratalnego z podstawioną ceną produktu lub wartością zamówienia.
Lista dostępnych przycisków „CA Oblicz ratę” (zamieszczona w serwisie internetowym Banku) znajduje się w rozdziale 5, podrozdział 5.2.2 Przyciski „Oblicz ratę”.
Ważne! Prosimy nie kopiować i nie zapisywać przycisków lokalnie. Niedozwolone są jakiekolwiek modyfikacje grafik - podlegają one prawom autorskim Banku.
Opisany powyżej przycisk „Oblicz ratę” powinien otwierać symulator ratalny, prezentujący Klientowi m.in. szacowaną wysokość raty i RRSO. Adres URL otwierający symulator ratalny ma postać: https://ewniosek.credit-agricole.pl/eWniosek/simulator.jsp?PARAM_TYPE=RAT&PARAM_PROFILE=identyfikatorSklepu&PARAM_CREDIT_AMOUNT=kwota gdzie kwota = cenaProduktu (dla ekranu symulacji) albo kwota = wartoscZamówienia (dla strony z podsumowaniem zamówienia); wartość zamówienia zawiera także koszty przesyłki. Jeżeli na tym etapie niemożliwe jest określenie kosztów przesyłki, to należy przekazać do symulatora jedynie wartość wszystkich zamówionych produktów. W takim przypadku koszty przesyłki nie będą kredytowane.
Cena produktu/wartość zamówienia powinna zostać przekazana w formacie xxx.xx, bez separatorów tysięcy.
Przykładowy adres: https://ewniosek.credit-agricole.pl/eWniosek/simulator.jsp?PARAM_TYPE=RAT&PARAM_PROFILE=PSP1234567&PARAM_CREDIT_AMOUNT=5325.20
3.2.2 Zamieszczenie przycisku prezentującego kwotę raty
Zamiast przycisku „Oblicz ratę” możliwe jest również zamieszczenie przycisku graficznego, który od razu będzie prezentował wysokość raty:

W tym celu na stronie należy umieścić przycisk graficzny, jako parametry podając kredytowaną kwotę, nr PSP i typ obrazka, np.:
Przycisk | imgType | Rozmiar |
---|---|---|
![]() | 1 | 163x30 |
![]() | 2 | 183x38 |
![]() | 3 | 248x75 |
![]() | 4 | 250x38 |
![]() | 5 | 323x75 |
Przykład kodu
<a href="https://ewniosek.credit-agricole.pl/eWniosek/simulator.jsp?PARAM_TYPE=RAT&PARAM_PROFILE=PSP1234567&PARAM_CREDIT_AMOUNT=5325.20"><img src="http://ewniosek.credit-agricole.pl/eWniosek/button/img.png?creditAmount=5325.20&posId=PSP1234567&imgType=4"/></a>
3.2.3 Obliczanie wysokości raty - pobieranie wyliczeń
Najbardziej zaawansowaną metodą jest pobieranie wyliczeń metodą GET. W tym przypadku należy skorzystać z poniższego adresu i parametrów.
Adres: https://ewniosek.credit-agricole.pl/eWniosek/comm/getInstallment
Parametry:
Nazwa atrybutu | Dopuszczalne wartości | Znaczenie | Dozwolone NULL |
---|---|---|---|
posId | SSSNNNNNNN | identyfikator sklepu w formacie SSSNNNNNNN (np. PSP1234567). | Nie |
productType | RAT | typ produktu | Nie |
offerId | Identyfikator oferty (np. 2000000). Gdy brak pola, zostanie wybrana domyślna oferta. | Tak | |
insuranceId | Identyfikator pakietu ubezpieczeniowego (np. 1000000). Gdy brak pola, zostanie wybrany domyślny pakiet ubezpieczeniowy. | Tak | |
creditAmount | Kwota kredytu netto rozumiana jako suma kredytowanych towarów po odjęciu wpłaty klienta (liczba dziesiętna z separatorem w postaci kropki np. NNN.NN). W przypadku podania przecinka jako separatora wystąpi wyjątek java.lang.NumberFormatException. | Nie | |
installmentsNo | liczba rat | Nie | |
resp | json | Dla wartości „json” wynik obliczeń zostanie zwrócony zgodnie z formatem JSON i będzie zawierał elementy installmentAmount (kwotę ratę), stopę RRSO (roczna rzeczywista stopa oprocentowania) oraz dodatkowe wyliczenia (kwota ubezpieczenia, całkowity koszt kredytu, oprocentowanie nominalne w skali roku, prowizja, całkowita kwota kredytu, całkowita kwota odsetek, całkowity koszt ubezpieczenia, całkowita kwota do zapłaty). W przypadku jego braku zostanie wysłana kwota raty w postaci tekstowej (123.45). | Tak |
Przykład (dla sklepu PSP1234567 oraz kwocie kredytu 1234,56):
https://ewniosek.credit-agricole.pl/eWniosek/comm/getInstallment?creditAmount=1234.56&posId=PSP1234567&productType=RAT
Odpowiedź: 143.68
Jeśli odpowiedź ma przyjść w formacie JSON:
https://ewniosek.credit-agricole.pl/eWniosek/comm/getInstallment?creditAmount=1234.56&posId=PSP1234567&productType=RAT&resp=json
Odpowiedź: {"instAmount":"155.01","rrso":"66.72","insuranceFee":"0.00","totalCreditCost":"315.53","interestRate":"10.00","commisionAmount":"246.79","totalCreditAmount":"1234.56","totalInterestAmount":"68.74","totalInsuranceCost":"0.00","totalAmountToPay":"1550.09"}
3.3 Złożenie zamówienia przez Klienta sklepu z metodą płatności „CABP Raty”
Po wyborze płatności CABP Raty oraz złożeniu zamówienia, skrypt sklepu powinien wysłać szczegóły zamówienia do eWniosku, a tym samym zainicjować formularz wniosku o kredyt ratalny.
3.3.1 Tworzenie formularza wniosku kredytowego
Aby rozpocząć wnioskowanie o kredyt ratalny, należy wysłać dane zamówienia na adres https://ewniosek.credit-agricole.pl/eWniosek/simulator_u.jsp.
Właściwości wywołania:
- Encoding: UTF-8
- Http-Method: POST
- Content-Type: application/x-www-form-urlencoded
Przykłady kodowania:
- nazwa towaru „---> Regulacja roweru” powinno zostać przesłana jako „---%3E%20Regulacja%20roweru”.
- nazwa towaru „ładna pralka!” powinna zostać przesłana jako „%C5%82adna%20pralka”.
- nazwa towaru „Rower MTB 29"” powinna zostać przesłana jako „Rower%20MTB%2029%22”.
W formularzu POST należy przesłać następujące parametry:
Parametr | Opis | M/O* | Dopuszczalne wartości / wyrażenia regularne | Informacje dodatkowe |
---|---|---|---|---|
PARAM_TYPE | Typ kredytu | M | ^[a-zA-Z]{3}$ W tym przypadku stała wartość ‘RAT’. | Wartość stała ‘RAT’ |
PARAM_PROFILE | Identyfikator sklepu | M | ^PSP[0-9]{7}$ Np. PSP1234567 | Identyfikator Partnera nadany przy podpisywaniu umowy współpracy z Bankiem. |
POST_ATTR | Stała techniczna | M | Wartość stała ‘1’ | Wartość stała ‘1’ |
email.address | email Klienta | M | /^[a-z\d]+[\w\d.-]*@(?:[a-z\d]+[a-z\d-_]+\.){1,5}[a-z]{2,4}$/i | |
cart.orderNumber | numerZamowienia | M | ^.{0,30}$ | Jest wykorzystywany przy powrocie Klienta z wniosku kredytowego do sklepu. |
PARAM_CREDIT_AMOUNT | Kwota kredytu | M | ^\d{1,5}((\.|)\d{1,2})?$ | Separator dziesiętny w kwocie stanowi kropka, kwota powinna być zapisana bez spacji, np. „2550.00”. |
PARAM_AUTH | Rodzaj funkcji szyfrującej | M | ^[1-2]{1}$ | 1=SHA 256 2=MD5 |
PARAM_HASH | Skrót (hash) | M | ^[A-Fa-f0-9]{32,64}$ | Skrót wyliczony według podanego poniżej algorytmu - służy do uwierzytelnienia Partnera. Patrz: Wyliczanie skrótu do uwierzytelnienia. |
randomizer | Losowa wartość | M | ^.{0,36}$ | Wchodzi w skład skrótu |
offerId | identyfikator oferty kredytowej | O | ^\d{10}$ | Jeżeli pole nie zostanie wypełnione, Klient po otwarciu formularza wnioskowego będzie mógł wybrać dowolną ofertę kredytową spośród dostępnych dla danego sklepu. Jeżeli jednak decyzja o wyborze oferty kredytowej dla danego produktu/koszyka ma być po stronie sklepu, wówczas należy uzupełnić to pole, podając numer oferty specjalnej otrzymany od reprezentanta Banku. Należy pamiętać, że dostępne oferty mogą się zmienić. Informacje o nowych ofertach i ich numerach są przekazywane Partnerowi przez reprezentanta Banku. |
cart.itemName1 | Nazwa towaru | M | ^.{0,40}$ | |
cart.itemQty1 | Liczba sztuk towaru 1 | M | ^([1-9]|[1-9][0-9])$ | |
cart.itemPrice1 | Cena towaru 1 | M | ^\d{1,5}\.\d{1,2})?$ | Nie przyjmujemy towarów w cenie 0.00 W przypadku darmowej dostawy, darmowych gratisów i innych towarów z ceną 0PLN - nie ma potrzeby dodawania takich pozycji do wniosku kredytowego. |
cart.itemNameX cart.itemQtyX Cart.itemPriceX… | Dla każdego towaru w zamówienia należy wysłać zestaw parametrów jak powyżej (cart.itemName1, cart.itemName2… cart.itemNameX). X to liczba z zakresu 1-20. Suma wartości itemQty dla wszystkich towarów, nie może przekraczać 99. Przykład: itemQty1 = 20, itemQty2 = 30 20+30<99 |
* M - Mandatory, O - Optional
Koszty przesyłki, o ile występują, powinny zostać przekazane jako dodatkowy towar o nazwie „Przesyłka”.
W przypadku udzielenia rabatów rekomendujemy przekazanie ceny pojedynczych towarów już po uwzględnieniu rabatów. Opcjonalnie możliwe jest przekazanie pierwotnych cen towarów i dodatkowego towaru o nazwie „bonus” z ujemną ceną.
Bank zakłada, że Partner jest w stanie wywiązać się z umówionego z Klientem terminu dostarczenia towaru. Dlatego, w modelu podstawowym integracji, potwierdzenie rezerwacji towaru następuje automatycznie. Istnieje jednak możliwość włączenia ręcznego potwierdzenia rezerwacji towaru w systemie eSprzedaż. W tym celu należy zgłosić takie zapotrzebowanie do Opiekuna Handlowego.
3.3.2 Wyliczanie skrótu do uwierzytelnienia
Do wyliczenia skrótu PARAM_HASH należy zbudować ciąg tekstowy z poniższych parametrów, a następnie wyliczyć skrót funkcją SHA 256 (alternatywnie można użyć funkcji md5 - niezalecane). W przypadku kiedy któryś z parametrów jest pusty, pole pomijamy.
Skrót jest wyliczany z następujących wartości
Pozycja | Nazwa atrybutu | Źródło danych |
---|---|---|
1 | Identyfikator sklepu | PARAM_PROFILE |
2 | Typ produktu | PARAM_TYPE |
3 | Rodzaj walidacji | PARAM_AUTH |
4 | Sumaryczna cena towarów | creditInfo.creditAmount |
5 | Nazwa pierwszego towaru z koszyka | cart.itemName1 |
6 | Cena pierwszego towaru z koszyka | cart.itemPrice1 |
7 | Wartość losowa | randomizer |
8 | Hasło sklepu | parametryzacja sklepu -> hasło |
Przykład:
ID sklepu PSP1234567, funkcja SHA 256, kwota zamówienia 26,07 PLN, nazwa pierwszego towaru: "Szafa obrotowa" cena pierwszego towaru 1,07 PLN, randomizer: c7426394, hasło "haslo"
Ciąg tekstowy: PSP1234567RAT126.07Szafa obrotowa1.07c7426394haslo
Wyliczona wartość hasha to 56519295406871A913DEE6F4523A19268438AECB67F222F2F0F89A449EEED068
3.3.3 Przykład kodu
Formularz (HTML):
<form action="https://ewniosek.credit-agricole.pl/eWniosek/ewniosek.jsp" name="cartFormPost" method="post" target="_blank" class="pure-form pure-form-aligned"><input type="hidden" name="PARAM_TYPE" value="RAT"/><input type="hidden" name="PARAM_PROFILE" value="PSP1234567"/><input type="hidden" name="POST_ATTR" value="1"/><input type="hidden" name="email.address" value="example@credit-agricole.pl"/><input type="hidden" name="cart.orderNumber" value="zamowienie_234234"/><input type="hidden" name="PARAM_CREDIT_AMOUNT" value="3600.00"/><input type="hidden" name="PARAM_AUTH" value="1"/><input type="hidden" name="PARAM_HASH" value="00015b14c28c2951f6d628098ce6853e14300f1b7d6d985e18d508f9807f44d8"/><input type="hidden" name="randomizer" value="84j34rf30r2j3r23r3j"/><input type="hidden" name="offerId" value="847584"/><input type="hidden" name="cart.itemName1" value="Szafa obrotowa"/><input type="hidden" name="cart.itemQty1" value="1"/><input type="hidden" name="cart.itemPrice1" value="1200.00"/><input type="hidden" name="cart.itemName2" value="Drzwi rozkładane"/><input type="hidden" name="cart.itemQty2" value="1"/><input type="hidden" name="cart.itemPrice2" value="1200.00"/></form>
Wyliczanie hasha:
Ważne! Ze względu na wymaganie użycia jawnej postaci hasła do wyznaczenia skrótu, kod należy wykonać wyłącznie po stronie serwera. Do frontendu powinny zostać przekazane jedynie zmienne hash, randomizer oraz hashTypeNum.
PHP 7:
<?php $psp="PSP1234567"; $password='3#G4^haslo$4*9%'; $orderAmount=584.37; $firstProductName='Szafa obrotowa'; $firstProductPrice=584.37; $applType="RAT" $hashType='sha256'; $hashTypeNum=$hashType=='sha256'?'1':'2'; $randomizer=bin2hex(random_bytes(16)); $toHash=$psp.$applType.$hashTypeNum.number_format($orderAmount,2,'.','').$firstProductName.number_format($firstProductPrice,2,'.','').$randomizer.$password; $hash=hash($hashType,$toHash);?>
JavaScript (z wykorzystaniem Forge.js 0.7):
var forge = require('node-forge');var psp ="PSP1234567";var password ='3#G4^haslo$4*9%';var orderAmount =584.37;var firstProductName ='Szafa obrotowa';var firstProductPrice =584.37;var applType ="RAT"var hashType ='sha256';var hashTypeNum = hashType =='sha256'?'1':'2';var randomizer = forge.util.bytesToHex(forge.random.getBytesSync(16));var toHash = psp + applType + hashTypeNum + orderAmount.toFixed(2)+ firstProductName + firstProductPrice.toFixed(2)+ randomizer + password;var digest = forge.md[hashType].create(); digest.update(toHash);var hash = digest.digest().toHex();
3.4 Powrót na stronę sklepu z formularza wnioskowego
Partner powinien przygotować strony obsługujące powroty Klienta z eWniosku. Dotyczy to zarówno powrotu pozytywnego (strona, na którą zostanie przekierowany Klient sklepu po podpisaniu umowy o kredyt), jak i negatywnego (strona, na którą zostanie przekierowany Klient sklepu jeśli zrezygnuje z wypełniania wniosku ratalnego lub otrzyma odmowę udzielenia kredytu). Adresy stron powinny zostać przekazane do Banku po podpisaniu umowy o współpracy. Szczegóły opisane są w rozdziale 6, podrozdział 6.4 Co to są strony powrotne i jak je przygotować?
Przykład:
Do URL powrotnego zostanie doklejony parametr orderNumber, zawierający numer zamówienia ze sklepu internetowego:
http://sklep15.raty.intenso.pl/success/index.php?orderNumber=1234234
Strony powrotu powinny zawierać co najmniej następujące informacje:
- Dla powrotu pozytywnego:
Umowa wpłynęła do naszego systemu. Po zakończeniu weryfikacji potwierdzenie otrzymasz w kolejnym e-mailu. - Dla powrotu negatywnego:
Wniosek został odrzucony. Skontaktuj się ze sklepem i wybierz inną metodę płatności.
4. Integracja rozszerzona
4.1 Obiór informacji o zmianie statusu wniosku
W celu odbierania informacji o zmianach statusu wniosków kredytowych należy utworzyć webserwis po stronie Partnera oraz przekazać do Banku adres URL, który zostanie wykorzystany do komunikacji. Webserwis powinien być zgodny z ExchangeReceiver.wsdl.

Nazwa atrybutu | Znaczenie | Dopuszczalne wartości |
---|---|---|
applNumberCA | numer wniosku w systemie eSprzedaż | Max40Text ^.{0,40}$ |
applNumberExt | numer zamówienia nadany przez sklep | UnboundedText |
statusCA | identyfikator statusu np. S60 | Max4Text |
statusCAInfo | opis statusu, np. Wniosek rozpatrzony pozytywnie. | UnboundedText |
modificationDate | data zlecenia wysłania komunikatu. | ISODateTime |
4.1.1 Statusy wniosków
Kod | Opis |
---|---|
E01 | Wniosek anulowany. Posiadasz już jeden wniosek w trakcie rozpatrywania. |
S20 | Wniosek w trakcie realizacji - pozytywna decyzja kredytowa. Odbiór towaru i finalizacja wniosku w sklepie stacjonarnym. |
S30 | Wniosek rozpatrywany. Wydłużona decyzja kredytowa. |
S50 | Umowa przekazana Klientowi do podpisu. |
S55 | Wniosek rozpatrzony pozytywnie. Oczekiwanie na potwierdzenie rezerwacji towaru |
S56 | Pozytywna wstępna decyzja kredytowa. Można potwierdzać rezerwację towaru. |
S57 | Warunkowa decyzja kredytowa. |
S60 | Umowa podpisana przez Klienta, wniosek zatwierdzony. |
S70 | Wniosek rozpatrzony pozytywnie. Potwierdzono rezerwację towaru. |
S90 | Odmowa udzielenia kredytu lub Klient zrezygnował z wniosku. |
Szczegółowy opis wysyłki komunikatów znajduje się poniżej.
- Pierwsza informacja o zmianie statusu zostanie wysłana do Partnera po wysłaniu przez Klienta wniosku do decyzji kredytowej. Bank wyśle wówczas jeden z następujących statusów:
- E01 - wniosek odrzucony, gdyż Klient posiada już wniosek o kredyt ratalny w trakcie rozpatrywania
- S56 - wstępna pozytywna decyzja kredytowa; w tym momencie nie można jeszcze wysyłać towaru do Klienta. Należy jedynie zarezerwować towar na potrzeby obsługi transakcji. Trzeba mieć jednak na uwadze, że jest to moment w procesie przed przedstawieniem wstępnej umowy Klientowi do podpisu.
- S57 - warunkowa decyzja kredytowa (konieczna zmiana liczby rat lub wpłata własna); wówczas Klient podejmuje decyzję - albo zmienia parametry kredytu i ponownie wysyła wniosek do decyzji (wówczas po pozytywnej decyzji kredytowej wyślemy status S56), albo rezygnuje z kredytu ratalnego (S90).
- S90 - negatywna decyzja kredytowa, rezygnacja Klienta, rezygnacja Partnera, wniosek odrzucony.
- S20 - wstępna pozytywna decyzja kredytowa dla wniosków z odbiorem towarów w sklepie stacjonarnym; dalsze procesowanie wniosku w sklepie, proces zdalny zostaje zakończony.
- W momencie przekazania umowy do podpisania przez Klienta (a więc niezwłocznie po wydaniu wstępnej pozytywnej decyzji kredytowej) Bank wyśle status S50. Oznacza to, ze Klient jest w trakcie procesowania wniosku (identyfikacja, ew. załączenie potrzebnych dokumentów i zdalne podpisanie umowy kodem SMS).
- Po podpisaniu umowy przez Klienta następuje sprawdzenie, czy Partner potwierdził rezerwację towaru (o ile jest to wymagane) dla zamówienia (dostarczył dane o towarach, manualnie w systemie eSprzedaż lub automatycznie, jeżeli wybrano taki model integracji). W zależności od wyników weryfikacji zostaną wysłane statusy:
- S55 - oznaczający brak danych o towarach. Należy wówczas niezwłocznie je uzupełnić. Wniosek nie będzie kontynuowany do czasu uzupełnienia przez Partnera brakujących danych.
- S70 - oznaczający potwierdzenie, ze Bank otrzymał wszelkie niezbędne dane o towarach.
- Jeśli potwierdzono rezerwację towarów dla zamówienia, a Klient dopełnił wszelkich formalności wraz z podpisaniem umowy, Bank wyśle status S60, którego otrzymanie oznacza zatwierdzenie umowy kredytu, a tym samym możliwość wysyłki towaru do Klienta.
- W przypadku rezygnacji Klienta z wniosku na dowolnym etapie procesu, Bank wyśle status S90, oznaczający zamknięcie wniosku.
- W przypadku powiadomienia typu POST od Partnera oczekujemy w treści odpowiedzi „OK”. Jeśli po wywołaniu powiadomienia Bank nie otrzyma w odpowiedzi „OK”, to uznaje, że powiadomienie się nie udało i w rezultacie po jakimś czasie próbuje ponownie wysłać tę samą wiadomość. Próbę ponawiamy 20 razy.
4.1.2 WSDL/XSD
<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><wsdl:definitionsxmlns:impl="exchangeReceiver.webservice.lukas.itkontrakt.pl"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"name="ExchangeReceiver"targetNamespace="exchangeReceiver.webservice.lukas.itkontrakt.pl"><wsdl:types><xsd:schematargetNamespace="exchangeReceiver.webservice.lukas.itkontrakt.pl"></xsd:schema></wsdl:types><wsdl:messagename="applicationStatusModifiedRequest"><wsdl:partname="applNumberCA"type="xsd:string"/><wsdl:partname="applNumberExt"type="xsd:string"/><wsdl:partname="statusCA"type="xsd:string"/><wsdl:partname="statusCAInfo"type="xsd:string"/><wsdl:partname="modificationDate"type="xsd:dateTime"/></wsdl:message><wsdl:messagename="applicationStatusModifiedResponse"><wsdl:partname="result"type="xsd:string"/></wsdl:message><wsdl:portTypename="ExchangeReceiver"><wsdl:operationname="applicationStatusModified"><wsdl:inputmessage="impl:applicationStatusModifiedRequest"/></wsdl:operation></wsdl:portType><wsdl:bindingname="ExchangeReceiverSoapBinding"type="impl:ExchangeReceiver"><soap:bindingstyle="rpc"transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operationname="applicationStatusModified"><soap:operationsoapAction=""/><wsdl:input><soap:bodyencodingStyle="http://schemas.xmlsoap.org/soap/encoding/"namespace="http://exchangeReceiver.webservice.lukas.itkontrakt.pl"use="encoded"/></wsdl:input><wsdl:output><soap:bodyencodingStyle="http://schemas.xmlsoap.org/soap/encoding/"namespace="http://exchangeReceiver.webservice.lukas.itkontrakt.pl"use="encoded"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:servicename="ExchangeReceiverService"><wsdl:portbinding="impl:ExchangeReceiverSoapBinding"name="ExchangeReceiver"><soap:addresslocation="http://localhost:7001/ExchangeReceiver/services/ExchangeReceiver"/></wsdl:port></wsdl:service></wsdl:definitions>
4.2 Odpytywanie o status wniosku
Prócz odbierania informacji o statusach wniosku za pomocą ExchangeReceivera (rozdział powyżej), sklep ma możliwość aktywnego odpytania o status wniosku na każdym jego etapie. W tym celu należy skorzystać z usługi restowej getApplicationStatus (POST).
Zapytanie:
Nazwa atrybutu | Znaczenie | Dopuszczalne wartości |
---|---|---|
posId | Numer sklepu (PSP) | Regex ^PSP[0-9]{7}$ |
order id | Numer zamówienia ze sklepu internetowego | Regex ^.{0,30}$ |
applicationNo | Numer wniosku z systemu eSPrzedaż (CABP) | Regex ^\d{16}$ |
Odpowiedź (w formacie JSON):
Nazwa atrybutu | Znaczenie |
---|---|
applicationFound | Czy znaleziono wniosek (true/false). Nie znalezienie wniosku może oznaczać także, że dla wniosku nie wydano jeszcze żadnej decyzji kredytowej. |
statusDescription | Opis statusu |
exchangeStatusCode | Status wniosku (zgodnie z tabelą w rozdziale Statusy wniosków) |
posId | Numer sklepu (PSP) |
orderId | Numer zamówienia ze sklepu internetowego |
Przykład:
{"applicationFound":true,"statusDescription":"Wniosek rozpatrzony pozytywnie. Oczekiwanie na potwierdzenie rezerwacji towaru.","exchangeStatusCode":"S55","posId":" PSP1070000","orderId":"46600000"}
Statusy opisane są w rozdziale Statusy wniosków. W przypadku, kiedy zostanie zadane pytanie o status wniosku, zanim zostanie on wysłany do decyzji kredytowej, zostanie zwrócona informacja o wniosku, bez wypełnienia pola exchangeStatusCode, np.:
{"applicationFound":true,"statusDescription":"Wniosek w trakcie realizacji.","exchangeStatusCode":"","posId":"PSP1234567","orderId":"02233445566"}
5. Załączniki
5.1 Treść na strony sklepów
Kupuj wygodnie, wybierz raty Banku Credit Agricole.
Sprawdź jakie to proste:
- wybierz produkt który Cię interesuje
gdy wartość koszyka przekroczy 300 zł skorzystaj z rat Banku Credit Agricole, - wypełnij wniosek online i poczekaj na decyzję kredytową,
- przelej 1 zł i załącz zdjęcie dowodu osobistego,
- potwierdź zawarcie umowy kodem z SMS,
- umowę otrzymasz na swoją skrzynkę e-mail,
a sklep zacznie realizować Twoje zamówienie.
Poniżej zgodnie z art. 7 ust. 5 ustawy o kredycie konsumenckim Partner - pośrednik zobowiązany jest do podania nazw wszystkich pośredników, z którymi współpracuje. Proponowana treść:
(Nazwa Partnera) oświadcza, iż na podstawie zawartych umów z Credit Agricole Bank Polska S.A. jest upoważniony do wykonywania czynności faktycznych związanych z zawarciem/zmianą umów kredytu na zakup towarów i usług.
5.2 Logotypy i przyciski do zamieszczenia na stronie sklepu
5.2.1 Przyciski „RRSO 0%”
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/aprc_sm_comp.png | ![]() |
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/aprc_md_comp.png | ![]() |
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/aprc_lg_comp.png | ![]() |
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/aprc_md_full.png | ![]() |
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/aprc_lg_full.png | ![]() |
5.2.2 Przyciski „Oblicz ratę”
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/calc_sm_comp.png | ![]() |
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/calc_md_comp.png | ![]() |
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/calc_lg_comp.png | ![]() |
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/calc_md_full.png | ![]() |
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/calc_lg_full.png | ![]() |
5.2.3 Przyciski „Raty”
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/inst_md_comp.png | ![]() |
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/inst_lg_comp.png | ![]() |
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/inst_md_full.png | ![]() |
http://ewniosek.credit-agricole.pl/eWniosek/res/buttons/inst_lg_full.png | ![]() |
5.2.4 Przyciski „Wypełnij wniosek”
https://ewniosek.credit-agricole.pl/eWniosek/res/buttons/fill_md_comp.png | ![]() |
https://ewniosek.credit-agricole.pl/eWniosek/res/buttons/fill_md_full.png | ![]() |
6. FAQ
6.1 Jak kodować nazwy towarów w koszyku?
Tekst przesyłany w formularzu POST musi być kodowany, zgodnie ze standardami dla formularzy HTML: UTF8 i „URL Encoded Form”.
- Encoding: UTF-8
- Http-Method: POST
- Content-Type: application/x-www-form-urlencoded
Poniżej przykładowe nazwy towarów z zastosowaniem powyższego kodowania:
- nazwa towaru „---> Regulacja roweru” powinno zostać przesłana jako „---%3E%20Regulacja%20roweru”.
- nazwa towaru „ładna pralka!” powinna zostać przesłana jako „%C5%82adna%20pralka!”
- nazwa towaru „Rower MTB 29"” powinna zostać przesłana jako „Rower%20MTB%2029%22”.
6.2 Jak przesyłać koszty przesyłki?
Koszty przesyłki, o ile występują, powinny zostać przekazane jako dodatkowy towar o nazwie „Przesyłka”. Np.:
cart.itemName1=[MonitorGMASTERG2530HSU],
cart.itemPrice1=[599.00],
cart.itemQty1=[1],
cart.itemName2=[Przesylka],
cart.itemPrice2=[19.00],
cart.itemQty2=[1],
Jeżeli koszty przesyłki nie zostaną przesłane jako pozycja na liście towarów, nie będą kredytowane. Należy jednak pamiętać, aby w takiej sytuacji nie uwzględniać kosztów przesyłki w całkowitej kwocie zamówienia, gdyż eWniosek zgłosi błąd w sytuacji, gdy suma cen towarów będzie mniejsza niż całkowita kwota zamówienia.
6.3 Jak obsłużyć rabaty?
W przypadku udzielenia rabatów rekomendujemy przekazanie ceny pojedynczych towarów już po uwzględnieniu rabatów.
Np. Jeżeli towar1 kosztuje 500 zł, towar2 kosztuje 1000 zł i Klient wykorzystuje kod rabatowy na 10% zniżki, przesyłamy:
cart.itemName1=[towar1],
cart.itemPrice1=[450.00],
cart.itemQty1=[1],
cart.itemName2=[towar2],
cart.itemPrice2=[900.00],
cart.itemQty2=[1],
Opcjonalnie możliwe jest przekazanie pierwotnych cen towarów i dodatkowego towaru o nazwie „bonus” z ujemną ceną:
cart.itemName1=[towar1],
cart.itemPrice1=[500.00],
cart.itemQty1=[1],
cart.itemName2=[towar2],
cart.itemPrice2=[1000.00],
cart.itemQty2=[1],
cart.itemName3=[bonus],
cart.itemPrice3=[-150],
cart.itemQty3=[1],
6.4 Co to są strony powrotne i jak je przygotować?
Po podpisaniu umowy o kredyt ratalny Klientowi wyświetla się strona z podziękowaniami oraz z przyciskiem umożliwiającym powrót do sklepu internetowego, w którym dokonał zakupu.
Po naciśnięciu tego przycisku, eWniosek przekieruje Klienta z powrotem na stronę sklepu na adres, który został podany jako adres powrotu pozytywnego, po podpisaniu umowy o współpracy z Bankiem. Sklep powinien wyświetlić na niej tekst wskazany w rozdziale 3.4 Powrót na stronę sklepu z formularza wnioskowego:
Jako parametr wywołanego adresu będzie przekazany numer zamówienia ze sklepu.
Podobnie po decyzji negatywnej lub rezygnacji Klienta z wypełniania wniosku, w formularzu wnioskowym zostanie wyświetlony następujący komunikat:
Po kliknięciu na przycisk „Powrót do sklepu” Klient powinien zostać przeniesiony do sklepu na stronę powrotu negatywnego. Sklep powinien wyświetlić na niej tekst wskazany w rozdziale 3.4 Powrót na stronę sklepu z formularza wnioskowego:
Jako parametr wywołanego adresu będzie przekazany numer zamówienia ze sklepu. Dzięki temu po stronie eCommerce będzie możliwe oprogramowanie powrotu do zamówienia i wyboru innej metody płatności.
Proponowane treści do wyświetlenia na stronach powrotnych zamieszczone są w rozdziale 3.4 Powrót na stronę sklepu z formularza wnioskowego.
6.5 Co to jest URL źródłowy i do czego służy?
Po podpisaniu umowy z Bankiem i nadaniu unikalnego numeru PSP, sklep podaje Bankowi tzw. URL źródłowy (lub listę URLi źródłowych). Są to adresy domen sklepów internetowych.
Po stronie Banku te adresy są zarejestrowane i weryfikowane podczas otrzymywania wniosków ze sklepów internetowych. Wnioski z adresów URL niezarejestrowanych w Banku nie będą przyjmowane.