Flows nativos
Liga e desliga os Flows prontos da plataforma na loja, consulta a situação e envia um deles a um cliente.
Além dos Flows que você desenha, a plataforma traz um pacote de Flows prontos (catálogo, produto, busca, carrinho, checkout, login, cadastro, pedidos, perfil). Ligar esse pacote faz o cliente comprar dentro do WhatsApp, sem abrir o site.
Ver a situação
Mostra se os Flows nativos estão ligados, o que ainda falta (blockers) e a situação de cada Flow. É a rota que você consulta depois de ativar, até activating voltar a false.
/api/v1/admin/whatsapp/native-flows/statusAdminMostra a situação dos Flows nativos da loja
Exemplo de requisição (Ver a situação)
curl "$BASE_URL/api/v1/admin/whatsapp/native-flows/status" \
-H "Authorization: Bearer $TOKEN"Resposta (Ver a situação)
{
"enabled": false,
"number_registered": true,
"phone_number_id": "109876543210987",
"waba_id": "123456789012345",
"encryption_matches": false,
"endpoint_uri": "https://minhaloja.io.venddor.com.br/api/v1/webhooks/whatsapp/minhaloja/flow?phone_number_id=109876543210987",
"web_preview_disabled": false,
"blockers": [
"Chave RSA de Flow ainda não gerada nesta loja."
],
"flows": [
{
"key": "catalog",
"name": "STORE1_UNIFIED_CATALOG_FLOW_V21",
"meta_flow_id": "",
"status": "",
"published": false
},
{
"key": "product",
"name": "STORE1_STANDALONE_PRODUCT_DETAIL_FLOW_V7",
"meta_flow_id": "",
"status": "",
"published": false
},
{
"key": "search",
"name": "STORE1_PRODUCT_SEARCH_CATALOG_FLOW_V2",
"meta_flow_id": "",
"status": "",
"published": false
},
{
"key": "...",
"name": "...",
"meta_flow_id": "",
"status": "",
"published": false
}
],
"activating": false
}Campos da resposta
enabledbooleantrue quando os Flows nativos estão ligados na loja.number_registeredbooleantrue quando há número de WhatsApp e token cadastrados.phone_number_idstringwaba_idstringencryption_matchesbooleantrue quando a chave pública daqui é igual à registrada na Meta.local_public_keystringmeta_public_keystringendpoint_uristringweb_preview_disabledbooleantrue enquanto os Flows nativos estão ligados: a mini-loja por link fica desligada.blockersarrayflowsarrayOs Flows prontos da plataforma e a situação de cada um na loja.
keystringcatalogproductsearchpizzamulticartcheckoutloginregisterordersprofilenamestringmeta_flow_idstringstatusstringpublished quando no ar).publishedbooleantrue quando está publicado na Meta.activatingbooleantrue enquanto a ativação roda em segundo plano.activation_errorstringErros (Ver a situação)
| Status | Quando | Corpo |
|---|---|---|
| 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"} |
| 500 | Falha ao ler a situação. | {"error":"..."} |
Ativar
Liga os Flows nativos: cria as cópias na conta da Meta, registra a chave de criptografia e, só no fim, marca a loja como ativa. Como leva de dezenas de segundos a alguns minutos, a rota responde logo e o trabalho segue em segundo plano. Acompanhe com GET /native-flows/status.
/api/v1/admin/whatsapp/native-flows/activateAdminLiga os Flows nativos da loja
Exemplo de requisição (Ativar)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/native-flows/activate" \
-H "Authorization: Bearer $TOKEN"Resposta (Ativar)
{
"enabled": false,
"number_registered": true,
"phone_number_id": "109876543210987",
"waba_id": "123456789012345",
"encryption_matches": false,
"endpoint_uri": "https://minhaloja.io.venddor.com.br/api/v1/webhooks/whatsapp/minhaloja/flow?phone_number_id=109876543210987",
"web_preview_disabled": false,
"blockers": [
"Chave RSA de Flow ainda não gerada nesta loja."
],
"flows": [
{
"key": "catalog",
"name": "STORE1_UNIFIED_CATALOG_FLOW_V21",
"meta_flow_id": "",
"status": "",
"published": false
},
{
"key": "product",
"name": "STORE1_STANDALONE_PRODUCT_DETAIL_FLOW_V7",
"meta_flow_id": "",
"status": "",
"published": false
},
{
"key": "search",
"name": "STORE1_PRODUCT_SEARCH_CATALOG_FLOW_V2",
"meta_flow_id": "",
"status": "",
"published": false
},
{
"key": "...",
"name": "...",
"meta_flow_id": "",
"status": "",
"published": false
}
],
"activating": true
}Campos da resposta
enabledbooleantrue quando os Flows nativos estão ligados na loja.number_registeredbooleantrue quando há número de WhatsApp e token cadastrados.phone_number_idstringwaba_idstringencryption_matchesbooleantrue quando a chave pública daqui é igual à registrada na Meta.local_public_keystringmeta_public_keystringendpoint_uristringweb_preview_disabledbooleantrue enquanto os Flows nativos estão ligados: a mini-loja por link fica desligada.blockersarrayflowsarrayOs Flows prontos da plataforma e a situação de cada um na loja.
keystringcatalogproductsearchpizzamulticartcheckoutloginregisterordersprofilenamestringmeta_flow_idstringstatusstringpublished quando no ar).publishedbooleantrue quando está publicado na Meta.activatingbooleantrue enquanto a ativação roda em segundo plano.activation_errorstringErros (Ativar)
| Status | Quando | Corpo |
|---|---|---|
| 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 | Falta algo antes de ativar, ou a ativação anterior ainda está terminando. | {"error":"cadastre o número do WhatsApp (phone_number_id + token) antes de ligar o Flow"} ou {"error":"URL pública da loja ausente para o data exchange"} |
Desativar
Desliga os Flows nativos e religa a mini-loja por link. Cancela uma ativação em andamento. Os Flows já criados na Meta continuam lá.
/api/v1/admin/whatsapp/native-flows/deactivateAdminDesliga os Flows nativos da loja
Exemplo de requisição (Desativar)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/native-flows/deactivate" \
-H "Authorization: Bearer $TOKEN"Resposta (Desativar)
{
"enabled": false,
"number_registered": true,
"phone_number_id": "109876543210987",
"waba_id": "123456789012345",
"encryption_matches": false,
"endpoint_uri": "https://minhaloja.io.venddor.com.br/api/v1/webhooks/whatsapp/minhaloja/flow?phone_number_id=109876543210987",
"web_preview_disabled": false,
"blockers": [
"Chave RSA de Flow ainda não gerada nesta loja."
],
"flows": [
{
"key": "catalog",
"name": "STORE1_UNIFIED_CATALOG_FLOW_V21",
"meta_flow_id": "",
"status": "",
"published": false
},
{
"key": "product",
"name": "STORE1_STANDALONE_PRODUCT_DETAIL_FLOW_V7",
"meta_flow_id": "",
"status": "",
"published": false
},
{
"key": "search",
"name": "STORE1_PRODUCT_SEARCH_CATALOG_FLOW_V2",
"meta_flow_id": "",
"status": "",
"published": false
},
{
"key": "...",
"name": "...",
"meta_flow_id": "",
"status": "",
"published": false
}
],
"activating": false
}Campos da resposta
enabledbooleantrue quando os Flows nativos estão ligados na loja.number_registeredbooleantrue quando há número de WhatsApp e token cadastrados.phone_number_idstringwaba_idstringencryption_matchesbooleantrue quando a chave pública daqui é igual à registrada na Meta.local_public_keystringmeta_public_keystringendpoint_uristringweb_preview_disabledbooleantrue enquanto os Flows nativos estão ligados: a mini-loja por link fica desligada.blockersarrayflowsarrayOs Flows prontos da plataforma e a situação de cada um na loja.
keystringcatalogproductsearchpizzamulticartcheckoutloginregisterordersprofilenamestringmeta_flow_idstringstatusstringpublished quando no ar).publishedbooleantrue quando está publicado na Meta.activatingbooleantrue enquanto a ativação roda em segundo plano.activation_errorstringErros (Desativar)
| Status | Quando | Corpo |
|---|---|---|
| 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"} |
| 500 | Falha ao gravar a configuração. | {"error":"..."} |
Enviar um Flow nativo
Manda um dos Flows nativos para um cliente, já na tela certa. Serve para disparar uma ação (por exemplo abrir o carrinho) a partir do seu sistema.
/api/v1/admin/whatsapp/native-flows/sendAdminEnvia um Flow nativo a um telefone
Corpo da requisição
phonestringobrigatóriokeystringcatalogproductsearchpizzamulticartcheckoutloginregisterordersprofiletool.toolstringkey, um apelido: cart/sacola, checkout/pagamento, login, register/cadastro, orders/pedidos, product/produto, search/busca, pizza, profile/conta/ajuda. Qualquer outro valor (ou nenhum) abre o catálogo.ctastringVer.bodystringToque no botão abaixo.screenstringdataobjectproduct_id ou query).Exemplo de requisição (Enviar um Flow nativo)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/native-flows/send" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "5511999990000",
"key": "search",
"body": "Procure o que precisa",
"data": {
"query": "camisa"
}
}'Resposta (Enviar um Flow nativo)
{
"success": true,
"message_id": "wamid.HBgMNTUxMTk5OTk5MDAwMBUCABEYEjQ5RjY1RTQ3OUVBNDM4MDM4AA==",
"key": "search"
}Campos da resposta
successbooleantrue em sucesso.message_idstringkeystringErros (Enviar um Flow nativo)
| Status | Quando | Corpo |
|---|---|---|
| 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"} |
| 422 | Flow desconhecido, ainda não publicado (ative primeiro), ou envio recusado. | {"error":"whatsapp: flow nativo desconhecido x"} ou {"error":"whatsapp: flow catalog ainda não publicado na Meta ..."} |