# Podanie kodu BLIK do transakcji Level 0

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

Endpoint: POST /payment/{serviceId}/blik/level0/{transactionId}
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

  - `transactionId` (string, required)
    Id transakcji

## 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 409 fields (application/json):

  - `success` (boolean, required)
    Request status

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

  - `message` (string, required)
    Error message
    Example: "Alias is not unique. Select interested alias by providing alias.blik_id alongside with alias.value and alias.type."

  - `data` (object, required)
    Example: {"alternatives":[{"value":"SIMSIM","type":"UID","label":"TEST APP 222","blik_id":953824},{"value":"SIMSIM","type":"UID","label":"TEST APP 111","blik_id":953793}]}

  - `data.alternatives` (array, required)
    Example: [{"value":"SIMSIM","type":"UID","label":"TEST APP 222","blik_id":953824},{"value":"SIMSIM","type":"UID","label":"TEST APP 111","blik_id":953793}]

  - `data.alternatives.value` (string, required)
    Wartość aliasu

  - `data.alternatives.type` (string, required)
    Typ aliasu

  - `data.alternatives.label` (string, required)
    Etykieta aliasu

  - `data.alternatives.blik_id` (integer, required)
    Identyfikator aliasu w systemie BLIK

## 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."]

## Response 429 fields (application/json):

  - `success` (boolean, required)
    Request status

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

  - `message` (string, required)
    Error message
    Example: "Too many failed attempts with providing BLIK ticket for this user."

  - `data` (object, required)
    Example: {"retryAfter":17}

  - `data.retryAfter` (integer)
    Next attempt available in seconds (for this payer)
    Example: 17


## Response 204 fields
