# Devolver o JSON enviado (eco)

> Devolve, igual, o JSON que você mandar.

Endereço: https://docs.nextags.com.br/referencia/ferramentas/devolver-o-json-enviado-eco/
Tipo: Endpoint

```http
POST https://app.nextagsai.com.br/api/tools/echo
X-ACCESS-TOKEN: <sua chave de API>
```

Devolve, igual, o JSON que você mandar. Serve para gerar mensagens dinâmicas na [requisição externa](https://help.nextags.com.br/tutoriais/fluxos/requisicao-externa/) do fluxo sem ter um servidor seu: monte no corpo o JSON de [mensagens e ações](https://docs.nextags.com.br/comecar/mensagens-e-acoes/), com as variáveis do contato, e a resposta traz esse JSON de volta. Veja [Requisição externa: o fluxo chama o seu sistema](https://docs.nextags.com.br/webhooks/requisicao-externa-no-fluxo/).

Autenticação: Mande a chave de API da conta no cabeçalho `X-ACCESS-TOKEN` de cada chamada. Veja [Autenticação com a chave de API](https://docs.nextags.com.br/comecar/autenticacao/).

## Corpo da requisição (JSON)

| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `messages` | array de objeto Mensagem | não | Por exemplo, as mensagens do conteúdo dinâmico. O eco aceita qualquer JSON e devolve igual: estes campos são só o uso mais comum. |
| `actions` | array de objeto Ação | não | Por exemplo, as ações do conteúdo dinâmico. |
| `actions[].action` | string | sim | Valores: `add_tag`, `remove_tag`, `set_field_value`, `unset_field_value`, `send_flow`, `transfer_conversation_to`, `assign_conversation`, `unassign_conversation`. |
| `actions[].tag_name` | string | não | O nome da etiqueta (add_tag, remove_tag). |
| `actions[].field_name` | string | não | O nome do campo (set_field_value, unset_field_value). |
| `actions[].value` | string | não | O valor do campo (set_field_value) ou human/bot (transfer_conversation_to). |
| `actions[].flow_id` | integer ou string | não | O ID do fluxo (send_flow). |
| `actions[].admin_id` | integer ou string | não | O ID do administrador (assign_conversation). |

```json
{
  "messages": [
    {
      "message": {
        "text": "Oi, Ana! Seu pedido PED-1001 saiu para entrega."
      }
    }
  ],
  "actions": [
    {
      "action": "add_tag",
      "tag_name": "cliente-vip"
    }
  ]
}
```

## Exemplo

```bash
curl -X POST "https://app.nextagsai.com.br/api/tools/echo" \
  -H "X-ACCESS-TOKEN: $NEXTAGS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {
        "message": {
          "text": "Oi, Ana! Seu pedido PED-1001 saiu para entrega."
        }
      }
    ],
    "actions": [
      {
        "action": "add_tag",
        "tag_name": "cliente-vip"
      }
    ]
  }'
```

Os exemplos em JavaScript, Python e PHP estão na página e no contrato (`x-codeSamples` em https://docs.nextags.com.br/openapi.json).

## Respostas

### 200 Sucesso

O mesmo JSON que veio no corpo.

| Campo | Tipo | Descrição |
|---|---|---|
| `messages` | array de objeto Mensagem | Por exemplo, as mensagens do conteúdo dinâmico. O eco aceita qualquer JSON e devolve igual: estes campos são só o uso mais comum. |
| `actions` | array de objeto Ação | Por exemplo, as ações do conteúdo dinâmico. |
| `actions[].action` | string | Valores: `add_tag`, `remove_tag`, `set_field_value`, `unset_field_value`, `send_flow`, `transfer_conversation_to`, `assign_conversation`, `unassign_conversation`. |
| `actions[].tag_name` | string | O nome da etiqueta (add_tag, remove_tag). |
| `actions[].field_name` | string | O nome do campo (set_field_value, unset_field_value). |
| `actions[].value` | string | O valor do campo (set_field_value) ou human/bot (transfer_conversation_to). |
| `actions[].flow_id` | integer ou string | O ID do fluxo (send_flow). |
| `actions[].admin_id` | integer ou string | O ID do administrador (assign_conversation). |

```json
{
  "messages": [
    {
      "message": {
        "text": "Oi, Ana! Seu pedido PED-1001 saiu para entrega."
      }
    }
  ],
  "actions": [
    {
      "action": "add_tag",
      "tag_name": "cliente-vip"
    }
  ]
}
```

### 401 Chave inválida

A chave de API não veio no cabeçalho ou não vale (foi excluída ou está incompleta). Veja [Autenticação](https://docs.nextags.com.br/comecar/autenticacao/).

```json
{
  "error": {
    "code": 401,
    "message": "No valid API key provided."
  }
}
```
