Programa Builders

Construa com a gente por um mês inteiro. Uso e add-ons ilimitados, chamadas semanais e seu próprio canal no Slack.

Saiba mais
Polymorfa

SDKs

WhatsApp na sua linguagem, do frontend ao backend

SDKs escritos à mão para TypeScript, Python, Go, PHP, Rust e C#, cada um com as mesmas 439 operações da API. Verifique webhooks, tente novamente sem duplicar envios e monte a caixa de entrada no seu frontend com um token de curta duração.

Linguagens com SDK
6
Operações tipadas em cada SDK
439
Bancos de dados com adaptadores de armazenamento
9
Janela da Idempotency-Key
24 h

No seu código

A mesma chamada em todas as linguagens.

Cada SDK é escrito à mão para a sua linguagem, com os mesmos recursos, erros e regras para tentar novamente. Repita um envio com a mesma chave e ele sai uma vez só.

send.ts
import { MessagingClient } from "@polymorfa/sdk";

const messaging = new MessagingClient({
  credential: { type: "apiKey", value: process.env.POLYMORFA_KEY! },
});

await messaging.messages.send(
  "my-number",
  {
    conversation: { phoneNumber: "+15550001111" },
    content: { text: "Your order has shipped." },
  },
  { idempotencyKey: "order-1042-shipped" },
);

Frameworks

Cabe na stack que você já usa.

O código do servidor chama a API com a sua chave. O código do frontend recebe um token de cliente de curta duração e os mesmos componentes em todas as linguagens.

  • TypeScript

    @polymorfa/sdk
    No seu servidor
    • Node
    • Runtimes de edge
    • Next.js
    • Express
    • Hono
    No seu frontend
    • Navegador
    • React
    • Web Components
  • Python

    polymorfa-sdk
    No seu servidor
    • FastAPI
    • Django
    No seu frontend
    • Django templates
    • HTMX
    • Inertia
  • Go

    github.com/polymorfa/sdks/packages/go
    No seu servidor
    • net/http
    • Gin
    • Echo
    No seu frontend
    • templ
    • HTMX
  • PHP

    polymorfa/sdk
    No seu servidor
    • Laravel
    • Symfony
    No seu frontend
    • Blade
    • Livewire
    • Inertia
  • Rust

    polymorfa-sdk
    No seu servidor
    • Axum
    • Actix
    No seu frontend
    • Leptos
    • Yew
  • C#

    Polymorfa.Sdk
    No seu servidor
    • ASP.NET Core
    No seu frontend
    • Blazor WebAssembly
    • MAUI

Frontend

Lance a caixa de entrada sem expor uma chave.

Os SDKs recusam credenciais de servidor em builds para navegador e WebAssembly. Seu servidor emite um token de cliente para o usuário conectado, limitado a um número.

Uma rota de token em poucas linhas. Emita um token com clientTokens.mint no seu servidor. A caixa de entrada busca e renova o token nessa rota.
Uma caixa de entrada, todos os modelos. Componentes React para apps TypeScript. Web Components para templ, Blade, Django templates, Razor e Yew, então não há uma segunda UI para manter.
Conheça os Kits de UI

Produção

Padrões seguros em todos os SDKs.

Assinaturas verificadas antes da leitura, novas tentativas que nunca duplicam um envio e erros tipados com código e ID da requisição.

Helpers de webhook por framework. Cada um verifica a assinatura HMAC no corpo bruto antes de ler o JSON.
Novas tentativas sem duplicatas. Cada envio cria uma chave e a reutiliza em toda nova tentativa automática. Uma chave repetida em até 24 horas nunca envia duas vezes.
Eventos tipados. isEvent restringe um evento verificado ao tipo da sua carga. Eventos que o SDK ainda não conhece continuam sendo verificados e mantêm a carga.

Seus dados

Guarde os dados do WhatsApp no seu próprio banco de dados.

Armazene chats, mensagens e contatos onde você quiser. Mídia e histórico vão direto do WhatsApp para o seu código, então não geram custo de armazenamento.

Adaptadores de armazenamento. Um único contrato grava webhooks, streams de eventos e histórico nas suas tabelas. Ele ignora eventos duplicados e retoma de um cursor salvo depois de um reinício. Os schemas exportam para Drizzle, Prisma, Eloquent, Django, EF Core e SQLAlchemy.
Mídia e histórico direto. O SDK baixa e descriptografa mídia e histórico recebidos direto do WhatsApp, e criptografa os uploads antes que saiam do seu servidor.

Superfície da API

O que os SDKs chamam por você.

Cada método do SDK corresponde a uma rota REST documentada. A referência mostra cada uma com um exemplo em cURL.

Métodos do SDK

  • POST/messaging/{number}/messages/sendmessages.send
  • POST/platform/client-tokensclientTokens.mint, para código no navegador
  • GET/platform/projects/{project}/events/streamevents.stream, retoma de um cursor
  • GET/messaging/{number}/chatschats.list, para histórico armazenado
  • GET/messaging/media/{id}media.download, para mídia armazenada
  • POST/platform/webhooks/{id}/testswebhooks.test, envia uma entrega de teste

Eventos de webhook tipados

  • Eventomessage.receivedAlguém escreveu para o número
  • Eventomessage.ackConfirmações de entrega e leitura
  • Eventohistory.syncChegou histórico de um número
  • Eventocall.receivedUma chamada de WhatsApp está tocando
  • Eventosession.statusO número conectou ou desconectou
  • Eventocampaign.recipient_repliedUm destinatário de campanha respondeu

Comece com um número grátis

Seu primeiro número real é grátis. Adicione mais números no Pay-As-You-Go.