---
title: "Abrir chat"
method: POST
path: "/comunicador/chat"
tags: ["Comunicador"]
---

# Abrir chat

`POST /comunicador/chat`

## Request

- Base URL: `https://integracao.cvcrm.com.br/api/v1/cliente`
- URL: `https://integracao.cvcrm.com.br/api/v1/cliente/comunicador/chat`
- Auth: HTTP bearer

Abre o chat. Ou a partir de um atendimento existente (idatendimento), ou descrevendo o assunto — e aí o atendimento é aberto na hora, pelo mesmo cadastro do formulário de chamado do portal. Os dois caminhos são mutuamente exclusivos. Havendo chat em andamento, devolve o existente sem criar nada.

## Request body `multipart/form-data`

- ComunicadorAbrirChatRequest: Informe idatendimento OU os campos do atendimento novo (idassunto, idsubassunto, idempreendimento, unidades), nunca os dois.
  - `mensagem` string: Primeira mensagem do cliente
  - `idassunto` integer: Assunto do atendimento a abrir.
  - `idsubassunto` integer: Subassunto, quando o assunto o exigir
  - `idatendimento` integer: Atendimento existente. Abre o caminho que apenas vincula o chat a ele.
  - `idunidade` integer: Unidade sobre a qual é o atendimento. Enviada em unidades[], junto com idempreendimento.
  - `arquivo` string, binary: Anexo da primeira mensagem

## Response `201`

Chat aberto, ou o que já estava em andamento

- ComunicadorChatResponse: Envelope de resposta com um chat
  - `data` ComunicadorChat: Chat do cliente com o pós-venda, com o par hash e token que dá acesso ao tempo real
    - `identificador` string: Identificador do chat, estável ao longo das transferências de atendente
    - `hash` string: Nó do Firebase em que o chat vive agora. Muda a cada troca de atendente.
    - `token_realtime` string, nullable: Token de acesso do cliente ao Firebase. Validade de uma hora.
    - `nome_atendente` string, nullable
    - `idatendimento` integer, nullable
    - `encerrada` boolean: Chat encerrado só pode ser lido
    - `historico` ComunicadorMensagem[]
      - `id` string, nullable
      - `emissor` string: C para cliente, A para atendente
      - `mensagem` string, nullable
      - `data` string
    - `realtime` object: Configuração web do Firebase do projeto que assina o token deste chat. Vem junto porque o token só autentica no projeto que o assinou, e o projeto muda por ambiente.
      - `apiKey` string
      - `authDomain` string
      - `databaseURL` string
      - `projectId` string

## Other responses

- `400`: Entrada recusada pelas regras do chat
- `401`: Sessão do portal ausente, expirada ou inválida
- `422`: Falha não prevista ao processar o chat

---

[API](https://skmtc.dev/cvcrm/apis/portal-do-cliente.md) - [All operations](https://skmtc.dev/cvcrm/apis/portal-do-cliente/llms.txt) - [OpenAPI document](https://skmtc.dev/cvcrm/apis/portal-do-cliente/revisions/7d95f9678127?raw)
