Oferta - ustawienia zaawansowane

Zakładka Zaawansowane kontroluje checkout, odporność na błędy bramki, dunning subskrypcji, zbieranie danych, grupy ofert oraz strony wyniku. Ustawienia dotyczą wyłącznie tej oferty i obowiązują na /pay, w checkout session (embed) oraz w powiązanych flow grafiku.

Dozwolone metody płatności

Multi-select: blik, card, applePay, googlePay. Co najmniej jedna metoda. Dostępność:

  • BLIK - aktywny operator BLIK w organizacji + waluta ≠ EUR.
  • Karta - operator karty; EUR wymaga PayU EUR POS.
  • Apple Pay / Google Pay - aktywny operator portfela; przy subskrypcji portfele pozostają sensowne głównie gdy operator to Stripe (inaczej opcje są blokowane).

Rezerwowe ścieżki przy błędzie (payment fallbacks)

Gdy pierwsza próba w bieżącym checkout kończy się terminalnym błędem bramki, reguły (max 12) są oceniane od góry; stosowana jest pierwsza pasująca. Nie dotyczą onboardingu merchanta, zwrotów ani automatycznych odnowień poza pierwszą płatnością checkoutu.

Warunki (UI)

  • any_payment_failure, blik_recurring_not_supported, bad_pin, user_declined, issuer_declined, insufficient_funds, limit_exceeded, blik_timeout, alias_declined, channel_unavailable, system_or_connection_error

W schemacie API istnieją dodatkowo (bez selecta UI): payment_failed, transaction_failed, unsupported_blik_token.

Akcje reguły

  • Oferta - przejście na inny qr_… tej samej organizacji; przenoszony jest kontekst UX w zfc, dodawane sfa=1; parametry ref / promo pierwotnego linku nie są kopiowane.
  • Adres URL - HTTPS max 2048; dołączane UTM/źródła (bez sig, qrId, ref, id płatności/sesji) + zfc.
  • BLIK manualny - tylko przy subskrypcji; klient zostaje na tej samej ofercie z blikManualFallback=1, płaci eBLIK 6-cyfrowy zamiast aliasu; kolejne odnowienia wymagają ponownego kodu / przypomnień.

Ekran przejścia i refuseNoPayId

  • Ekran przejścia - opcjonalne odliczanie ~10 s na /payment/redirect lub /checkout/redirect przed kontynuacją.
  • Uruchom manualne płatności powtarzalne BLIK… - przełącznik UI jest odwrócony względem API: UI ON zapisuje refuseNoPayId: false (pozwól na manual, gdy bank nie wspiera aliasu). Domyślne API bez pola = refuse true.

Ponawianie i odnowienia manualne

  • maxAttempts retry 1-10 (domyślnie 3), intervalDays 1-14 (domyślnie 1) - dla automatycznych ponowień przy recurring.
  • Pola manual renewal (przypomnienia dayOffset −29…14, max 8 unikalnych; cancelAfterDaysUnpaid 1-30, domyślnie 2) pojawiają się tylko gdy skonfigurowano ścieżkę manual BLIK (przełącznik refuse lub reguła blik_manual).

Checkout - kraj i zbieranie danych

  • Wybór kraju zakupu + domyślny ISO2.
  • Dane firmy - required / extended (NIP + adres na fakturę).
  • Regulamin - override HTML (≤10000), checkbox enabled/required.
  • Dodatkowe zgody - max 20; id ^[a-zA-Z0-9:_-]{1,64}$ (bez zarezerwowanych terms:zevio, terms:custom, zevio:terms); labelHtml 1-10000; enabled/required.

Zasady subskrypcji

  • Wiele subskrypcji na klienta - allowMultipleSubscriptions.
  • Pauza - allowPause (merchant/customer pause tylko gdy włączone).
  • Blokada anulowania - minCancellationPeriod jako NP lub token DWMY; opcja „w każdej rekurencji”.
  • Powiadomienie o rezygnacji - renewalNotice.beforeNextPayment musi być krótsze niż frequency oferty.

Grupa ofert i oferta retencyjna

  • Grupa: max 3 oferty łącznie (do 2 peerów), ta sama waluta, bez zagnieżdżania grup.
  • switchingEnabled (checkout) domyślnie true; subscriptionSwitchingEnabled domyślnie false.
  • Retention (anti-churn) - wymaga recurring + targetQrId; klient może dostać ofertę retencyjną przy anulacji (endpoint retention jest customer-only).

Strony wyniku

Dla sukcesu i błędu niezależnie:

  • default - ekran Zevio.
  • external - HTTPS successUrl / cancelUrl.
  • custom - tytuł ≤120, opis ≤500; na błędzie opcjonalnie retry; opcjonalny przycisk (label ≤100, url ≤2048).

W embed postMessage: CHECKOUT_STARTED, CHECKOUT_SUCCESS, CHECKOUT_FAILED - niezależnie od własnych URL.

Metadane i Stripe report

  • Metadane: max 50 kluczy, klucz ≤255; trafiają do integracji/webhooków kontekstowych.
  • stripeReport - tylko przy aktywnej integracji Stripe / Express.