# Zlecenie płatności Merchant wywołuje tę metodę w celu zainicjowania płatności. System zwraca status potwierdzający przyjęcie płatności do realizacji. Jeżeli do przeprocesowania płatności wymagane są dodatkowe dane lub wymagana jest autoryzacja płatności przez klienta, taka informacja zwracana jest w odpowiedzi (np. dane do przeprowadzenia ACS challenge w przypadku transakcji kartowych wymagających SCA). W przypadku kanału PAYWALL lub metody PBL zwraca adres URL, na który należy przekierować użytkownika, aby kontynuować flow. Metoda nie zwraca końcowego statusu płatności, chyba że błąd wystąpił na wczesnym etapie weryfikacji karty (np. nieobsługiwany BIN) lub wystąpił inny problem natury konfiguracyjnej (np. nieobsługiwany kanał płatności dla merchanta). Aktualny status zawsze można pobrać korzystając z metody GET /payment. Informacja o płatności dostępna jest poprzez Merchant API przez 3 miesiące. Status propagowany jest też asynchronicznie kanałem notyfikacji. Endpoint: POST /v1/ecommerce/payment 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) Metoda płatności - `order` (object) Dane zamówienia podlegajacego płatności - `order.amount` (number,null) Kwota transakcji (Format: 000.00) - `order.currency` (string,null) Waluta transakcji (kod ISO np. PLN) - `order.commission` (number,null) Kwota prowizji obciażajaca klienta (dodawana do kwoty oryginalnej transakcji) - `order.extOrderId` (string,null) Identyfikator zamówienia z systemu merchanta - `order.shipping` (object,null) Adres rozliczeniowy klienta (wymagany dla method = CARD) - `order.description` (string,null) Opis zamówienia (do prezentacji na ekranie potwierdzenia) - `order.subpayments` (array,null) Podział na transakcje przy płatności z MARKETPLACE - `order.subpayments.subpaymentId` (string,null) Identyfikator subtransakcji - `order.subpayments.merchantId` (string, required) Identyfikator merchanta - `order.subpayments.amount` (number) Kwota transakcji - `order.subpayments.commission` (number, required) Prowizja dla MARKETPLACE - `order.subpayments.extOrderId` (string,null) Identyfikator zamowienia w systemie merchanta - `order.subpayments.extCustomerId` (string,null) Identyfikator klienta w systemie submerchanta (Płatności multikoszykowe) - `order.subpayments.productId` (string,null) Identyfikator produktu wg systemu submerchanta - `order.subpayments.productName` (string,null) Nazwa produktu - `order.subpayments.productNumber` (string,null) Numer katalogowy produktu - `order.subpayments.productDescription` (string,null) Opis produktu - `order.subpayments.productCategory` (string,null) Kategoria produktu - `order.subpayments.companyId` (string,null) Identyfikator firmy - `order.subpayments.operatorName` (string,null) Nazwa operatora - `recipient` (object,null) Odbiorca środkow dla transakcji typu ACCT_FUNDING (wymagane dla transKind = ACCT_FUNDING) - `recipient.ownAccount` (boolean,null) Własny rachunek/wallet - `recipient.billing` (object,null) Adres rozliczeniowy odbiorcy - `recipient.billing.state` (string) Województwo Example: "mazowieckie" - `recipient.riskyBrands` (array,null) Lista MCC wysokiego ryzyka związanych z walletem (transakcje AFT) Enum: "ADULT_CONTENT", "CRYPTOCURRENCY", "CYBERLOCKER_SERVICES", "GAMBLING", "HIGH_RISK_SECURITIES", "PRESCRIPTION_DRUG", "TOBACCO" - `recipient.firstName` (string,null) Imię odbiorcy (wymagany dla ownAccount = false) - `recipient.lastName` (string,null) Nazwisko odbiorcy (wymagany dla ownAccount = false) - `recipient.accountRef` (string,null) Nr rachunku odbiorcy (wymagany dla ownAccount = false) - `recipient.target` (string,null) Cel transferu środków. Dopuszczalne wartości:CARD - karta kredytowa; PREPAID - karta prepaid; ACCOUNT - rachunek debetowy Enum: "CARD", "PREPAID", "ACCOUNT", "WALLET" - `consents` (string) Zgody marketingowe - `preAuthRequest` (boolean) - `initialRecurringForZeroAmount` (boolean) - `restorable` (boolean) ## Response 200 fields (application/jose;charset=UTF-8): - `paymentId` (string) Identyfikator płatności w systemie operatora płatności - `subpayments` (array) Lista subtransakcji przy płatnościach z MARKETPLACE - `subpayments.subpaymentId` (string) Identyfikator subtransakcji - `subpayments.merchantId` (string) Identyfikator merchanta - `subpayments.extOrderId` (string) Identyfikator zamówienia w systemie merchanta - `status` (string) Aktualny status płatności - `dataRequest` (string) Zadanie dodatkowych danych - `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 kontynuacji flow webowego - `rejectCode` (string) Powód odrzucenia (w przypadku niepowodzenia) - `rejectInfo` (string) Dodatkowe informacje o powodzie odrzucenia Płatności - `tokenizerId` (string) Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu) - `blikObject` (object) Struktura zapytania BLIK - `blikObject.Type` (string) - `blikObject.MerchantID` (string) - `blikObject.Currency` (string) - `blikObject.Amount` (string) - `blikObject.CustomParam` (string) - `blikObject.Description` (string) - `blikObject.Timestamp` (string) - `blikObject.MCC` (string) - `blikObject.Code` (string) - `blikObject.TxID` (string) - `blikObject.ControlData` (string) - `blikObject.Buid` (string) - `options` (object) Inne parametry sterujace - `options.tokenize` (boolean) Zadanie tokenizacji karty - `options.recurring` (string) Flaga płatności cyklicznych - `options.transKind` (string) Rodzaj transakcji dla transakcji kartowych - `options.methods` (array,null) Dostępne metody płatności Enum: "CARD", "PBL", "BLIK", "GPAY", "APAY", "UNKNOWN", "C2P" - `options.registerAlias` (boolean,null) Rejestracja aliasu na potrzeby transparentnych płatności - `channel` (string) Kanal płatności Enum: "PAYWALL", "MOBILE", "WEBAPI", "EBOK", "CSS" - `method` (string) Metoda płatności Enum: "CARD", "PBL", "BLIK", "GPAY", "APAY", "UNKNOWN", "C2P" - `apaySession` (string) Obiekt sesji APAY do inicjalizacji płatności - `reattempt` (string) Informacja o ograniczeniach w wykonywaniu płatności. Dopuszczalne wartości: NEVER - nie wysyłaj wiecej komunikatów na ten numer karty; NEVER_RECURRING - nie wysyłaj wiecej komunikatów dla płatności powtarzalnej; LATER - spróbuj poźniej Enum: "NEVER", "NEVER_RECURRING", "LATER" ## Response 400 fields ## Response 401 fields ## Response 403 fields ## Response 500 fields