# Tokenizacja kart klienta Dostępna jest tokenizacja kart klienta w oparciu o wewnętrzne mechanizmy bramki ecommmerce (COF) lub tokenizacja w oparciu o usługi organizacji płatniczej Visa VTS/Mastercard SCOF (NETWORK). Proces może być kilkuetapowy, w związku z czym cały flow tokenizacji spina identyfikator o nazwie tokenizerId. Endpoint: POST /v1/ecommerce/tokenizer Version: 2.1.15 Security: bearerAuth ## Request fields (application/jose): - `channel` (string, required) Kanał operacji Enum: "PAYWALL", "MOBILE", "WEBAPI", "EBOK", "CSS" - `instrument` (object) Szczegółowe dane requestu - `instrument.type` (string, required) Typ instrumentu płatniczego Enum: "COF", "CARD", "BLIK", "BLIK_CODE", "BLIK_UID", "BLIK_PAYID", "GPAY", "APAY", "PBL", "SCOF", "VTS", "C2P_MC_UNIFIED", "C2P_VISA_UNIFIED", "EXT_COF" - `instrument.instrumentNo` (string,null) Nr instrumentu płatniczego (np. tokenu lub karty) (wymagany dla type = CARD/COF) - `instrument.encInstrumentNo` (string,null) Zaszyfrowany nr instrumentu płatniczego - `instrument.instrumentRef` (string,null) Identyfikator instrumentu płatnicznego w zewnętrznym systemie (wymagany dla type = SCOF/VTS) - `instrument.token` (string,null) Dane tokenu zwracane przez API APAY/GPAY (base64 encoded) (wymagany dla type = APAY/GPAY) - `instrument.expDate` (string,null) Data ważności (Format: YYYYMM) (wymagany dla type = CARD) Example: "202101" - `instrument.encExpDate` (string,null) Zaszyfrowana data ważności - `instrument.cvv` (string,null) Kod zabezpieczający (wymagany dla type = CARD) - `instrument.encCvv` (string,null) Zaszyfrowany kod zabezpieczający - `instrument.code` (string,null) Jednorazowy kod płatności BLIK (wymagany dla type = BLIK_CODE) - `instrument.alias` (string,null) Alias użytkownika BLIK dla płatności OneClick lub cyklicznych (wymagany dla type = BLIK_UID/BLIK_PAYID) - `instrument.app` (string,null) Identyfikator konta mobilnego BLIK (w przypadku niejednoznaczności aliasu) - `instrument.provider` (string,null) Identyfikator pośrednika płatności (może być wybrany automatycznie na podstawie konfiguracji merchanta) Enum: "BM", "PA", "PU" - `instrument.bank` (string,null) Nazwa banku (wymagany dla type = PBL) - `instrument.bankId` (integer,null) Identyfikator banku (w systemie operatora PBL) (wymagany dla type = PBL) - `instrument.payload` (string,null) Payload otrzymany z SDK na potrzeby płatności Click2Pay - `instrument.cardMask` (string,null) Maska karty otrzymana z PayU na potrzeby płatności tokenem kartowym - `merchant` (object,null) Dane merchanta pośredniczącego (operator aplikacji mobilnej) - `merchant.merchantId` (string, required) Identyfikator merchanta nadany przez operatora płatności (MID) - `merchant.name` (string,null) Nazwa merchanta - `merchant.mcc` (string,null) MCC - `merchant.url` (string,null) Adres URL sklepu - `merchant.redirectURL` (string,null) Adres URL przekierowania - `merchant.terminalId` (string,null) Id terminala - `merchant.location` (object,null) Adres merchanta - `merchant.location.street` (string, required) Adres (ulica i numer domu) - `merchant.location.postal` (string, required) Kod pocztowy - `merchant.location.state` (string) Województwo (kod ISO 3166-2 np. 12 dla województwa małopolskiego Example: "12" - `merchant.location.city` (string, required) Miasto - `merchant.location.country` (string, required) Kraj (kod ISO np. PL) Example: "POL" - `merchant.location.countryOfOrigin` (string) Kraj pochodzenia (kod ISO np. PL) Example: "POL" - `merchant.taxId` (string,null) Nip - `merchant.acsNotificationURL` (string,null) Adres publicznego endpointu do odebrania notyfikacji CRes z ACS (jezeli obslugiwany przez merchanta) - `merchant.amexMerchantId` (string,null) Id merchanta dla płatności AMEX - `merchant.dpaId` (string,null) - `merchant.organizationId` (string,null) - `merchant.merchantName` (string,null) Nazwa merchanta - `customer` (object) Dane właściciela karty - `customer.email` (string) Adres email klienta - `customer.extCustomerId` (string,null) Identyfikator klienta w systemie merchanta - `customer.name` (string,null) Imię i nazwisko klienta - `customer.billing` (object,null) Adres rozliczeniowy klienta (wymagany dla method = CARD) - `customer.billing.state` (string) Wojewodztwo Example: "mazowieckie" - `customer.risk` (object,null) Dodatkowe parametry analizy ryzyka na potrzeby 3DS - `customer.risk.scaPreference` (string) Preferencje dotyczące silnego uwierzytelnienia klienta (SCA) Enum: "RISK_VERIFIED", "DATA_SHARE", "USE_WL", "SCA_PERFORMED", "PROMPT_WL", "LOW_VALUE", "LOW_RISK" - `customer.risk.accountAuthDate` (string,null) Data i godzina (UTC) uwierzytelnienia klienta (Format: yyyy-MM-dd'T'HH:mm:ss.SSSX) (wymagane dla scaPreference = LOW_RISK) Example: "2022-02-15T18:35:24.00Z" - `customer.risk.accountCreateDate` (string,null) Data zalożenia konta u merchanta/agenta (Format: yyyy-MM-dd) (wymagane dla scaPreference = LOW_RISK) Example: "2022-02-15" - `customer.risk.accountChangeDate` (string,null) Data ostatniej zmiany danych konta (Format: yyyy-MM-dd) (wymagane dla scaPreference = LOW_RISK) Example: "2022-02-15" - `customer.risk.accountActiveDate` (string,null) Data od kiedy posiadacz karty aktywował płatności na koncie merchanta/agenta (Format: yyyy-MM-dd) (wymagane dla scaPreference = LOW_RISK) Example: "2022-02-15" - `customer.risk.passChangeDate` (string,null) Data ostatniej zmiany hasła do konta (Format: yyyy-MM-dd) (wymagane dla scaPreference = LOW_RISK) Example: "2022-02-15" - `customer.risk.purchaseCount6M` (integer,null) Liczba zakupów wykonana za pomoca konta w ciągu ostatnich sześciu miesiecy (wymagane dla scaPreference = LOW_RISK) - `customer.risk.tokenizationCountDay` (integer,null) Liczba prób dodania kart do konta z ostatnich 24 godzin (wymagane dla scaPreference = LOW_RISK) - `customer.risk.shipAddressDate` (string,null) Data pierwszego użycia adresu, który został wybrany dla aktualnej transakcji (Format: yyyy-MM-dd) (wymagane dla scaPreference = LOW_RISK) Example: "2022-02-15" - `customer.risk.shipNameIndicator` (boolean,null) Wskazuje czy nazwa posiadacza karty zdefiniowana na koncie operatora jest identyczna jak ta w nazwie do wysyłki bieżacej transakcji - `customer.risk.suspiciousActivity` (boolean,null) Wskazuje czy kiedykolwiek zachowanie posiadacza karty zostało potraktowane jako podejrzane (wymagane dla scaPreference = LOW_RISK) - `customer.risk.authenticatedTransaction` (boolean,null) Wskazuje czy transakcja była dodatkowo uwierzytelniona - `customer.risk.transactionSCountDay` (integer,null) Liczba transakcji udanych z ostatnich 24 godzin - `customer.risk.transactionUCountDay` (integer,null) Liczba transakcji nieudanych z ostatnich 24 godzin - `customer.risk.transactionSCountYear` (integer,null) Liczba transakcji udanych z ostatniego roku - `customer.risk.transactionUCountYear` (integer,null) Liczba transakcji nieudanych z ostatniego roku - `customer.risk.transactionCountDay` (integer,null) Liczba transakcji udanych oraz nieudanych z ostatnich 24 godzin - `customer.risk.transactionCountYear` (integer,null) Liczba transakcji udanych oraz nieudanych z ostatniego roku - `customer.phone` (object,null) Obiekt zawierający dane telefoniczne klienta - `customer.phone.countryCode` (string, required) Kod kraju Example: "48" - `customer.phone.phoneNo` (string, required) Numer telefonu Example: "123456789" - `customer.firstName` (string,null) Imię i nazwisko klienta - `customer.lastName` (string,null) Imię i nazwisko klienta - `customer.extAccountNo` (string) Zewnętrzny numer rachunku - `device` (object,null) Dane urządzenia z którego wykonywana jest operacja (przeglądarka www lub urządzenie mobilne) (wymagane dla channel = PAYWALL/WEBAPI) - `device.ip` (string,null) IP urządzenia - `device.name` (string,null) Nazwa urządzenia z którego wykonywana jest płatność - `device.sdkData` (object,null) Parametry SDK (wymagany dla channel = MOBILE) - `device.sdkData.sdkTransID` (string, required) Identyfikator UUID generowany przez 3DS SDK - `device.sdkData.sdkReferenceNumber` (string, required) Identyfikator dostawcy oraz wersji 3DS SDK - `device.sdkData.sdkInterface` (string, required) Wspierany przez SDK typ interfejsu - `device.sdkData.sdkUiType` (array, required) Lista typów interfejsow wspieranych dla procesu challenge Enum: "TEXT", "SINGLE_SELECT", "MULTI_SELECT", "OOB", "HTML" - `device.sdkData.sdkAppId` (string, required) Stała wartość UUID, która jest generowana przez SDK podczas instalacji aplikacji - `device.sdkData.sdkEncData` (string, required) Obiekt JWE przygotowany przez SDK, zawierający zaszyfrowane dane dla DS - `device.sdkData.sdkEphemPubKey` (object, required) Część publiczna efemerycznej pary kluczy wygenerowanych przez SDK slużąca do negocjacji połączenia z ACS - `device.sdkData.sdkEphemPubKey.x` (string, required) Zawiera wspolrzędną punktu x na krzywej eliptycznej - `device.sdkData.sdkEphemPubKey.y` (string, required) Zawiera wspolrzędną punktu y na krzywej eliptycznej - `device.sdkData.sdkEphemPubKey.kty` (string, required) Typ klucza - `device.sdkData.sdkEphemPubKey.crv` (string, required) Identyfikator zastosowanej krzywej kryptograficznej - `device.sdkData.sdkAuthValue` (string, required) Wartość służąca do weryfkacji autentyczności oraz integralności SDK - `device.browserData` (object,null) Parametry przeglądarki (wymagany dla channel = PAYWALL/WEBAPI; method = CARD) - `device.browserData.javascriptEnabled` (boolean, required) Obsługa JavaScript włączona w przeglądarce - `device.browserData.javaEnabled` (boolean,null) Obsługa Java włączona w przeglądarce (wymagany dla javascriptEnabled = true) - `device.browserData.language` (string,null, required) Język ustawiony na przeglądarce (wymagany dla javascriptEnabled = true) - `device.browserData.colorDepth` (string,null) Wartość reprezentująca glębie bitową palety kolorów (wymagany dla javascriptEnabled = true) - `device.browserData.screenHeight` (integer,null) Wysokość ekranu w pikselach (wymagany dla javascriptEnabled = true) - `device.browserData.screenWidth` (integer,null) Szerokość ekranu w pikselach (wymagany dla javascriptEnabled = true) - `device.browserData.timezone` (integer,null) Przesunięcie strefy czasowej w minutach miedzy czasem UTC (wymagany dla javascriptEnabled = true) - `agent` (object,null) Dane merchanta pośredniczącego (operator aplikacji mobilnej) - `options` (object,null) Inne parametry sterujące - `options.transKind` (string,null) Rodzaj transakcji dla transakcji kartowych - `options.transType` (string,null) Typ transakcji dla transakcji kartowych - `options.tokenize` (boolean,null) Zadanie tokenizacji karty - `options.recurring` (string,null) Flaga płatności cyklicznych - `options.recurringType` (string,null) Rodzaj płatności cyklicznej - `options.refPaymentId` (string,null) Identyfikator poprzedniej płatności (INITIAL) - `options.tdsServerTxnId` (string,null) Identyfikator transakcji z systemu 3DS Server (jeżeli wystąpila wcześniejsza interakcja z 3DS przed zarejestrowaniem płatności) - `options.validTime` (integer,null) Czas ważności generowanych linkow płatności w sekundach (domyślnie 600; max. 604800) - `options.iframe` (boolean,null) Zadanie tokenizacji karty - `options.asyncNotify` (string,null) Obsługa notyfikacji dla transakcji kartowych - `options.methods` (array,null) Obsługa metod płatności wywoływanych na PAYWALL Enum: "CARD", "PBL", "BLIK", "GPAY", "APAY", "UNKNOWN", "C2P" - `options.language` (string,null) Preferowana wersja językowa (kod ISO np. pl) - `options.restore` (boolean,null) Możliwość odświeżenia linku do kontynuowania płatności - `options.repeat` (boolean,null) Możliwość ponowienia kodu blik w przypadku błędnego wprowadzenia - `options.registerAlias` (boolean,null) Zarejestruj alias na potrzeby transparentnych płatności - `options.recurringExpDate` (string,null) Data graniczna dla płatności powtarzalnych (Format: YYYY-MM-DD) - `options.recurringCycle` (string,null) Długość cyklu płatności (np. 1D - dzienny, 1M - miesięczny, 1Q - kwartalny, 1R - roczny; domyślnie 1M) - `options.purposeCode` (string,null) Powód płatności AFT (wg kodu Visa) - `options.fundSource` (string,null) Źródło pieniądza w przypadku wypłaty środków. ACCOUNT - rachunek klienta; WALLET - elektroniczna portmonetka klienta; PAYMENT - referencja do poprzedniej operacji klienta (AFT); MERCHANT - środki własne merchanta Enum: "ACCOUNT", "WALLET", "PAYMENT", "MERCHANT" - `options.fundSourceRef` (string,null) Identyfikator rachunku źródłowego - `options.ownCard` (boolean,null) Flaga karty własnej/obcej (np. dla procesu tokenizacji, gdy nie da się ustalić tej informacji z kontekstu) - `options.nameVerify` (boolean,null) Weryfikacja danych odbiorcy (ANI) - `method` (string, required) Typ tokenizacji (COF/NETWORK lub DEFAULT jeżeli system sam ma podjać decyzje na podstawie parametryzacji merchanta) Enum: "COF", "NETWORK", "DEFAULT" - `recipient` (object) - `recipient.firstName` (string,null) Imię odbiorcy (wymagany dla ownAccount = false) - `recipient.lastName` (string,null) Nazwisko odbiorcy (wymagany dla ownAccount = false) ## Response 200 fields (application/jose;charset=UTF-8): - `tokenizerId` (string) Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu) - `status` (string) Status tokenizacji - `dataRequest` (string) Zadanie dodatkowych danych Enum: "INSTRUMENT", "CARD_CVV", "CARD_3DS", "CARD_OTP", "CAPTURE", "BLIK_APP", "DEVICE", "CUSTOMER", "EMAIL", "BLIK_CODE" - `acsData` (object) Dane potrzebne do wykonania ACS challenge - `acsData.tdsServerTxnId` (string) Identyfikator transakcji z systemu 3DS Server - `acsData.acsTxnId` (string) Identyfikator transakcji z systemu ACS (z komunikatu ARes) - `acsData.acsRefNumber` (string) Numer referencyjny transakcji z systemu ACS (z komunikatu ARes) - `acsData.acsSignedContent` (string) Blok zawierający sygnaturę ACS służący do weryfikacji ACS przez SDK - `acsData.acsURL` (string) Adres URL serwera ACS (do obsługi flow webowego) - `acsData.challengeWindowSize` (string) Rozmiar okna ACS challenge Example: "05" - `acsData.messageType` (string) Typ komunikatu (CReq) Example: "ARes" - `acsData.messageVersion` (string) Wersja protokołu - `acsData.creqPayload` (string) Formularz z danymi do wykonania ACS challenge (do obsługi flow webowego) - `acsData.acsStartProtocol` (string) Najstarsza wersja protokołu wspierana przez ACS - `acsData.acsEndProtocol` (string) Najnowsza wersja protokołu wspierana przez ACS - `acsData.dsStartProtocol` (string) Najstarsza wersja protokołu wspierana przez DS - `acsData.dsEndProtocol` (string) Najnowsza wersja protokołu wspierana przez DS - `redirectURL` (string) Adres URL dla kontunuacji flow webowego - `rejectCode` (string) Powód odrzucenia (w przypadku niepowodzenia) - `rejectInfo` (string) Dodatkowe informacje o powodzie odrzucenia ## Response 400 fields ## Response 401 fields ## Response 403 fields ## Response 500 fields