Karta w pliku bez zakupu oferuje możliwość bezpiecznego przechowywania danych karty płatniczej bez konieczności dokonywania natychmiastowego zakupu.
Dzięki tej weryfikacji posiadacza karty (ACV) możesz wygodnie zapisać informacje o karcie do wykorzystania w przyszłości, umożliwiając w razie potrzeby szybkie transakcje. Funkcja ta usprawnia proces dodawania kart i zarządzania nimi, zapewniając Ci elastyczność i wygodę przy zachowaniu najwyższych standardów bezpieczeństwa.
Krok 1: Utworzenie tokena
Działanie 1: Utwórz zamówienie
Działanie 2: Wygeneruj transakcję
Działanie 3: Wykonaj polecenie Uzyskaj status
Aby rozpocząć korzystanie z tej funkcji, należy najpierw utworzyć token podczas tworzenia zamówienia.
Ten etap tworzenia tokena zapewnia ochronę poufnych informacji, umożliwiając jednocześnie płynne i szybkie transakcje.
Działanie 1: Utwórz zamówienie
Tworząc zamówienie, musisz uwzględnić elementy tokenizacji, jak pokazano poniżej. Należy pamiętać, że proces weryfikacji posiadacza karty konta ma zastosowanie wyłącznie w przypadku transakcji z typem płatności „AUTH”. Dodatkowo upewnij się, że wartość kwoty jest ustawiona na 0.
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments
Nagłówki żądań:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6I (...)
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json
Element Danych | Typ | Stan | Opis |
---|---|---|---|
tokenizacja | Tokenizacja | Obowiązkowy | Tokeny płatności klientów. Tokeny te są dostarczane na koniec udanej tokenizacji. Obecny tylko do celów tokenizacji. |
tokenisationRequest | TokenisationRequest | Obowiązkowy | Pole udostępniane w żądaniu realizacji transakcji w celu wykonania tokenizacji karty. |
tokeniseCard | Wartość logiczna | Obowiązkowy | Wskazuje, czy zażądano tokenizacji karty. |
Przykład żądania:
{
"merchant": {
"terminalId": {{TerminalID}},
"channel": "web",
"merchantTransactionId": "1283798132" // Id mocked
},
"transaction": {
"transactionTimestamp": "{{trxDatetime}}",
"description": "Transaction for order number 4908 terminalId 100886",
"moto": false,
"paymentType": "AUTH",
"amount": {
"value": 0,
"currency": "PLN"
},
"paymentMethod": [
"CARD"
]
},
"tokenisation": {
"tokenisationRequest": {
"tokeniseCard": true
}
}
}
Działanie 2: Wygeneruj transakcję
Należy pamiętać, że poniższe żądanie wymaga nagłówka autoryzacji z transakcjąSignature zwróconą z operacji realizacji transakcji i parametrem createToken ustawionym na wartość true.
W tym żądaniu token okaziciela zostaje zastąpiony transakcją odpowiedzi na kasę transactionSignature.
Na tym etapie konieczne jest dodanie do zakupu następujących elementów:
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/card/purchase
Nagłówki żądań:
Authorisation: Digest {transactionSignature}
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json
Element Danych | Typ | Stan | Opis |
---|---|---|---|
cardInfo | Informacje o karcie | Obowiązkowy | Obiekt definiujący pola żądania operacji płatniczej. |
PAN | Ciąg | Obowiązkowy | Podstawowy numer konta (numer karty kredytowej). |
secureCode | Ciąg | Opcjonalny | Kod zabezpieczający (CVV/CVC) powiązany z kartą kredytową. |
validationDate | ISODateTime | Obowiązkowy | Data ważności karty kredytowej. |
cardholderName | Ciąg | Obowiązkowy | Imię i nazwisko posiadacza karty widniejące na karcie kredytowej. |
createToken | Wartość logiczna | Obowiązkowy | Flaga wskazująca, czy utworzyć token do wykorzystania w przyszłości, czy nie (prawda/fałsz). |
Żądanie powinno zawierać:
"cardInfo": {
"PAN": "{{MCRegularCardNum}}",
"secureCode": "{{MCRegularCardCVV}}",
"validationDate": "{{MCRegularCardExpiry}}",
"cardholderName": "TKN {{trxDatetime}}",
"createToken": true
}
Powinieneś otrzymać pomyślną odpowiedź techniczną zawierającą status HTTP-200, returnStatus.statusCode=”000″ oraz, jeśli tokenizacja się powiedzie, wartość tokena, datę ważności i zamaskowane dane karty.
Sprzedawca musi zapisać wartość tokena, datę ważności i zamaskowane dane karty powiązane z danymi osobowymi klienta (na przykład powiązane z danymi logowania użytkownika).
Działanie 3: Wykonaj polecenie Uzyskaj status
Status swojej transakcji możesz sprawdzić wysyłając żądanie GET.
Upewnij się, że nagłówek HTTP Authorization jest ustawiony na ten sam token okaziciela, który został użyty w początkowym zleceniu płatniczym.
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/status
Nagłówki żądań:
Authorization: ‘Bearer <AuthToken>’
X-IBM-Client-Id: ‘<ClientId>’
Pomyślna odpowiedź techniczna składa się ze statusu HTTP-200 i returnStatus.statusCode=”000″.
Oto kilka przykładów możliwych kodów wyników:
Kod wyniku | statusMsg | Opis | Działanie |
---|---|---|---|
HTTP-200 | Powodzenie | Odpowiedź pozytywna. | nie dotyczy |
HTTP-400 | Zła prośba | Ładunek JSON nie jest zgodny z definicją API lub brakuje niektórych obowiązkowych nagłówków HTTP. | Sprawdź w API Market poprawną składnię. |
HTTP-401 | Nieautoryzowany | W przypadku Autoryzacji token okaziciela jest nieprawidłowy/wygasł lub nie jest powiązany z używanym terminalem. | Sprawdź w SIBS Backoffice w sekcji Poświadczenia, czy token jest ważny i w razie potrzeby utwórz nowy. |
HTTP-403 | Zabroniony | Identyfikator klienta ustawiony w nagłówku HTTP X-IBM-Client-Id jest nieprawidłowy lub nie posiada ważnej subskrypcji interfejsu API. | Sprawdź w SIBS Backoffice w aplikacji SPG APP 2.0, czy ClientID jest poprawny. Jeśli problem będzie się powtarzał, skontaktuj się z pomocą techniczną SIBS Gateway w celu zresetowania ClientID. |
HTTP-405 | Niedozwolona metoda | Zastosowana metoda HTTP nie jest zgodna z żadną dostępną definicją API. | Sprawdź w API Market poprawną metodę HTTP. |
HTTP-429 | Zbyt dużo próśb | Przekroczono limit szybkości wywołań API. | Informacje na temat limitów stawek mających zastosowanie do API można znaleźć w API Market. |
HTTP-500 | Wewnętrzny błąd serwera | Wywołanie API nie powiodło się… i najprawdopodobniej jest to po naszej stronie. | Powinieneś ponowić operację, a jeśli problem będzie się powtarzał, skontaktuj się z pomocą techniczną SIBS Gateway w celu uzyskania pomocy. |
HTTP-503 | serwis niedostępny | Wywołanie API nie jest obecnie dostępne. Zwykle jesteśmy zawsze aktywni, ale podczas zaplanowanej konserwacji mogą wystąpić krótkie problemy z dostępnością. | Powinieneś poczekać i spróbować ponownie później. |
Krok 2: Użycie tokena
Działanie 1: Utwórz zamówienie
Działanie 2: Wygeneruj transakcję
Działanie 3: Wykonaj polecenie Uzyskaj status
Dla powracającego klienta można udostępnić opcję płatności wcześniej tokenizowaną kartą powiązaną z jego kontem w sklepie sprzedawcy, przy użyciu metody AUTH lub PURS.
Proces wykorzystania tokena można zilustrować w następujących etapach:
- Sprzedawca przedstawia klientowi listę dostępnych kart, wyświetlając zamaskowany PAN (częściowy numer konta) i datę ważności. Informacje te są dostarczane przez bramę dostawcy usług (SPG) podczas przepływu tokenizacji.
- Klient identyfikuje żądaną kartę z listy i wprowadza jej CVV (wartość weryfikacyjną karty).
- Sprzedawca przystępuje do realizacji transakcji i płatności, wykorzystując do transakcji wybraną kartę tokenizowaną.
Zapewnia to płynną realizację transakcji poprzez bezpieczne wykorzystanie przechowywanego tokena do przetwarzania płatności.
Działanie 1: Utwórz zamówienie
Proces wykorzystania tokena rozpoczyna się w momencie rozpoczęcia tworzenia zamówienia, włączając dodatkowy element tokena do istniejącej wiadomości treści zamówienia.
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments
Nagłówki żądań:
Autorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6I (...)
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json
Element Danych | Typ | Stan | Opis |
---|---|---|---|
tokenizacja | Tokenizacja | Obowiązkowy | Tokeny płatności klientów. Tokeny te są dostarczane na koniec udanej tokenizacji. Obecny tylko do celów tokenizacji. |
paymentTokens | Tokeny płatnicze | Obowiązkowy | Krotka wartości tokenu. |
tokenType | Ciąg | Obowiązkowy | Typ tokena. Możliwe wartości to ( „Karta”, „E-mail”, „Telefon komórkowy” ) |
wartość | Ciąg | Obowiązkowy | Wartość tokenu. |
Przykładowe żądanie powinno zawierać następujący obiekt „tokenizacji”, w którym będzie zawarty token płatności:
{
"merchant": {
"terminalId": 24,
"channel": "web",
"merchantTransactionId": "Order Id: bwatdhbew2",
"transactionDescription": "transaction with 3DS",
"shopURL": "https://mytest.e-shop.pl/"
},
"transaction": {
"transactionTimestamp": "2023-05-23T08:06:07.231Z",
"description": "transaction statement description",
"moto": false,
"paymentType": "AUTH",
"amount": {
"value": 50.5,
"currency": "PLN"
},
"paymentMethod": [
"CARD"
]
},
"tokenisation": {
"paymentTokens": [
{
"tokenType": "Card",
"value": "{{tokenValue}}"
}
]
}
}
Działanie 2: Wygeneruj transakcję
Następnie należy wygenerować transakcję poprzez dodanie elementu tokeninfo.
Należy pamiętać, że poniższe żądanie wymaga nagłówka autoryzacji z podpisem transakcji zwróconym z operacji realizacji transakcji.
W tym żądaniu token okaziciela zostaje zastąpiony transakcją odpowiedzi na kasę transactionSignature.
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/token/purchase
Nagłówki żądań:
Authorisation: Digest {transactionSignature}
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json
Element Danych | Typ | Stan | Opis |
---|---|---|---|
tokenInfo | TokenInfo | Obowiązkowy | Informacje o tokenie. |
wartość | Ciąg | Obowiązkowy | Wartość tokenu. |
secureCode | Ciąg | Opcjonalny | Bezpieczny kod tokenu. |
tokenType | Ciąg | Obowiązkowy | Typ tokena. Możliwe wartości to ( „Karta”, „Email„, „Telefon komórkowy” ). |
Przykład żądania powinien zawierać następujący obiekt „tokenInfo” zawierający niezbędne informacje o tokenie:
"tokenInfo": {
"value": "{{tokenValue}}",
"secureCode": "536",
"tokenType": "Card"
}
Działanie 3: Wykonaj polecenie Uzyskaj status
Status swojej transakcji możesz sprawdzić wysyłając żądanie GET.
Upewnij się, że nagłówek HTTP Authorization jest ustawiony na ten sam token okaziciela, który został użyty w początkowym zleceniu płatniczym.
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/status
Nagłówki żądań:
Authorization: ‘Bearer <AuthToken>’
X-IBM-Client-Id: ‘<ClientId>’
Pomyślna odpowiedź techniczna składa się ze statusu HTTP-200 i returnStatus.statusCode=”000″.
Kod wyniku | statusMsg | Opis | Działanie |
---|---|---|---|
HTTP-200 | Powodzenie | Odpowiedź pozytywna. | nie dotyczy |
HTTP-400 | Zła prośba | Ładunek JSON nie jest zgodny z definicją API lub brakuje niektórych obowiązkowych nagłówków HTTP. | Sprawdź w API Market poprawną składnię. |
HTTP-401 | Nieautoryzowany | W przypadku Autoryzacji token okaziciela jest nieprawidłowy/wygasł lub nie jest powiązany z używanym terminalem. | Sprawdź w SIBS Backoffice w sekcji Poświadczenia, czy token jest ważny i w razie potrzeby utwórz nowy. |
HTTP-403 | Zabroniony | Identyfikator klienta ustawiony w nagłówku HTTP X-IBM-Client-Id jest nieprawidłowy lub nie posiada ważnej subskrypcji interfejsu API. | Sprawdź w SIBS Backoffice w aplikacji SPG APP 2.0, czy ClientID jest poprawny. Jeśli problem będzie się powtarzał, skontaktuj się z pomocą techniczną SIBS Gateway w celu zresetowania ClientID. |
HTTP-405 | Niedozwolona metoda | Zastosowana metoda HTTP nie jest zgodna z żadną dostępną definicją API. | Sprawdź w API Market poprawną metodę HTTP. |
HTTP-429 | Zbyt dużo próśb | Przekroczono limit szybkości wywołań API. | Informacje na temat limitów stawek mających zastosowanie do API można znaleźć w API Market. |
HTTP-500 | Wewnętrzny błąd serwera | Wywołanie API nie powiodło się… i najprawdopodobniej jest to po naszej stronie. | Powinieneś ponowić operację, a jeśli problem będzie się powtarzał, skontaktuj się z pomocą techniczną SIBS Gateway w celu uzyskania pomocy. |
HTTP-503 | serwis niedostępny | Wywołanie API nie jest obecnie dostępne. Zwykle jesteśmy zawsze aktywni, ale podczas zaplanowanej konserwacji mogą wystąpić krótkie problemy z dostępnością. | Powinieneś poczekać i spróbować ponownie później. |