# Aktualizacja danych instrumentu płatniczego i urządzenia Podobna metoda wykorzystywana jest przez paywall API, ale pozwala rownież na przesłanie danych urządzenia z którego klient realizuje płatność. Dozwolone jest przesłanie sekcji instrument i device. Endpoint: PATCH /v1/ecommerce/tokenizer/{tokenizerId} Version: 2.1.15 Security: bearerAuth ## Path parameters: - `tokenizerId` (string, required) Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu) ## Request fields (application/jose): - `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 - `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) - `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.street` (string, required) Adres (ulica i numer domu) - `customer.billing.postal` (string, required) Kod pocztowy - `customer.billing.state` (string) Wojewodztwo Example: "mazowieckie" - `customer.billing.city` (string, required) Miasto - `customer.billing.country` (string, required) Kraj (kod ISO np. PL) Example: "POL" - `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 - `consents` (string) Zgody marketingowe - `language` (string,null) Preferowana wersja jezykowa (kod ISO np. pl) ## Response 200 fields (*/*): - `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