Archivos y límites
Las grabaciones y los adjuntos viajan como archivos aparte, referenciados desde el ticket (y, en la carga masiva, también desde el manifiesto). Esta página junta los tipos que acepta Sniff!, los tamaños y qué se controla al recibirlos.
Tipos de medio admitidos
Sección titulada «Tipos de medio admitidos»Usá exactamente uno de estos valores en content_type, tanto en la referencia del ticket como en el manifiesto. El contenido real del archivo tiene que ser de ese tipo.
| Uso | content_type |
|---|---|
Grabación de llamada (calls[].media) |
audio/mpeg (MP3), audio/mp4 (M4A), audio/wav, audio/x-wav, audio/flac, audio/ogg (incluye Opus), video/mp4 |
| Imagen adjunta a un comentario | image/gif, image/jpeg, image/png, image/webp |
| Documento adjunto a un comentario | application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (XLSX), application/vnd.openxmlformats-officedocument.wordprocessingml.document (DOCX) |
| Texto adjunto a un comentario | text/plain, text/csv |
Otros tipos (SVG, HTML, comprimidos, ejecutables) se rechazan. La grabación va en calls[].media, no como adjunto de un comentario. Un CSV adjunto es un archivo más: no reemplaza al ticket JSON.
Qué se verifica
Sección titulada «Qué se verifica»Antes de guardar un ticket, Sniff! compara cada archivo con su referencia:
- No está vacío.
- Tamaño exacto: los
bytesdeclarados tienen que ser el tamaño real del archivo. - SHA-256: el resumen en hexadecimal minúscula de los bytes tal cual se mandan. Lo podés calcular con
shasum -a 256 archivoosha256sum archivo. En un JSON cuenta todo: espacios, saltos de línea y codificación. - Firma del tipo: los primeros bytes del archivo tienen que corresponder al
content_typedeclarado (un MP3 empieza como MP3, un WAV como WAV, un PNG como PNG).text/plainytext/csvno tienen firma y no se controlan.
Si algo no coincide, el ticket se rechaza con un mensaje que nombra el archivo y el problema (ver Problemas). En la carga masiva con formato JSON, una diferencia entre el manifiesto y el ZIP rechaza la entrega entera, porque el inventario no cierra.
En el formato CSV no declarás nada: Sniff! calcula el tamaño y el SHA-256 del audio y deduce el tipo por la extensión.
Límites
Sección titulada «Límites»| Qué | Máximo |
|---|---|
| Cada ticket JSON | 10 MiB |
manifest.json |
10 MiB |
| Tickets por entrega | 10.000 (al menos uno) |
| Archivos por entrega | 50.000 (cero es válido) |
| Cada grabación | 1 GiB |
| Cada adjunto de comentario | 25 MiB |
| Grabaciones por ticket | 1 |
| ZIP de una entrega | 2 GB subidos; 8 GB descomprimidos |
| Un pedido a la API con sus archivos | 1,1 GB |
Si una entrega supera alguno de estos límites, dividila en varias con ids distintos. La subida de un ZIP más grande que el máximo se rechaza antes de procesarlo, con el mensaje «la entrega supera … MB: dividila en varias».
Dónde quedan los archivos
Sección titulada «Dónde quedan los archivos»La grabación se guarda con el ticket y se escucha desde su detalle, sincronizada con la transcripción (ver Tickets). Los adjuntos de comentarios no se guardan: el mensaje muestra [adjunto: nombre] y nada más. El ZIP de una entrega se borra al terminar de procesarla: Sniff! conserva los tickets, no la entrega.
sniff.com.ar · Pedir una demo · Privacidad · Términos · ¿Falta algo? Escribinos a [email protected].

