# Flows

Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas para formulários, agendamentos, pesquisas e mais.

## Listar todos os flows

> Recupera uma lista paginada de WhatsApp Flows associados à conta WhatsApp Business.\
> \
> \## O que são WhatsApp Flows?\
> \
> WhatsApp Flows são experiências estruturadas e interativas que conduzem usuários por processos\
> multi-etapas diretamente no WhatsApp. São usados para:\
> \- Geração de leads e formulários de cadastro\
> \- Pesquisas e coleta de feedback\
> \- Agendamento de compromissos e reservas\
> \- Configuração de produtos e pedidos\
> \- Triagem de suporte ao cliente\
> \
> \## Status dos Flows\
> \
> \| Status | Descrição |\
> \|--------|-----------|\
> \| DRAFT | Flow em edição e não publicado |\
> \| PUBLISHED | Flow ativo com envio permitido aos usuários |\
> \| DEPRECATED | Flow não é mais enviado a novos usuários, sessões existentes continuam |\
> \| BLOCKED | Flow bloqueado por violação de políticas |\
> \| THROTTLED | Flow limitado temporariamente devido a alta taxa de erros |\
> \
> \## Categorias de Flow\
> \
> \- \*\*SIGN\_UP\*\*: Fluxos de registro e onboarding\
> \- \*\*SIGN\_IN\*\*: Fluxos de autenticação e login\
> \- \*\*APPOINTMENT\_BOOKING\*\*: Fluxos de agendamento e reservas\
> \- \*\*LEAD\_GENERATION\*\*: Coleta de contatos e informações\
> \- \*\*CONTACT\_US\*\*: Fluxos de suporte e contato\
> \- \*\*CUSTOMER\_SUPPORT\*\*: Fluxos de resolução de problemas\
> \- \*\*SURVEY\*\*: Fluxos de pesquisa e questionários\
> \- \*\*OTHER\*\*: Fluxos de uso geral<br>

```json
{"openapi":"3.0.3","info":{"title":"Fortics BSP - API do WhatsApp Business","version":"1.2.0"},"tags":[{"name":"flows","description":"Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas\npara formulários, agendamentos, pesquisas e mais.\n"}],"servers":[{"url":"{baseUrl}","description":"Servidor da API BSP","variables":{"baseUrl":{"default":"https://waba.fortics.com.br/v1","description":"URL base da API - Use a URL do servidor que lhe foi atribuída"}}}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"Chave de API para autenticação"}},"responses":{"ListFlowsResponse":{"description":"Lista de flows recuperada com sucesso","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"ID do flow"},"name":{"type":"string","description":"Nome do flow"},"status":{"type":"string","description":"Status do flow"},"categories":{"type":"array","items":{"type":"string"}}}}}}}}}},"Unauthorized":{"description":"Não autorizado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}}},"schemas":{"UnauthorizedResponse":{"type":"object","description":"Resposta de erro para falhas de autenticação. Verifique a configuração da chave de API se receber esta resposta.\n","properties":{"message":{"type":"string","description":"Mensagem de erro legível descrevendo a falha de autenticação.\nCausas comuns:\n- Chave de API não incluída na requisição\n- Chave de API inválida ou expirada\n- Chave de API sem permissão para esta operação\n"},"code":{"type":"string","description":"Código de erro para tratamento programático"}}}}},"paths":{"/flows":{"get":{"tags":["flows"],"summary":"Listar todos os flows","description":"Recupera uma lista paginada de WhatsApp Flows associados à conta WhatsApp Business.\n\n## O que são WhatsApp Flows?\n\nWhatsApp Flows são experiências estruturadas e interativas que conduzem usuários por processos\nmulti-etapas diretamente no WhatsApp. São usados para:\n- Geração de leads e formulários de cadastro\n- Pesquisas e coleta de feedback\n- Agendamento de compromissos e reservas\n- Configuração de produtos e pedidos\n- Triagem de suporte ao cliente\n\n## Status dos Flows\n\n| Status | Descrição |\n|--------|-----------|\n| DRAFT | Flow em edição e não publicado |\n| PUBLISHED | Flow ativo com envio permitido aos usuários |\n| DEPRECATED | Flow não é mais enviado a novos usuários, sessões existentes continuam |\n| BLOCKED | Flow bloqueado por violação de políticas |\n| THROTTLED | Flow limitado temporariamente devido a alta taxa de erros |\n\n## Categorias de Flow\n\n- **SIGN_UP**: Fluxos de registro e onboarding\n- **SIGN_IN**: Fluxos de autenticação e login\n- **APPOINTMENT_BOOKING**: Fluxos de agendamento e reservas\n- **LEAD_GENERATION**: Coleta de contatos e informações\n- **CONTACT_US**: Fluxos de suporte e contato\n- **CUSTOMER_SUPPORT**: Fluxos de resolução de problemas\n- **SURVEY**: Fluxos de pesquisa e questionários\n- **OTHER**: Fluxos de uso geral\n","operationId":"getFlows","responses":{"200":{"$ref":"#/components/responses/ListFlowsResponse"},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## Criar um novo flow

> Cria um novo WhatsApp Flow. Flows são criados em status DRAFT\
> e devem ser publicados antes de serem enviados aos usuários.\
> \
> \## Criação do Flow\
> \
> A criação ocorre de duas maneiras:\
> 1\. \*\*Do zero\*\*: Informar nome e categorias, depois enviar a definição JSON\
> 2\. \*\*Por clonagem\*\*: Informar o ID de um flow existente para criar uma cópia\
> \
> \## Estrutura JSON do Flow\
> \
> Após a criação, a definição JSON deve ser enviada usando o endpoint de atualização.\
> O JSON define:\
> \- Telas e layout\
> \- Componentes de entrada (campos de texto, dropdowns, seletores de data)\
> \- Navegação entre telas\
> \- Regras de validação de dados\
> \- Botões de ação e comportamentos\
> \
> \## Endpoint URI\
> \
> Se o flow requer dados dinâmicos ou precisa submeter dados ao servidor,\
> o endpoint HTTPS recebe:\
> \- Requisições de inicialização do flow com contexto do usuário\
> \- Dados de transição de tela\
> \- Dados de submissão de formulários\
> \
> O endpoint deve responder em até 10 segundos com JSON válido.\
> \
> \## Boas Práticas\
> \
> \- Usar nomes descritivos que reflitam o propósito do flow\
> \- Selecionar categorias apropriadas para melhor organização\
> \- Testar os flows completamente em DRAFT antes de publicar\
> \- Manter os flows simples, preferencialmente com 3-5 telas<br>

```json
{"openapi":"3.0.3","info":{"title":"Fortics BSP - API do WhatsApp Business","version":"1.2.0"},"tags":[{"name":"flows","description":"Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas\npara formulários, agendamentos, pesquisas e mais.\n"}],"servers":[{"url":"{baseUrl}","description":"Servidor da API BSP","variables":{"baseUrl":{"default":"https://waba.fortics.com.br/v1","description":"URL base da API - Use a URL do servidor que lhe foi atribuída"}}}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"Chave de API para autenticação"}},"responses":{"CreateFlowResponse":{"description":"Flow criado com sucesso","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"ID do flow criado"}}}}}},"Unauthorized":{"description":"Não autorizado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}}},"schemas":{"UnauthorizedResponse":{"type":"object","description":"Resposta de erro para falhas de autenticação. Verifique a configuração da chave de API se receber esta resposta.\n","properties":{"message":{"type":"string","description":"Mensagem de erro legível descrevendo a falha de autenticação.\nCausas comuns:\n- Chave de API não incluída na requisição\n- Chave de API inválida ou expirada\n- Chave de API sem permissão para esta operação\n"},"code":{"type":"string","description":"Código de erro para tratamento programático"}}}}},"paths":{"/flows":{"post":{"tags":["flows"],"summary":"Criar um novo flow","description":"Cria um novo WhatsApp Flow. Flows são criados em status DRAFT\ne devem ser publicados antes de serem enviados aos usuários.\n\n## Criação do Flow\n\nA criação ocorre de duas maneiras:\n1. **Do zero**: Informar nome e categorias, depois enviar a definição JSON\n2. **Por clonagem**: Informar o ID de um flow existente para criar uma cópia\n\n## Estrutura JSON do Flow\n\nApós a criação, a definição JSON deve ser enviada usando o endpoint de atualização.\nO JSON define:\n- Telas e layout\n- Componentes de entrada (campos de texto, dropdowns, seletores de data)\n- Navegação entre telas\n- Regras de validação de dados\n- Botões de ação e comportamentos\n\n## Endpoint URI\n\nSe o flow requer dados dinâmicos ou precisa submeter dados ao servidor,\no endpoint HTTPS recebe:\n- Requisições de inicialização do flow com contexto do usuário\n- Dados de transição de tela\n- Dados de submissão de formulários\n\nO endpoint deve responder em até 10 segundos com JSON válido.\n\n## Boas Práticas\n\n- Usar nomes descritivos que reflitam o propósito do flow\n- Selecionar categorias apropriadas para melhor organização\n- Testar os flows completamente em DRAFT antes de publicar\n- Manter os flows simples, preferencialmente com 3-5 telas\n","operationId":"createFlow","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["name","categories"],"properties":{"name":{"type":"string","description":"Nome único do flow. Deve ser alfanumérico com underscores,\nmáximo de 200 caracteres. Este nome fica visível aos usuários.\n","maxLength":200},"categories":{"type":"array","items":{"type":"string","enum":["SIGN_UP","SIGN_IN","APPOINTMENT_BOOKING","LEAD_GENERATION","CONTACT_US","CUSTOMER_SUPPORT","SURVEY","OTHER"]},"description":"Uma ou mais categorias que descrevem o propósito do flow"},"clone_flow_id":{"type":"string","description":"ID de um flow existente para clonar. Quando fornecido, o novo flow\né criado com a mesma definição JSON do flow fonte.\n"},"endpoint_uri":{"type":"string","format":"uri","description":"URL HTTPS que trata a troca de dados do flow. Obrigatório para flows dinâmicos.\nDeve ser publicamente acessível e responder em até 10 segundos.\n"}}}}}},"responses":{"201":{"$ref":"#/components/responses/CreateFlowResponse"},"400":{"description":"Parâmetros de requisição inválidos","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## Excluir um flow

> Exclui permanentemente um WhatsApp Flow pelo ID.\
> \
> \## Considerações Importantes\
> \
> \- A ação é irreversível e flows excluídos não podem ser recuperados\
> \- Não é possível excluir um flow com status PUBLISHED\
> \- O flow deve ser deprecated antes da exclusão\
> \- Mensagens que referenciam o flow excluído apresentam erro aos usuários\
> \- Dados analíticos do flow também são removidos\
> \
> \## Fluxo Recomendado\
> \
> 1\. Deprecate o flow para interromper novas sessões\
> 2\. Aguardar a conclusão das sessões existentes (normalmente 24-48 horas)\
> 3\. Excluir o flow\
> \
> O fluxo evita a interrupção de usuários ativos.<br>

```json
{"openapi":"3.0.3","info":{"title":"Fortics BSP - API do WhatsApp Business","version":"1.2.0"},"tags":[{"name":"flows","description":"Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas\npara formulários, agendamentos, pesquisas e mais.\n"}],"servers":[{"url":"{baseUrl}","description":"Servidor da API BSP","variables":{"baseUrl":{"default":"https://waba.fortics.com.br/v1","description":"URL base da API - Use a URL do servidor que lhe foi atribuída"}}}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"Chave de API para autenticação"}},"parameters":{"FlowIdQuery":{"name":"flow_id","in":"query","required":true,"schema":{"type":"string","pattern":"^[0-9]+$"},"description":"Identificador único do Flow do WhatsApp.\n\nObtido a partir de:\n- Resposta do endpoint de criação de flow\n- Resposta do endpoint de listagem de flows\n\nIDs de flow são strings numéricas e permanecem constantes durante o ciclo de vida do flow.\n"}},"responses":{"Unauthorized":{"description":"Não autorizado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}}},"schemas":{"UnauthorizedResponse":{"type":"object","description":"Resposta de erro para falhas de autenticação. Verifique a configuração da chave de API se receber esta resposta.\n","properties":{"message":{"type":"string","description":"Mensagem de erro legível descrevendo a falha de autenticação.\nCausas comuns:\n- Chave de API não incluída na requisição\n- Chave de API inválida ou expirada\n- Chave de API sem permissão para esta operação\n"},"code":{"type":"string","description":"Código de erro para tratamento programático"}}}}},"paths":{"/flows":{"delete":{"tags":["flows"],"summary":"Excluir um flow","description":"Exclui permanentemente um WhatsApp Flow pelo ID.\n\n## Considerações Importantes\n\n- A ação é irreversível e flows excluídos não podem ser recuperados\n- Não é possível excluir um flow com status PUBLISHED\n- O flow deve ser deprecated antes da exclusão\n- Mensagens que referenciam o flow excluído apresentam erro aos usuários\n- Dados analíticos do flow também são removidos\n\n## Fluxo Recomendado\n\n1. Deprecate o flow para interromper novas sessões\n2. Aguardar a conclusão das sessões existentes (normalmente 24-48 horas)\n3. Excluir o flow\n\nO fluxo evita a interrupção de usuários ativos.\n","operationId":"deleteFlow","parameters":[{"$ref":"#/components/parameters/FlowIdQuery"}],"responses":{"200":{"description":"Flow excluído com sucesso","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"string"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"409":{"description":"Não é possível excluir um flow publicado","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}}}}}
```

## Obter detalhes do flow

> Recupera informações detalhadas sobre um Flow específico do WhatsApp, incluindo\
> configuração, status, erros de validação e metadados.\
> \
> \## Campos Disponíveis\
> \
> O parâmetro \`fields\` solicita informações específicas:\
> \
> \| Campo | Descrição |\
> \|-------|-----------|\
> \| id | Identificador único do flow |\
> \| name | Nome de exibição do flow |\
> \| categories | Categorias de classificação do flow |\
> \| preview | URL de visualização para testes |\
> \| status | Status atual (DRAFT, PUBLISHED, etc.) |\
> \| validation\_errors | Lista de problemas que impedem a publicação |\
> \| json\_version | Versão do schema JSON do flow |\
> \| data\_api\_version | Versão da API de dados |\
> \| data\_channel\_uri | Endpoint configurado para troca de dados |\
> \| whatsapp\_business\_account | Informações associadas da WABA |\
> \
> \## Erros de Validação\
> \
> O campo validation\_errors lista problemas que precisam ser corrigidos antes\
> da publicação. Erros comuns incluem:\
> \- Estrutura JSON inválida\
> \- Elementos obrigatórios de tela ausentes\
> \- Referências de navegação inválidas\
> \- Configurações de componentes não suportadas\
> \
> \## URLs de Visualização\
> \
> O campo preview fornece URLs para testes do flow em:\
> \- WhatsApp mobile (requer dispositivo de teste)\
> \- WhatsApp Web (verificação visual)<br>

```json
{"openapi":"3.0.3","info":{"title":"Fortics BSP - API do WhatsApp Business","version":"1.2.0"},"tags":[{"name":"flows","description":"Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas\npara formulários, agendamentos, pesquisas e mais.\n"}],"servers":[{"url":"{baseUrl}","description":"Servidor da API BSP","variables":{"baseUrl":{"default":"https://waba.fortics.com.br/v1","description":"URL base da API - Use a URL do servidor que lhe foi atribuída"}}}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"Chave de API para autenticação"}},"parameters":{"FlowIdQuery":{"name":"flow_id","in":"query","required":true,"schema":{"type":"string","pattern":"^[0-9]+$"},"description":"Identificador único do Flow do WhatsApp.\n\nObtido a partir de:\n- Resposta do endpoint de criação de flow\n- Resposta do endpoint de listagem de flows\n\nIDs de flow são strings numéricas e permanecem constantes durante o ciclo de vida do flow.\n"}},"responses":{"FlowDetailsResponse":{"description":"Detalhes do flow recuperados com sucesso","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"categories":{"type":"array","items":{"type":"string"}},"validation_errors":{"type":"array","items":{"type":"object"}},"json_version":{"type":"string"},"data_api_version":{"type":"string"},"data_channel_uri":{"type":"string"}}}}}},"Unauthorized":{"description":"Não autorizado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}}},"schemas":{"UnauthorizedResponse":{"type":"object","description":"Resposta de erro para falhas de autenticação. Verifique a configuração da chave de API se receber esta resposta.\n","properties":{"message":{"type":"string","description":"Mensagem de erro legível descrevendo a falha de autenticação.\nCausas comuns:\n- Chave de API não incluída na requisição\n- Chave de API inválida ou expirada\n- Chave de API sem permissão para esta operação\n"},"code":{"type":"string","description":"Código de erro para tratamento programático"}}}}},"paths":{"/flows/details":{"get":{"tags":["flows"],"summary":"Obter detalhes do flow","description":"Recupera informações detalhadas sobre um Flow específico do WhatsApp, incluindo\nconfiguração, status, erros de validação e metadados.\n\n## Campos Disponíveis\n\nO parâmetro `fields` solicita informações específicas:\n\n| Campo | Descrição |\n|-------|-----------|\n| id | Identificador único do flow |\n| name | Nome de exibição do flow |\n| categories | Categorias de classificação do flow |\n| preview | URL de visualização para testes |\n| status | Status atual (DRAFT, PUBLISHED, etc.) |\n| validation_errors | Lista de problemas que impedem a publicação |\n| json_version | Versão do schema JSON do flow |\n| data_api_version | Versão da API de dados |\n| data_channel_uri | Endpoint configurado para troca de dados |\n| whatsapp_business_account | Informações associadas da WABA |\n\n## Erros de Validação\n\nO campo validation_errors lista problemas que precisam ser corrigidos antes\nda publicação. Erros comuns incluem:\n- Estrutura JSON inválida\n- Elementos obrigatórios de tela ausentes\n- Referências de navegação inválidas\n- Configurações de componentes não suportadas\n\n## URLs de Visualização\n\nO campo preview fornece URLs para testes do flow em:\n- WhatsApp mobile (requer dispositivo de teste)\n- WhatsApp Web (verificação visual)\n","operationId":"getFlowDetails","parameters":[{"$ref":"#/components/parameters/FlowIdQuery"},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Lista separada por vírgulas dos campos específicos a retornar.\nSe não especificado, retorna todos os campos disponíveis.\n"}],"responses":{"200":{"$ref":"#/components/responses/FlowDetailsResponse"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"Flow não encontrado","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}}}}}
```

## Publicar um flow

> Publica um WhatsApp Flow para torná-lo disponível para envio aos usuários.\
> \
> \## Pré-requisitos\
> \
> Antes da publicação, verificar:\
> 1\. O JSON do flow é válido e não possui erros de validação\
> 2\. Todas as telas possuem navegação corretamente configurada\
> 3\. O endpoint URI (quando usado) está acessível e funcional\
> 4\. O flow foi testado usando o recurso de visualização\
> \
> \## Processo de Publicação\
> \
> 1\. O WhatsApp valida a estrutura JSON do flow\
> 2\. Quando existe endpoint URI configurado, a conectividade é verificada\
> 3\. O status do flow muda de DRAFT para PUBLISHED\
> 4\. O flow passa a estar disponível para envio em mensagens\
> \
> \## Pós-Publicação\
> \
> \- Flows publicados não podem ser editados; uma nova versão é necessária\
> \- É possível deprecar um flow publicado para interromper novas sessões\
> \- Métricas e análises ficam disponíveis após a publicação\
> \- Alterações no endpoint URI exigem nova versão do flow\
> \
> \## Estratégia de Rollback\
> \
> Quando problemas são identificados após a publicação:\
> 1\. Criar e publicar uma versão corrigida\
> 2\. Atualizar a lógica de envio de mensagens para usar o novo flow\
> 3\. Deprecate o flow problemático<br>

```json
{"openapi":"3.0.3","info":{"title":"Fortics BSP - API do WhatsApp Business","version":"1.2.0"},"tags":[{"name":"flows","description":"Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas\npara formulários, agendamentos, pesquisas e mais.\n"}],"servers":[{"url":"{baseUrl}","description":"Servidor da API BSP","variables":{"baseUrl":{"default":"https://waba.fortics.com.br/v1","description":"URL base da API - Use a URL do servidor que lhe foi atribuída"}}}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"Chave de API para autenticação"}},"parameters":{"FlowIdQuery":{"name":"flow_id","in":"query","required":true,"schema":{"type":"string","pattern":"^[0-9]+$"},"description":"Identificador único do Flow do WhatsApp.\n\nObtido a partir de:\n- Resposta do endpoint de criação de flow\n- Resposta do endpoint de listagem de flows\n\nIDs de flow são strings numéricas e permanecem constantes durante o ciclo de vida do flow.\n"}},"responses":{"PublishDeprecateResponse":{"description":"Status do flow alterado com sucesso","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"string"}}}}}},"Unauthorized":{"description":"Não autorizado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}}},"schemas":{"UnauthorizedResponse":{"type":"object","description":"Resposta de erro para falhas de autenticação. Verifique a configuração da chave de API se receber esta resposta.\n","properties":{"message":{"type":"string","description":"Mensagem de erro legível descrevendo a falha de autenticação.\nCausas comuns:\n- Chave de API não incluída na requisição\n- Chave de API inválida ou expirada\n- Chave de API sem permissão para esta operação\n"},"code":{"type":"string","description":"Código de erro para tratamento programático"}}}}},"paths":{"/flows/publish":{"post":{"tags":["flows"],"summary":"Publicar um flow","description":"Publica um WhatsApp Flow para torná-lo disponível para envio aos usuários.\n\n## Pré-requisitos\n\nAntes da publicação, verificar:\n1. O JSON do flow é válido e não possui erros de validação\n2. Todas as telas possuem navegação corretamente configurada\n3. O endpoint URI (quando usado) está acessível e funcional\n4. O flow foi testado usando o recurso de visualização\n\n## Processo de Publicação\n\n1. O WhatsApp valida a estrutura JSON do flow\n2. Quando existe endpoint URI configurado, a conectividade é verificada\n3. O status do flow muda de DRAFT para PUBLISHED\n4. O flow passa a estar disponível para envio em mensagens\n\n## Pós-Publicação\n\n- Flows publicados não podem ser editados; uma nova versão é necessária\n- É possível deprecar um flow publicado para interromper novas sessões\n- Métricas e análises ficam disponíveis após a publicação\n- Alterações no endpoint URI exigem nova versão do flow\n\n## Estratégia de Rollback\n\nQuando problemas são identificados após a publicação:\n1. Criar e publicar uma versão corrigida\n2. Atualizar a lógica de envio de mensagens para usar o novo flow\n3. Deprecate o flow problemático\n","operationId":"publishFlow","parameters":[{"$ref":"#/components/parameters/FlowIdQuery"}],"responses":{"200":{"$ref":"#/components/responses/PublishDeprecateResponse"},"400":{"description":"Flow possui erros de validação e não pode ser publicado","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"validation_errors":{"type":"array","items":{"type":"object"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## Deprecate um flow

> Deprecate um Flow publicado do WhatsApp. Flows deprecated não podem mais ser enviados\
> para novos usuários, mas sessões ativas existentes continuam funcionando.\
> \
> \## Quando Depreciar\
> \
> \- Existe uma nova versão do flow publicada\
> \- O flow não é mais necessário para o negócio\
> \- Problemas foram identificados e exigem um novo flow\
> \- Alterações de conformidade ou política exigem descontinuação\
> \
> \## Comportamento da Depreciação\
> \
> \| Cenário | Comportamento |\
> \|--------|---------------|\
> \| Nova mensagem com flow | O flow não é incluído |\
> \| Usuário em sessão ativa | A sessão continua normalmente |\
> \| Usuário tenta reiniciar | Não é possível iniciar nova sessão |\
> \| Dados de sessão existentes | Permanecem acessíveis |\
> \
> \## Expiração da Sessão\
> \
> Sessões ativas normalmente expiram após:\
> \- 24 horas de inatividade\
> \- Usuário fechar explicitamente o flow\
> \- Endpoint do flow retornar sinal de término\
> \
> \## Recuperação\
> \
> A depreciação é reversível e um flow deprecated pode ser republicado se ainda estiver em estado válido.\
> A prática recomendada é:\
> 1\. Criar uma nova versão corrigida\
> 2\. Publicar a nova versão\
> 3\. Manter o flow deprecated para referência analítica<br>

```json
{"openapi":"3.0.3","info":{"title":"Fortics BSP - API do WhatsApp Business","version":"1.2.0"},"tags":[{"name":"flows","description":"Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas\npara formulários, agendamentos, pesquisas e mais.\n"}],"servers":[{"url":"{baseUrl}","description":"Servidor da API BSP","variables":{"baseUrl":{"default":"https://waba.fortics.com.br/v1","description":"URL base da API - Use a URL do servidor que lhe foi atribuída"}}}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"Chave de API para autenticação"}},"parameters":{"FlowIdQuery":{"name":"flow_id","in":"query","required":true,"schema":{"type":"string","pattern":"^[0-9]+$"},"description":"Identificador único do Flow do WhatsApp.\n\nObtido a partir de:\n- Resposta do endpoint de criação de flow\n- Resposta do endpoint de listagem de flows\n\nIDs de flow são strings numéricas e permanecem constantes durante o ciclo de vida do flow.\n"}},"responses":{"Unauthorized":{"description":"Não autorizado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}}},"schemas":{"UnauthorizedResponse":{"type":"object","description":"Resposta de erro para falhas de autenticação. Verifique a configuração da chave de API se receber esta resposta.\n","properties":{"message":{"type":"string","description":"Mensagem de erro legível descrevendo a falha de autenticação.\nCausas comuns:\n- Chave de API não incluída na requisição\n- Chave de API inválida ou expirada\n- Chave de API sem permissão para esta operação\n"},"code":{"type":"string","description":"Código de erro para tratamento programático"}}}}},"paths":{"/flows/deprecate":{"post":{"tags":["flows"],"summary":"Deprecate um flow","description":"Deprecate um Flow publicado do WhatsApp. Flows deprecated não podem mais ser enviados\npara novos usuários, mas sessões ativas existentes continuam funcionando.\n\n## Quando Depreciar\n\n- Existe uma nova versão do flow publicada\n- O flow não é mais necessário para o negócio\n- Problemas foram identificados e exigem um novo flow\n- Alterações de conformidade ou política exigem descontinuação\n\n## Comportamento da Depreciação\n\n| Cenário | Comportamento |\n|--------|---------------|\n| Nova mensagem com flow | O flow não é incluído |\n| Usuário em sessão ativa | A sessão continua normalmente |\n| Usuário tenta reiniciar | Não é possível iniciar nova sessão |\n| Dados de sessão existentes | Permanecem acessíveis |\n\n## Expiração da Sessão\n\nSessões ativas normalmente expiram após:\n- 24 horas de inatividade\n- Usuário fechar explicitamente o flow\n- Endpoint do flow retornar sinal de término\n\n## Recuperação\n\nA depreciação é reversível e um flow deprecated pode ser republicado se ainda estiver em estado válido.\nA prática recomendada é:\n1. Criar uma nova versão corrigida\n2. Publicar a nova versão\n3. Manter o flow deprecated para referência analítica\n","operationId":"deprecateFlow","parameters":[{"$ref":"#/components/parameters/FlowIdQuery"}],"responses":{"200":{"description":"Flow deprecated com sucesso","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"string"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## Atualizar um flow

> Atualiza propriedades ou a definição JSON de um WhatsApp Flow existente.\
> \
> \## Propriedades Atualizáveis\
> \
> \- \*\*name\*\*: Altera o nome de exibição (não altera o flow ID)\
> \- \*\*categories\*\*: Atualiza categorias de classificação\
> \- \*\*endpoint\_uri\*\*: Atualiza o endpoint de troca de dados\
> \
> \## Atualização do JSON do Flow\
> \
> Para atualizar telas e lógica do flow, envie uma nova definição JSON.\
> O JSON deve estar conforme o schema JSON de WhatsApp Flows.\
> \
> \## Restrições Importantes\
> \
> \- Flows publicados não podem ser atualizados; deprecar antes ou criar novo flow\
> \- Flows DRAFT podem ser modificados livremente\
> \- Flows BLOCKED ou THROTTLED podem ter restrições de atualização\
> \
> \## Gestão de Versões\
> \
> WhatsApp Flows não possui versionamento nativo. Para uso em produção:\
> \- Usar convenções como "meu\_flow\_v2"\
> \- Manter o controle de IDs de flow por versão\
> \- Documentar alterações entre versões<br>

```json
{"openapi":"3.0.3","info":{"title":"Fortics BSP - API do WhatsApp Business","version":"1.2.0"},"tags":[{"name":"flows","description":"Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas\npara formulários, agendamentos, pesquisas e mais.\n"}],"servers":[{"url":"{baseUrl}","description":"Servidor da API BSP","variables":{"baseUrl":{"default":"https://waba.fortics.com.br/v1","description":"URL base da API - Use a URL do servidor que lhe foi atribuída"}}}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"Chave de API para autenticação"}},"parameters":{"FlowIdPath":{"name":"FLOW_ID","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9]+$"},"description":"Identificador único do Flow do WhatsApp como parâmetro de rota.\nUsado em endpoints que operam sobre um recurso de flow específico.\n"}},"responses":{"Unauthorized":{"description":"Não autorizado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}}},"schemas":{"UnauthorizedResponse":{"type":"object","description":"Resposta de erro para falhas de autenticação. Verifique a configuração da chave de API se receber esta resposta.\n","properties":{"message":{"type":"string","description":"Mensagem de erro legível descrevendo a falha de autenticação.\nCausas comuns:\n- Chave de API não incluída na requisição\n- Chave de API inválida ou expirada\n- Chave de API sem permissão para esta operação\n"},"code":{"type":"string","description":"Código de erro para tratamento programático"}}}}},"paths":{"/flows/{FLOW_ID}":{"patch":{"tags":["flows"],"summary":"Atualizar um flow","description":"Atualiza propriedades ou a definição JSON de um WhatsApp Flow existente.\n\n## Propriedades Atualizáveis\n\n- **name**: Altera o nome de exibição (não altera o flow ID)\n- **categories**: Atualiza categorias de classificação\n- **endpoint_uri**: Atualiza o endpoint de troca de dados\n\n## Atualização do JSON do Flow\n\nPara atualizar telas e lógica do flow, envie uma nova definição JSON.\nO JSON deve estar conforme o schema JSON de WhatsApp Flows.\n\n## Restrições Importantes\n\n- Flows publicados não podem ser atualizados; deprecar antes ou criar novo flow\n- Flows DRAFT podem ser modificados livremente\n- Flows BLOCKED ou THROTTLED podem ter restrições de atualização\n\n## Gestão de Versões\n\nWhatsApp Flows não possui versionamento nativo. Para uso em produção:\n- Usar convenções como \"meu_flow_v2\"\n- Manter o controle de IDs de flow por versão\n- Documentar alterações entre versões\n","operationId":"updateFlow","parameters":[{"$ref":"#/components/parameters/FlowIdPath"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Novo nome de exibição do flow","maxLength":200},"categories":{"type":"array","items":{"type":"string"},"description":"Categorias atualizadas do flow"},"endpoint_uri":{"type":"string","format":"uri","description":"Novo endpoint URI para troca de dados"}}}}}},"responses":{"200":{"description":"Flow atualizado com sucesso","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"string"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"409":{"description":"Não é possível atualizar um flow publicado","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}}}}}
```

## Obter definição JSON do flow

> Recupera a definição JSON completa de um WhatsApp Flow. O JSON contém\
> toda a estrutura do flow, incluindo telas, componentes e lógica.\
> \
> \## Visão Geral da Estrutura JSON\
> \
> O JSON do flow contém:\
> \- \*\*version\*\*: Versão do schema (ex.: "3.0")\
> \- \*\*screens\*\*: Array de definições de telas\
> \- \*\*routing\_model\*\*: Configuração de navegação\
> \- \*\*data\_api\_version\*\*: Versão para comunicação com o endpoint\
> \
> \## Componentes de Tela\
> \
> Cada tela pode conter:\
> \- Textos e títulos\
> \- Campos de entrada (texto, dropdown, seletor de data, checkbox)\
> \- Elementos de mídia (imagens)\
> \- Botões de navegação\
> \- Ações de envio\
> \
> \## Troca de Dados\
> \
> Quando há endpoint configurado:\
> \- O JSON inclui referências de binding de dados\
> \- Conteúdo dinâmico é obtido em tempo de execução\
> \- Entradas do usuário são enviadas ao endpoint\
> \
> \## Casos de Uso\
> \
> \- Backup de definições de flow\
> \- Controle de versões de flows\
> \- Migração de flows entre contas\
> \- Análise programática da estrutura do flow<br>

```json
{"openapi":"3.0.3","info":{"title":"Fortics BSP - API do WhatsApp Business","version":"1.2.0"},"tags":[{"name":"flows","description":"Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas\npara formulários, agendamentos, pesquisas e mais.\n"}],"servers":[{"url":"{baseUrl}","description":"Servidor da API BSP","variables":{"baseUrl":{"default":"https://waba.fortics.com.br/v1","description":"URL base da API - Use a URL do servidor que lhe foi atribuída"}}}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"Chave de API para autenticação"}},"parameters":{"FlowIdPath":{"name":"FLOW_ID","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9]+$"},"description":"Identificador único do Flow do WhatsApp como parâmetro de rota.\nUsado em endpoints que operam sobre um recurso de flow específico.\n"}},"responses":{"Unauthorized":{"description":"Não autorizado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"NotFound":{"description":"O recurso solicitado não foi encontrado","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"schemas":{"UnauthorizedResponse":{"type":"object","description":"Resposta de erro para falhas de autenticação. Verifique a configuração da chave de API se receber esta resposta.\n","properties":{"message":{"type":"string","description":"Mensagem de erro legível descrevendo a falha de autenticação.\nCausas comuns:\n- Chave de API não incluída na requisição\n- Chave de API inválida ou expirada\n- Chave de API sem permissão para esta operação\n"},"code":{"type":"string","description":"Código de erro para tratamento programático"}}}}},"paths":{"/flows/assets/{FLOW_ID}":{"get":{"tags":["flows"],"summary":"Obter definição JSON do flow","description":"Recupera a definição JSON completa de um WhatsApp Flow. O JSON contém\ntoda a estrutura do flow, incluindo telas, componentes e lógica.\n\n## Visão Geral da Estrutura JSON\n\nO JSON do flow contém:\n- **version**: Versão do schema (ex.: \"3.0\")\n- **screens**: Array de definições de telas\n- **routing_model**: Configuração de navegação\n- **data_api_version**: Versão para comunicação com o endpoint\n\n## Componentes de Tela\n\nCada tela pode conter:\n- Textos e títulos\n- Campos de entrada (texto, dropdown, seletor de data, checkbox)\n- Elementos de mídia (imagens)\n- Botões de navegação\n- Ações de envio\n\n## Troca de Dados\n\nQuando há endpoint configurado:\n- O JSON inclui referências de binding de dados\n- Conteúdo dinâmico é obtido em tempo de execução\n- Entradas do usuário são enviadas ao endpoint\n\n## Casos de Uso\n\n- Backup de definições de flow\n- Controle de versões de flows\n- Migração de flows entre contas\n- Análise programática da estrutura do flow\n","operationId":"getFlowAssets","parameters":[{"$ref":"#/components/parameters/FlowIdPath"}],"responses":{"200":{"description":"JSON do flow recuperado com sucesso","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer","description":"Código de status HTTP"},"data":{"type":"object","properties":{"flow":{"type":"object","description":"Definição JSON completa do flow, incluindo versão,\narray de telas, modelo de roteamento e configuração da API de dados.\n"}}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
```

## Enviar chave pública de criptografia

> Envia uma chave pública para criptografia ponta a ponta em WhatsApp Flows.\
> A chave criptografa dados sensíveis trocados entre o WhatsApp e o endpoint.\
> \
> \## Arquitetura de Segurança\
> \
> WhatsApp Flows usa criptografia assimétrica para dados sensíveis:\
> 1\. O par de chaves RSA é gerado e a chave pública é enviada\
> 2\. O WhatsApp criptografa dados sensíveis usando a chave pública\
> 3\. O endpoint descriptografa dados usando a chave privada\
> 4\. As respostas são criptografadas usando a chave pública do WhatsApp\
> \
> \## Requisitos da Chave\
> \
> \- Par de chaves RSA de 2048 bits no mínimo (4096 bits recomendado)\
> \- Chave no formato PEM\
> \- Chave privada armazenada com segurança nos servidores\
> \- A chave privada não deve ser compartilhada ou transmitida\
> \
> \## Exemplo de Geração de Chaves\
> \
> Geração do par de chaves com OpenSSL:\
> \`\`\`bash\
> openssl genrsa -out private\_key.pem 2048\
> openssl rsa -pubout -in private\_key.pem -out public\_key.pem\
> \`\`\`\
> \
> \## Rotação de Chaves\
> \
> \- Enviar uma nova chave pública para rotação\
> \- Chaves antiga e nova permanecem válidas durante a transição\
> \- A rotação a cada 90 dias é recomendada como boa prática de segurança<br>

````json
{"openapi":"3.0.3","info":{"title":"Fortics BSP - API do WhatsApp Business","version":"1.2.0"},"tags":[{"name":"flows","description":"Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas\npara formulários, agendamentos, pesquisas e mais.\n"}],"servers":[{"url":"{baseUrl}","description":"Servidor da API BSP","variables":{"baseUrl":{"default":"https://waba.fortics.com.br/v1","description":"URL base da API - Use a URL do servidor que lhe foi atribuída"}}}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"Chave de API para autenticação"}},"responses":{"Unauthorized":{"description":"Não autorizado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}}},"schemas":{"UnauthorizedResponse":{"type":"object","description":"Resposta de erro para falhas de autenticação. Verifique a configuração da chave de API se receber esta resposta.\n","properties":{"message":{"type":"string","description":"Mensagem de erro legível descrevendo a falha de autenticação.\nCausas comuns:\n- Chave de API não incluída na requisição\n- Chave de API inválida ou expirada\n- Chave de API sem permissão para esta operação\n"},"code":{"type":"string","description":"Código de erro para tratamento programático"}}}}},"paths":{"/flows/upload-public-key":{"post":{"tags":["flows"],"summary":"Enviar chave pública de criptografia","description":"Envia uma chave pública para criptografia ponta a ponta em WhatsApp Flows.\nA chave criptografa dados sensíveis trocados entre o WhatsApp e o endpoint.\n\n## Arquitetura de Segurança\n\nWhatsApp Flows usa criptografia assimétrica para dados sensíveis:\n1. O par de chaves RSA é gerado e a chave pública é enviada\n2. O WhatsApp criptografa dados sensíveis usando a chave pública\n3. O endpoint descriptografa dados usando a chave privada\n4. As respostas são criptografadas usando a chave pública do WhatsApp\n\n## Requisitos da Chave\n\n- Par de chaves RSA de 2048 bits no mínimo (4096 bits recomendado)\n- Chave no formato PEM\n- Chave privada armazenada com segurança nos servidores\n- A chave privada não deve ser compartilhada ou transmitida\n\n## Exemplo de Geração de Chaves\n\nGeração do par de chaves com OpenSSL:\n```bash\nopenssl genrsa -out private_key.pem 2048\nopenssl rsa -pubout -in private_key.pem -out public_key.pem\n```\n\n## Rotação de Chaves\n\n- Enviar uma nova chave pública para rotação\n- Chaves antiga e nova permanecem válidas durante a transição\n- A rotação a cada 90 dias é recomendada como boa prática de segurança\n","operationId":"uploadPublicKeyFlow","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["business_public_key"],"properties":{"business_public_key":{"type":"string","description":"Chave pública RSA no formato PEM. Deve ter 2048 bits ou mais.\nIncluir os marcadores BEGIN e END.\n"}}}}}},"responses":{"200":{"description":"Chave pública enviada com sucesso","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"string"}}}}}},"400":{"description":"Formato de chave inválido","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
````

## Obter chave pública atual

> Recupera a chave pública configurada para criptografia de WhatsApp Flows,\
> junto com o status de validação de assinatura.\
> \
> \## Campos da Resposta\
> \
> \- \*\*business\_public\_key\*\*: Chave pública RSA enviada\
> \- \*\*business\_public\_key\_signature\_status\*\*: Status de validação\
> &#x20; \- VALID: Chave configurada corretamente com assinaturas válidas\
> &#x20; \- MISMATCH: Assinatura não confere (possível adulteração)\
> \
> \## Solução de Problemas\
> \
> Se o status for MISMATCH:\
> 1\. Verificar se o par de chaves está correto\
> 2\. Reenviar a chave pública\
> 3\. Validar se houve corrupção no envio\
> 4\. Confirmar o formato PEM\
> \
> \## Verificação de Segurança\
> \
> Este endpoint permite:\
> \- Verificar o envio bem-sucedido da chave\
> \- Confirmar que a chave não foi adulterada\
> \- Validar a configuração de criptografia antes de publicar flows<br>

```json
{"openapi":"3.0.3","info":{"title":"Fortics BSP - API do WhatsApp Business","version":"1.2.0"},"tags":[{"name":"flows","description":"Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas\npara formulários, agendamentos, pesquisas e mais.\n"}],"servers":[{"url":"{baseUrl}","description":"Servidor da API BSP","variables":{"baseUrl":{"default":"https://waba.fortics.com.br/v1","description":"URL base da API - Use a URL do servidor que lhe foi atribuída"}}}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"Chave de API para autenticação"}},"responses":{"Unauthorized":{"description":"Não autorizado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}}},"schemas":{"UnauthorizedResponse":{"type":"object","description":"Resposta de erro para falhas de autenticação. Verifique a configuração da chave de API se receber esta resposta.\n","properties":{"message":{"type":"string","description":"Mensagem de erro legível descrevendo a falha de autenticação.\nCausas comuns:\n- Chave de API não incluída na requisição\n- Chave de API inválida ou expirada\n- Chave de API sem permissão para esta operação\n"},"code":{"type":"string","description":"Código de erro para tratamento programático"}}}}},"paths":{"/flows/get-public-key":{"post":{"tags":["flows"],"summary":"Obter chave pública atual","description":"Recupera a chave pública configurada para criptografia de WhatsApp Flows,\njunto com o status de validação de assinatura.\n\n## Campos da Resposta\n\n- **business_public_key**: Chave pública RSA enviada\n- **business_public_key_signature_status**: Status de validação\n  - VALID: Chave configurada corretamente com assinaturas válidas\n  - MISMATCH: Assinatura não confere (possível adulteração)\n\n## Solução de Problemas\n\nSe o status for MISMATCH:\n1. Verificar se o par de chaves está correto\n2. Reenviar a chave pública\n3. Validar se houve corrupção no envio\n4. Confirmar o formato PEM\n\n## Verificação de Segurança\n\nEste endpoint permite:\n- Verificar o envio bem-sucedido da chave\n- Confirmar que a chave não foi adulterada\n- Validar a configuração de criptografia antes de publicar flows\n","operationId":"getPublicKeyFlow","responses":{"200":{"description":"Chave pública recuperada com sucesso","content":{"application/json":{"schema":{"type":"object","properties":{"business_public_key":{"type":"string","description":"Chave pública RSA no formato PEM"},"business_public_key_signature_status":{"type":"string","description":"Indica se a assinatura da chave é válida. VALID indica que\na chave está configurada corretamente. MISMATCH indica problema.\n","enum":["VALID","MISMATCH"]}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fortics.com.br/bsp-api-reference/reference/flows.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
