requestId, datos persistidos, efectos y warnings.
Descargar el comprobante
El detalle de una venta incluyedocument.file. Cuando su status es
ready, url contiene una ruta estable de la API, por ejemplo
/api/v1/sales/{sale_id}/document. Esa ruta requiere la misma API key con
sales:read y responde con un redirect 302 hacia una URL firmada de cinco
minutos.
409 PRECONDITION_FAILED, retryable: true y Retry-After: 5. Si la
generación falló, responde 409 con retryable: false. Leer o descargar nunca
inicia una regeneración.
La ruta autenticada
document.file.url es para integraciones. El Location
firmado existe solo para transferir el archivo y no debe persistirse. Los links
públicos opacos /comprobantes/d/{token} usados en emails son credenciales de
portador distintas; la ruta pública histórica usada por WhatsApp tampoco forma
parte del contrato de la API.Reintentos seguros
Si tu worker, backend o job reintenta la misma venta, reenviá el mismoidempotencyKey. No generes una key nueva para cada intento del mismo pedido.
La clave de idempotencia no se guarda como referencia externa de la venta; si
necesitás ver o buscar el ID de tu sistema, envialo también en
integrationSource e integrationId.

