A cadeia de entrega de OTP: o que acontece entre a sua chamada à API e o telemóvel do utilizador
Do ponto de vista da sua aplicação, enviar uma palavra-passe única é uma linha de código. Chama um endpoint, recebe um 200, segue em frente. Parece atómico.
Não é. Entre essa chamada à API e o telemóvel na mão de alguém existe uma cadeia de fornecimento — normalmente com várias empresas — sobre a qual não tem qualquer visibilidade, que não escolheu e que está a pagar em cada mensagem. A maioria dos problemas de verificação que parecem misteriosos vistos de dentro da sua aplicação são perfeitamente banais assim que consegue ver essa cadeia.
Eis o que está realmente lá dentro.
Os saltos que ninguém lhe mostra
Um pedido de "enviar SMS" viaja tipicamente mais ou menos assim:
- A API do seu fornecedor aceita o pedido e coloca-o em fila.
- Um agregador — uma empresa que compra capacidade de mensagens a granel e a revende — recolhe-o. O seu fornecedor pode não deter qualquer ligação a operadoras; pode estar simplesmente a revender a de outra pessoa.
- Possivelmente outro agregador. A capacidade é negociada. Uma rota que estava barata esta manhã pode ter sido revendida duas vezes até à hora de almoço.
- A operadora de destino aceita finalmente a mensagem e tenta a entrega ao telemóvel.
Cada um desses saltos é um negócio que precisa de margem. Nenhum deles é visível no seu painel. Quando dizemos que cerca de 20 cêntimos de cada dólar de verificação vão para intermediários, esta cadeia é os intermediários — não uma metáfora.
O que cada salto lhe custa
Latência. Cada salto é uma fila. É por isso que a entrega de SMS OTP é tipicamente indicada entre 5 e 30 segundos consoante o corredor — esse intervalo não é a rede de rádio a ser lenta, é o número de intermediários por onde a mensagem tem de ser passada. Um flash call através de uma ligação direta com a operadora conclui-se numa mediana de 2–3 segundos porque simplesmente tem menos sítios onde esperar.
Dinheiro. A margem acumula-se a cada salto. A mesma mensagem para o mesmo telemóvel pode custar valores muito diferentes consoante quantas empresas lhe tocaram pelo caminho.
Verdade. Este é o que dói. Um recibo de entrega (DLR) é gerado algures nessa cadeia e devolvido até si. Se um intermediário reportar "entregue" e não foi, não tem forma independente de o saber. Está a confiar num relatório de estado de uma empresa com quem não tem contrato, sobre um evento que não consegue observar, numa rota que não escolheu.
Rotas cinzentas, brevemente
Uma rota cinzenta é um percurso em que a relação comercial não corresponde à técnica — tráfego que chega a uma operadora através de um canal para o qual não estava estritamente destinado, normalmente porque é mais barato. As rotas cinzentas são comuns precisamente porque toda a gente na cadeia compete no preço.
A consequência prática: quantos mais saltos entre si e a operadora, mais oportunidades existem para alguém no meio lucrar com o seu tráfego de formas que não o servem. É esta a mesma fraqueza estrutural que torna a fraude AIT tão lucrativa — a fraude é mais fácil onde uma mensagem passa por vários revendedores antes de alcançar uma operadora, porque mais saltos significam mais sítios para alguém retirar uma parte do volume inflacionado.
As rotas cinzentas não são um problema separado do custo. São o mesmo problema, visto do lado da fraude.
Porque "temos uma ótima API" não é a história toda
Todos os fornecedores de verificação têm uma API REST limpa. Isso é o mínimo exigível, e não lhe diz nada sobre o que acontece depois de o pedido sair do seu servidor.
As perguntas que realmente determinam a sua fatura e a sua taxa de conversão estão mais abaixo:
- O seu fornecedor detém as suas próprias ligações a operadoras, ou está a revender?
- Quantas partes tocam numa mensagem antes de esta chegar ao telemóvel?
- Consegue ver a rota real e o custo real por mensagem — ou apenas um total mensal?
- Quando um DLR diz "entregue", quem gerou esse recibo?
Um fornecedor que não consegue responder a isto não está necessariamente a fazer nada de errado. Mas também não consegue provar que não está, e o mesmo se aplica a si.
O que muda uma ligação direta
Ligar-se diretamente às operadoras — SMPP para mensagens, PSTN para voz — remove a camada de revenda em vez de a otimizar. As diferenças são estruturais, não incrementais:
- Menos filas → latência mais baixa e mais previsível.
- Sem margem de revenda → o preço que paga é o preço da rota, não o preço da rota mais a parte de todos.
- Registos de primeira mão → o call detail record é gerado pelo troço que efetivamente correu, não retransmitido até si por uma contraparte com interesse no que ele diz.
- Sem exposição a rotas cinzentas → não há cadeia de intermediários onde alguém se possa inserir.
A verificação por flash call vai mais longe ao não entrar de todo na cadeia de mensagens. O código nunca é enviado como dados — é o identificador de chamada de uma chamada de voz real através da infraestrutura da operadora. Não há qualquer agregador de SMS no percurso, e é por isso que é estruturalmente imune aos padrões de fraude que visam a terminação de SMS.
O que fazer realmente quanto a isto
Não precisa de mudar de fornecedor para começar a ver isto. Três coisas que vale a pena fazer esta semana, seja com quem for:
- Pergunte diretamente ao seu fornecedor se detém as suas ligações a operadoras ou se revende. É uma pergunta legítima e a resposta é informativa em qualquer dos casos — incluindo a forma como respondem.
- Peça o seu custo por mensagem, não o seu total mensal. Se não conseguir obter o custo por mensagem discriminado por destino, essa é a conclusão.
- Compare a sua contagem de envios com a sua contagem de verificações concluídas. A diferença entre esses dois números é o que está a pagar e não a receber. A maioria das equipas nunca olhou.
A cadeia é invisível por defeito. É esse o problema — não porque todos nela estejam a agir mal, mas porque não se consegue gerir o que ninguém nos mostra.
Pode consultar as nossas tarifas publicadas por tentativa para cada país que servimos na página de preços — sem formulário de orçamento, sem chamada comercial. O que vê é o que paga, porque não há ninguém no meio a ficar com uma parte.