Apariencia
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"| Campo | Qué es |
|---|---|
instance | Id de la instancia (ins_...). |
to | Número en formato internacional o id de grupo (grp_...). |
type | image, document, audio o video. |
file | El archivo. |
caption | Texto opcional de hasta 1024 caracteres. El audio no lleva caption. |
filename | Nombre 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
| Tipo | Formatos aceptados | Tamaño máximo |
|---|---|---|
image | jpeg, png, webp | 5 MB |
audio | mpeg, ogg, mp4, aac, amr, x-m4a | 16 MB |
video | mp4, 3gpp | 16 MB |
document | pdf, texto plano, csv, zip, Word, Excel, PowerPoint | 16 MB |
Los tamaños son los valores por defecto de la plataforma.
Errores
| Respuesta | Código | Cuándo |
|---|---|---|
| 415 | INVALID_MEDIA_TYPE | El formato no se acepta para ese tipo de mensaje. |
| 413 | MEDIA_TOO_LARGE | El archivo supera el límite de ese tipo. |
| 413 | PAYLOAD_TOO_LARGE | La 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 archivoNecesita 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.