Skip to main content
Enviar um arquivo pela API são duas chamadas: primeiro você sobe o arquivo e recebe um identificador, depois envia a mensagem referenciando esse identificador.
Não existe uma chamada única que receba o arquivo e envie. Tentar mandar o arquivo direto no endpoint de envio resulta em erro. Tudo aqui usa o escopo messages:create, o mesmo do envio de texto. Se a sua chave já envia mensagem, ela já envia arquivo.

Passo 1: subir o arquivo

1

Envie o arquivo em multipart/form-data

Dois campos obrigatórios: file com o binário e fileType com a categoria.
cURL
2

Guarde o _id da resposta

A resposta traz o registro do anexo. O campo que importa para o passo 2 é o _id:
O anexo fica salvo e pode ser reaproveitado. Para mandar o mesmo arquivo a vários contatos, suba uma vez e use o mesmo _id em cada envio.

Valores de fileType

O fileType do upload precisa combinar com o endpoint de envio. Subir como DOCUMENT e tentar enviar por send-image não funciona.

Passo 2: enviar para a conversa

O corpo é JSON, com a conversa de destino e o objeto message:

Campos de message

O campo contentAttributes.inReplyToExternalId está descontinuado e sem efeito. Para responder citando uma mensagem, use quoteSourceId.

Citar uma mensagem

quoteSourceId espera o id da mensagem no canal, não o _id da Nuvia. Mandar o _id não cita nada e não devolve erro. Esse valor chega no campo source_id de cada mensagem devolvida por GET /v1/messages/conversation/{id}. Leia de lá e mande de volta em quoteSourceId. A mensagem citada precisa ser da mesma conversa.

Limites

  • Upload: até 100 MB por arquivo.
  • WhatsApp: imagem até 5 MB, áudio e vídeo até 16 MB, documento até 100 MB. O limite do canal vale mesmo que o upload tenha aceitado o arquivo, então um vídeo de 50 MB sobe mas não chega ao contato.
  • Formatos: apenas os aceitos pelo WhatsApp, listados na tabela acima.

Erros comuns

Próximos passos

Referência da API

Todos os endpoints de envio, com parâmetros e respostas.

Exemplos de integração

Casos completos de ponta a ponta.