> ## Documentation Index
> Fetch the complete documentation index at: https://developer.z-api.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Enviar documento

> Envia um documento para um contato ou grupo no WhatsApp

## Conceituação

Método responsável por enviar documentos aos seus contatos, ele é simples e objetivo. Você pode trabalhar com os documentos de 2 formas:

* **Por Link**: caso você tenha o documento hospedado em algum lugar da internet, basta enviar somente o link;
* **Por Base64**: caso você queira enviar o documento em formato Base64.

#### Exemplo no WhatsApp

<div style={{ display: "flex", justifyContent: "center" }}>
  <img src="https://mintcdn.com/z-api-8aa3bb40/4dxajBiLV0HF17QH/images/send-message-document.jpeg?fit=max&auto=format&n=4dxajBiLV0HF17QH&q=85&s=a12f5b1324e7a77787633a94f7972e5e" width="400" data-path="images/send-message-document.jpeg" />
</div>

***

## Atributos

### Header

<ParamField path="instanceId" type="string" required>
  ID da sua instância. Disponível no painel Z-API em **Instâncias**.
</ParamField>

<ParamField path="token" type="string" required>
  Token da sua instância Z-API.
</ParamField>

### Path

<ParamField path="extension" type="string" required>
  Extensão do arquivo que está sendo enviado (ex: pdf, xlsx, docx)
</ParamField>

### Obrigatórios

<ParamField body="phone" type="string" required>
  Telefone (ou ID do grupo para casos de envio para grupos) do destinatário no formato DDI DDD NÚMERO. Ex: 551199999999
</ParamField>

<ParamField body="document" type="string" required>
  Link do documento ou seu Base64
</ParamField>

### Opcionais

<ParamField body="fileName" type="string">
  Nome do documento para exibição
</ParamField>

<ParamField body="caption" type="string">
  Descrição do arquivo
</ParamField>

<ParamField body="messageId" type="string">
  Atributo utilizado para responder uma mensagem do chat, basta adicionar o messageId da mensagem que queira responder neste atributo
</ParamField>

<ParamField body="delayMessage" type="number">
  Delay adicionado na mensagem. Você pode decidir entre um range de 1 a 15 sec, significa quantos segundos ele vai esperar para enviar a próxima mensagem. (Ex.: "delayMessage": 5). O delay default caso não seja informado é de 1 a 3 sec
</ParamField>

<ParamField body="editDocumentMessageId" type="string">
  Permite editar a descrição de um documento enviado anteriormente através do campo caption. É necessário configurar o webhook antes de utilizar
</ParamField>

***

## Request Body

**Por link:**

```json theme={"theme":{"light":"github-light","dark":"poimandres"}}
{
  "phone": "5511999999999",
  "document": "https://expoforest.com.br/wp-content/uploads/2017/05/exemplo.pdf",
  "fileName": "Meu PDF"
}
```

**Por Base64:**

```json theme={"theme":{"light":"github-light","dark":"poimandres"}}
{
  "phone": "5511999999999",
  "document": "data:application/pdf;base64,JVBERiN0YXJ0eHJlZg0KMjg3NDINCiUlRU9G0xLj...",
  "fileName": "Meu PDF"
}
```

***

## Response

### 200

```json theme={"theme":{"light":"github-light","dark":"poimandres"}}
{
  "zaapId": "3999984263738042930CD6ECDE9VDWSA",
  "messageId": "D241XXXX732339502B68",
  "id": "D241XXXX732339502B68"
}
```

### 405

Neste caso certifique que esteja enviando corretamente a especificação do método, ou seja verifique se você enviou o POST ou GET conforme especificado no início deste tópico.

### 415

Caso você receba um erro 415, certifique de adicionar na headers da requisição o "Content-Type" do objeto que você está enviando, em sua grande maioria "application/json".
