Ir al contenido

Multimedia ​

Las imágenes, documentos, audio y video se envían con el mismo endpoint que el texto, POST /api/v1/messages, pero con multipart/form-data en lugar de JSON. Necesitas el scope messages:send.

bash
curl -X POST "https://zappio.cloud/api/v1/messages" \
  -H "Authorization: Bearer $ZAPPIO_API_KEY" \
  -F instance=ins_... \
  -F to=5215500000000 \
  -F type=document \
  -F file=@factura.pdf \
  -F caption="Factura 1042"
CampoQué es
instanceId de la instancia (ins_...).
toNúmero en formato internacional o id de grupo (grp_...).
typeimage, document, audio o video.
fileEl archivo.
captionTexto opcional de hasta 1024 caracteres. El audio no lleva caption.
filenameNombre del archivo, opcional (hasta 200 caracteres).

Como en el texto, la respuesta es 202 Accepted con status: "queued" y el envío ocurre en segundo plano.

Formatos y tamaños ​

TipoFormatos aceptadosTamaño máximo
imagejpeg, png, webp5 MB
audiompeg, ogg, mp4, aac, amr, x-m4a16 MB
videomp4, 3gpp16 MB
documentpdf, texto plano, csv, zip, Word, Excel, PowerPoint16 MB

Los tamaños son los valores por defecto de la plataforma.

Errores ​

RespuestaCódigoCuándo
415INVALID_MEDIA_TYPEEl formato no se acepta para ese tipo de mensaje.
413MEDIA_TOO_LARGEEl archivo supera el límite de ese tipo.
413PAYLOAD_TOO_LARGELa petición completa supera el límite del servidor.

Descargar multimedia ​

Los mensajes con archivo (enviados o recibidos) traen media con mime_type, size, filename y available. Cuando available es true, descarga el archivo con:

bash
curl "https://zappio.cloud/api/v1/messages/msg_.../media" \
  -H "Authorization: Bearer $ZAPPIO_API_KEY" -o archivo

Necesita el scope messages:read. Si el mensaje no tiene archivo guardado, responde 404 MEDIA_NOT_AVAILABLE.

Los eventos de webhook no incluyen el archivo, solo sus metadatos: al recibir un message.received con multimedia, descárgalo con este endpoint.