> For the complete documentation index, see [llms.txt](https://help.hyperflow.global/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.hyperflow.global/docs/builder-hyperflow/gerenciamento-de-aplicativos/fluxos/resposta/xml.md).

# XML

Com o módulo **XML** você monta respostas estruturadas no formato XML dentro do fluxo, definindo código de status HTTP, cabeçalhos e o corpo da mensagem em um único lugar. É ideal para integrar com sistemas legados, serviços SOAP ou qualquer serviço que exija respostas em XML.

<figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FAAnQo643MYkzv9lwCJVD%2Fimage.png?alt=media&amp;token=594ba5dc-bb14-462c-bcb8-63d361d223df" alt=""><figcaption><p>Imagem 1 - Módulo XML selecionado no construtor de fluxos, com cartão verde, código de status e prévia do conteúdo.</p></figcaption></figure>

### 🧩 Detalhes do módulo

Para configurar o módulo, preencha os campos abaixo:

| Campo                | O que preencher                                                                                                |
| -------------------- | -------------------------------------------------------------------------------------------------------------- |
| **Nome do módulo**   | Nome interno para identificar a função do bloco no fluxo (ex.: "XML - Sucesso").                               |
| **Código de status** | Código HTTP que define o resultado da resposta (ex.: `200` para sucesso, `400` para erro).                     |
| **Cabeçalhos**       | Pares de chave e valor com metadados da resposta em formato JSON (ex.: `{"Content-Type": "application/xml"}`). |
| **Corpo**            | Conteúdo XML retornado ao próximo passo do fluxo ou ao serviço externo. Suporta variáveis do fluxo.            |

{% hint style="warning" %}
Antes de usar o módulo **XML**, você precisa ter um fluxo criado e aberto em **Gerenciamento de aplicativos > Fluxos**.
{% endhint %}

<figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FeeP0UVvGSCrAud3zcCF4%2F02-config-campos-preenchidos.png?alt=media&amp;token=86fb989e-8392-4010-8665-178854e04ced" alt=""><figcaption><p>Imagem 2 - Janela de configuração do módulo XML com Código de status, Cabeçalhos e Corpo preenchidos.</p></figcaption></figure>

#### 🎨 Identificação visual no diagrama

O módulo XML aparece no diagrama com:

* **Cabeçalho verde** — indica que pertence à categoria "Resposta".
* **Tag colorida com o código de status** — verde quando o código é menor que 400 (sucesso) e vermelha quando é 400 ou maior (erro).
* **Prévia do corpo** — as primeiras linhas do XML ficam visíveis direto no cartão, sem precisar abrir as configurações.

<figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FNG7okDyQvU5fESDXTXT6%2Fimage.png?alt=media&amp;token=786785d7-8005-43ed-9583-2ba8c0c3c840" alt=""><figcaption><p>Imagem 3 - Cartão do módulo XML no diagrama, com a tag de status verde e a prévia do conteúdo XML.</p></figcaption></figure>

### ▶️ Ações principais

1️⃣ **Adicionar o módulo no diagrama**

**🎯 Propósito**

Inserir o módulo XML no ponto correto do fluxo para definir o retorno da resposta.

**✅ Como fazer na tela**

1. Em **Gerenciamento de aplicativos > Fluxos**, abra o fluxo desejado.
2. Na barra lateral de módulos, localize **XML** na categoria **Resposta**.
3. Arraste e solte o módulo no diagrama, no ponto em que a resposta deve ser gerada.
4. Conecte o módulo ao bloco anterior pelo conector de saída.

**📌 Resultado esperado**

O cartão do módulo XML aparece no diagrama, pronto para configuração, exibindo o código de status padrão `200`.

<figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FLVcYuqTldjO08XpqFygt%2Fimage.png?alt=media&amp;token=3c6b085b-0467-47bd-83d0-71558a798d29" alt=""><figcaption><p>Imagem 4 - Módulo XML localizado na categoria Resposta, pronto para ser arrastado ao diagrama do fluxo.</p></figcaption></figure>

***

2️⃣ **Configurar resposta de sucesso**

**🎯 Propósito**

Retornar um XML estruturado quando o processo do fluxo for concluído com êxito.

**✅ Como fazer na tela**

1. Clique duas vezes no módulo XML para abrir as configurações, ou clique no ícone de engrenagem no cartão.
2. Defina o **Código de status** como `200`.
3. No campo **Cabeçalhos**, adicione os metadados necessários. Exemplo:

   ```json
   {
     "Content-Type": "application/xml"
   }
   ```
4. No campo **Corpo**, escreva o XML de retorno. Você pode usar variáveis do fluxo inserindo `{{nome_da_variavel}}` no conteúdo. Exemplo:

   ```xml
   <resposta>
     <status>sucesso</status>
     <mensagem>Processamento concluído.</mensagem>
   </resposta>
   ```
5. Clique em **Salvar alterações**.

**📌 Resultado esperado**

O fluxo passa a responder com o XML de sucesso configurado, e a tag do cartão fica verde com o código `200`.

<figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2Ffu1LasMvuu0cd6RUDwvB%2F05-config-sucesso-200.png?alt=media&amp;token=78a10b98-5cb2-4e76-8bdf-f25911c468dd" alt=""><figcaption><p>Imagem 5 - Configuração do módulo XML com código 200 e corpo XML de sucesso preenchido.</p></figcaption></figure>

***

3️⃣ **Configurar resposta de erro controlado**

**🎯 Propósito**

Padronizar o retorno XML quando houver uma falha esperada ou validação negativa no fluxo.

**✅ Como fazer na tela**

1. Adicione um segundo módulo XML no caminho de erro do fluxo.
2. Abra as configurações do módulo.
3. Defina o **Código de status** como `400` (requisição inválida) ou outro código de erro adequado (ex.: `422`, `500`).
4. No campo **Corpo**, informe a mensagem de erro em XML. Exemplo:

   ```xml
   <erro>
     <codigo>400</codigo>
     <descricao>Dados inválidos na requisição.</descricao>
   </erro>
   ```
5. Clique em **Salvar alterações**.

**📌 Resultado esperado**

Quando o caminho de erro for executado, o retorno segue o padrão XML definido, e a tag do cartão fica vermelha com o código configurado.

<figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FELOBCbDDIOKH4OGo1bXv%2Fimage.png?alt=media&amp;token=fe7d239e-55b4-46eb-ac5f-539ffd9b7472" alt=""><figcaption><p>Imagem 6 - Módulo XML com código 400 e corpo XML de erro, tag vermelha visível no cartão.</p></figcaption></figure>

***

4️⃣ **Usar variáveis do fluxo no corpo XML**

**🎯 Propósito**

Inserir dados dinâmicos coletados ao longo do fluxo diretamente no conteúdo da resposta XML.

**✅ Como fazer na tela**

1. Abra as configurações do módulo XML.
2. No campo **Corpo**, posicione o cursor onde deseja inserir o dado dinâmico.
3. Digite `{{` para ativar o menu de autocompletar e selecione a variável desejada (ex.: `{{nome_cliente}}`, `{{protocolo}}`).
4. A variável ficará destacada no editor como um marcador visual.
5. Clique em **Salvar alterações**.

{% hint style="info" %}
O campo **Cabeçalhos** também aceita variáveis. Use o mesmo recurso de autocompletar com `{{` para inserir valores dinâmicos nos metadados da resposta.
{% endhint %}

**📌 Resultado esperado**

Ao executar o fluxo, o valor da variável é substituído automaticamente no XML gerado, tornando a resposta personalizada para cada execução.

<figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2Fka6MqyIOdsyznAvcsfKs%2F07-corpo-variavel-destacada.png?alt=media&amp;token=b9db3e5d-8381-44a2-be7d-fe7172a3b55d" alt=""><figcaption><p>Imagem 7 - Editor do campo Corpo com variável do fluxo destacada dentro do XML.</p></figcaption></figure>

### 💡 Dicas úteis

* **Nomeie os módulos com clareza**: use nomes como **XML - Sucesso**, **XML - Erro 400** para identificar facilmente cada bloco no diagrama.
* **Mantenha o XML válido**: um XML mal formado (tag aberta sem fechamento, por exemplo) pode causar erros ao executar o fluxo. Revise a estrutura antes de salvar.
* **Padronize a estrutura**: use o mesmo formato de XML em todos os retornos do mesmo fluxo para facilitar o consumo pelo sistema que recebe a resposta.
* **Diferença entre XML e JSON**: use o módulo **XML** quando o serviço que consome a resposta exige esse formato — especialmente em integrações com sistemas legados ou serviços SOAP. Para sistemas modernos que aceitam ambos, o módulo **JSON** pode ser mais simples de manter.

### 📋 Caso de uso

Imagine uma integração com um sistema legado de ERP que só aceita respostas em XML:

1. O fluxo recebe uma requisição de consulta de pedido.
2. Um módulo de integração busca os dados do pedido no banco.
3. Se o pedido for encontrado, o módulo **XML - Sucesso** retorna os dados formatados:

   ```xml
   <pedido>
     <numero>12345</numero>
     <status>aprovado</status>
     <valor>R$ 350,00</valor>
   </pedido>
   ```
4. Se o pedido não for localizado, o módulo **XML - Erro 404** retorna:

   ```xml
   <erro>
     <codigo>404</codigo>
     <descricao>Pedido não encontrado.</descricao>
   </erro>
   ```

Dessa forma, o ERP recebe sempre uma resposta padronizada em XML, independente do resultado da consulta.

### ✅ Resumo

* O módulo **XML** permite montar respostas no formato XML diretamente no fluxo do Hyperflow Integrações.
* Configure **Código de status**, **Cabeçalhos** e **Corpo** em uma única tela de configuração.
* Suporta variáveis do fluxo no corpo e nos cabeçalhos para respostas dinâmicas.
* A tag colorida no cartão (verde ou vermelha) indica visualmente se o módulo representa sucesso ou erro.
* Use este módulo para integrações com sistemas legados, serviços SOAP ou qualquer serviço que exija respostas em XML.
