Skip to content

Pay By Link

Pay By Link to znana w Polsce metoda płatności, która umożliwia klientom płacenie za zakupy w Internecie za pomocą konta bankowego. SIBS Payment Gateway zapewnia interfejs API umożliwiający integrację z usługami Pay By Link poprzez wzorzec Web Redirect.

Interfejs API umożliwia przedstawienie klientowi płatności ze wszystkimi adresowalnymi podmiotami. Gdy klient wybierze podmiot, którego chce użyć, wystarczy wywołać API, które poda Ci odpowiedni adres URL przekierowania.

Opcja płatnościKategoriaKrajeWalutyFunkcjeIntegracje
PayByLinkBankowość onlineCzechy, Francja, Niemcy,
Węgry, Portugalia, Polska, Rumunia, Słowacja, Słowenia
CZK, EUR, HUF, PLN, RONAnulowanieAPI
Formularz Płatności
Wtyczka Prestashop
Wtyczka WooCommerce
Wtyczka Magento

Jak to działa

Zanim zaczniesz, powinieneś utworzyć żądanie zamówienia z PayByLink jako metodą płatności.

Następnie należy wykonać następujące kroki:

Krok 1: Uzyskaj listę wszystkich podmiotów PayByLink i przedstaw je klientowi
Krok 2: Wywołaj API, aby uzyskać ważny Link do płatności dla wybranego podmiotu
Krok 3: Uzyskaj status płatności, aby poznać wynik płatności

Krok 1: Uzyskaj listę podmiotów PayByLink i przedstaw je klientowi

Możesz sprawdzić listę wszystkich podmiotów PayByLink składających żądanie GET.

Należy pamiętać, że żądanie wymaga nagłówka autoryzacji ze znakiem mark, transactionsSignature zwróconym z operacji realizacji transakcji.

Sprawdź poniżej jak uzyskać listę kanałów płatności:

OperacjaTyp operacjiMetoda działania i punkt końcowyOpis operacjiObserwacje
Uzyskaj listę kanałów płatnościPołączenie synchronicznePOST https://{{APIHost}}/api/v1/paymentChannelsWykonaj transakcję i zgłoś Listę kanałów płatności.Content-Type: application/x-www-form-urlencoded
LokalizacjaElement danychTypStanOpis
Nagłówek HTTPAutoryzacjaCiągOpcjonalnyPrzykład: Nośnik *accessToken*
Token dostępu użytkownika. Musi to być schemat na okaziciela. Nie dotyczy płatności hybrydowych.
Nagłówek/autoryzacja HTTPIdentyfikator klientaKlucz APIObowiązkowyIdentyfikator klienta projektu. Należy podać w nagłówku każdego żądania.
Nagłówek/autoryzacja HTTPClient-SecretKlucz APIObowiązkowySekret klienta projektu. Należy podać w nagłówku każdego żądania.
Parametr zapytaniacountryCodeCiągOpcjonalnyKod kraju, według którego chcesz uzyskać listę banków (ISO 3166-1 alfa-2).
Dostępne kody krajów można uzyskać z punktu końcowego /auth/countries.

Oczekiwana odpowiedź:

Pomyślna odpowiedź techniczna składa się ze statusu HTTP-200 i returnStatus.statusCode=”000″.

W przypadku pomyślnych odpowiedzi otrzymasz następujące dodatkowe dane:

Payment Channels List (Mandatory)

"paymentChannels": [
 {"gatewayId": "PBL Gateway ID","gatewayName": "Name to present to customer","gatewayType": "PBL","bankName": "technical bank name","iconURL" : "https://paybylink.bank.pl/grafika/pbl.gif"}
]

Regulations (Optional)

Tutaj znajdziesz szczegółowe informacje, takie jak nazwa_nabywcy, logo_nabywcy, logo marki, link do Regulaminu:

"paymentChannels": [
 {"gatewayId": "PBL Gateway ID","gatewayName": "Name to present to customer","gatewayType": "PBL","bankName": "technical bank name","iconURL" : "https://paybylink.bank.pl/grafika/pbl.gif"}
]

W przypadku otrzymania wykazu regulaminów należy je pokazać Klientowi wraz z hiperłączem do adresu URL.

Krok 2: Wywołaj API, aby uzyskać ważny Link do płatności dla wybranego podmiotu

Pamiętaj, że poniższe żądanie wymaga nagłówka autoryzacji z podpisem transakcji zwróconym z operacji realizacji transakcji i powinieneś uwzględnić te dwa elementy poniżej:

Element danychTypStanOpis
gatewayId CiągObowiązkowyIdentyfikator kanału płatności dla kanału, którego klient zamierza użyć do dokonania płatności.
userAcceptanceIndicatorWartość logicznaObowiązkowyWskazuje, czy użytkownik zaakceptował Regulamin w celu kontynuowania płatności.

W tym żądaniu token okaziciela zostaje zastąpiony odpowiedzią kasy „transactionSignature”.

Oto przykład:

Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v2/payments/{transactionID}/pbl/payment-link
Nagłówki żądań:
Authorization: Digest {transactionSignature}
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json
{
 "info": {
 "deviceInfo": {
 "browserAcceptHeader": "application/json, text/plain, */*",
 "browserJavaEnabled": "false",
 "browserLanguage": "en",
 "browserColorDepth": "24",
 "browserScreenHeight": "1080",
 "browserScreenWidth": "1920",
 "browserTZ": "-60",
 "browserUserAgent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
 "geoLocalization": "Lat: 38.7350528 | Long: -9.2143616",
 "systemFamily": "Windows",
 "systemVersion": "Windows",
 "deviceID": "498bfd4c3a3645b38667a7037b616c18",
 "applicationName": "Chrome",
 "applicationVersion": "106"
 },
 "customerInfo": [
 {
 "key": "customerName",
 "value": "DIOGO M"
 },
 {
 "key": "customerEmail",
 "value": "{{CustomerEmail}}"
 }
 ]
 },
 "gatewayId": "PL_TEST",
 "userAcceptanceIndicator": true,
 "merchant": {
 "merchantURL": "https://egadget2.azurewebsites.net/#/returns?id=4qm1q5p6eTgzREWYHRPA"
 }
}

Po zakończeniu operacji powinieneś otrzymać status oczekującej płatności.

Użytkownik zostanie przekierowany do środowiska PBL w celu potwierdzenia płatności, a następnie z powrotem na adres URL sprzedawcy.

{
 "transactionID": "UEBfud1Xg5XZwwfCWWR8",
 "execution": {
 "startTime": "2023-06-20T09:24:25.504Z",
 "endTime": "2023-06-20T09:24:28.415Z"
 },
 "paymentStatus": "Pending",
 "returnStatus": {
 "statusCode": "000",
 "statusMsg": "Success",
 "statusDescription": "Success"
 },
 "redirectURL": "https://psd2.kevin.eu/login/1c5c539b-3e48-4971-bed5-4172a58601a9?redirectPreferred=true&bankId=KEVIN_PL_TEST&lang=PL"
}

Krok 3: Uzyskaj status płatności, aby poznać wynik płatności

Po całkowitym przetworzeniu płatności możesz sprawdzić status swojej transakcji, wysyłając żądanie GET.

Nagłówek HTTP autoryzacji jest ustawiony na token okaziciela, tak jak był używany podczas początkowej realizacji transakcji.

OperacjaTyp operacjiMetoda działania i punkt końcowyOpis operacji
Uzyskaj status płatnościPołączenie synchroniczneGET
/api/v1/payment/{transactionId}/status
Uzyskaj status płatności
Body:
LokalizacjaElement danychTypStanOpis
Parametr zapytaniatransactionIdCiągObowiązkowyIdentyfikacja płatności.
Przykład: 9078fbb0-fced-4606-95c7-4989f06ee253
Nagłówek HTTPAutoryzacjaCiągOpcjonalnyPrzykład: Nośnik *accessToken*
Token dostępu użytkownika. Musi to być schemat na okaziciela. Nie dotyczy płatności hybrydowych.
Nagłówek/autoryzacja HTTPIdentyfikator klientaKlucz APIObowiązkowyIdentyfikator klienta projektu. Należy podać w nagłówku każdego żądania.
Nagłówek/autoryzacja HTTPClient-SecretKlucz APIObowiązkowySekret klienta projektu. Należy podać w nagłówku każdego żądania.
Oczekiwana odpowiedź pomyślna:
{
 "merchant": {
 "terminalId": "101778",
 "merchantTransactionId": "Order Id: r7cxvi0saj"
 },
 "transactionID": "J120XDzUq2u4UwVDSZBt",
 "amount": {
 "currency": "PLN",
 "value": "50.50"
 },
 "paymentType": "PURS",
 "paymentStatus": "Success",
 "paymentMethod": "PBLKV",
 "execution": {
 "endTime": "2023-06-20T10:07:27.771Z",
 "startTime": "2023-06-20T10:07:27.701Z"
 },
 "returnStatus": {
 "statusCode": "000",
 "statusMsg": "Success",
 "statusDescription": "Success"
 }
}

Pomyślna odpowiedź techniczna składa się ze statusu HTTP-200 i wartości returnStatus.statusCode=”000″.

Oto kilka przykładów możliwych kodów wyników:

Result CodestatusMsgDescriptionAction
HTTP-200SuccessSuccess responseN/A
HTTP-400Bad RequestThe JSON payload is not matching the API definition or some mandatory HTTP headers are missing.Please check in API Market for the correct syntax.
HTTP-401UnauthorizedOn the Authorization, Bearer token is invalid/expired or not associated with the Terminal used.Please check in SIBS Backoffice under the Credentials if the token is valid and create a new one if needed.
HTTP-403ForbiddenThe ClientID set on the X-IBM-Client-Id HTTP header is not valid or does not possess a valid subscription to the API.Please check in SIBS Backoffice under the SPG APP 2.0 if the ClientID is correct. If the problem persists contact SIBS Gateway support for a ClientID reset.
HTTP-405Method Not AllowedThe HTTP Method used is not matching any of the API definitions available.Please check in API Market for the correct HTTP Method.
HTTP-429Too Many RequestsThe API calls rate limit has been exceeded.Please check in API Market for information on the rate limits that apply to the API.
HTTP-500Internal Server ErrorThe API call has failed… and its most likely on our side.You should retry the operation, and if the problem persists contact SIBS Gateway support for assistance.
HTTP-503Service UnavailableThe API call is not currently available. Usually we are always on, but short availability issues may occur during scheduled maintenance.You should wait and try again later.