Publicar e enviar
Publica um Flow na Meta, gera o link de pré-visualização e envia o Flow a um cliente.
Um Flow só existe para clientes depois de publicado na Meta. Estas rotas fazem esse caminho: publicar, conferir a aparência e enviar. Todas falam com a API da Meta.
Publicar na Meta
Cria o Flow na conta da Meta (se ainda não existir), envia o flow_json e publica. Ao terminar, grava o meta_flow_id e muda o estado para published. Só depois disso o Flow pode ser enviado a clientes sem o modo rascunho.
/api/v1/admin/whatsapp/meta-flows/{id}/publishAdminPublica um Flow na Meta
Parâmetros de caminho
idintegerobrigatórioExemplo de requisição (Publicar na Meta)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/meta-flows/2/publish" \
-H "Authorization: Bearer $TOKEN"Resposta (Publicar na Meta)
{
"id": 2,
"flow_key": "contato-rapido",
"name": "Contato rápido",
"scope": "store",
"ai_when_to_use": "Quando o cliente pedir para ser chamado de volta.",
"ai_params": {},
"status": "published",
"version": 1,
"meta_flow_id": "1774424140505972",
"category": "CONTACT_US",
"created_at": "2026-10-11T23:55:12.229890Z",
"updated_at": "2026-10-11T23:55:12.229890Z"
}Campos da resposta
idintegerflow_keystringnamestringscopestringstoreglobalstore.flow_jsonobjectai_when_to_usestringai_paramsobject{} quando vazio.statusstringdraftpublisheddraft até ser publicado na Meta; published depois.versionintegerPUT.meta_flow_idstringcategorystringSIGN_UPSIGN_INAPPOINTMENT_BOOKINGLEAD_GENERATIONCONTACT_USCUSTOMER_SUPPORTSURVEYOTHERcreated_atstringupdated_atstringErros (Publicar na Meta)
| Status | Quando | Corpo |
|---|---|---|
| 400 | O id não é um número. | {"error":"Invalid id"} |
| 400 | Flow inexistente, credenciais da Meta da plataforma ausentes, ou recusa da Meta (a mensagem traz o motivo). | {"error":"whatsapp: credenciais da plataforma (token + WABA) não configuradas"} ou {"error":"whatsapp: publicar flow: ..."} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 422 | O flow_json não passa na validação. A lista errors diz o que corrigir. | {"error":"Flow JSON inválido","errors":["version ausente","screens vazio"]} |
Pré-visualizar
Pede à Meta um link de pré-visualização do Flow, que abre sem login e vale por cerca de 30 dias. O Flow precisa já existir na Meta, ou seja, ter sido publicado ao menos uma vez.
/api/v1/admin/whatsapp/meta-flows/{id}/previewAdminGera o link de pré-visualização de um Flow
Parâmetros de caminho
idintegerobrigatórioExemplo de requisição (Pré-visualizar)
curl "$BASE_URL/api/v1/admin/whatsapp/meta-flows/2/preview" \
-H "Authorization: Bearer $TOKEN"Resposta (Pré-visualizar)
{
"preview_url": "https://business.facebook.com/wa/manage/flows/1774424140505972/preview/?token=..."
}Campos da resposta
preview_urlstringErros (Pré-visualizar)
| Status | Quando | Corpo |
|---|---|---|
| 400 | O id não é um número. | {"error":"Invalid id"} |
| 400 | Flow inexistente, ainda não publicado, ou falha na Meta. | {"error":"whatsapp: publique o flow na Meta antes de pré-visualizar"} ou {"error":"sql: no rows in result set"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
Enviar a um cliente
Manda o Flow como mensagem interativa para um telefone. O cliente vê um botão que abre as telas do Flow dentro do WhatsApp.
/api/v1/admin/whatsapp/meta-flows/{id}/sendAdminEnvia um Flow a um telefone
Parâmetros de caminho
idintegerobrigatórioCorpo da requisição
phonestringobrigatório5511999990000). Obrigatório.ctastringAbrir.bodystringToque para continuar.screenstringscreens[].id do flow_json). Só vale junto com data.dataobjectscreen e data, o Flow abre direto nessa tela.flow_idstringExemplo de requisição (Enviar a um cliente)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/meta-flows/2/send" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "5511999990000",
"cta": "Abrir",
"body": "Preencha seus dados"
}'Resposta (Enviar a um cliente)
{
"success": true,
"message_id": "wamid.HBgMNTUxMTk5OTk5MDAwMBUCABEYEjQ5RjY1RTQ3OUVBNDM4MDM4AA=="
}Campos da resposta
successbooleantrue em sucesso.message_idstringwamid...).Erros (Enviar a um cliente)
| Status | Quando | Corpo |
|---|---|---|
| 400 | O id não é um número. | {"error":"Invalid id"} |
| 400 | Corpo que não é JSON, ou phone ausente. | {"error":"phone é obrigatório"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 404 | Flow não encontrado. | {"error":"flow não encontrado"} |
| 422 | O Flow ainda não foi publicado e você não enviou flow_id. | {"error":"flow ainda não publicado na Meta (sem meta_flow_id)"} |
| 500 | O WhatsApp da loja não está configurado, o módulo está desligado, ou a Meta recusou o envio. | {"error":"whatsapp: API token or phone number ID not configured"} |