openapi: 3.0.1
info:
  title: Planet Pay Merchant API
  description: >-
    Poniższa dokumentacja techniczna (Merchant API) umożliwia wdrożenie
    wszystkich dostępnych metod płatności oraz funkcjonalności oferowanych przez
    bramkę płatniczą Planet Pay.  
      
    **Słownik pojęć:**  

    **Secret** - poufny klucz przyznawany Merchantowi przez Planet Pay  

    **Merchant** - właściciel punktu sprzedaży zarejestrowany w systemie
    operatora płatności  

    **Agent** - podmiot pośredniczący w transakcji (np. operator aplikacji
    mobilnej)  

    **Klient** - klient końcowy (wykonujący i opłacający zamówienie)  

    **MID** - merchant identification number - numer merchanta/agenta nadawany
    przez operatora płatności  

    **SCA** - silne uwierzytelnienie klienta; środek wprowadzony przez dyrektywę
    PSD2 w celu zwiększenia bezpieczeństwa płatności internetowych  
      
    __**Statusy Płatności:**__  

    Flow statusów płatności przedstawia się nastepująco NEW - PENDING -
    COMPLETED/REJECTED - CANCELLED/ERROR/SETTLED  
     ![Status](./Images/statusy.png) 
    Wywołanie metody payment powoduje zarejestrowanie w systemie płatności ze
    statusem NEW.  

    Płatność utrzymuje się w statusie NEW do momentu określenia metody płatności
    i instrumentu płatniczego.  

    Płatność zmienia status na PENDING w momencie rozpoczęcia procesowania
    transakcji (np. inicjalizacja 3DS w przypadku płatności kartą lub
    komunikacja z systemami PSP w przypadku transakcji BLIK).  

    Płatność, która zakończyła się powodzeniem, otrzymuje status COMPLETED.  

    Płatność po rozliczeniu ostatecznie otrzymuje status SETTLED.  

    Płatność w statusie NEW i PENDING może zostać anulowana. Płatność otrzymuje
    wtedy status CANCELLED.  

    Dopuszczalne jest anulowanie płatności w statusie COMPLETED w przypadku
    braku możliwości zrealizowania zlecenia przez merchanta.  

    Anulowanie płatności w statusie COMPLETED nie jest możliwe, jeżeli istnieje
    choć jedno dopełnienie (capture) lub wykonany został zwrot (refund).  

    Błąd systemowy może spowodować oznaczenie transakcji statusem ERROR.  
          
    __**Notyfikacje**__  

    Notyfikacje dotyczące płatności powinny być przyjmowane na dedykowany
    endpoint /payment niezależnie od typu płatności.
  version: 2.1.15
tags:
  - name: Uwierzytelnienie
    description: >-
      Wysłanie metody uwierzytelniającej i pobranie tokenu JWT jest wymagane do
      poprawnego procesowania płatności przez bramkę PlanetPay
  - name: Płatności
    description: >-
      API wspólne dla wszystkich metod płatności. Poszczególne metody i kanały
      płatności mogą się różnić zakresem pól obowiązkowych. Operator płatności
      nadaje każdemu zleceniu płatności unikatowy numer paymentId, który może
      zostać wykorzystany przez merchanta np. do pobrania aktualnego statusu
      płatności. Status płatności może być również wysłany do merchanta kanałem
      notyfikacji (powiadomienia asynchroniczne). Wszystkie wywołania API
      wymagają podania tokenu autoryzacyjnego w nagłówku żądania.
  - name: Tokenizacja
    description: >-
      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. Do operacji na tokenie (usunięcie/modyfikacja) należy
      wykorzystywać identyfikator tokenu (nie tokenizacji).
  - name: Notyfikacje
    description: >-
      System wysyła do merchanta notyfikacje w reakcji na określone zdarzenia
      systemowe. Notyfikacje wysyłane są jeżeli w parametryzacji merchanta
      podany został URL API implementującego poniższą specyfikację. System
      generuje żądania metodą POST. Oczekujemy, że odbiorca zwróci kod HTTP 200
      po przyjęciu komunikatu. Wysyłka notyfikacji jest ponawiana w przypadku
      błędów sieciowych (HTTP 50X). Notyfikacje nie będą ponawiane w przypadku,
      gdy system nie przyjął komunikatu (HTTP 40X). Notyfikacje zawierają
      cyfrowy podpis, który wysyłany jest w nagłówku Signature jako wartość hex.
      Podpis wyliczany jest algorytmem HMAC-SHA256 z wartości wszystkich pól
      komunikatu (konkatenacja). Do wyliczenia podpisu obowiązuje kolejność pól
      prezentowana w niniejszej specyfikacji. Tajny klucz dla algorytmu
      ustawiany jest w parametryzacji merchanta.
paths:
  /v1/ecommerce/tokenizer/{tokenizerId}/instrument:
    put:
      tags:
        - Tokenizacja
      operationId: fillTokenInstrument
      parameters:
        - name: tokenizerId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
      requestBody:
        content:
          application/jose:
            schema:
              $ref: '#/components/schemas/InstrumentInfo'
          application/jose;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/InstrumentInfo'
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/InstrumentInfo'
          application/json:
            schema:
              $ref: '#/components/schemas/InstrumentInfo'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenizerResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Aktualizacja danych instrumentu płatniczego dla tokenizacji
      description: >-
        Metoda pozwala uzupełnić dane instrumentu płatniczego, jeżeli nie
        zostaly podane wczesniej. Dozwolone jest przesłanie sekcji instrument i
        device.
    patch:
      tags:
        - Tokenizacja
      operationId: fillTokenInstrumentCvv
      parameters:
        - name: tokenizerId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/PatchInstrumentRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PatchInstrumentRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenizerResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Aktualizacja atrybutu instrumentu płatniczego
      description: >-
        Tą metodę można wykorzystać gdy wymagane jest dosłanie pojedynczego
        atrybutu instrumentu (np. kod CVV)
  /v1/ecommerce/payment/{paymentId}/instrument:
    put:
      tags:
        - Płatności
      operationId: fillPaymentInstrument
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
      requestBody:
        content:
          application/jose:
            schema:
              $ref: '#/components/schemas/InstrumentInfo'
          application/jose;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/InstrumentInfo'
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/InstrumentInfo'
          application/json:
            schema:
              $ref: '#/components/schemas/InstrumentInfo'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/jose;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Aktualizacja danych instrumentu płatniczego
      description: >-
        Metoda pozwala uzupełnić dane instrumentu płatniczego lub urządzenia
        bazując na wygenerowanym wcześniej paymentId. Umożliwia rozbicie flow
        płatności na kilka etapów (np. rejestracja płatności przez merchanta,
        uzupełnienie danych instrumentu płatniczego, uzupełnienie danych
        urządzenia).
    patch:
      tags:
        - Płatności
      operationId: fillPaymentInstrumentCvv
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/PatchInstrumentRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PatchInstrumentRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Aktualizacja atrybutu instrumentu płatniczego
      description: >-
        W przypadku gdy wymagane jest dosłanie pojedynczego atrybutu instrumentu
        (np. kod CVV) można wykorzystać metodę
  /v1/ecommerce/tokenizer:
    post:
      tags:
        - Tokenizacja
      operationId: createToken
      requestBody:
        content:
          application/jose:
            schema:
              $ref: '#/components/schemas/TokenizerRequest'
          application/jose;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/TokenizerRequest'
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/TokenizerRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/TokenizerRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/jose;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/TokenizerResponse'
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/TokenizerResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Tokenizacja kart klienta
      description: >-
        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.
  /v1/ecommerce/tokenizer/{tokenizerId}/discard:
    post:
      tags:
        - Tokenizacja
      operationId: discardTokenByTokenizerId
      parameters:
        - name: tokenizerId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/DiscardReasonRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/DiscardReasonRequest'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenDiscardResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Unieważnienie tokenu
      description: >-
        Usunięcie tokenu z systemu operatora płatności. Wariant z wykorzystaniem
        identyfikatora procesu tokenizacji
  /v1/ecommerce/tokenizer/{tokenizerId}/cancel:
    post:
      tags:
        - Tokenizacja
      operationId: tokenizationCancel
      parameters:
        - name: tokenizerId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenizationCancelResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Anulowanie tokenizacji
      description: >-
        Proces tokenizacji możne zostać przerwany przez klienta. Tokenizacja
        otrzymuje status CANCELLED.
  /v1/ecommerce/tokenizer/search:
    post:
      tags:
        - Tokenizacja
      operationId: searchTokenByValue
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/TokenValueRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/TokenValueRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenInfo'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Wyszukanie tokenu
      description: >-
        Wyszukiwanie tokenów kartowych po numerze. Wyszukiwanie odbywa się w
        kontekście merchanta.
  /v1/ecommerce/tokenizer/discard:
    post:
      tags:
        - Tokenizacja
      operationId: discardTokenByValue
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/TokenDiscardRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/TokenDiscardRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenDiscardResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Unieważnienie tokenu
      description: >-
        Usunięcie tokenu z systemu operatora płatności. Wariant wykorzystujący
        numer tokenu kartowego.
  /v1/ecommerce/tokenizer/convert:
    post:
      tags:
        - Tokenizacja
      operationId: convertToken
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/ConvertRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ConvertRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConvertResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Konwersja tokenu COF na NETWORK
      description: >-
        Tokeny z wewnętrznej tokenizacji COF można zmigrować na tokeny NETWORK.
        Metoda nie usuwa danych oryginalnego tokenu.
  /v1/ecommerce/tokenizer/binInfo:
    post:
      tags:
        - Tokenizacja
      operationId: getTokenizerBinInfo
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/BinInfoRequestWithInstrument'
          application/json:
            schema:
              $ref: '#/components/schemas/BinInfoRequestWithInstrument'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/BinInfoResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: >-
        Określenie organizacji płatniczej i wersji protokołu (dla flow
        mobilnego).
      description: >-
        Dodatkowy krok dla flow mobilnego do określenia organizacji płatniczej i
        używanej wersji protokołu. Wersja protokołu uStałana jest jako najwyższa
        możliwa z zakresów obsługiwanych przez komponenty: SDK, ACS, 3DS i DS.
  /v1/ecommerce/payment:
    post:
      tags:
        - Płatności
      operationId: createPayment
      requestBody:
        content:
          application/jose:
            schema:
              $ref: '#/components/schemas/PaymentRequest'
          application/jose;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/PaymentRequest'
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/PaymentRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/jose;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      description: >-
        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.
      summary: Zlecenie płatności
  /v1/ecommerce/payment/{paymentId}/transactions/{transId}/cancel:
    post:
      tags:
        - Płatności
      operationId: transactionCancel
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
        - name: transId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AdjustmentResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      description: >-
        Metoda umożliwia wycofanie transakcji. W tej chwili obsługiwany jest
        wyłącznie typ ADJUSTMENT.
      summary: Wycofanie transakcji
  /v1/ecommerce/payment/{paymentId}/retry:
    post:
      tags:
        - Płatności
      operationId: retryPayment
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Kontynuacja odrzuconej płatności
      description: >-
        Awaryjna metoda rejestrująca nową płatność na podstawie poprzedniej,
        która zakończyła się niepowodzeniem (status REJECTED/CANCELLED/ERROR).
        Dla płatności rejestrowany jest nowy identyfikator paymentId.
  /v1/ecommerce/payment/{paymentId}/restore:
    post:
      tags:
        - Płatności
      operationId: restorePayment
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Generowanie nowego linku do płatności
      description: >-
        W sytuacji gdy płatność nie została dokończona przez klienta z jakiegoś
        powodu (zagubiony link do płatności) możemy wygenerować nowy link z tym
        samym paymentId i nowym tokenem JWT typu CLIENT. Wygenerowanie nowego
        linka jest możliwe wyłącznie jeżeli płatność znajduje się w statusie
        NEW. Dotyczy wyłącznie kanału PAYWALL. Uwaga: niezrealizowana płatność
        może zostać automatycznie anulowana po przekroczeniu czasu ważności
        linka (validTime).
  /v1/ecommerce/payment/{paymentId}/refund:
    post:
      tags:
        - Płatności
      operationId: refundPayment
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
        - name: X-PSP-Certification
          in: header
          required: false
          schema:
            type: string
          description: Wymuszenie odpytania systemu operatora
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/PaymentRefundRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRefundRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentRefundResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Realizacja zwrotu środkow dla przeprocesowanych płatności
      description: >-
        Realizacja zwrotu środków do klienta. Muszą zostać spełnione następujące
        warunki: • oryginalna płatność jest w statusie COMPLETED lub SETTLED •
        kwota zwrotu (lub suma kwot zwrotów częściowych) dla danej płatności nie
        przekracza kwoty oryginalnej płatności  • merchant zapewnił środki na
        pokrycie kwoty zwrotu. Każda zarejestrowana operacja zwrotu otrzymuje
        unikatowy identyfikator refundId.
  /v1/ecommerce/payment/{paymentId}/capture:
    post:
      tags:
        - Płatności
      operationId: capture
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/PreAuthCaptureRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PreAuthCaptureRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Zlecenie dopełnienia
      description: >-
        Preautoryzacja (transKind=PREAUTH) skutkuje blokadą środków i wymaga
        wykonania operacji dopełnienia w celu obciążenia klienta. Blokada
        środków domyślnie zakładana jest na 30 dni (wartość ta może być
        ustawiona niżej poprzez parametry konfiguracyjne merchanta). Dopełnienie
        zatwierdza ostateczną kwotę płatności i kieruje ją do rozliczenia (do
        tego czasu transakcja jest utrzymywana w statusie COMPLETED).
        Dopełnienie może być zrealizowane na kwotę równą lub mniejszą względem
        preautoryzacji.
  /v1/ecommerce/payment/{paymentId}/cancel:
    post:
      tags:
        - Płatności
      operationId: cancelPayment
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CancelStatusDto'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentCancelRequest'
      summary: Anulowanie płatności
      description: >-
        Płatność w statusie NEW i PENDING może zostać anulowana. Płatność
        otrzymuje status CANCELLED. Możliwe jest w pewnych sytuacjach anulowanie
        płatności w statusie COMPLETED, co skutkuje odwróceniem oryginalnej
        transakcji (reversal) bez ostatecznego skutku finansowego dla klienta. W
        szczególności można anulować preautoryzację, co skutkuje zwolnieniem
        blokady środków.
  /v1/ecommerce/payment/{paymentId}/binInfo:
    post:
      tags:
        - Płatności
      operationId: getPaymentBinInfoByPaymentId
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/BinInfoRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/BinInfoRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/BinInfoResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: >-
        Okeślenie organizacji płatniczej i wersji protokołu (dla flow
        mobilnego).
      description: >-
        Dodatkowy krok dla flow mobilnego do określenia organizacji płatniczej i
        używanej wersji protokołu 3DSecure. Wersja protokołu ustalana jest jako
        najwyższa możliwa z zakresów obsługiwanych przez komponenty: SDK, ACS,
        3DS i DS. Drugi wariant metody na potrzeby wywołań z payment SDK
        zakłada, że płatność została już wcześniej zainicjalizowana (znamy
        instrument)
  /v1/ecommerce/payment/{paymentId}/adjustment:
    post:
      tags:
        - Płatności
      operationId: adjustment
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/PreAuthAdjustmentRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PreAuthAdjustmentRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AdjustmentResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Zlecenie korekty kwoty preautoryzacji
      description: >-
        Korekta pozwala na modyfikację kwoty preautoryzacji. Operację można
        wykonać wielokrotnie, dopóki nie zostanie wykonane dopełnienie
        (capture).
  /v1/ecommerce/payment/search:
    post:
      tags:
        - Płatności
      operationId: searchPayment
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/PaymentSearchRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentSearchRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentSearchResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Wyszukiwanie płatności po zewnetrznych identyfikatorach
      description: >-
        Wyszukiwanie płatności po zewnętrznych identyfikatorach. Przeszukiwane
        są wyłącznie płatności związane z merchantem, dla którego wydano token
        dostępowy. Zwracana jest lista identyfikatorów paymentId. Tylko jedna z
        płatnośćci może być zakończona sukcesem. Powinna być zwracana na
        pierwszej pozycji.
  /v1/ecommerce/payment/binInfo:
    post:
      tags:
        - Płatności
      operationId: getPaymentBinInfo
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/BinInfoRequestWithInstrument'
          application/json:
            schema:
              $ref: '#/components/schemas/BinInfoRequestWithInstrument'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/BinInfoResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: >-
        Okeślenie organizacji płatniczej i wersji protokołu (dla flow
        mobilnego).
      description: >-
        Dodatkowy krok dla flow mobilnego do określenia organizacji płatniczej i
        używanej wersji protokołu 3DSecure. Wersja protokołu uStałana jest jako
        najwyższa możliwa z zakresów obsługiwanych przez komponenty: SDK, ACS,
        3DS i DS.
  /v1/ecommerce/notifications/blikweb/status:
    post:
      tags:
        - Notyfikacje
      operationId: blikWebStatus
      responses:
        '200':
          description: OK
          content:
            text/html:
              schema:
                type: string
            application/json;charset=UTF-8:
              schema:
                type: string
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Obsługa odpowiedzi pośredniej statusu płatności BLIK
  /v1/ecommerce/notifications/acs/status:
    post:
      tags:
        - Notyfikacje
      operationId: acsStatus
      responses:
        '200':
          description: OK
          content:
            text/html:
              schema:
                type: string
            application/json;charset=UTF-8:
              schema:
                type: string
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Notyfikacja statusu autoryzacji ACS
  /v1/ecommerce/auth:
    post:
      tags:
        - Uwierzytelnienie
      operationId: generateToken
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/AuthRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/AuthRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobieranie tokenu JWT
      description: >-
        Pobranie tokenu JWT z wykorzystaniem danych wygenerowanych podczas
        rejestracji merchanta w systemie operatora płatności (MID + secret).
  /v1/ecommerce/tokenizer/{tokenizerId}:
    get:
      tags:
        - Tokenizacja
      operationId: getToken
      parameters:
        - name: tokenizerId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenizationInfo'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobieranie tokenu kartowego
      description: >-
        Pobranie danych tokenu na podstawie identyfikatora procesu tokenizacji.
        Merchant powinien zapisać nr tokenu i posługiwać się nim w dalszej
        komunikacji z API.
    patch:
      tags:
        - Tokenizacja
      operationId: fillTokenInstrumentAndDevice
      parameters:
        - name: tokenizerId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
      requestBody:
        content:
          application/jose:
            schema:
              $ref: '#/components/schemas/InstrumentDeviceInfo'
          application/jose;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/InstrumentDeviceInfo'
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/InstrumentDeviceInfo'
          application/json:
            schema:
              $ref: '#/components/schemas/InstrumentDeviceInfo'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenizerResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Aktualizacja danych instrumentu płatniczego i urządzenia
      description: >-
        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.
  /v1/ecommerce/payment/{paymentId}:
    get:
      tags:
        - Płatności
      operationId: getPaymentInfo
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentInfoResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobieranie informacji o płatności
      description: >-
        Metoda służy do pobrania podstawowych informacji o płatności. Metoda
        nigdy nie zwraca danych wrażliwych związanych z płatnością. Podstawowy
        przypadek użycia dla metody to inicjalizacja bramki web
        (channel=PAYWALL), która posiada początkowo wyłącznie informacje o
        paymentId i musi pobrać brakujące informacje w celu prezentacji
        klientowi.
    patch:
      tags:
        - Płatności
      operationId: fillPaymentInstrumentAndDevice
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
      requestBody:
        content:
          application/jose:
            schema:
              $ref: '#/components/schemas/InstrumentDeviceInfo'
          application/jose;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/InstrumentDeviceInfo'
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/InstrumentDeviceInfo'
          application/json:
            schema:
              $ref: '#/components/schemas/InstrumentDeviceInfo'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/jose;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Aktualizacja danych instrumentu płatniczego oraz urządzenia
      description: >-
        Metoda pozwala uzupełnić dane instrumentu płatniczego lub urządzenia
        bazując na wygenerowanym wcześniej paymentId. Umożliwia rozbicie flow
        płatności na kilka etapów (np. rejestracja płatności przez merchanta,
        uzupełnienie danych instrumentu płatniczego, uzupełnienie danych
        urządzenia).
  /v1/ecommerce/tokenizer/{tokenizerId}/status:
    get:
      tags:
        - Tokenizacja
      operationId: getTokenizationStatus
      parameters:
        - name: tokenizerId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenizationStatusResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Sprawdzenie statusu tokenizacji
      description: Sprawdzenie statusu tokenizacji bez zwracania ciała tokenu kartowego.
  /v1/ecommerce/tokenizer/vts/{instrumentRef}/cardVisual/{visualId}:
    get:
      tags:
        - Tokenizacja
      operationId: vtsVisualCardArt
      parameters:
        - name: instrumentRef
          in: path
          required: true
          schema:
            type: string
        - name: visualId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/VisualCardArtResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobranie informacji o wizerunku karty
      description: Metoda pozwalająca pobrać dane wizerunku karty w przypadku tokenów VTS.
  /v1/ecommerce/payment/{paymentId}/transactions:
    get:
      tags:
        - Płatności
      operationId: transactions
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentTransactionsResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Lista transakcji w ramach płatności
  /v1/ecommerce/payment/{paymentId}/tokenizer:
    get:
      tags:
        - Płatności
      operationId: getPaymentTokenInfo
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenizationInfo'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobieranie tokenu kartowego
      description: >-
        Pobranie danych tokenu na podstawie identyfikatora procesu tokenizacji.
        Merchant powinien zapisać nr tokenu i posługiwać się nim w dalszej
        komunikacji z API.
  /v1/ecommerce/payment/{paymentId}/subpayments:
    get:
      tags:
        - Płatności
      operationId: subpayments
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SubpaymentsResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Lista subtransakcji przy płatnościach z MARKETPLACE
  /v1/ecommerce/payment/{paymentId}/status:
    get:
      tags:
        - Płatności
      operationId: getPaymentStatus
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
        - name: X-PSP-Certification
          in: header
          required: false
          schema:
            type: string
          description: Wymuszenie odpytania systemu operatora
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentStatusDto'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobieranie statusu płatności
      description: >-
        Aktualny status płatności można sprawdzić używając identyfikatora
        płatności (paymentId).
  /v1/ecommerce/payment/{paymentId}/refunds:
    get:
      tags:
        - Płatności
      operationId: getRefundsInfo
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/RefundsResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobieranie informacji o zwrotach
      description: Informacja o statusie zwrotów dla płatności.
  /v1/ecommerce/payment/{paymentId}/refund/{refundId}:
    get:
      tags:
        - Płatności
      operationId: getRefundInfo
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
        - name: refundId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator zwrotu (zgodny formatem z identyfikatorem Płatności)
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/RefundDetailsResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobieranie informacji o zwrotach
      description: Informacja o statusie wybranego zwrotu.
  /v1/ecommerce/payment/{paymentId}/acsData:
    get:
      tags:
        - Płatności
      operationId: getAcsData
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
          description: Identyfikator płatności w systemie operatora płatności
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AcsDataResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobieranie danych ACS challenge
      description: >-
        Metoda służy do zwrócenia danych potrzebnych do przeprowadzenia SCA (ACS
        challenge). Zwykle dane te zwracane są w odpowiedzi na żądanie
        inicjujące płatność, ale możliwe jest, że konieczność przeprowadzenia
        SCA zostanie zgłoszona później, podczas odpytania o status płatności.
  /v1/ecommerce/payment/refunds/balance:
    get:
      tags:
        - Płatności
      operationId: refundsBalance
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/RefundsBalanceResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobieranie dostępnego salda do zwrotów
      description: Informacja o dostępnym saldzie merchanta do wykonania zwrotu
  /v1/ecommerce/payment/methods:
    get:
      tags:
        - Płatności
      operationId: getPaymentMethods
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentMethodResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobranie metod płatności dla merchanta
      description: >-
        Lista aktywowanych dla merchanta metod płatności. Przydatna, gdy klient
        ma możliwość wyboru metody płatności na poźniejszym etapie (metoda
        nieokreślona podczas rejestracji płatności). Identyfikator merchanta i
        kanał płatności pochodzi z tokenu autoryzacyjnego (JWT).
  /v1/ecommerce/notifications/bmweb/status:
    get:
      tags:
        - Notyfikacje
      operationId: bmWebStatus
      parameters:
        - name: ServiceID
          in: query
          required: true
          schema:
            type: string
        - name: OrderID
          in: query
          required: true
          schema:
            type: string
        - name: Hash
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Obsługa przekierowania na strone statusu płatności z autopay
  /v1/ecommerce/payment/cardInfo:
    post:
      tags:
        - Płatności
      operationId: cardInfo
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              $ref: '#/components/schemas/CardInfoRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/CardInfoRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CardInfoResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Weryfikacja karty
      description: >-
        Metoda zwraca podstawowe informacje o karcie. Umożliwia sprawdzenie
        karty odbiorcy przed wykonaniem właściwej operacji transferu środkow.
  /v1/ecommerce/payment/{paymentId}/methods:
    get:
      tags:
        - Płatności
      operationId: getSpecifiedPaymentMethods
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentMethodResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobranie metod płatności dla merchanta
      description: >-
        Lista aktywowanych dla merchanta metod płatności. Przydatna, gdy klient
        ma możliwość wyboru metody płatności na poźniejszym etapie (metoda
        nieokreślona podczas rejestracji płatności). Identyfikator merchanta i
        kanał płatności pochodzi z tokenu autoryzacyjnego (JWT).
  /v1/ecommerce/payment/methods/PBL:
    get:
      tags:
        - Płatności
      operationId: paymentMethodOptionPbl
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PblPaymentMethodOptionResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobranie opcjonalnych parametrów metody płatności
      description: >-
        Niektóre metody płatności posiadają osobną listę opcji. W przypadku
        przelewów (PBL) otrzymamy liste bankow.
  /v1/ecommerce/payment/methods/CARD:
    get:
      tags:
        - Płatności
      operationId: paymentMethodOptionCard
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CardPaymentMethodOptionResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobranie opcjonalnych parametrów metody płatności
      description: >-
        Niektóre metody płatności posiadają osobną listę opcji. W przypadku
        przelewów (PBL) otrzymamy liste bankow.
  /v1/ecommerce/payment/methods/C2P:
    get:
      tags:
        - Płatności
      operationId: paymentMethodOptionC2P
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/C2PPaymentMethodOptionResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                type: string
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                type: string
      summary: Pobranie opcjonalnych parametrów metody płatności
      description: >-
        Niektóre metody płatności posiadają osobną listę opcji. W przypadku
        przelewów (PBL) otrzymamy liste bankow.
components:
  schemas:
    ErrorResponse:
      required:
        - code
        - description
        - message
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        description:
          type: string
          description: Detailed error description link
        forward:
          type: boolean
    InstrumentInfo:
      required:
        - type
      type: object
      properties:
        type:
          type: string
          description: 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
        instrumentNo:
          type: string
          description: >-
            Nr instrumentu płatniczego (np. tokenu lub karty) (wymagany dla type
            = CARD/COF)
          nullable: true
        encInstrumentNo:
          type: string
          description: Zaszyfrowany nr instrumentu płatniczego
          nullable: true
        instrumentRef:
          type: string
          description: >-
            Identyfikator instrumentu płatnicznego w zewnętrznym systemie
            (wymagany dla type = SCOF/VTS)
          nullable: true
        token:
          type: string
          description: >-
            Dane tokenu zwracane przez API APAY/GPAY (base64 encoded) (wymagany
            dla type = APAY/GPAY)
          nullable: true
        expDate:
          type: string
          description: 'Data ważności (Format: YYYYMM) (wymagany dla type = CARD)'
          nullable: true
          example: '202101'
        encExpDate:
          type: string
          description: Zaszyfrowana data ważności
          nullable: true
        cvv:
          type: string
          description: Kod zabezpieczający (wymagany dla type = CARD)
          nullable: true
        encCvv:
          type: string
          description: Zaszyfrowany kod zabezpieczający
          nullable: true
        code:
          maxLength: 6
          minLength: 6
          type: string
          description: Jednorazowy kod płatności BLIK (wymagany dla type = BLIK_CODE)
          nullable: true
        alias:
          type: string
          description: >-
            Alias użytkownika BLIK dla płatności OneClick lub cyklicznych
            (wymagany dla type = BLIK_UID/BLIK_PAYID)
          nullable: true
        app:
          type: string
          description: >-
            Identyfikator konta mobilnego BLIK (w przypadku niejednoznaczności
            aliasu)
          nullable: true
        provider:
          type: string
          description: >-
            Identyfikator pośrednika płatności (może być wybrany automatycznie
            na podstawie konfiguracji merchanta)
          nullable: true
          enum:
            - BM
            - PA
            - PU
        bank:
          type: string
          description: Nazwa banku (wymagany dla type = PBL)
          nullable: true
        bankId:
          type: integer
          description: >-
            Identyfikator banku (w systemie operatora PBL) (wymagany dla type =
            PBL)
          format: int32
          nullable: true
        payload:
          type: string
          description: Payload otrzymany z SDK na potrzeby płatności Click2Pay
          nullable: true
        cardMask:
          type: string
          description: Maska karty otrzymana z PayU na potrzeby płatności tokenem kartowym
          nullable: true
      description: Szczegółowe dane requestu
    AcsData:
      type: object
      properties:
        tdsServerTxnId:
          type: string
          description: Identyfikator transakcji z systemu 3DS Server
        acsTxnId:
          type: string
          description: Identyfikator transakcji z systemu ACS (z komunikatu ARes)
        acsRefNumber:
          type: string
          description: Numer referencyjny transakcji z systemu ACS (z komunikatu ARes)
        acsSignedContent:
          type: string
          description: Blok zawierający sygnaturę ACS służący do weryfikacji ACS przez SDK
        acsURL:
          type: string
          description: Adres URL serwera ACS (do obsługi flow webowego)
        challengeWindowSize:
          type: string
          description: Rozmiar okna ACS challenge
          example: '05'
        messageType:
          type: string
          description: Typ komunikatu (CReq)
          example: ARes
        messageVersion:
          type: string
          description: Wersja protokołu
        creqPayload:
          type: string
          description: >-
            Formularz z danymi do wykonania ACS challenge (do obsługi flow
            webowego)
        acsStartProtocol:
          type: string
          description: Najstarsza wersja protokołu wspierana przez ACS
        acsEndProtocol:
          type: string
          description: Najnowsza wersja protokołu wspierana przez ACS
        dsStartProtocol:
          type: string
          description: Najstarsza wersja protokołu wspierana przez DS
        dsEndProtocol:
          type: string
          description: Najnowsza wersja protokołu wspierana przez DS
      description: Dane potrzebne do wykonania ACS challenge
    TokenizerResponse:
      type: object
      properties:
        tokenizerId:
          type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
        status:
          type: string
          description: Status tokenizacji
        dataRequest:
          type: string
          description: Zadanie dodatkowych danych
          enum:
            - INSTRUMENT
            - CARD_CVV
            - CARD_3DS
            - CARD_OTP
            - CAPTURE
            - BLIK_APP
            - DEVICE
            - CUSTOMER
            - EMAIL
            - BLIK_CODE
        acsData:
          $ref: '#/components/schemas/AcsData'
        redirectURL:
          type: string
          description: Adres URL dla kontunuacji flow webowego
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia
    BlikTransactionDto:
      type: object
      properties:
        Type:
          type: string
        MerchantID:
          type: string
        Currency:
          type: string
        Amount:
          type: string
        CustomParam:
          type: string
        Description:
          type: string
        Timestamp:
          type: string
        MCC:
          type: string
        Code:
          type: string
        TxID:
          type: string
        ControlData:
          type: string
        Buid:
          type: string
      description: Struktura zapytania BLIK
    PaymentOptionsInfoResponse:
      type: object
      properties:
        tokenize:
          type: boolean
          description: Zadanie tokenizacji karty
        recurring:
          type: string
          description: Flaga płatności cyklicznych
        transKind:
          type: string
          description: Rodzaj transakcji dla transakcji kartowych
        methods:
          type: array
          description: Dostępne metody płatności
          nullable: true
          items:
            type: string
            description: Dostepne metody Płatności
            nullable: true
            enum:
              - CARD
              - PBL
              - BLIK
              - GPAY
              - APAY
              - UNKNOWN
              - C2P
        registerAlias:
          type: boolean
          description: Rejestracja aliasu na potrzeby transparentnych płatności
          nullable: true
      description: Inne parametry sterujace
    PaymentResponse:
      type: object
      properties:
        paymentId:
          type: string
          description: Identyfikator płatności w systemie operatora płatności
        subpayments:
          type: array
          description: Lista subtransakcji przy płatnościach z MARKETPLACE
          items:
            $ref: '#/components/schemas/SubpaymentResponse'
        status:
          type: string
          description: Aktualny status płatności
        dataRequest:
          type: string
          description: Zadanie dodatkowych danych
        acsData:
          $ref: '#/components/schemas/AcsData'
        redirectURL:
          type: string
          description: Adres URL dla kontynuacji flow webowego
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia Płatności
        tokenizerId:
          type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
        blikObject:
          $ref: '#/components/schemas/BlikTransactionDto'
        options:
          $ref: '#/components/schemas/PaymentOptionsInfoResponse'
        channel:
          type: string
          description: Kanal płatności
          enum:
            - PAYWALL
            - MOBILE
            - WEBAPI
            - EBOK
            - CSS
        method:
          type: string
          description: Metoda płatności
          enum:
            - CARD
            - PBL
            - BLIK
            - GPAY
            - APAY
            - UNKNOWN
            - C2P
        apaySession:
          type: string
          description: Obiekt sesji APAY do inicjalizacji płatności
        reattempt:
          type: string
          description: >-
            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
    SubpaymentResponse:
      type: object
      properties:
        subpaymentId:
          type: string
          description: Identyfikator subtransakcji
        merchantId:
          type: string
          description: Identyfikator merchanta
        extOrderId:
          type: string
          description: Identyfikator zamówienia w systemie merchanta
      description: Lista subtransakcji przy płatnościach z MARKETPLACE
    BrowserData:
      required:
        - javascriptEnabled
        - language
      type: object
      properties:
        javascriptEnabled:
          type: boolean
          description: Obsługa JavaScript włączona w przeglądarce
        javaEnabled:
          type: boolean
          description: >-
            Obsługa Java włączona w przeglądarce (wymagany dla javascriptEnabled
            = true)
          nullable: true
        language:
          type: string
          description: >-
            Język ustawiony na przeglądarce (wymagany dla javascriptEnabled =
            true)
          nullable: true
        colorDepth:
          type: string
          description: >-
            Wartość reprezentująca glębie bitową palety kolorów (wymagany dla
            javascriptEnabled = true)
          nullable: true
        screenHeight:
          type: integer
          description: Wysokość ekranu w pikselach (wymagany dla javascriptEnabled = true)
          format: int32
          nullable: true
        screenWidth:
          type: integer
          description: Szerokość ekranu w pikselach (wymagany dla javascriptEnabled = true)
          format: int32
          nullable: true
        timezone:
          type: integer
          description: >-
            Przesunięcie strefy czasowej w minutach miedzy czasem UTC (wymagany
            dla javascriptEnabled = true)
          format: int32
          nullable: true
      description: >-
        Parametry przeglądarki (wymagany dla channel = PAYWALL/WEBAPI; method =
        CARD)
      nullable: true
    CustomerInfo:
      type: object
      properties:
        email:
          maxLength: 254
          minLength: 0
          type: string
          description: Adres email klienta
        extCustomerId:
          maxLength: 255
          minLength: 0
          type: string
          description: Identyfikator klienta w systemie merchanta
          nullable: true
        name:
          maxLength: 45
          minLength: 0
          type: string
          description: Imię i nazwisko klienta
          nullable: true
        billing:
          $ref: '#/components/schemas/CustomerAddressDto'
        risk:
          $ref: '#/components/schemas/CustomerRiskIndicatorDto'
        phone:
          $ref: '#/components/schemas/PhoneNumberDto'
        firstName:
          maxLength: 30
          minLength: 0
          type: string
          description: Imię i nazwisko klienta
          nullable: true
        lastName:
          maxLength: 30
          minLength: 0
          type: string
          description: Imię i nazwisko klienta
          nullable: true
        extAccountNo:
          type: string
          description: Zewnętrzny numer rachunku
      description: Dane właściciela karty
    DeviceInfo:
      type: object
      properties:
        ip:
          maxLength: 45
          minLength: 0
          type: string
          description: IP urządzenia
          nullable: true
        name:
          type: string
          description: Nazwa urządzenia z którego wykonywana jest płatność
          nullable: true
        sdkData:
          $ref: '#/components/schemas/SdkData'
        browserData:
          $ref: '#/components/schemas/BrowserData'
      description: >-
        Dane urządzenia z którego wykonywana jest operacja (przeglądarka www lub
        urządzenie mobilne) (wymagane dla channel = PAYWALL/WEBAPI)
      nullable: true
    EphemPubKey:
      required:
        - crv
        - kty
        - x
        - 'y'
      type: object
      properties:
        x:
          type: string
          description: Zawiera wspolrzędną punktu x na krzywej eliptycznej
        'y':
          type: string
          description: Zawiera wspolrzędną punktu y na krzywej eliptycznej
        kty:
          type: string
          description: Typ klucza
        crv:
          type: string
          description: Identyfikator zastosowanej krzywej kryptograficznej
      description: >-
        Część publiczna efemerycznej pary kluczy wygenerowanych przez SDK
        slużąca do negocjacji połączenia z ACS
    MerchantAddress:
      required:
        - city
        - country
        - postal
        - street
      type: object
      properties:
        street:
          maxLength: 50
          minLength: 0
          type: string
          description: Adres (ulica i numer domu)
        postal:
          maxLength: 16
          minLength: 0
          type: string
          description: Kod pocztowy
        state:
          type: string
          description: Województwo (kod ISO 3166-2 np. 12 dla województwa małopolskiego
          example: '12'
        city:
          maxLength: 50
          minLength: 0
          type: string
          description: Miasto
        country:
          type: string
          description: Kraj (kod ISO np. PL)
          example: POL
        countryOfOrigin:
          type: string
          description: Kraj pochodzenia (kod ISO np. PL)
          example: POL
      description: Adres merchanta
      nullable: true
    MerchantInfo:
      required:
        - merchantId
      type: object
      properties:
        merchantId:
          maxLength: 15
          minLength: 0
          type: string
          description: Identyfikator merchanta nadany przez operatora płatności (MID)
        merchantName:
          maxLength: 40
          minLength: 0
          type: string
          description: Nazwa merchanta
          nullable: true
          deprecated: true
        name:
          maxLength: 40
          minLength: 0
          type: string
          description: Nazwa merchanta
          nullable: true
        mcc:
          maxLength: 4
          minLength: 0
          type: string
          description: MCC
          nullable: true
        url:
          maxLength: 2048
          minLength: 0
          type: string
          description: Adres URL sklepu
          nullable: true
        redirectURL:
          maxLength: 2048
          minLength: 0
          type: string
          description: Adres URL przekierowania
          nullable: true
        terminalId:
          maxLength: 12
          minLength: 0
          type: string
          description: Id terminala
          nullable: true
        location:
          $ref: '#/components/schemas/MerchantAddress'
        taxId:
          maxLength: 10
          minLength: 0
          type: string
          description: Nip
          nullable: true
        acsNotificationURL:
          maxLength: 2048
          minLength: 0
          type: string
          description: >-
            Adres publicznego endpointu do odebrania notyfikacji CRes z ACS
            (jezeli obslugiwany przez merchanta)
          nullable: true
        amexMerchantId:
          maxLength: 15
          minLength: 0
          type: string
          description: Id merchanta dla płatności AMEX
          nullable: true
        dpaId:
          type: string
          nullable: true
        organizationId:
          type: string
          nullable: true
      description: Dane merchanta pośredniczącego (operator aplikacji mobilnej)
      nullable: true
    PaymentOptions:
      type: object
      properties:
        transKind:
          type: string
          description: Rodzaj transakcji dla transakcji kartowych
          nullable: true
        transType:
          type: string
          description: Typ transakcji dla transakcji kartowych
          nullable: true
        tokenize:
          type: boolean
          description: Zadanie tokenizacji karty
          nullable: true
        recurring:
          type: string
          description: Flaga płatności cyklicznych
          nullable: true
        recurringType:
          type: string
          description: Rodzaj płatności cyklicznej
          nullable: true
        refPaymentId:
          type: string
          description: Identyfikator poprzedniej płatności (INITIAL)
          nullable: true
        tdsServerTxnId:
          type: string
          description: >-
            Identyfikator transakcji z systemu 3DS Server (jeżeli wystąpila
            wcześniejsza interakcja z 3DS przed zarejestrowaniem płatności)
          nullable: true
        validTime:
          maximum: 604800
          type: integer
          description: >-
            Czas ważności generowanych linkow płatności w sekundach (domyślnie
            600; max. 604800)
          format: int32
          nullable: true
        iframe:
          type: boolean
          description: Zadanie tokenizacji karty
          nullable: true
        asyncNotify:
          type: string
          description: Obsługa notyfikacji dla transakcji kartowych
          nullable: true
        methods:
          description: Obsługa metod płatności wywoływanych na PAYWALL
          type: array
          nullable: true
          items:
            type: string
            nullable: true
            enum:
              - CARD
              - PBL
              - BLIK
              - GPAY
              - APAY
              - UNKNOWN
              - C2P
        language:
          type: string
          description: Preferowana wersja językowa (kod ISO np. pl)
          nullable: true
        restore:
          type: boolean
          description: Możliwość odświeżenia linku do kontynuowania płatności
          nullable: true
        repeat:
          type: boolean
          description: Możliwość ponowienia kodu blik w przypadku błędnego wprowadzenia
          nullable: true
        registerAlias:
          type: boolean
          description: Zarejestruj alias na potrzeby transparentnych płatności
          nullable: true
        recurringExpDate:
          type: string
          description: 'Data graniczna dla płatności powtarzalnych (Format: YYYY-MM-DD)'
          format: date
          nullable: true
        recurringCycle:
          type: string
          description: >-
            Długość cyklu płatności (np. 1D - dzienny, 1M - miesięczny, 1Q -
            kwartalny, 1R - roczny; domyślnie 1M)
          nullable: true
        purposeCode:
          type: string
          description: Powód płatności AFT (wg kodu Visa)
          nullable: true
        fundSource:
          type: string
          description: >-
            Ź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
          nullable: true
          enum:
            - ACCOUNT
            - WALLET
            - PAYMENT
            - MERCHANT
        fundSourceRef:
          type: string
          description: Identyfikator rachunku źródłowego
          nullable: true
        ownCard:
          type: boolean
          description: >-
            Flaga karty własnej/obcej (np. dla procesu tokenizacji, gdy nie da
            się ustalić tej informacji z kontekstu)
          nullable: true
        nameVerify:
          type: boolean
          description: Weryfikacja danych odbiorcy (ANI)
          nullable: true
      description: Inne parametry sterujące
      nullable: true
    SdkData:
      required:
        - sdkAppId
        - sdkAuthValue
        - sdkEncData
        - sdkEphemPubKey
        - sdkInterface
        - sdkReferenceNumber
        - sdkTransID
        - sdkUiType
      type: object
      properties:
        sdkTransID:
          type: string
          description: Identyfikator UUID generowany przez 3DS SDK
        sdkReferenceNumber:
          type: string
          description: Identyfikator dostawcy oraz wersji 3DS SDK
        sdkInterface:
          type: string
          description: Wspierany przez SDK typ interfejsu
        sdkUiType:
          type: array
          description: Lista typów interfejsow wspieranych dla procesu challenge
          items:
            type: string
            description: Lista typow interfejsow wspieranych dla procesu challenge
            enum:
              - TEXT
              - SINGLE_SELECT
              - MULTI_SELECT
              - OOB
              - HTML
        sdkAppId:
          type: string
          description: >-
            Stała wartość UUID, która jest generowana przez SDK podczas
            instalacji aplikacji
        sdkEncData:
          type: string
          description: >-
            Obiekt JWE przygotowany przez SDK, zawierający zaszyfrowane dane dla
            DS
        sdkEphemPubKey:
          $ref: '#/components/schemas/EphemPubKey'
        sdkAuthValue:
          type: string
          description: Wartość służąca do weryfkacji autentyczności oraz integralności SDK
      description: Parametry SDK (wymagany dla channel = MOBILE)
      nullable: true
    TokenizerRequest:
      required:
        - channel
        - method
      type: object
      properties:
        channel:
          type: string
          description: Kanał operacji
          enum:
            - PAYWALL
            - MOBILE
            - WEBAPI
            - EBOK
            - CSS
        instrument:
          $ref: '#/components/schemas/InstrumentInfo'
        merchant:
          $ref: '#/components/schemas/MerchantInfo'
        customer:
          $ref: '#/components/schemas/CustomerInfo'
        device:
          $ref: '#/components/schemas/DeviceInfo'
        agent:
          $ref: '#/components/schemas/MerchantInfo'
        options:
          $ref: '#/components/schemas/PaymentOptions'
        method:
          type: string
          description: >-
            Typ tokenizacji (COF/NETWORK lub DEFAULT jeżeli system sam ma podjać
            decyzje na podstawie parametryzacji merchanta)
          enum:
            - COF
            - NETWORK
            - DEFAULT
        recipient:
          $ref: '#/components/schemas/TokenizerRecipientInfo'
      description: Szczegółowe dane requestu
    DiscardReasonRequest:
      type: object
      properties:
        reason:
          type: string
          description: Powód usunięcia tokenu
          nullable: true
          enum:
            - FRAUD
            - CLIENT
            - SYSTEM
    TokenDiscardResponse:
      type: object
      properties:
        status:
          type: string
          description: Status tokenizacji
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia
    TokenizationCancelResponse:
      type: object
      properties:
        tokenizerId:
          type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
        status:
          type: string
          description: Status tokenizacji
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia
    TokenValueRequest:
      type: object
      properties:
        method:
          type: string
          description: Typ tokenizacji (COF/NETWORK)
          enum:
            - COF
            - NETWORK
            - DEFAULT
        type:
          type: string
          description: Typ tokenu (COF/SCOF/VTS)
          enum:
            - COF
            - SCOF
            - VTS
        instrumentNo:
          type: string
          description: Nr tokenu kartowego (wymagany dla method = COF)
          nullable: true
        instrumentRef:
          type: string
          description: >-
            Identyfikator tokenu w zewnetrznym systemie (wymagany dla method =
            SCOF/VTS)
          nullable: true
      description: Szczegółowe dane requestu
    TokenInfo:
      type: object
      properties:
        type:
          type: string
          description: Typ tokenu (aktualnie wyłącznie COF)
        instrumentNo:
          type: string
          description: Token wygenerowany dla klienta
        instrumentRef:
          type: string
          description: Identyfikator tokenizowanej karty w zewnetrznym systemie
        expDate:
          type: string
          description: 'Data ważności tokenu (Format: YYYYMM)'
          example: '202101'
        cardMask:
          type: string
          description: Maskowany nr karty (na potrzeby wyświetlenia)
        cardGroup:
          type: string
          description: Organizacja płatnicza (VISA/MC)
          enum:
            - VISA
            - MC
            - AMEX
        customerId:
          type: string
          description: Identyfikator klienta użyty w procesie tokenizacji
        merchantId:
          type: string
          description: Identyfikator merchanta użyty w procesie tokenizacji
        visualURL:
          type: string
          description: URL do grafiki z wizerunkiem karty
        visualId:
          type: string
          description: Identyfikator wizerunku karty (guid w przypadku VTS)
    TokenDiscardRequest:
      type: object
      properties:
        method:
          type: string
          description: Typ tokenizacji (COF/NETWORK)
          enum:
            - COF
            - NETWORK
            - DEFAULT
        type:
          type: string
          description: Typ tokenu (COF/SCOF/VTS)
          enum:
            - COF
            - SCOF
            - VTS
        instrumentNo:
          type: string
          description: Nr tokenu kartowego (wymagany dla method = COF)
          nullable: true
        instrumentRef:
          type: string
          description: >-
            Identyfikator tokenu w zewnetrznym systemie (wymagany dla method =
            SCOF/VTS)
          nullable: true
        reason:
          type: string
          description: Powód usuniecia tokenu
          nullable: true
          enum:
            - FRAUD
            - CLIENT
            - SYSTEM
      description: Szczegółowe dane requestu
    ConvertRequest:
      required:
        - instrument
        - method
      type: object
      properties:
        method:
          type: string
          enum:
            - NETWORK
        instrument:
          $ref: '#/components/schemas/InstrumentInfo'
      description: Szczegłowe dane requestu
    ConvertResponse:
      type: object
      properties:
        type:
          type: string
          description: Typ tokenu (aktualnie wylacznie COF)
          enum:
            - COF
            - CARD
            - BLIK
            - BLIK_CODE
            - BLIK_UID
            - BLIK_PAYID
            - GPAY
            - APAY
            - PBL
            - SCOF
            - VTS
            - C2P_MC_UNIFIED
            - C2P_VISA_UNIFIED
            - EXT_COF
        instrumentNo:
          type: string
          description: Token wygenerowany dla klienta
        instrumentRef:
          type: string
          description: Identyfikator tokenizowanej karty w zewnetrznym systemie
        status:
          type: string
          description: Status tokenizacji
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia
    BinInfoRequestWithInstrument:
      required:
        - channel
        - instrument
        - sdkEndProtocol
        - sdkStartProtocol
      type: object
      properties:
        channel:
          type: string
          description: Kanał operacji
          enum:
            - PAYWALL
            - MOBILE
            - WEBAPI
            - EBOK
            - CSS
        sdkStartProtocol:
          type: string
          description: Najstarsza wersja protokołu wspierana przez SDK
        sdkEndProtocol:
          type: string
          description: Najnowsza wersja protokołu wspierana przez SDK
        instrument:
          $ref: '#/components/schemas/InstrumentInfo'
      description: Szczegółowe dane requestu
    BinInfoResponse:
      type: object
      properties:
        cardGroup:
          type: string
          enum:
            - VISA
            - MC
            - AMEX
        dsRefNumber:
          type: string
        tdsServerTxnId:
          type: string
        tdsProtocol:
          type: string
        tdsMethodURL:
          type: string
    MerchantRiskIndicator:
      type: object
      properties:
        deliveryEmailAddress:
          type: string
          description: Adres e-mail dostawy. Pole obowiazkowe dla Electronic Delivery.
          nullable: true
        deliveryTimeframe:
          type: string
          description: Wskazuje ramy czasowe dostawy
          nullable: true
          enum:
            - ELECTRONIC
            - SAME_DAY
            - NEXT_DAY
            - TWO_DAY
        giftCardAmount:
          type: number
          description: >-
            Kwota przedpłaty dla kart przedplaconych lub kart podarunkowych w
            calych jednostkach waluty.
          nullable: true
        giftCardCount:
          type: integer
          description: Liczba zakupionych kart przedpłaconych lub podarunkowych
          format: int32
          nullable: true
        giftCardCurr:
          type: string
          description: Waluta zakupionych kart przedpłaconych lub podarunkowych
          nullable: true
        preorder:
          type: boolean
          description: Flaga oznaczająca zamówienie z przyszłą data wydania
          nullable: true
        preorderDate:
          type: string
          description: >-
            W przypadku zakupu typu preorder przewidywana data dostepnosci
            zakupu
          format: date
          nullable: true
        reorder:
          type: boolean
          description: Flaga wskazująca czy przedmiot jest zamawiany ponownie
          nullable: true
        shipping:
          type: string
          description: Określa sposób wysyłki wybrany dla transakcji
          nullable: true
          enum:
            - CARDHOLDER_ADDR
            - VERIFIED_ADDR
            - DIFFERENT_ADDR
            - STORE
            - DIGITAL
            - TICKETS
            - NONE
      description: Dodatkowe parametry analizy ryzyka na potrzeby 3DS
      nullable: true
    OrderInfo:
      type: object
      properties:
        amount:
          type: number
          description: 'Kwota transakcji (Format: 000.00)'
          nullable: true
        currency:
          type: string
          description: Waluta transakcji (kod ISO np. PLN)
          nullable: true
        commission:
          type: number
          description: >-
            Kwota prowizji obciażajaca klienta (dodawana do kwoty oryginalnej
            transakcji)
          nullable: true
        extOrderId:
          type: string
          description: Identyfikator zamówienia z systemu merchanta
          nullable: true
        shipping:
          $ref: '#/components/schemas/CustomerAddressDto'
        risk:
          $ref: '#/components/schemas/MerchantRiskIndicator'
        description:
          type: string
          description: Opis zamówienia (do prezentacji na ekranie potwierdzenia)
          nullable: true
        subpayments:
          type: array
          description: Podział na transakcje przy płatności z MARKETPLACE
          nullable: true
          items:
            $ref: '#/components/schemas/SubpaymentInfo'
      description: Dane zamówienia podlegajacego płatności
    PaymentRequest:
      required:
        - channel
        - method
      type: object
      properties:
        channel:
          type: string
          description: Kanał operacji
          enum:
            - PAYWALL
            - MOBILE
            - WEBAPI
            - EBOK
            - CSS
        instrument:
          $ref: '#/components/schemas/InstrumentInfo'
        merchant:
          $ref: '#/components/schemas/MerchantInfo'
        customer:
          $ref: '#/components/schemas/CustomerInfo'
        device:
          $ref: '#/components/schemas/DeviceInfo'
        agent:
          $ref: '#/components/schemas/MerchantInfo'
        options:
          $ref: '#/components/schemas/PaymentOptions'
        method:
          type: string
          description: Metoda płatności
        order:
          $ref: '#/components/schemas/OrderInfo'
        recipient:
          $ref: '#/components/schemas/RecipientInfo'
        consents:
          type: string
          description: Zgody marketingowe
        preAuthRequest:
          type: boolean
        initialRecurringForZeroAmount:
          type: boolean
        restorable:
          type: boolean
      description: Szczegółowe dane requestu
    RecipientAddress:
      required:
        - city
        - country
        - postal
        - street
      type: object
      properties:
        street:
          maxLength: 50
          minLength: 0
          type: string
          description: Adres (ulica i numer domu)
        postal:
          maxLength: 10
          minLength: 0
          type: string
          description: Kod pocztowy
        state:
          type: string
          description: Województwo
          example: mazowieckie
        city:
          maxLength: 25
          minLength: 0
          type: string
          description: Miasto
        country:
          type: string
          description: Kraj (kod ISO np. PL)
          example: POL
      description: Adres rozliczeniowy odbiorcy
      nullable: true
    RecipientInfo:
      type: object
      properties:
        ownAccount:
          type: boolean
          description: Własny rachunek/wallet
          nullable: true
        billing:
          $ref: '#/components/schemas/RecipientAddress'
        riskyBrands:
          type: array
          description: Lista MCC wysokiego ryzyka związanych z walletem (transakcje AFT)
          nullable: true
          items:
            type: string
            description: Lista MCC wysokiego ryzyka zwiazanych z walletem (transakcje AFT)
            nullable: true
            enum:
              - ADULT_CONTENT
              - CRYPTOCURRENCY
              - CYBERLOCKER_SERVICES
              - GAMBLING
              - HIGH_RISK_SECURITIES
              - PRESCRIPTION_DRUG
              - TOBACCO
        firstName:
          maxLength: 35
          minLength: 0
          type: string
          description: Imię odbiorcy (wymagany dla ownAccount = false)
          nullable: true
        lastName:
          maxLength: 35
          minLength: 0
          type: string
          description: Nazwisko odbiorcy (wymagany dla ownAccount = false)
          nullable: true
        accountRef:
          maxLength: 50
          minLength: 0
          type: string
          description: Nr rachunku odbiorcy (wymagany dla ownAccount = false)
          nullable: true
        target:
          type: string
          description: >-
            Cel transferu środków. Dopuszczalne wartości:CARD - karta kredytowa;
            PREPAID - karta prepaid; ACCOUNT - rachunek debetowy
          nullable: true
          enum:
            - CARD
            - PREPAID
            - ACCOUNT
            - WALLET
      description: >-
        Odbiorca środkow dla transakcji typu ACCT_FUNDING (wymagane dla
        transKind = ACCT_FUNDING)
      nullable: true
    SubpaymentInfo:
      required:
        - commission
        - merchantId
      type: object
      properties:
        subpaymentId:
          type: string
          description: Identyfikator subtransakcji
          nullable: true
        merchantId:
          type: string
          description: Identyfikator merchanta
        amount:
          type: number
          description: Kwota transakcji
        commission:
          type: number
          description: Prowizja dla MARKETPLACE
        extOrderId:
          type: string
          description: Identyfikator zamowienia w systemie merchanta
          nullable: true
        extCustomerId:
          maxLength: 64
          minLength: 0
          type: string
          description: >-
            Identyfikator klienta w systemie submerchanta (Płatności
            multikoszykowe)
          nullable: true
        productId:
          maxLength: 64
          minLength: 0
          type: string
          description: Identyfikator produktu wg systemu submerchanta
          nullable: true
        productName:
          maxLength: 64
          minLength: 0
          type: string
          description: Nazwa produktu
          nullable: true
        productNumber:
          maxLength: 64
          minLength: 0
          type: string
          description: Numer katalogowy produktu
          nullable: true
        productDescription:
          maxLength: 128
          minLength: 0
          type: string
          description: Opis produktu
          nullable: true
        productCategory:
          maxLength: 64
          minLength: 0
          type: string
          description: Kategoria produktu
          nullable: true
        companyId:
          maxLength: 64
          minLength: 0
          type: string
          description: Identyfikator firmy
          nullable: true
        operatorName:
          maxLength: 64
          minLength: 0
          type: string
          description: Nazwa operatora
          nullable: true
      description: Podział na transakcje przy płatności z MARKETPLACE
      nullable: true
    AdjustmentResponse:
      type: object
      properties:
        paymentId:
          type: string
          description: Identyfikator płatności w systemie operatora płatności
        transId:
          type: string
          description: Identyfikator systemowy transakcji
        status:
          type: string
          description: Aktualny status płatności
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia płatności
    PaymentRefundRequest:
      type: object
      properties:
        subpaymentId:
          type: string
          description: Identyfikator subtransakcji
          nullable: true
        amount:
          type: number
          description: >-
            Kwota zwrotu dla zwrotów częściowych; domyślnie zwracana jest pełna
            kwota (Format: 000.00)
          nullable: true
        description:
          type: string
          description: Dodatkowe informacje o powodzie zwrotu
          nullable: true
        extRefundId:
          type: string
          description: Identyfikator zwrotu w zewnętrznym systemie
          nullable: true
      description: Szczegółowe dane requestu
    PaymentRefundResponse:
      type: object
      properties:
        paymentId:
          type: string
          description: Identyfikator płatności w systemie operatora płatności
        subpaymentId:
          type: string
          description: Identyfikator subtransakcji
        refundId:
          type: string
          description: Identyfikator zwrotu (zgodny formatem z identyfikatorem płatności)
        status:
          type: string
          description: Status zwrotu
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia płatności
    PreAuthCaptureRequest:
      type: object
      properties:
        amount:
          type: number
          description: Kwota dopelnienia
          nullable: true
        description:
          type: string
          description: Dodatkowe informacje
          nullable: true
      description: Szczegółowe dane requestu
    CancelStatusDto:
      type: object
      properties:
        paymentId:
          type: string
          description: Identyfikator płatności w systemie operatora płatności
        status:
          type: string
          description: Aktualny status płatności
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia płatności
        redirectURL:
          type: string
          description: Adres URL dla kontynuacji flow webowego
    BinInfoRequest:
      required:
        - channel
        - sdkEndProtocol
        - sdkStartProtocol
      type: object
      properties:
        channel:
          type: string
          description: Kanał operacji
          enum:
            - PAYWALL
            - MOBILE
            - WEBAPI
            - EBOK
            - CSS
        sdkStartProtocol:
          type: string
          description: Najstarsza wersja protokołu wspierana przez SDK
        sdkEndProtocol:
          type: string
          description: Najnowsza wersja protokołu wspierana przez SDK
      description: Szczegółowe dane requestu
    PreAuthAdjustmentRequest:
      type: object
      properties:
        amount:
          type: number
          description: Kwota dopełnienia
          nullable: true
        description:
          type: string
          description: Dodatkowe informacje
          nullable: true
      description: Szczegółowe dane requestu
    PaymentSearchRequest:
      required:
        - extOrderId
      type: object
      properties:
        extOrderId:
          type: string
          description: Identyfikator zamowienia z systemu merchanta
        merchant:
          $ref: '#/components/schemas/MerchantInfo'
        agent:
          $ref: '#/components/schemas/MerchantInfo'
      description: Szczegółowe dane requestu
    PaymentSearchResponse:
      type: object
      properties:
        payments:
          uniqueItems: true
          type: array
          description: Identyfikator płatności w systemie operatora płatności
          items:
            type: string
            description: Identyfikator płatności w systemie operatora płatności
    AuthRequest:
      required:
        - resource
      type: object
      properties:
        resource:
          type: string
          description: >-
            Określa zakres używania tokenu. Dopuszczalne wartości: PAYMENT -
            procesowanie Płatności (domyslny timeout 10m), TOKENIZER - proces
            tokenizacji karty (timeout 10m)
        channel:
          type: string
          description: Kanał operacji (wymagany dla resource = PAYMENT/TOKENIZER)
          nullable: true
          enum:
            - PAYWALL
            - MOBILE
            - WEBAPI
            - EBOK
            - CSS
        secret:
          type: string
          description: >-
            Poufny klucz przyznawany merchantowi przez operatora płatności
            (dotyczy merchanta lub agenta, jezeli obecny)
        merchant:
          $ref: '#/components/schemas/MerchantAuthInfo'
        agent:
          $ref: '#/components/schemas/MerchantAuthInfo'
        customer:
          $ref: '#/components/schemas/CustomerAuthInfo'
    CustomerAuthInfo:
      type: object
      properties:
        email:
          maxLength: 254
          minLength: 0
          type: string
          description: Adres email klienta
      description: >-
        Dane klienta, konieczne podanie tylko adresu email (wymagany dla
        resource = PAYMENT/TOKENIZER)
      nullable: true
    MerchantAuthInfo:
      required:
        - merchantId
      type: object
      properties:
        merchantId:
          maxLength: 15
          minLength: 0
          type: string
          description: Identyfikator merchanta nadany przez operatora Płatności (MID)
      description: >-
        Dane merchanta pośredniczacego (operator aplikacji mobilnej), konieczne
        podanie tylko MID, wymagane dla każdej operacji procesowanej przez
        agenta
      nullable: true
    AuthResponse:
      type: object
      properties:
        access_token:
          type: string
          description: Token JWT (base64 encoded)
    InstrumentDeviceInfo:
      type: object
      properties:
        instrument:
          $ref: '#/components/schemas/InstrumentInfo'
        device:
          $ref: '#/components/schemas/DeviceInfo'
        customer:
          $ref: '#/components/schemas/CustomerInfo'
        consents:
          type: string
          description: Zgody marketingowe
        language:
          type: string
          description: Preferowana wersja jezykowa (kod ISO np. pl)
          nullable: true
      description: Szczegółowe dane requestu
    PatchInstrumentRequest:
      type: object
      properties:
        cvv:
          type: string
        code:
          type: string
        app:
          type: string
      description: Szczegółowe dane requestu
    TokenizationInfo:
      type: object
      properties:
        tokenizerId:
          type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
        type:
          type: string
          description: Typ tokenu (aktualnie wyłącznie COF)
          enum:
            - COF
            - SCOF
            - VTS
        instrumentNo:
          type: string
          description: Token wygenerowany dla klienta
        instrumentRef:
          type: string
          description: Identyfikator tokenizowanej karty w zewnetrznym systemie
        status:
          type: string
          description: Status tokenizacji
        redirectURL:
          type: string
          description: Adres URL dla kontunuacji flow webowego
        expDate:
          type: string
          description: 'Data ważności tokenu (Format: YYYYMM)'
          example: '202101'
        cardMask:
          type: string
          description: Maskowany nr karty (na potrzeby wyświetlenia)
        cardGroup:
          type: string
          description: Organizacja płatnicza (VISA/MC)
          enum:
            - VISA
            - MC
            - AMEX
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia
        customerId:
          type: string
          description: Identyfikator klienta użyty w procesie tokenizacji
        merchantId:
          type: string
          description: Identyfikator merchanta użyty w procesie tokenizacji
        dataRequest:
          type: string
          description: Zadanie dodatkowych danych
          enum:
            - INSTRUMENT
            - CARD_CVV
            - CARD_3DS
            - CARD_OTP
            - CAPTURE
            - BLIK_APP
            - DEVICE
            - CUSTOMER
            - EMAIL
            - BLIK_CODE
        visualURL:
          type: string
          description: URL do grafiki z wizerunkiem karty
        visualId:
          type: string
          description: Identyfikator wizerunku karty (guid w przypadku VTS)
        recipient:
          $ref: '#/components/schemas/RecipientVerificationInfo'
    TokenizationStatusResponse:
      type: object
      properties:
        tokenizerId:
          type: string
          description: Identyfikator systemowy tokenu (służy m.in. do pobrania tokenu)
        status:
          type: string
          description: Status tokenizacji
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia
        redirectURL:
          type: string
          description: Adres URL dla kontunuacji flow webowego
    VisualCardArtResponse:
      type: object
      properties:
        altText:
          type: string
          description: Nazwa grafiki
        mimeType:
          type: string
          description: Typ MIME (np. image/png)
        width:
          type: string
          description: Szerokość w pikselach
        height:
          type: string
          description: Wysokość w pikselach
        encodedData:
          type: string
          description: Dane grafiki encodowane jako base64
    PaymentInfoResponse:
      type: object
      properties:
        paymentId:
          type: string
          description: Identyfikator płatności w systemie operatora płatności
        status:
          type: string
          description: Aktualny status płatności
        merchant:
          $ref: '#/components/schemas/MerchantInfo'
        customer:
          $ref: '#/components/schemas/CustomerInfo'
        order:
          $ref: '#/components/schemas/OrderInfo'
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia płatności
        options:
          $ref: '#/components/schemas/PaymentOptionsInfoResponse'
        channel:
          type: string
          description: Kanał płatności
          enum:
            - PAYWALL
            - MOBILE
            - WEBAPI
            - EBOK
            - CSS
        method:
          type: string
          description: Metoda płatności
          enum:
            - CARD
            - PBL
            - BLIK
            - GPAY
            - APAY
            - UNKNOWN
            - C2P
        orderAmount:
          type: number
          description: >-
            Aktualna kwota płatności, która może być modyfikowana przez
            adjustment lub cancel. W standardowym przypadku jest równa kwocie z
            sekcji order (ta oryginalna kwota nigdy nie ulega zmianie)
        captureAmount:
          type: number
          description: >-
            Zatwierdzona kwota płatności (dotyczy preautoryzacji). Dla
            regularnych płatności równa kwocie z sekcji order, dla preautorycji
            aktualizowana po każdej akcji capture
        redirectURL:
          type: string
          description: Adres URL dla kontynuacji flow webowego
        forceSca:
          type: boolean
          description: Flaga wymuszenia silnego uwierzytelnienia klienta (SCA)
        recipient:
          $ref: '#/components/schemas/RecipientVerificationInfo'
        reattempt:
          type: string
          description: >-
            Informacja o ograniczeniach w wykonywaniu płatności. Dopuszczalne
            wartosci:NEVER - nie wysyłaj więcej komunikatow na ten numer karty;
            NEVER_RECURRING - nie wysyłaj wiecej komunikatow dla płatności
            powtarzalnej; LATER - sprobuj później
          enum:
            - NEVER
            - NEVER_RECURRING
            - LATER
    PaymentTransaction:
      type: object
      properties:
        transId:
          type: string
        transKind:
          type: string
          enum:
            - AUTH
            - PREAUTH
            - REVERSAL
            - ADJUSTMENT
            - CAPTURE
        status:
          type: string
          enum:
            - NEW
            - PENDING
            - COMPLETED
            - REJECTED
            - SETTLED
            - CANCELLED
            - ERROR
        amount:
          type: number
        timestamp:
          type: string
          format: date-time
      description: Lista transakcji
    PaymentTransactionsResponse:
      type: object
      properties:
        paymentId:
          type: string
          description: Identyfikator płatności w systemie operatora płatności
        transactions:
          type: array
          description: Lista transakcji
          items:
            $ref: '#/components/schemas/PaymentTransaction'
    SubpaymentsResponse:
      type: object
      properties:
        paymentId:
          type: string
          description: Identyfikator płatności w systemie operatora płatności
        subpayments:
          type: array
          description: Lista subtransakcji przy płatnościach z MARKETPLACE
          items:
            $ref: '#/components/schemas/SubpaymentInfo'
    MobileApp:
      type: object
      properties:
        app:
          type: string
          description: Identyfikator aplikacji
        label:
          type: string
          description: Etykieta umożliwiajaca identyfikację aplikacji
      description: Lista aplikacji mobilnych związanych z podanym aliasem BLIK
    PaymentStatusDto:
      type: object
      properties:
        paymentId:
          type: string
          description: Identyfikator płatności w systemie operatora płatności
        status:
          type: string
          description: Aktualny status płatności
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia płatności
        redirectURL:
          type: string
          description: Adres URL dla kontynuacji flow webowego
        options:
          $ref: '#/components/schemas/PaymentOptionsInfoResponse'
        dataRequest:
          type: string
          description: Zadanie dodatkowych danych
        blikApps:
          type: array
          description: Lista aplikacji mobilnych zwiazanych z podanym aliasem BLIK
          items:
            $ref: '#/components/schemas/MobileApp'
        merchantURL:
          type: string
          description: Adres URL sklepu
        statusPresentation:
          type: boolean
        reattempt:
          type: string
          description: >-
            Informacja o ograniczeniach w wykonywaniu płatności. Dopuszczalne
            wartosci: NEVER - nie wysyłaj więcej komunikatow na ten numer karty;
            NEVER_RECURRING - nie wysyłaj wiecej komunikatow dla płatności
            powtarzalnej; LATER - spróbuj później
          enum:
            - NEVER
            - NEVER_RECURRING
            - LATER
    RefundDetailsResponse:
      type: object
      properties:
        paymentId:
          type: string
          description: Identyfikator płatności w systemie operatora płatności
        subpaymentId:
          type: string
          description: Identyfikator subtransakcji
        refundId:
          type: string
          description: Identyfikator systemowy transakcji
        status:
          type: string
          description: Aktualny status transakcji
        amount:
          type: number
          description: Kwota transakcji
        rejectCode:
          type: string
          description: Powód odrzucenia (w przypadku niepowodzenia)
        rejectInfo:
          type: string
          description: Dodatkowe informacje o powodzie odrzucenia zwrotu
        timestamp:
          type: string
          description: Data transakcji
          format: date-time
        extRefundId:
          type: string
          description: Identyfikator zwrotu w zęwnetrznym systemie
      description: Lista transakcji zwrotów
    RefundsResponse:
      type: object
      properties:
        paymentId:
          type: string
          description: Identyfikator płatności w systemie operatora płatności
        orderAmount:
          type: number
          description: 'Kwota transakcji (Format: 000.00)'
        refundAmount:
          type: number
          description: Sumaryczna kwota środkow zwroconych klientowi
        transactions:
          type: array
          description: Lista transakcji zwrotów
          items:
            $ref: '#/components/schemas/RefundDetailsResponse'
    PaymentMethodInfo:
      type: object
      properties:
        method:
          type: string
          description: Metoda płatności
        status:
          type: string
          description: Status aktywnosci metody płatności
        cardGroups:
          type: string
          description: Obsługiwane organizacje płatnicze (VISA/MC/AMEX)
      description: Dostępne metody płatności
    PaymentMethodResponse:
      type: object
      properties:
        methods:
          type: array
          description: Dostepne metody Płatności
          items:
            $ref: '#/components/schemas/PaymentMethodInfo'
    AcsDataResponse:
      type: object
      properties:
        paymentId:
          type: string
          description: Identyfikator płatności w systemie operatora płatności
        acsData:
          $ref: '#/components/schemas/AcsData'
    RefundsBalanceResponse:
      type: object
      properties:
        balance:
          type: number
          description: Dostępne saldo merchanta
    CustomerAddressDto:
      required:
        - city
        - country
        - postal
        - street
      type: object
      properties:
        street:
          maxLength: 50
          minLength: 0
          type: string
          description: Adres (ulica i numer domu)
        postal:
          maxLength: 16
          minLength: 0
          type: string
          description: Kod pocztowy
        state:
          type: string
          description: Wojewodztwo
          example: mazowieckie
        city:
          maxLength: 50
          minLength: 0
          type: string
          description: Miasto
        country:
          type: string
          description: Kraj (kod ISO np. PL)
          example: POL
      description: Adres rozliczeniowy klienta (wymagany dla method = CARD)
      nullable: true
    CustomerRiskIndicatorDto:
      type: object
      properties:
        scaPreference:
          type: string
          description: Preferencje dotyczące silnego uwierzytelnienia klienta (SCA)
          enum:
            - RISK_VERIFIED
            - DATA_SHARE
            - USE_WL
            - SCA_PERFORMED
            - PROMPT_WL
            - LOW_VALUE
            - LOW_RISK
        accountAuthDate:
          type: string
          description: >-
            Data i godzina (UTC) uwierzytelnienia klienta (Format:
            yyyy-MM-dd'T'HH:mm:ss.SSSX) (wymagane dla scaPreference = LOW_RISK)
          nullable: true
          example: '2022-02-15T18:35:24.00Z'
        accountCreateDate:
          type: string
          description: >-
            Data zalożenia konta u merchanta/agenta (Format: yyyy-MM-dd)
            (wymagane dla scaPreference = LOW_RISK)
          nullable: true
          example: '2022-02-15'
        accountChangeDate:
          type: string
          description: >-
            Data ostatniej zmiany danych konta (Format: yyyy-MM-dd) (wymagane
            dla scaPreference = LOW_RISK)
          nullable: true
          example: '2022-02-15'
        accountActiveDate:
          type: string
          description: >-
            Data od kiedy posiadacz karty aktywował płatności na koncie
            merchanta/agenta (Format: yyyy-MM-dd) (wymagane dla scaPreference =
            LOW_RISK)
          nullable: true
          example: '2022-02-15'
        passChangeDate:
          type: string
          description: >-
            Data ostatniej zmiany hasła do konta (Format: yyyy-MM-dd) (wymagane
            dla scaPreference = LOW_RISK)
          nullable: true
          example: '2022-02-15'
        purchaseCount6M:
          type: integer
          description: >-
            Liczba zakupów wykonana za pomoca konta w ciągu ostatnich sześciu
            miesiecy (wymagane dla scaPreference = LOW_RISK)
          format: int32
          nullable: true
        tokenizationCountDay:
          type: integer
          description: >-
            Liczba prób dodania kart do konta z ostatnich 24 godzin (wymagane
            dla scaPreference = LOW_RISK)
          format: int32
          nullable: true
        transactionCountDay:
          type: integer
          description: Liczba transakcji udanych oraz nieudanych z ostatnich 24 godzin
          format: int32
          nullable: true
          deprecated: true
        transactionCountYear:
          type: integer
          description: Liczba transakcji udanych oraz nieudanych z ostatniego roku
          format: int32
          nullable: true
          deprecated: true
        shipAddressDate:
          type: string
          description: >-
            Data pierwszego użycia adresu, który został wybrany dla aktualnej
            transakcji (Format: yyyy-MM-dd) (wymagane dla scaPreference =
            LOW_RISK)
          nullable: true
          example: '2022-02-15'
        shipNameIndicator:
          type: boolean
          description: >-
            Wskazuje czy nazwa posiadacza karty zdefiniowana na koncie operatora
            jest identyczna jak ta w nazwie do wysyłki bieżacej transakcji
          nullable: true
        suspiciousActivity:
          type: boolean
          description: >-
            Wskazuje czy kiedykolwiek zachowanie posiadacza karty zostało
            potraktowane jako podejrzane (wymagane dla scaPreference = LOW_RISK)
          nullable: true
        authenticatedTransaction:
          type: boolean
          description: Wskazuje czy transakcja była dodatkowo uwierzytelniona
          nullable: true
        transactionSCountDay:
          type: integer
          description: Liczba transakcji udanych z ostatnich 24 godzin
          format: int32
          nullable: true
        transactionUCountDay:
          type: integer
          description: Liczba transakcji nieudanych z ostatnich 24 godzin
          format: int32
          nullable: true
        transactionSCountYear:
          type: integer
          description: Liczba transakcji udanych z ostatniego roku
          format: int32
          nullable: true
        transactionUCountYear:
          type: integer
          description: Liczba transakcji nieudanych z ostatniego roku
          format: int32
          nullable: true
      description: Dodatkowe parametry analizy ryzyka na potrzeby 3DS
      nullable: true
    PhoneNumberDto:
      required:
        - countryCode
        - phoneNo
      type: object
      properties:
        countryCode:
          maxLength: 3
          minLength: 1
          type: string
          description: Kod kraju
          example: '48'
        phoneNo:
          maxLength: 15
          minLength: 7
          type: string
          description: Numer telefonu
          example: '123456789'
      description: Obiekt zawierający dane telefoniczne klienta
      nullable: true
    TokenizerRecipientInfo:
      type: object
      properties:
        firstName:
          maxLength: 35
          minLength: 0
          type: string
          description: Imię odbiorcy (wymagany dla ownAccount = false)
          nullable: true
        lastName:
          maxLength: 35
          minLength: 0
          type: string
          description: Nazwisko odbiorcy (wymagany dla ownAccount = false)
          nullable: true
    PaymentCancelRequest:
      type: object
      properties:
        reason:
          type: string
          enum:
            - FRAUD
            - CLIENT
            - TIMEOUT
            - SYSTEM
      description: Szczegółowe dane requestu
    CardInfoInstrument:
      type: object
      properties:
        encInstrumentNo:
          type: string
          description: Zaszyfrowany nr instrumentu płatniczego
          nullable: true
        instrumentNo:
          type: string
          description: >-
            Nr instrumentu płatniczego (np. tokenu lub karty) (wymagany dla type
            = CARD/COF)
          nullable: true
      description: Dane karty
    CardInfoOptions:
      type: object
      properties:
        octVerify:
          type: boolean
          description: >-
            Weryfikacja dostępności operacji OCT dla karty (wymaga uzupełnienia
            senderCountry i fundSource)
        senderCountry:
          type: string
          description: >-
            Kraj nadawcy (w przypadku transferu środkow P2P; moze byc
            uzupełniony na podstawie danych nadawcy)
          enum:
            - >-
              ISO3166{alpha2Code=AD, alpha3Code=AND, numericCode=020,
              name=Andorra}
            - >-
              ISO3166{alpha2Code=AE, alpha3Code=ARE, numericCode=784,
              name=United Arab Emirates}
            - >-
              ISO3166{alpha2Code=AF, alpha3Code=AFG, numericCode=004,
              name=Afghanistan }
            - >-
              ISO3166{alpha2Code=AG, alpha3Code=ATG, numericCode=028,
              name=Antigua and Barbuda}
            - >-
              ISO3166{alpha2Code=AI, alpha3Code=AIA, numericCode=660,
              name=Anguilla}
            - >-
              ISO3166{alpha2Code=AL, alpha3Code=ALB, numericCode=008,
              name=Albania}
            - >-
              ISO3166{alpha2Code=AM, alpha3Code=ARM, numericCode=051,
              name=Armenia}
            - >-
              ISO3166{alpha2Code=AO, alpha3Code=AGO, numericCode=024,
              name=Angola}
            - >-
              ISO3166{alpha2Code=AQ, alpha3Code=ATA, numericCode=010,
              name=Antarctica}
            - >-
              ISO3166{alpha2Code=AR, alpha3Code=ARG, numericCode=032,
              name=Argentina}
            - >-
              ISO3166{alpha2Code=AS, alpha3Code=ASM, numericCode=016,
              name=American Samoa}
            - >-
              ISO3166{alpha2Code=AT, alpha3Code=AUT, numericCode=040,
              name=Austria}
            - >-
              ISO3166{alpha2Code=AU, alpha3Code=AUS, numericCode=036,
              name=Australia}
            - >-
              ISO3166{alpha2Code=AW, alpha3Code=ABW, numericCode=533,
              name=Aruba}
            - >-
              ISO3166{alpha2Code=AX, alpha3Code=ALA, numericCode=248, name=Aland
              Islands}
            - >-
              ISO3166{alpha2Code=AZ, alpha3Code=AZE, numericCode=031,
              name=Azerbaijan}
            - >-
              ISO3166{alpha2Code=BA, alpha3Code=BIH, numericCode=070,
              name=Bosnia and Herzegovina}
            - >-
              ISO3166{alpha2Code=BB, alpha3Code=BRB, numericCode=052,
              name=Barbados}
            - >-
              ISO3166{alpha2Code=BD, alpha3Code=BGD, numericCode=050,
              name=Bangladesh}
            - >-
              ISO3166{alpha2Code=BE, alpha3Code=BEL, numericCode=056,
              name=Belgium}
            - >-
              ISO3166{alpha2Code=BF, alpha3Code=BFA, numericCode=854,
              name=Burkina Faso}
            - >-
              ISO3166{alpha2Code=BG, alpha3Code=BGR, numericCode=100,
              name=Bulgaria}
            - >-
              ISO3166{alpha2Code=BH, alpha3Code=BHR, numericCode=048,
              name=Bahrain}
            - >-
              ISO3166{alpha2Code=BI, alpha3Code=BDI, numericCode=108,
              name=Burundi}
            - >-
              ISO3166{alpha2Code=BJ, alpha3Code=BEN, numericCode=204,
              name=Benin}
            - >-
              ISO3166{alpha2Code=BL, alpha3Code=BLM, numericCode=652, name=Saint
              Barthélemy}
            - >-
              ISO3166{alpha2Code=BM, alpha3Code=BMU, numericCode=060,
              name=Bermuda}
            - >-
              ISO3166{alpha2Code=BN, alpha3Code=BRN, numericCode=096,
              name=Brunei Darussalam}
            - >-
              ISO3166{alpha2Code=BO, alpha3Code=BOL, numericCode=068,
              name=Bolivia, Plurinational State of}
            - >-
              ISO3166{alpha2Code=BQ, alpha3Code=BES, numericCode=535,
              name=Bonaire, Saint Eustatius and Saba}
            - >-
              ISO3166{alpha2Code=BR, alpha3Code=BRA, numericCode=076,
              name=Brazil}
            - >-
              ISO3166{alpha2Code=BS, alpha3Code=BHS, numericCode=044,
              name=Bahamas}
            - >-
              ISO3166{alpha2Code=BT, alpha3Code=BTN, numericCode=064,
              name=Bhutan}
            - >-
              ISO3166{alpha2Code=BV, alpha3Code=BVT, numericCode=074,
              name=Bouvet Island}
            - >-
              ISO3166{alpha2Code=BW, alpha3Code=BWA, numericCode=072,
              name=Botswana}
            - >-
              ISO3166{alpha2Code=BY, alpha3Code=BLR, numericCode=112,
              name=Belarus}
            - >-
              ISO3166{alpha2Code=BZ, alpha3Code=BLZ, numericCode=084,
              name=Belize}
            - >-
              ISO3166{alpha2Code=CA, alpha3Code=CAN, numericCode=124,
              name=Canada}
            - >-
              ISO3166{alpha2Code=CC, alpha3Code=CCK, numericCode=166, name=Cocos
              (Keeling) Islands}
            - >-
              ISO3166{alpha2Code=CD, alpha3Code=COD, numericCode=180,
              name=Congo, the Democratic Republic of the}
            - >-
              ISO3166{alpha2Code=CF, alpha3Code=CAF, numericCode=140,
              name=Central African Republic}
            - >-
              ISO3166{alpha2Code=CG, alpha3Code=COG, numericCode=178,
              name=Congo}
            - >-
              ISO3166{alpha2Code=CH, alpha3Code=CHE, numericCode=756,
              name=Switzerland}
            - >-
              ISO3166{alpha2Code=CI, alpha3Code=CIV, numericCode=384, name=Côte
              d'Ivoire}
            - >-
              ISO3166{alpha2Code=CK, alpha3Code=COK, numericCode=184, name=Cook
              Islands}
            - >-
              ISO3166{alpha2Code=CL, alpha3Code=CHL, numericCode=152,
              name=Chile}
            - >-
              ISO3166{alpha2Code=CM, alpha3Code=CMR, numericCode=120,
              name=Cameroon}
            - >-
              ISO3166{alpha2Code=CN, alpha3Code=CHN, numericCode=156,
              name=China}
            - >-
              ISO3166{alpha2Code=CO, alpha3Code=COL, numericCode=170,
              name=Colombia}
            - >-
              ISO3166{alpha2Code=CR, alpha3Code=CRI, numericCode=188, name=Costa
              Rica}
            - ISO3166{alpha2Code=CU, alpha3Code=CUB, numericCode=192, name=Cuba}
            - >-
              ISO3166{alpha2Code=CV, alpha3Code=CPV, numericCode=132, name=Cape
              Verde}
            - >-
              ISO3166{alpha2Code=CW, alpha3Code=CUW, numericCode=531,
              name=Curaçao}
            - >-
              ISO3166{alpha2Code=CX, alpha3Code=CXR, numericCode=162,
              name=Christmas Island}
            - >-
              ISO3166{alpha2Code=CY, alpha3Code=CYP, numericCode=196,
              name=Cyprus}
            - >-
              ISO3166{alpha2Code=CZ, alpha3Code=CZE, numericCode=203, name=Czech
              Republic}
            - >-
              ISO3166{alpha2Code=DE, alpha3Code=DEU, numericCode=276,
              name=Germany}
            - >-
              ISO3166{alpha2Code=DJ, alpha3Code=DJI, numericCode=262,
              name=Djibouti}
            - >-
              ISO3166{alpha2Code=DK, alpha3Code=DNK, numericCode=208,
              name=Denmark}
            - >-
              ISO3166{alpha2Code=DM, alpha3Code=DMA, numericCode=212,
              name=Dominica}
            - >-
              ISO3166{alpha2Code=DO, alpha3Code=DOM, numericCode=214,
              name=Dominican Republic}
            - >-
              ISO3166{alpha2Code=DZ, alpha3Code=DZA, numericCode=012,
              name=Algeria}
            - >-
              ISO3166{alpha2Code=EC, alpha3Code=ECU, numericCode=218,
              name=Ecuador}
            - >-
              ISO3166{alpha2Code=EE, alpha3Code=EST, numericCode=233,
              name=Estonia}
            - >-
              ISO3166{alpha2Code=EG, alpha3Code=EGY, numericCode=818,
              name=Egypt}
            - >-
              ISO3166{alpha2Code=EH, alpha3Code=ESH, numericCode=732,
              name=Western Sahara}
            - >-
              ISO3166{alpha2Code=ER, alpha3Code=ERI, numericCode=232,
              name=Eritrea}
            - >-
              ISO3166{alpha2Code=ES, alpha3Code=ESP, numericCode=724,
              name=Spain}
            - >-
              ISO3166{alpha2Code=ET, alpha3Code=ETH, numericCode=231,
              name=Ethiopia}
            - >-
              ISO3166{alpha2Code=FI, alpha3Code=FIN, numericCode=246,
              name=Finland}
            - ISO3166{alpha2Code=FJ, alpha3Code=FJI, numericCode=242, name=Fiji}
            - >-
              ISO3166{alpha2Code=FK, alpha3Code=FLK, numericCode=238,
              name=Falkland Islands (Malvinas)}
            - >-
              ISO3166{alpha2Code=FM, alpha3Code=FSM, numericCode=583,
              name=Micronesia, Federated States of}
            - >-
              ISO3166{alpha2Code=FO, alpha3Code=FRO, numericCode=234, name=Faroe
              Islands}
            - >-
              ISO3166{alpha2Code=FR, alpha3Code=FRA, numericCode=250,
              name=France}
            - >-
              ISO3166{alpha2Code=GA, alpha3Code=GAB, numericCode=266,
              name=Gabon}
            - >-
              ISO3166{alpha2Code=GB, alpha3Code=GBR, numericCode=826,
              name=United Kingdom}
            - >-
              ISO3166{alpha2Code=GD, alpha3Code=GRD, numericCode=308,
              name=Grenada}
            - >-
              ISO3166{alpha2Code=GE, alpha3Code=GEO, numericCode=268,
              name=Georgia}
            - >-
              ISO3166{alpha2Code=GF, alpha3Code=GUF, numericCode=254,
              name=French Guiana}
            - >-
              ISO3166{alpha2Code=GG, alpha3Code=GGY, numericCode=831,
              name=Guernsey}
            - >-
              ISO3166{alpha2Code=GH, alpha3Code=GHA, numericCode=288,
              name=Ghana}
            - >-
              ISO3166{alpha2Code=GI, alpha3Code=GIB, numericCode=292,
              name=Gibraltar}
            - >-
              ISO3166{alpha2Code=GL, alpha3Code=GRL, numericCode=304,
              name=Greenland}
            - >-
              ISO3166{alpha2Code=GM, alpha3Code=GMB, numericCode=270,
              name=Gambia}
            - >-
              ISO3166{alpha2Code=GN, alpha3Code=GIN, numericCode=324,
              name=Guinea}
            - >-
              ISO3166{alpha2Code=GP, alpha3Code=GLP, numericCode=312,
              name=Guadeloupe}
            - >-
              ISO3166{alpha2Code=GQ, alpha3Code=GNQ, numericCode=226,
              name=Equatorial Guinea}
            - >-
              ISO3166{alpha2Code=GR, alpha3Code=GRC, numericCode=300,
              name=Greece}
            - >-
              ISO3166{alpha2Code=GS, alpha3Code=SGS, numericCode=239, name=South
              Georgia and the South Sandwich Islands}
            - >-
              ISO3166{alpha2Code=GT, alpha3Code=GTM, numericCode=320,
              name=Guatemala}
            - ISO3166{alpha2Code=GU, alpha3Code=GUM, numericCode=316, name=Guam}
            - >-
              ISO3166{alpha2Code=GW, alpha3Code=GNB, numericCode=624,
              name=Guinea-Bissau}
            - >-
              ISO3166{alpha2Code=GY, alpha3Code=GUY, numericCode=328,
              name=Guyana}
            - >-
              ISO3166{alpha2Code=HK, alpha3Code=HKG, numericCode=344, name=Hong
              Kong}
            - >-
              ISO3166{alpha2Code=HM, alpha3Code=HMD, numericCode=334, name=Heard
              Island and McDonald Islands}
            - >-
              ISO3166{alpha2Code=HN, alpha3Code=HND, numericCode=340,
              name=Honduras}
            - >-
              ISO3166{alpha2Code=HR, alpha3Code=HRV, numericCode=191,
              name=Croatia}
            - >-
              ISO3166{alpha2Code=HT, alpha3Code=HTI, numericCode=332,
              name=Haiti}
            - >-
              ISO3166{alpha2Code=HU, alpha3Code=HUN, numericCode=348,
              name=Hungary}
            - >-
              ISO3166{alpha2Code=ID, alpha3Code=IDN, numericCode=360,
              name=Indonesia}
            - >-
              ISO3166{alpha2Code=IE, alpha3Code=IRL, numericCode=372,
              name=Ireland}
            - >-
              ISO3166{alpha2Code=IL, alpha3Code=ISR, numericCode=376,
              name=Israel}
            - >-
              ISO3166{alpha2Code=IM, alpha3Code=IMN, numericCode=833, name=Isle
              of Man}
            - >-
              ISO3166{alpha2Code=IN, alpha3Code=IND, numericCode=356,
              name=India}
            - >-
              ISO3166{alpha2Code=IO, alpha3Code=IOT, numericCode=086,
              name=British Indian Ocean Territory}
            - ISO3166{alpha2Code=IQ, alpha3Code=IRQ, numericCode=368, name=Iraq}
            - >-
              ISO3166{alpha2Code=IR, alpha3Code=IRN, numericCode=364, name=Iran,
              Islamic Republic of}
            - >-
              ISO3166{alpha2Code=IS, alpha3Code=ISL, numericCode=352,
              name=Iceland}
            - >-
              ISO3166{alpha2Code=IT, alpha3Code=ITA, numericCode=380,
              name=Italy}
            - >-
              ISO3166{alpha2Code=JE, alpha3Code=JEY, numericCode=832,
              name=Jersey}
            - >-
              ISO3166{alpha2Code=JM, alpha3Code=JAM, numericCode=388,
              name=Jamaica}
            - >-
              ISO3166{alpha2Code=JO, alpha3Code=JOR, numericCode=400,
              name=Jordan}
            - >-
              ISO3166{alpha2Code=JP, alpha3Code=JPN, numericCode=392,
              name=Japan}
            - >-
              ISO3166{alpha2Code=KE, alpha3Code=KEN, numericCode=404,
              name=Kenya}
            - >-
              ISO3166{alpha2Code=KG, alpha3Code=KGZ, numericCode=417,
              name=Kyrgyzstan}
            - >-
              ISO3166{alpha2Code=KH, alpha3Code=KHM, numericCode=116,
              name=Cambodia}
            - >-
              ISO3166{alpha2Code=KI, alpha3Code=KIR, numericCode=296,
              name=Kiribati}
            - >-
              ISO3166{alpha2Code=KM, alpha3Code=COM, numericCode=174,
              name=Comoros}
            - >-
              ISO3166{alpha2Code=KN, alpha3Code=KNA, numericCode=659, name=Saint
              Kitts and Nevis}
            - >-
              ISO3166{alpha2Code=KP, alpha3Code=PRK, numericCode=408,
              name=Korea, Democratic People's Republic of}
            - >-
              ISO3166{alpha2Code=KR, alpha3Code=KOR, numericCode=410,
              name=Korea, Republic of}
            - >-
              ISO3166{alpha2Code=KW, alpha3Code=KWT, numericCode=414,
              name=Kuwait}
            - >-
              ISO3166{alpha2Code=KY, alpha3Code=CYM, numericCode=136,
              name=Cayman Islands}
            - >-
              ISO3166{alpha2Code=KZ, alpha3Code=KAZ, numericCode=398,
              name=Kazakhstan}
            - >-
              ISO3166{alpha2Code=LA, alpha3Code=LAO, numericCode=418, name=Lao
              People's Democratic Republic}
            - >-
              ISO3166{alpha2Code=LB, alpha3Code=LBN, numericCode=422,
              name=Lebanon}
            - >-
              ISO3166{alpha2Code=LC, alpha3Code=LCA, numericCode=662, name=Saint
              Lucia}
            - >-
              ISO3166{alpha2Code=LI, alpha3Code=LIE, numericCode=438,
              name=Liechtenstein}
            - >-
              ISO3166{alpha2Code=LK, alpha3Code=LKA, numericCode=144, name=Sri
              Lanka}
            - >-
              ISO3166{alpha2Code=LR, alpha3Code=LBR, numericCode=430,
              name=Liberia}
            - >-
              ISO3166{alpha2Code=LS, alpha3Code=LSO, numericCode=426,
              name=Lesotho}
            - >-
              ISO3166{alpha2Code=LT, alpha3Code=LTU, numericCode=440,
              name=Lithuania}
            - >-
              ISO3166{alpha2Code=LU, alpha3Code=LUX, numericCode=442,
              name=Luxembourg}
            - >-
              ISO3166{alpha2Code=LV, alpha3Code=LVA, numericCode=428,
              name=Latvia}
            - >-
              ISO3166{alpha2Code=LY, alpha3Code=LBY, numericCode=434,
              name=Libya}
            - >-
              ISO3166{alpha2Code=MA, alpha3Code=MAR, numericCode=504,
              name=Morocco}
            - >-
              ISO3166{alpha2Code=MC, alpha3Code=MCO, numericCode=492,
              name=Monaco}
            - >-
              ISO3166{alpha2Code=MD, alpha3Code=MDA, numericCode=498,
              name=Moldova, Republic of}
            - >-
              ISO3166{alpha2Code=ME, alpha3Code=MNE, numericCode=499,
              name=Montenegro}
            - >-
              ISO3166{alpha2Code=MF, alpha3Code=MAF, numericCode=663, name=Saint
              Martin (French part)}
            - >-
              ISO3166{alpha2Code=MG, alpha3Code=MDG, numericCode=450,
              name=Madagascar}
            - >-
              ISO3166{alpha2Code=MH, alpha3Code=MHL, numericCode=584,
              name=Marshall Islands}
            - >-
              ISO3166{alpha2Code=MK, alpha3Code=MKD, numericCode=807,
              name=Macedonia, the former Yugoslav Republic of}
            - ISO3166{alpha2Code=ML, alpha3Code=MLI, numericCode=466, name=Mali}
            - >-
              ISO3166{alpha2Code=MM, alpha3Code=MMR, numericCode=104,
              name=Myanmar}
            - >-
              ISO3166{alpha2Code=MN, alpha3Code=MNG, numericCode=496,
              name=Mongolia}
            - >-
              ISO3166{alpha2Code=MO, alpha3Code=MAC, numericCode=446,
              name=Macao}
            - >-
              ISO3166{alpha2Code=MP, alpha3Code=MNP, numericCode=580,
              name=Northern Mariana Islands}
            - >-
              ISO3166{alpha2Code=MQ, alpha3Code=MTQ, numericCode=474,
              name=Martinique}
            - >-
              ISO3166{alpha2Code=MR, alpha3Code=MRT, numericCode=478,
              name=Mauritania}
            - >-
              ISO3166{alpha2Code=MS, alpha3Code=MSR, numericCode=500,
              name=Montserrat}
            - >-
              ISO3166{alpha2Code=MT, alpha3Code=MLT, numericCode=470,
              name=Malta}
            - >-
              ISO3166{alpha2Code=MU, alpha3Code=MUS, numericCode=480,
              name=Mauritius}
            - >-
              ISO3166{alpha2Code=MV, alpha3Code=MDV, numericCode=462,
              name=Maldives}
            - >-
              ISO3166{alpha2Code=MW, alpha3Code=MWI, numericCode=454,
              name=Malawi}
            - >-
              ISO3166{alpha2Code=MX, alpha3Code=MEX, numericCode=484,
              name=Mexico}
            - >-
              ISO3166{alpha2Code=MY, alpha3Code=MYS, numericCode=458,
              name=Malaysia}
            - >-
              ISO3166{alpha2Code=MZ, alpha3Code=MOZ, numericCode=508,
              name=Mozambique}
            - >-
              ISO3166{alpha2Code=NA, alpha3Code=NAM, numericCode=516,
              name=Namibia}
            - >-
              ISO3166{alpha2Code=NC, alpha3Code=NCL, numericCode=540, name=New
              Caledonia}
            - >-
              ISO3166{alpha2Code=NE, alpha3Code=NER, numericCode=562,
              name=Niger}
            - >-
              ISO3166{alpha2Code=NF, alpha3Code=NFK, numericCode=574,
              name=Norfolk Island}
            - >-
              ISO3166{alpha2Code=NG, alpha3Code=NGA, numericCode=566,
              name=Nigeria}
            - >-
              ISO3166{alpha2Code=NI, alpha3Code=NIC, numericCode=558,
              name=Nicaragua}
            - >-
              ISO3166{alpha2Code=NL, alpha3Code=NLD, numericCode=528,
              name=Netherlands}
            - >-
              ISO3166{alpha2Code=NO, alpha3Code=NOR, numericCode=578,
              name=Norway}
            - >-
              ISO3166{alpha2Code=NP, alpha3Code=NPL, numericCode=524,
              name=Nepal}
            - >-
              ISO3166{alpha2Code=NR, alpha3Code=NRU, numericCode=520,
              name=Nauru}
            - ISO3166{alpha2Code=NU, alpha3Code=NIU, numericCode=570, name=Niue}
            - >-
              ISO3166{alpha2Code=NZ, alpha3Code=NZL, numericCode=554, name=New
              Zealand}
            - ISO3166{alpha2Code=OM, alpha3Code=OMN, numericCode=512, name=Oman}
            - >-
              ISO3166{alpha2Code=PA, alpha3Code=PAN, numericCode=591,
              name=Panama}
            - ISO3166{alpha2Code=PE, alpha3Code=PER, numericCode=604, name=Peru}
            - >-
              ISO3166{alpha2Code=PF, alpha3Code=PYF, numericCode=258,
              name=French Polynesia}
            - >-
              ISO3166{alpha2Code=PG, alpha3Code=PNG, numericCode=598, name=Papua
              New Guinea}
            - >-
              ISO3166{alpha2Code=PH, alpha3Code=PHL, numericCode=608,
              name=Philippines}
            - >-
              ISO3166{alpha2Code=PK, alpha3Code=PAK, numericCode=586,
              name=Pakistan}
            - >-
              ISO3166{alpha2Code=PL, alpha3Code=POL, numericCode=616,
              name=Poland}
            - >-
              ISO3166{alpha2Code=PM, alpha3Code=SPM, numericCode=666, name=Saint
              Pierre and Miquelon}
            - >-
              ISO3166{alpha2Code=PN, alpha3Code=PCN, numericCode=612,
              name=Pitcairn}
            - >-
              ISO3166{alpha2Code=PR, alpha3Code=PRI, numericCode=630,
              name=Puerto Rico}
            - >-
              ISO3166{alpha2Code=PS, alpha3Code=PSE, numericCode=275,
              name=Palestine,  State of}
            - >-
              ISO3166{alpha2Code=PT, alpha3Code=PRT, numericCode=620,
              name=Portugal}
            - >-
              ISO3166{alpha2Code=PW, alpha3Code=PLW, numericCode=585,
              name=Palau}
            - >-
              ISO3166{alpha2Code=PY, alpha3Code=PRY, numericCode=600,
              name=Paraguay}
            - >-
              ISO3166{alpha2Code=QA, alpha3Code=QAT, numericCode=634,
              name=Qatar}
            - >-
              ISO3166{alpha2Code=RE, alpha3Code=REU, numericCode=638,
              name=Réunion}
            - >-
              ISO3166{alpha2Code=RO, alpha3Code=ROU, numericCode=642,
              name=Romania}
            - >-
              ISO3166{alpha2Code=RS, alpha3Code=SRB, numericCode=688,
              name=Serbia}
            - >-
              ISO3166{alpha2Code=RU, alpha3Code=RUS, numericCode=643,
              name=Russian Federation}
            - >-
              ISO3166{alpha2Code=RW, alpha3Code=RWA, numericCode=646,
              name=Rwanda}
            - >-
              ISO3166{alpha2Code=SA, alpha3Code=SAU, numericCode=682, name=Saudi
              Arabia}
            - >-
              ISO3166{alpha2Code=SB, alpha3Code=SLB, numericCode=090,
              name=Solomon Islands}
            - >-
              ISO3166{alpha2Code=SC, alpha3Code=SYC, numericCode=690,
              name=Seychelles}
            - >-
              ISO3166{alpha2Code=SD, alpha3Code=SDN, numericCode=729,
              name=Sudan}
            - >-
              ISO3166{alpha2Code=SE, alpha3Code=SWE, numericCode=752,
              name=Sweden}
            - >-
              ISO3166{alpha2Code=SG, alpha3Code=SGP, numericCode=702,
              name=Singapore}
            - >-
              ISO3166{alpha2Code=SH, alpha3Code=SHN, numericCode=654, name=Saint
              Helena, Ascension and Tristan da Cunha}
            - >-
              ISO3166{alpha2Code=SI, alpha3Code=SVN, numericCode=705,
              name=Slovenia}
            - >-
              ISO3166{alpha2Code=SJ, alpha3Code=SJM, numericCode=744,
              name=Svalbard and Jan Mayen}
            - >-
              ISO3166{alpha2Code=SK, alpha3Code=SVK, numericCode=703,
              name=Slovakia}
            - >-
              ISO3166{alpha2Code=SL, alpha3Code=SLE, numericCode=694,
              name=Sierra Leone}
            - >-
              ISO3166{alpha2Code=SM, alpha3Code=SMR, numericCode=674, name=San
              Marino}
            - >-
              ISO3166{alpha2Code=SN, alpha3Code=SEN, numericCode=686,
              name=Senegal}
            - >-
              ISO3166{alpha2Code=SO, alpha3Code=SOM, numericCode=706,
              name=Somalia}
            - >-
              ISO3166{alpha2Code=SR, alpha3Code=SUR, numericCode=740,
              name=Suriname}
            - >-
              ISO3166{alpha2Code=SS, alpha3Code=SSD, numericCode=728, name=South
              Sudan}
            - >-
              ISO3166{alpha2Code=ST, alpha3Code=STP, numericCode=678, name=Sao
              Tome and Principe}
            - >-
              ISO3166{alpha2Code=SV, alpha3Code=SLV, numericCode=222, name=El
              Salvador}
            - >-
              ISO3166{alpha2Code=SX, alpha3Code=SXM, numericCode=534, name=Sint
              Maarten (Dutch part)}
            - >-
              ISO3166{alpha2Code=SY, alpha3Code=SYR, numericCode=760,
              name=Syrian Arab Republic}
            - >-
              ISO3166{alpha2Code=SZ, alpha3Code=SWZ, numericCode=748,
              name=Swaziland}
            - >-
              ISO3166{alpha2Code=TC, alpha3Code=TCA, numericCode=796, name=Turks
              and Caicos Islands}
            - ISO3166{alpha2Code=TD, alpha3Code=TCD, numericCode=148, name=Chad}
            - >-
              ISO3166{alpha2Code=TF, alpha3Code=ATF, numericCode=260,
              name=French Southern Territories}
            - ISO3166{alpha2Code=TG, alpha3Code=TGO, numericCode=768, name=Togo}
            - >-
              ISO3166{alpha2Code=TH, alpha3Code=THA, numericCode=764,
              name=Thailand}
            - >-
              ISO3166{alpha2Code=TJ, alpha3Code=TJK, numericCode=762,
              name=Tajikistan}
            - >-
              ISO3166{alpha2Code=TK, alpha3Code=TKL, numericCode=772,
              name=Tokelau}
            - >-
              ISO3166{alpha2Code=TL, alpha3Code=TLS, numericCode=626,
              name=Timor-Leste}
            - >-
              ISO3166{alpha2Code=TM, alpha3Code=TKM, numericCode=795,
              name=Turkmenistan}
            - >-
              ISO3166{alpha2Code=TN, alpha3Code=TUN, numericCode=788,
              name=Tunisia}
            - >-
              ISO3166{alpha2Code=TO, alpha3Code=TON, numericCode=776,
              name=Tonga}
            - >-
              ISO3166{alpha2Code=TR, alpha3Code=TUR, numericCode=792,
              name=Turkey}
            - >-
              ISO3166{alpha2Code=TT, alpha3Code=TTO, numericCode=780,
              name=Trinidad and Tobago}
            - >-
              ISO3166{alpha2Code=TV, alpha3Code=TUV, numericCode=798,
              name=Tuvalu}
            - >-
              ISO3166{alpha2Code=TW, alpha3Code=TWN, numericCode=158,
              name=Taiwan, Province of China}
            - >-
              ISO3166{alpha2Code=TZ, alpha3Code=TZA, numericCode=834,
              name=Tanzania, United Republic of}
            - >-
              ISO3166{alpha2Code=UA, alpha3Code=UKR, numericCode=804,
              name=Ukraine}
            - >-
              ISO3166{alpha2Code=UG, alpha3Code=UGA, numericCode=800,
              name=Uganda}
            - >-
              ISO3166{alpha2Code=UM, alpha3Code=UMI, numericCode=581,
              name=United States Minor Outlying Islands}
            - >-
              ISO3166{alpha2Code=US, alpha3Code=USA, numericCode=840,
              name=United States}
            - >-
              ISO3166{alpha2Code=UY, alpha3Code=URY, numericCode=858,
              name=Uruguay}
            - >-
              ISO3166{alpha2Code=UZ, alpha3Code=UZB, numericCode=860,
              name=Uzbekistan}
            - >-
              ISO3166{alpha2Code=VA, alpha3Code=VAT, numericCode=336, name=Holy
              See (Vatican City State)}
            - >-
              ISO3166{alpha2Code=VC, alpha3Code=VCT, numericCode=670, name=Saint
              Vincent and the Grenadines}
            - >-
              ISO3166{alpha2Code=VE, alpha3Code=VEN, numericCode=862,
              name=Venezuela, Bolivarian Republic of}
            - >-
              ISO3166{alpha2Code=VG, alpha3Code=VGB, numericCode=092,
              name=Virgin Islands, British}
            - >-
              ISO3166{alpha2Code=VI, alpha3Code=VIR, numericCode=850,
              name=Virgin Islands, U.S.}
            - >-
              ISO3166{alpha2Code=VN, alpha3Code=VNM, numericCode=704, name=Viet
              Nam}
            - >-
              ISO3166{alpha2Code=VU, alpha3Code=VUT, numericCode=548,
              name=Vanuatu}
            - >-
              ISO3166{alpha2Code=WF, alpha3Code=WLF, numericCode=876,
              name=Wallis and Futuna}
            - >-
              ISO3166{alpha2Code=WS, alpha3Code=WSM, numericCode=882,
              name=Samoa}
            - >-
              ISO3166{alpha2Code=YE, alpha3Code=YEM, numericCode=887,
              name=Yemen}
            - >-
              ISO3166{alpha2Code=YT, alpha3Code=MYT, numericCode=175,
              name=Mayotte}
            - >-
              ISO3166{alpha2Code=ZA, alpha3Code=ZAF, numericCode=710, name=South
              Africa}
            - >-
              ISO3166{alpha2Code=ZM, alpha3Code=ZMB, numericCode=894,
              name=Zambia}
            - >-
              ISO3166{alpha2Code=ZW, alpha3Code=ZWE, numericCode=716,
              name=Zimbabwe}
        fundSource:
          type: string
          description: >-
            Źrodł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
      description: Inne parametry sterujace
    CardInfoRequest:
      required:
        - instrument
      type: object
      properties:
        instrument:
          $ref: '#/components/schemas/CardInfoInstrument'
        options:
          $ref: '#/components/schemas/CardInfoOptions'
      description: Szczegółowe dane requestu
    CardInfoResponse:
      type: object
      properties:
        cardGroup:
          type: string
          enum:
            - VISA
            - MC
            - AMEX
        cardKind:
          type: string
        productId:
          type: string
        programId:
          type: string
        country:
          type: string
        region:
          type: string
        currency:
          type: string
        octAvailable:
          type: boolean
    RecipientVerificationInfo:
      type: object
      properties:
        nameVerificationResult:
          type: string
          description: Flaga informujaca czy przeprowadzono weryfikacje odbiorcy
          enum:
            - MATCH
            - NO_MATCH
            - PARTIAL
            - UNVERIFIED
            - PERFORMED
        firstNameMatch:
          type: string
          description: Zgodność imienia odbiorcy
          enum:
            - MATCH
            - NO_MATCH
            - PARTIAL
            - UNVERIFIED
            - PERFORMED
        lastNameMatch:
          type: string
          description: Zgodność nazwiska odbiorcy
          enum:
            - MATCH
            - NO_MATCH
            - PARTIAL
            - UNVERIFIED
            - PERFORMED
      description: Informacje o weryfikacji odbiorcy (w przypadku transferu srodkow P2P)
    PblPaymentMethodOptionResponse:
      type: object
      properties:
        bank:
          type: string
        available:
          type: boolean
        bankId:
          type: integer
          format: int32
        iconURL:
          type: string
    CardPaymentMethodOptionResponse:
      type: object
      properties:
        posId:
          type: string
    C2PPaymentMethodOptionResponse:
      type: object
      properties:
        instrumentType:
          type: string
          enum:
            - COF
            - CARD
            - BLIK
            - BLIK_CODE
            - BLIK_UID
            - BLIK_PAYID
            - GPAY
            - APAY
            - PBL
            - SCOF
            - VTS
            - C2P_MC_UNIFIED
            - C2P_VISA_UNIFIED
            - EXT_COF
        dpaId:
          type: string
        dpaName:
          type: string
        dpaPresentationName:
          type: string
        cardGroups:
          type: array
          items:
            type: string
            enum:
              - VISA
              - MC
              - AMEX
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
servers:
  - url: https://api.sandbox.planetpay.pl
    description: Sandbox
  - url: https://api.planetpay.pl
    description: Produkcja
security:
  - bearerAuth: []
