Saltar al contenido principal

Envío Asíncrono

El envío asíncrono es el flujo utilizado para documentos de procesamiento diferido: resúmenes diarios de boletas, comunicaciones de baja y reversiones. A diferencia del envío síncrono, el OSE no retorna el CDR de forma inmediata — retorna un ticket que el emisor debe usar posteriormente para consultar el resultado del procesamiento.

Flujo de envío asíncrono: sendSummary y getStatus

Paso a paso

1. Envío del resumen (Emisor → OSE)

El emisor genera el XML del resumen o comunicación de baja, lo firma con su certificado digital, lo comprime en un archivo ZIP siguiendo la nomenclatura de archivos, y lo envía al OSE mediante el método sendSummary.

2. Recepción del ticket

El OSE valida el envío (autenticación, formato del archivo, esquema XML) y, si el documento es aceptado para procesamiento, retorna un ticket — un identificador único del proceso asíncrono. Este ticket no significa que el documento ya fue aceptado por SUNAT: solo confirma que el OSE lo recibió y lo está procesando.

3. Procesamiento diferido (OSE → SUNAT)

En paralelo, el OSE remite el resumen o comunicación a SUNAT para su procesamiento. SUNAT evalúa cada comprobante incluido en el resumen y genera el CDR correspondiente. Este procesamiento no es inmediato — puede tomar minutos u horas dependiendo de la carga de SUNAT.

4. Consulta del resultado (Emisor → OSE)

Una vez que el emisor tiene el ticket, debe consultar periódicamente el estado del proceso mediante getStatus, enviando el ticket recibido en el paso 2.

Mientras el proceso sigue en curso, getStatus retorna el statusCode 98 (en proceso). El emisor debe seguir consultando hasta recibir un statusCode distinto:

  • Si el proceso finalizó correctamente, getStatus retorna el CDR del resumen en Base64.
  • Si el proceso finalizó con error, getStatus retorna el código y mensaje de error correspondiente.
¿Cuándo usar este flujo?

Usa el envío asíncrono para resúmenes diarios de boletas, comunicaciones de baja y resúmenes de reversión — documentos que agrupan múltiples comprobantes o que SUNAT procesa en lote. Para una factura, boleta individual, nota o DAE, usa el envío síncrono.

Tiempo de espera entre consultas

No existe un tiempo fijo garantizado de procesamiento por parte de SUNAT. Se recomienda implementar un mecanismo de reintento con espera incremental (por ejemplo, consultar cada 60 segundos) en lugar de consultar getStatus de forma continua.