> ## Documentation Index
> Fetch the complete documentation index at: https://developers.datafyapi.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Enviar áudio

> Envie um arquivo de áudio ou uma mensagem de voz.

Envia um áudio para um cliente com a [janela de 24 horas](https://developers.datafyapi.com.br/api-reference/whatsapp/mensagens/introducao.md#janela-de-24-horas) aberta. O áudio pode chegar como **arquivo de áudio** ou como **mensagem de voz**.

> [!NOTE]
>
> O destinatário pode ser informado pelo **número de telefone** (`to`) ou pelo **ID do usuário** (`recipient`). Se os dois forem enviados, vale o `to`; para enviar pelo ID do usuário, deixe o `to` em branco. Veja a diferença em [Destinatário](https://developers.datafyapi.com.br/api-reference/whatsapp/mensagens/introducao.md#destinatário).

## Link ou ID da mídia

Informe o áudio de uma das duas formas:

| Campo | Quando usar | Como conseguir |
| - | - | - |
| `audio.link` | O áudio está em uma URL pública. | Envie o arquivo na aba **Mídias** do número, no [painel da Datafy](https://app.datafyapi.com.br). O link gerado vale por **30 dias**. |
| `audio.id` | Você já enviou o arquivo para a Meta. | Use o `id` retornado pelo endpoint [Upload de mídia](https://developers.datafyapi.com.br/api-reference/whatsapp/recursos/midia/upload-de-midia.md). |

> [!WARNING]
>
> **Envie apenas um dos dois.** Com `link` e `id` na mesma requisição, a Meta recusa o envio.

No **Testar**, o `link` já vem preenchido com um áudio de exemplo. Para testar com um `id`, apague o `link` antes de enviar.

## Mensagem de voz

Com `audio.voice` igual a `true`, o áudio chega como **mensagem de voz**: aparece com o ícone de microfone e pode ser transcrito pelo WhatsApp do cliente.

```json theme={null}
{
  "messaging_product": "whatsapp",
  "to": "5511999999999",
  "type": "audio",
  "audio": {
    "link": "https://files2.datafychats.com.br/Audio%20ludovico.ogg",
    "voice": true
  }
}
```

A mensagem de voz exige um arquivo **`.ogg` com codec OPUS e canal mono**. Fora desse formato, a transcrição falha.

### Como conseguir um áudio no formato certo

O jeito mais simples é gravar o áudio no próprio WhatsApp. O arquivo baixado pelo WhatsApp Web já sai no formato de mensagem de voz:

1. Grave o áudio no WhatsApp do celular, em qualquer conversa.
2. Abra essa conversa no WhatsApp Web, abra o menu da mensagem de áudio e clique em **Baixar**.
3. Envie o arquivo baixado na aba **Mídias** do painel da Datafy, para usar em `link`, ou pelo endpoint [Upload de mídia](https://developers.datafyapi.com.br/api-reference/whatsapp/recursos/midia/upload-de-midia.md), para usar em `id`.
4. Envie a mensagem com `audio.voice` igual a `true`.

![WhatsApp Web com o menu de uma mensagem de áudio aberto e a opção Baixar destacada.](https://mintcdn.com/datafy/BJXMDQ7MsjStdTrT/images/api/audio-whatsapp-web.webp?fit=max\&auto=format\&n=BJXMDQ7MsjStdTrT\&q=85\&s=580436ada855ebc721059624d6fea701)

> [!TIP]
>
> O botão de reproduzir só aparece direto na conversa para arquivos de até **512 KB**. Acima disso, o cliente vê um ícone de download antes de ouvir.

Sem `voice`, ou com `voice` igual a `false`, o áudio chega como arquivo de áudio comum.

## Formatos aceitos

| Formato | Extensão | Tipo MIME | Tamanho máximo |
| - | - | - | - |
| AAC | `.aac` | `audio/aac` | 16 MB |
| AMR | `.amr` | `audio/amr` | 16 MB |
| MP3 | `.mp3` | `audio/mpeg` | 16 MB |
| MP4 Audio | `.m4a` | `audio/mp4` | 16 MB |
| OGG | `.ogg` | `audio/ogg` (somente OPUS) | 16 MB |

O tipo MIME do arquivo precisa corresponder à extensão. Mensagens de áudio não têm legenda.

Veja mais detalhes na [documentação de mensagens de áudio da Meta](https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/audio-messages).


## OpenAPI

````yaml api-reference/whatsapp/specs/audio.json POST /v1/{phone_number_id}/messages
openapi: 3.1.0
info:
  title: Datafy API — Enviar áudio
  version: 1.0.0
servers:
  - url: https://cloud.datafyapi.com.br
    description: Produção
security:
  - bearerAuth: []
paths:
  /v1/{phone_number_id}/messages:
    post:
      summary: Enviar áudio
      operationId: enviarAudio
      parameters:
        - name: phone_number_id
          in: path
          required: true
          schema:
            type: string
          description: ID do número que envia a mensagem. Descubra com `GET /me`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MensagemAudio'
            example:
              messaging_product: whatsapp
              recipient_type: individual
              to: '5511999999999'
              type: audio
              audio:
                link: https://files2.datafychats.com.br/Audio%20ludovico.ogg
                voice: true
      responses:
        '200':
          description: Envio aceito pela Meta. Não confirma a entrega.
          content:
            application/json:
              example:
                messaging_product: whatsapp
                contacts:
                  - input: '5511999999999'
                    wa_id: '5511999999999'
                messages:
                  - id: wamid.HBgNNTUxMTk5OTk5OTk5ORUCABIYFjNFQjA=
        '400':
          description: Erro retornado pela Meta.
          content:
            application/json:
              example:
                error:
                  message: (#100) Invalid parameter
                  type: OAuthException
                  code: 100
                  fbtrace_id: AbCdEfGhIjK
        '401':
          description: Token ausente ou inválido.
          content:
            application/json:
              example:
                statusCode: 401
                message: Token inválido ou não encontrado.
components:
  schemas:
    MensagemAudio:
      type: object
      required:
        - messaging_product
        - to
        - type
        - audio
      properties:
        messaging_product:
          type: string
          enum:
            - whatsapp
          default: whatsapp
          example: whatsapp
          description: Sempre `whatsapp`.
        recipient_type:
          type: string
          enum:
            - individual
          default: individual
          example: individual
          description: Sempre `individual`.
        to:
          type: string
          example: '5511999999999'
          description: >-
            Número do destinatário com código do país e DDD, como
            `5511999999999`. Tem prioridade sobre `recipient`: para enviar pelo
            ID do usuário, deixe em branco.
        recipient:
          type: string
          description: >-
            ID do usuário no WhatsApp (BSUID), recebido nos webhooks em
            `from_user_id` e `contacts[].user_id`, como
            `BR.13491208655302741918`. Usado quando `to` não é informado.
        type:
          type: string
          enum:
            - audio
          default: audio
          example: audio
          description: Sempre `audio`.
        audio:
          type: object
          description: Áudio da mensagem. Informe `link` **ou** `id`, nunca os dois.
          properties:
            link:
              type: string
              example: https://files2.datafychats.com.br/Audio%20ludovico.ogg
              description: >-
                URL pública do áudio. Você pode gerar um link na aba **Mídias**
                do número, no painel da Datafy. Não envie junto com `id`.
            id:
              type: string
              description: >-
                ID da mídia retornado pelo endpoint **Upload de mídia**. Não
                envie junto com `link`.
            voice:
              type: boolean
              default: false
              example: true
              description: >-
                Use `true` para enviar como **mensagem de voz**. Exige arquivo
                `.ogg` com codec OPUS e canal mono.
        context:
          type: object
          description: Responde citando uma mensagem anterior da conversa.
          properties:
            message_id:
              type: string
              description: ID (`wamid`) da mensagem que será citada.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Token gerado no painel da Datafy ao criar o canal. Formato:
        `sk_live_xxx`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.