Nazad na blog
RutiranjeSMS OTPInfrastruktura

Lanac isporuke OTP-a: Šta se dešava između vašeg API poziva i korisnikovog telefona

Novauth Team5 min čitanja

Iz ugla vaše aplikacije, slanje jednokratne lozinke je jedna linija koda. Pozovete endpoint, dobijete 200, i idete dalje. Djeluje atomično.

Nije. Između tog API poziva i telefona u nečijoj ruci nalazi se lanac snabdijevanja — obično dug nekoliko kompanija — u koji nemate uvid, koji niste odabrali, a plaćate ga za svaku pojedinačnu poruku. Većina problema s verifikacijom koji iznutra izgledaju misteriozno savršeno su obični čim ugledate taj lanac.

Evo šta se zapravo nalazi u njemu.

Skokovi koje vam niko ne pokazuje

Zahtjev za "slanje SMS-a" obično putuje otprilike ovako:

  1. API vašeg provajdera prihvata zahtjev i stavlja ga u red.
  2. Agregator — kompanija koja kupuje kapacitet za slanje poruka na veliko i preprodaje ga — ga preuzima. Vaš provajder možda uopšte ne posjeduje nijednu konekciju s operaterom; možda jednostavno preprodaje nečiju tuđu.
  3. Možda još jedan agregator. Kapacitetom se trguje. Ruta koja je jutros bila jeftina može biti preprodana dva puta do ručka.
  4. Odredišni operater konačno prihvata poruku i pokušava isporuku na telefon.

Svaki od tih skokova je posao kojem treba marža. Nijedan od njih nije vidljiv na vašoj kontrolnoj tabli. Kada kažemo da otprilike 20 centi od svakog dolara potrošenog na verifikaciju odlazi posrednicima, ovaj lanac su ti posrednici — ne metafora.

Šta vas svaki skok košta

Kašnjenje. Svaki skok je red čekanja. Zato se isporuka SMS OTP-a obično navodi kao bilo šta između 5 i 30 sekundi u zavisnosti od koridora — taj raspon nije usporena radio-mreža, već broj posrednika kroz koje poruka mora biti proslijeđena. Flash poziv preko direktne konekcije s operaterom završava se u medijanu od 2–3 sekunde jer jednostavno ima manje mjesta na kojima čeka.

Novac. Marža se gomila na svakom skoku. Ista poruka na isti telefon može koštati drastično različite iznose u zavisnosti od toga koliko ju je kompanija dodirnulo na putu.

Istina. Ova boli. Potvrda o isporuci (DLR) se generiše negdje u tom lancu i vraća se do vas. Ako posrednik prijavi "isporučeno", a nije bilo, nemate nikakav nezavisan način da to saznate. Vjerujete izvještaju o statusu od kompanije s kojom nemate ugovor, o događaju koji ne možete posmatrati, na ruti koju niste odabrali.

Ukratko o gray route rutama

Gray route je putanja gdje se komercijalni odnos ne poklapa s tehničkim — saobraćaj koji stiže do operatera kroz kanal kroz koji strogo gledano nije trebao, obično zato što je jeftiniji. Gray route rute su uobičajene upravo zato što se svi u lancu takmiče cijenom.

Praktična posljedica: što je više skokova između vas i operatera, to je više prilika da neko u sredini profitira od vašeg saobraćaja na načine koji vama ne služe. To je ista strukturna slabost koja čini AIT prevaru tako isplativom — prevara je najlakša tamo gdje poruka prolazi kroz više preprodavaca prije nego što stigne do operatera, jer više skokova znači više mjesta gdje neko može uzeti dio naduvanog obima.

Gray route rute nisu poseban problem odvojen od troška. One su isti problem, gledan sa strane prevare.

Zašto "imamo odličan API" nije cijela priča

Svaki provajder verifikacije ima čist REST API. To je osnovni standard, i ne govori vam ništa o tome šta se dešava nakon što zahtjev napusti vaš server.

Pitanja koja zapravo određuju vaš račun i vašu stopu konverzije nalaze se dublje:

  • Da li vaš provajder posjeduje vlastite konekcije s operaterima, ili preprodaje?
  • Koliko strana dodirne poruku prije nego što stigne do telefona?
  • Možete li vidjeti stvarnu rutu i stvarni trošak po poruci — ili samo mjesečni ukupni iznos?
  • Kada DLR kaže "isporučeno", ko je generisao tu potvrdu?

Provajder koji ne može odgovoriti na to ne radi nužno ništa loše. Ali ne može ni dokazati da ne radi, a ne možete ni vi.

Šta mijenja direktna konekcija

Povezivanje direktno na operatere — SMPP za poruke, PSTN za govor — uklanja sloj preprodaje umjesto da ga optimizuje. Razlike su strukturne, ne postepene:

  • Manje redova čekanja → niže, predvidljivije kašnjenje.
  • Bez marže za preprodaju → cijena koju plaćate je cijena rute, a ne cijena rute plus tuđi dio.
  • Zapisi iz prve ruke → call detail record generiše dionica koja je zaista izvršena, a ne ga preprodaje do vas suprotna strana koja ima interes u onome što on kaže.
  • Bez izloženosti gray route rutama → ne postoji lanac posrednika u koji bi se neko mogao ubaciti.

Verifikacija flash pozivom ide korak dalje jer uopšte ne ulazi u lanac isporuke poruka. Kod se nikada ne šalje kao podatak — on jeste caller ID pravog govornog poziva preko infrastrukture operatera. Nigdje na putanji nema SMS agregatora, zbog čega je strukturno imun na obrasce prevare koji ciljaju terminaciju SMS-a.

Šta zapravo uraditi po tom pitanju

Ne morate mijenjati provajdera da biste počeli ovo vidjeti. Tri stvari vrijedne da ih uradite ove sedmice, s kim god bili:

  1. Pitajte svog provajdera direktno da li posjeduje svoje konekcije s operaterima ili preprodaje. To je pošteno pitanje i odgovor je informativan u svakom slučaju — uključujući i kako odgovaraju na njega.
  2. Izvucite trošak po poruci, a ne svoj mjesečni ukupni iznos. Ako ne možete dobiti trošak po poruci razložen po odredištu, to je već nalaz.
  3. Uporedite broj poslanih poruka s brojem završenih verifikacija. Jaz između te dvije brojke je ono što plaćate, a ne dobijate. Većina timova nikada nije pogledala.

Lanac je podrazumijevano nevidljiv. To je problem — ne zato što se svi u njemu ponašaju loše, već zato što ne možete upravljati onim što vam niko neće pokazati.

Naše objavljene tarife po pokušaju za svaku zemlju koju opslužujemo možete provjeriti na stranici s cijenama — bez formulara za ponudu, bez prodajnog poziva. Ono što vidite je ono što plaćate, jer nema nikoga u sredini da uzme dio toga.