Skip to main content
Crear una venta es el primer flujo recomendado para probar una integración real: envía un payload de negocio, impacta los efectos que correspondan y devuelve una respuesta tipada con requestId, datos persistidos, efectos y warnings.

Descargar el comprobante

El detalle de una venta incluye document.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.
Si el comprobante todavía se está generando, el endpoint de descarga responde 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 mismo idempotencyKey. 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.
Usá importes monetarios en centavos. Por ejemplo, $1.250,00 se envía como 125000.