Fluxos nativos da Meta
Consulta, ativa e desativa os formulários nativos do WhatsApp (Flows), que substituem o link da mini-loja dentro da conversa.
Os fluxos nativos (WhatsApp Flows) são telas do próprio WhatsApp: o cliente se cadastra, escolhe endereço, frete e pagamento sem sair da conversa. A alternativa é a mini-loja, uma página web leve aberta por link (os botões "Abrir carrinho" e "Pagar pedido" de Carrinho e cobrança). Os dois modos não convivem: ativar os fluxos nativos desliga a mini-loja, e desativar religa.
Situação dos fluxos nativos
/api/v1/vendor/whatsapp/native-flows/statusSellerMostra se os fluxos nativos estão ativos e o que falta
Consulta a Meta ao vivo para comparar a chave de criptografia local com a registrada lá, então a resposta pode demorar um pouco.
Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/whatsapp/native-flows/status" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"enabled": false,
"number_registered": true,
"phone_number_id": "104857392011234",
"waba_id": "112233445566778",
"encryption_matches": true,
"endpoint_uri": "https://minhaloja.io.venddor.com.br/api/v1/webhooks/whatsapp/minhaloja/flow?phone_number_id=104857392011234",
"web_preview_disabled": false,
"blockers": [],
"flows": [
{ "key": "checkout", "name": "minhaloja checkout", "meta_flow_id": "", "status": "", "published": false }
],
"activating": false
}Campos da resposta
enabledbooleantrue quando os fluxos nativos estão ligados na loja.number_registeredbooleantrue quando há número e token da Meta configurados. Sem isso não dá para ativar.phone_number_idstringwaba_idstringencryption_matchesbooleantrue quando a chave de criptografia local é igual à registrada na Meta. Ao ativar, a plataforma reenvia a chave local, então um false aqui não impede.local_public_keystringmeta_public_keystringendpoint_uristringweb_preview_disabledbooleantrue quando a mini-loja está desligada (acompanha enabled).blockersarrayflowsarrayflows[].keystringflows[].namestringflows[].meta_flow_idstringflows[].statusstringpublished).flows[].publishedbooleantrue quando está publicado na Meta.activatingbooleantrue enquanto a ativação roda em segundo plano.activation_errorstringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token | {"error":"authentication required"} |
| 403 | Token que não é de seller; módulo desligado | veja Fluxo |
| 500 | Falha ao consultar | {"error":"..."} |
Ativar
/api/v1/vendor/whatsapp/native-flows/activateSellerComeça a ativação dos fluxos nativos
Sem corpo. A ativação é assíncrona: a chamada confere os pré-requisitos, dispara o trabalho em segundo plano e responde na hora com o estado atual (activating: true). Criar e publicar os formulários na Meta leva de cerca de 1 a 2 minutos. Acompanhe com GET /native-flows/status até activating: false e enabled: true.
Só quando todos os formulários são criados o modo muda: enabled vira true e a mini-loja é desligada. Se falhar, nada muda e o motivo fica em activation_error.
Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/vendor/whatsapp/native-flows/activate" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"enabled": false,
"number_registered": true,
"phone_number_id": "104857392011234",
"waba_id": "112233445566778",
"encryption_matches": true,
"endpoint_uri": "https://minhaloja.io.venddor.com.br/api/v1/webhooks/whatsapp/minhaloja/flow?phone_number_id=104857392011234",
"web_preview_disabled": false,
"blockers": [],
"flows": [],
"activating": true
}{ "error": "cadastre o número do WhatsApp (phone_number_id + token) antes de ligar o Flow" }A resposta 200 tem os mesmos campos de Situação.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 / 403 | Autenticação ou módulo | veja Fluxo |
| 422 | Sem número ou token da Meta | {"error":"cadastre o número do WhatsApp (phone_number_id + token) antes de ligar o Flow"} |
| 422 | Sem conta WhatsApp Business conhecida | {"error":"WABA da loja ausente ... reconecte o número"} |
| 422 | Loja sem endereço público | {"error":"URL pública da loja ausente para o data exchange"} |
| 422 | Uma ativação anterior ainda termina na Meta | {"error":"a ativação anterior ainda está terminando na Meta ... tente de novo em 1–2 minutos"} |
Desativar
/api/v1/vendor/whatsapp/native-flows/deactivateSellerDesliga os fluxos nativos e religa a mini-loja
Sem corpo. Cancela qualquer ativação em andamento (para ela não religar o modo logo depois), desliga os fluxos nativos e religa a mini-loja. Os formulários criados na Meta não são apagados.
Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/vendor/whatsapp/native-flows/deactivate" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"enabled": false,
"number_registered": true,
"phone_number_id": "104857392011234",
"endpoint_uri": "https://minhaloja.io.venddor.com.br/api/v1/webhooks/whatsapp/minhaloja/flow?phone_number_id=104857392011234",
"web_preview_disabled": false,
"blockers": [],
"flows": [],
"activating": false
}Os campos são os de Situação.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 / 403 | Autenticação ou módulo | veja Fluxo |
| 500 | Falha ao gravar | {"error":"..."} |