Stripe na slovensku

Dôvod na radosť? Implementovať, alebo ešte počkať?

tl;dr

Stripe je možné používať už aj na slovensku. V článku sa dozviete aké možnosti Stripe prináša, ake sú výhody a nevýhody v porovnaní s inými platobnými bránami a pridáme základné informácie k implementácii. Pozrieme sa aj na to, čo zatiaľ Stripe na slovensku neponúka a prečo pre váš biznis nemusí byť ideálnym riešením.

12. septembra Stripe rozoslal subscriberom krátky email s informáciou o tom, že nadišiel deň D. Už aj slováci môžu implementovať na svoje weby moderné platobné riešenie, ktoré ponúka široké možnosti pre rôzne typy platieb a rozsiahlu dokumentáciu k tomu.

Čo je Stripe?

Stripe je americký fintech startup, ktorý sa v roku 2010 zrodil v kalifornskom San Franciscu v známej liahni úspešných startupov Paula Grahama - Y Combinator. Tam získali bratia Collisonovci pre svoj nápad rovnakú investíciu v seed round-e, ako všetky ostatné startupy. V máji 2011 do Stripe investovali Sequoia Capital, A16Z a Peter Thiel spolu 2 milióny dolárov a o necelý rok neskôr naraisovali ďalších 18 miliónov v A-sérii, pre svoj v tom čase už solídne rozbehnutý vlak s hodnotou 100 miliónov.

To čo prišlo potom, by sa dalo nazvať ako séria veľkých investícii, z ktorých zatiaľ posledná sa uskutočnila tento mesiac, v septembri 2019. Stripe získal ďalších 250 miliónov pri hodnote 35 milárd dolárov.

Prečo tieto nudné info, ktoré si môžete dohľadať na internete sami? Na ilustráciu toho, že sa bavíme o dnes už naozaj veľkej a stabilnej spoločnosti, ktorá sa podľa všetkého nechystá zajtra skrachovať.

Je Stripe len platobná brána?

Produktové portfolio Stripe je podstatne širšie, aj keď každý produkt sa online platieb týka. Sú to predovšetkým široké možnosti v oblasti, ktoré Stripe podnikateľom ponúka. V základe ide o 3 produkty:

  • Jednorázové platby
  • Opakujúce sa platby (subscriptions)
  • Stripe Connect pre platby s viac ako dvomi stranami (sprostredkované platby)

Ako o sebe sami na svojích stránkach píšu, dokážu svojími riešeniami pokryť akýkoľvek biznis model.

Okrem vyššie uvedených riešení ponúka Stripe ďalšie, súvisiace riešenia ako napr. prepracované business analytics (Sigma), ochranu proti kartovým podvodom založenú na machine learning-u (Radar), a ďalšie.

Ceny a poplatky za platby cez Stripe

Najdôležitejšou položkou sú tzv. one-off platby, teda jednorázové platby typické napríklad pre eshopy. Od nich sa potom odvíja cena za periodické platby, ktoré su do objemu $1M v prijatých platbách zadarmo, no každá transakcia je spoplatnená podľa cenníka pre jednorázové platby.

Jednorázové platby (EU karty)1,4% + 0,25€
Jednorázové platby (mimo EU karty)2,9% + 0,25€
Periodické platbydo $1M zdarma (potom 0,4%) + vyššie uvedené poplatky za transakciu

Ceny môžu byť v porovnaní so základnými cenami pre nízke objemy transakcií napr. u GoPay podstatne nižšie, vždy však záleží na objeme transakcie.

Výhodou cenovej politiky Stripe-u je aj absencia poplatku za vedenie brány, ktorý je u GoPay pre obrat do 15000Kč 7€ mesačne (nad 15000Kč mesačne je vedenie brány zdarma).

Vyplácanie peňazí na účet obchodníka

Vyplácanie na účet obchodníka prebieha v 7 dňovom režime. To znamená, že platba (mínus Stripe poplatky) prijatá dnes vám bude odoslaná na účet o 7 dní. Vyplácanie prebieha denne.

Vyplatenie by nemalo byť už zvlášť spoplatnené, ale túto informáciu sa mi zatiaľ nepodarilo explicitne dohľadať. Ak by som našiel oficiálne vyjadrenie, doplním túto informáciu do článku.

Implementácia platobnej brány Stripe

Ak na vás vyššie uvedené informácie zapôsobili a rozhodli ste sa Stripe implementovať do vášho nákupného procesu, môžete sa tešiť na naozaj extenzívnu dokumentáciu, ktorá obsahuje všetky detaily.

Bránu som osobne implementoval pomocou Stripe Elements, a musím povedať, že dokumentácia je síce rozsiahla a pokrýva snaď všetko možné aj nemožné, no nájsť jednoznačnú informáciu, ktorú práve potrebujete v nej nie je vôbec jednoduché.

Je to dané hlavne množstvom produktov a ich variácií. Tým pádom si často neviete vybrať čo sa vás týka a čo nie. Navyše, nie všetky podporujú SCA (Strong Customer Authentication), taže aj na toto si treba dať pozor, keďže v EÚ ide o nevyhnutnú požiadavku.

Pozor si treba dať aj na zastarané produkty a API, ktoré by ste už aktuálne nemali používať. Síce fungujú, ale Stripe už ponúka novšie, ekvivalentné riešenia, ktoré ich funkcionalitu v určitom smere vylepšujú/upravujú.

Dôrazne odporúčam vyhnúť sa spracovávaniu kartových údaje u vás na serveri. Stripe takúto možnosť ponúka, no na to aby ste mohli s týmito údajmi pracovať potrebujete spĺňať PCI Data Security Standard. Pevne verím, že základné informácie na Wikipédii vás dostatočne odradia.

Jednorázové platby

Jednorázové platby na webe je možné implementovať niekoľkými spôsobmi

  • Stripe Checkout
  • Plugin pre platformu ktorú používate
  • Využitím knižnice Stripe.js a Stripe Elements
  • Mobilné SDK

Stripe Checkout

Implementačne najjednoduchšia možnosť je Stripe Checkout. Riešenie je plne hostované na strane poskytovateľa, takže množstvo kódu na implementáciu je úplne minimálne. Pri platení je zákazník presmerovaný na stránku checkout.stripe.com, kde dokončí objednávku zadaním platobných údajov a ich potvrdením.

Checkout podporuje kreditné aj debetné karty a navyše aj Apple Pay. Riešenie sa dá použiť aj pre opakované platby, podporuje SCA, rozhranie však zatiaľ nie je lokalizované do slovenčiny, rovnako ako emailové potvrdenia o zaplatení.

Výhody

  • Jednoduchá implementácia
  • Podpora kreditných, debetných kariet, Apple Pay
  • Autentifikácia pomocou 3D Secure
  • SCA-ready

Nevýhody

  • Minimálne možnosti prispôsobenia
  • Nutné presmerovanie mimo webové stránky kde prebieha nákup
  • Chýba lokalizácia pre SK

Stripe plugin

Ak používate platformu Magento, Wordpress, Drupal alebo Joomla, môžete využiť pluginy, vďaka ktorým je možné platiť bez opustenia stránky. Implementácia je vďaka pluginom jednoduchá a rýchla. Zoznam existujúcich pluginov je pravdepodobne širší, vyššie uvedené sú 4 základné, ktoré Stripe uvádza priamo v dokumentácii.

Výhody

  • Jednoduchá implementácia
  • Rovnaká podpora platobných metód ako u Checkout
  • V prípade potreby 3D Secure overenie cez modal - bez nutnosti opustiť web
  • SCA-ready
  • Možnosť vytvoriť vlastnú lokalizáciu formou .csv súboru

Nevýhody

  • Len pre majiteľov webov, ktoré bežia na niektorej z podporovaných platforiem
  • Emailové potvrdenie nie je lokalizované do slovenčiny

Knižnica Stripe.js a Stripe Elements

Ak nepoužívate podporovanú platformu, je možné Stripe implementovať pomocou knižnice Stripe.js. Tá obsahuje všetko potrebné na to, aby bolo možné odoslať platobné informácie asynchrónne poskytovateľovi bez toho, aby boli prenášané cez váš server. Bonusom sú Stripe Elements - ide o predštýlované formulárové elementy, ktoré stačí namontovať do elementov na stránke.

Stripe.js nie je možné stiahnuť a vkladať na stránky z vlastného serveru. Je nutné využiť vzdialenú lokalitu, hostovanú na serveri poskytovateľa.

Stripe odporúča vkladať knižnicu na všetky stránky:

<script src="https://js.stripe.com/v3/"></script>

Ako dôvod uvádza na svojích stránkach zvýšenie bezpečnosti vďaka detekcii anomálneho správania prehliadačov.

Implementácia v piatich krokoch

  1. Vytvorenie objektu PaymentIntent na serveri
  2. Predanie verejného kľúča obsiahnutého v PaymentIntent klientovi
  3. Vytvorenie inštancie JS objektu Stripe, vytvorenie elementov a ich vloženie do predpripravených elementov na stránke
  4. Odoslanie platby od klienta smerom k poskytovateľovi
  5. Asynchrónne vybavenie objednávky

Stripe.js ihneď po platbe vráti objekt PaymentIntent obsahujúci spätnú väzbu k platne. Treba však myslieť na to, že klient môže stránku opustiť ešte pred tým, než spracujete tieto informácie. Na vybavenie objednávky preto treba pracovať s informáciami, ktoré Stripe zašle ako webhook (požiadavka typu POST) na zvolenú URL, manuálne skontrolovať stav v administračnom rozhraní, alebo využiť niektorú z ďalších možností.

Výhody

  • Nezávislé na webovej platforme
  • Prispôsobenie designu stránky
  • Rovnaká podpora platobných metód ako u Checkout
  • V prípade potreby 3D Secure overenie cez modal - bez nutnosti opustiť web
  • SCA-ready
  • Lokalizovať stačí placeholder atribúty formulárových elementov

Nevýhody

  • Emailové potvrdenie nie je lokalizované do slovenčiny

iOS a Android SDK

Pre vaše aplikácia je možné využiť pripravený Software Development Kit, dostupný ako pre iOS tak pre Android.

Implementácia je dobre zdokumentovaná, no mobilné platby sme neskúšali implementovať, preto uvádzam len ako ďalšiu existujúcu možnosť.

Opakované platby

Opakované platby sú ideálnym riešením pre SaaS biznisy, ale uplatnení je omnoho viac. Práve opakované platby sú devízou Stripe-u a ich vstup na SK trh pravdepodobne potešil mnohých poskytovateľov služieb, ktoré sú spoplatnené na mesačnej/ročnej báze.

Pre opakované platby Stripe pripravil návod pre jednoduchú, základnú implementáciu, ktorá spočíva v troch krokoch:

  1. Definícia produktu a cenového plánu
  2. Vytvorenie zákazníka
  3. Priradenie zákazníka k cenovému plánu

Na spracovanie platobných údajov a vytvorenie tokenu slúži podobne ako pri jednorázových platbách knižnica Stripe.js, takže aj tu môžete využiť prispôsobiteľné formulárové elementy.

Flow je oproti jednorázovým platbám o niečo zložitejší, pretože obsahuje viacero scenárov, preto odporúčam preštudovať dokumentáciu.

Zhrnutie

Je rozhodne dobré, že je Stripe dostupný už aj u nás, ale zatiaľ nie je možné naplno využiť jeho silu a jednoduchosť predovšetkým kvôli absencii lokalizácie.

Dokumentácia obsahuje veľké množstvo informácií, ktoré však nie sú zoradené a štruktúrované veľmi prehľadne, preto môže trvať implementácia zložitejších riešení dlhšie.

Momentálne je tiež diskutabilné, aká bude dôveryhodnosť a tým pádom aj konverznosť riešenia akým je Stripe Checkout, ktoré slovenskí zákazníci zatiaľ veľmi nepoznajú. Rovnaký problém vidím pri integrácii priamo na web - zákazníci sú zvyknutí zadávať senzitívne platobné údaje do unifikovaných platobných brán, ktoré používa väčšina predajcov. Sú to však len nepodložené špekulácie a na reálne čísla si budeme ešte musieť chvíľu počkať.