Catálogo público
GET /api/v1/catalog retorna o catálogo selecionado de serviços e países. São dados descritivos, não um fluxo de estoque ao vivo do provedor. GET /openapi.json descreve os endpoints HTTP atuais. As credenciais dos provedores nunca são enviadas ao navegador.
Cotações vinculadas ao usuário
POST /api/v1/quotes aceita serviço e país de uma sessão autenticada da mesma origem. As cotações pertencem a esse usuário e expiram após 60 segundos. Seu valor em USD é calculado no servidor usando conversão verificada da moeda de origem, acréscimo e preço mínimo de venda.
Pedidos idempotentes
POST /api/v1/orders aceita quoteId e Idempotency-Key. Uma nova tentativa com a mesma chave retorna o mesmo pedido, em vez de comprar outro número. A reserva da carteira é registrada atomicamente. Uma resposta ambígua do provedor mantém o pedido em análise; não aciona uma segunda compra automática.
Status e conclusão
GET /api/v1/orders/{id} lê um pedido do usuário e seu estado de SMS. Um POST no mesmo endpoint, com a ação finish ou cancel, solicita uma transição de estado. O servidor aplica o bloqueio inicial de cancelamento de 120 segundos e registra o reembolso uma única vez, após a confirmação de cancelamento do provedor.
Confirmação de pagamento
O Stripe Checkout credita a carteira real ou de teste correspondente somente após um webhook verificado e uma consulta autenticada do pagamento. As chaves reais e de teste fornecidas pertencem a contas Stripe diferentes, portanto as chaves, os segredos de endpoint e os depósitos são mantidos separados. A NOWPayments usa IPN verificado, vínculo à fatura e consulta do pagamento liquidado com tolerância de ±0,50% no valor. Um redirecionamento de sucesso no navegador nunca é prova de pagamento.
Acesso e disponibilidade
O site principal e o catálogo são públicos. Carteira, cotações e pedidos exigem autenticação e verificações de propriedade. Ações reais dependem de credenciais configuradas, acesso aos provedores e confirmações verificadas; os exemplos de API não afirmam que uma compra paga ou todo o ciclo de pagamento já foi validado.
GET /api/v1/catalog
GET /api/v1/offers?service=whatsapp&country=usa
POST /api/v1/quotes
Content-Type: application/json
{"service":"whatsapp","country":"usa"}
POST /api/v1/orders
Idempotency-Key: <unique-request-key>
{"quoteId":"<owned-unexpired-quote-id>"}
GET /api/v1/orders/<order-id>
POST /api/v1/orders/<order-id>
{"action":"cancel"}Voltar ao painel