Diferença principal em relação ao Chat: o Connect não usa o token
POST /v1/embed/sessions. Ele usa o token de pareamento remoto que fica na URL do iframe (não em memória via postMessage), com um TTL de 24h.Fluxo
O backend cria o link de pareamento
provider: "META" para um pareamento via Cloud API (Embedded Signup); brandingOverride é opcional. A resposta inclui remotePairingUrl (https://connect.pilotstatus.com.br/connect/<token>), maskedNumber e messageSent. O token é o UUID no final da URL (TTL 24h). Encaminhe apenas o token/URL para o seu frontend.Protocolo postMessage (iframe → parent)
O Connect nunca recebe uma mensageminit — o token já está na URL. O SDK apenas escuta (validando origin === connect.pilotstatus.com.br e source === iframe.contentWindow):
| Mensagem | Callback | Significado |
|---|---|---|
connect:paired{numberId?, redirectUrl?} | onPaired | número conectado |
connect:error{message} | onError | falha |
connect:expired | onExpired | token/QR expirado (24h) |
resize{height} | — | o SDK ajusta a altura do iframe |
allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox — o escape do popup é necessário para a janela do Embedded Signup da Meta.
White-label / branding
Precedência: parâmetros de query da URL >brandingOverride por link (capturado como snapshot no número) > branding do tenant (GET/PUT /v1/branding) > padrão.
Modelo de segurança
- O
x-api-keypermanece no seu backend; somente ele chamaPOST /v1/numbers/remote-pairing. - O token de pareamento expira em 24h e autoriza apenas os endpoints de pareamento daquele link.
- As origens são validadas em ambos os lados; o iframe roda em
connect.*, então suas chamadas de API são same-origin (sem superfície de CORS para o seu app).