# Dokonaj Płatności Powtarzalnej BLIK

Zobacz https://docs.simpay.pl/payment/blik-recurrent po więcej informacji.

Endpoint: POST /payment/{serviceId}/blik/subscriptions/{subscriptionId}/autopayment
Version: 1.0.0
Security: bearerAuth

## Header parameters:

  - `x-sim-flow-submerchant` (string)
    Dotyczy tylko integratorów SimPay Flow. Jeśli nie korzystasz z SimPay Flow - pomiń ten nagłówek.

Wskazuje submerchanta, w imieniu którego wykonywane jest żądanie. Wartość to ID submerchanta (flsm_...)
lub jego customId nadany przy rejestracji (maks. 36 znaków).

Kiedy nagłówek jest wymagany?

Gdy serviceId w ścieżce to usługa Płatności Online powiązana z Twoją aktywną usługą Flow
(usługa nadrzędna, widoczna w paymentService w GET /flow/{flowServiceId}).
Wtedy każde żądanie pod /payment/{serviceId}/... musi zawierać ten nagłówek - bez niego otrzymasz
422 z kodem SIMPAY_FLOW_VALIDATION_ERROR.

Dla zwykłych usług Płatności Online (niepowiązanych z Flow) nagłówek jest ignorowany.

Jak to działa?

- W ścieżce zawsze podajesz serviceId usługi nadrzędnej (powiązanej z usługą Flow), a nie usługi submerchanta.
- Żądanie jest wykonywane w kontekście usługi Płatności Online submerchanta - transakcje, zwroty, kanały, subskrypcje
  i aliasy BLIK dotyczą wskazanego submerchanta, a środki trafiają na jego portfel.
- Usług Płatności Online submerchantów nie można używać bezpośrednio - podanie ich ID w serviceId
  zwróci 422 (VALIDATION_ERROR).

Możliwe błędy:

- 422 SIMPAY_FLOW_VALIDATION_ERROR - brak nagłówka dla usługi powiązanej z Flow lub nieprawidłowa wartość,
- 404 FLOW_SUBMERCHANT_NOT_FOUND - submerchant nie istnieje w ramach tej usługi Flow,
- 403 FLOW_SUBMERCHANT_NOT_ACTIVE - submerchant nie zakończył onboardingu lub nie jest aktywny,
- 400 FLOW_SUBMERCHANT_PAYMENT_SERVICE_NOT_FOUND / FLOW_SUBMERCHANT_PAYMENT_SERVICE_NOT_ACTIVE - usługa Płatności Online submerchanta nie istnieje lub nie jest aktywna.

Przykład: x-sim-flow-submerchant: flsm_aaaabbbb lub x-sim-flow-submerchant: user-123
    Example: "flsm_aaaabbbb"

## Path parameters:

  - `serviceId` (string, required)
    Id usługi

  - `subscriptionId` (string, required)
    Id subskrypcji

## Request fields (application/json):

  - `transactionId` (string, required)
    Id transakcji

  - `attempt` (integer,null)
    Numer ponowienia Płatności Powtarzalnej

  - `descriptions` (object,null)
    Dodatkowe opisy przekazywane do banku płacącego

  - `descriptions.line1` (string,null)
    Linijka nr 1

  - `descriptions.line2` (string,null)
    Linijka nr 2

  - `descriptions.line3` (string,null)
    Linijka nr 3

  - `alias` (object,null)
    Informacje do aliasu

  - `alias.label` (string,null)
    Nowa wartość etykiety subskrypcji widoczna w aplikacji bankowej płacącego

  - `alias.noDelay` (boolean,null)
    Flaga noDelay (zobacz więcej w zakładce BLIK Płatności Powtarzalne)

## Response 200 fields (application/json):

  - `success` (boolean, required)
    Status zapytania
    Example: true

  - `data` (object, required)
    Example: {"needsUserConfirmation":false}

  - `data.needsUserConfirmation` (boolean, required)
    Jeśli wartość false - transakcja przekazana od razu do BLIK. Jeśli true - system antifraud wykrył ryzyko i transakcja czeka na ręczne potwierdzenie przez płacącego

## Response 400 fields (application/json):

  - `success` (boolean, required)
    Request status

  - `errorCode` (string, required)
    Error status code
    Example: "INVALID_BLIK_CODE"

  - `message` (string, required)
    Error message
    Example: "Invalid BLIK code."

## Response 401 fields (application/json):

  - `success` (boolean, required)
    Request status

  - `errorCode` (string, required)
    Error status code
    Enum: "UNAUTHORIZED"

## Response 403 fields (application/json):

  - `success` (boolean, required)
    Request status

  - `errorCode` (string, required)
    Error status code
    Enum: "INVALID_ABILITY_PROVIDED", "IP_ADDRESS_NOT_WHITELISTED"

## Response 404 fields (application/json):

  - `success` (boolean, required)
    Request status

  - `errorCode` (string, required)
    Error status code
    Enum: "SERVICE_NOT_FOUND", "TRANSACTION_NOT_FOUND", "ROUTE_NOT_FOUND"

## Response 422 fields (application/json):

  - `success` (boolean, required)
    Request status

  - `errorCode` (string, required)
    Error status code
    Enum: "VALIDATION_ERROR"

  - `errors` (object, required)
    Example: {"amount":["The amount field is required."],"currency":["The selected currency is invalid."]}

  - `errors.amount` (array)
    Example: ["The amount field is required."]


