Saltar al contenido principal

sendSummary

Método asíncrono que recibe documentos de procesamiento diferido: resúmenes diarios de boletas, comunicaciones de baja y reversiones.

A diferencia de sendBill, no retorna el CDR de forma inmediata — retorna un ticket que debes usar con getStatus para consultar el resultado cuando SUNAT termine de procesar el documento.

Parámetros de entrada

AtributoTipoDescripción
fileNamestringNombre del archivo ZIP a enviar, conforme al Anexo 4. Ejemplo: 20556695548-RC-20260616-0231.zip
contentFilebase64BinaryContenido del archivo ZIP codificado en Base64, representado como un arreglo de bytes.

Parámetros de salida

AtributoTipoDescripción
ticketstringIdentificador del proceso asíncrono. Úsalo con getStatus para consultar el resultado. Ejemplo: 39653905513768616531

Ejemplos

sendSummary
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://service.sunat.gob.pe"
xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<SOAP-ENV:Header>
  <ns2:Security>
    <ns2:UsernameToken>
      <ns2:Username>20556695548CLHBIHCVK</ns2:Username>
      <ns2:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">
        x#1F^BTAn(3t
      </ns2:Password>
    </ns2:UsernameToken>
  </ns2:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
  <ns1:sendSummary>
    <fileName>20556695548-RC-20260616-0231.zip</fileName>
    <contentFile>UEsDBBQAAAgIA...<!-- Base64 truncado --></contentFile>
  </ns1:sendSummary>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Notas

Autenticación

El header SOAP-ENV:Header debe incluir el token WS-Security con el Username en formato {RUC}{usuario} y la contraseña en texto plano (PasswordText).

Formato del fileName

El nombre del archivo varía según el tipo de documento. Ver Nomenclatura de archivos para la referencia completa.

Flujo asíncrono

sendSummary no retorna el CDR directamente. Una vez recibido el ticket, debes consultar el estado del proceso con getStatus hasta obtener un statusCode distinto de 98.