64
MANUAL DEL PROGRAMADOR SUPERINTENDENCIA NACIONAL DE ADUANAS Y ADMINISTRACIÓN TRIBUTARIA SUNAT - Lima – Perú Marzo 2014 Emisión electrónica desde los Sistemas del Contribuyente RS 097-2012/SUNAT

Manual Programador Sunat (JOY-MP)

Embed Size (px)

Citation preview

Page 1: Manual Programador Sunat (JOY-MP)

MANUAL DEL PROGRAMADOR

SUPERINTENDENCIA NACIONAL DE ADUANAS Y ADMINISTRACIÓN TRIBUTARIA

SUNAT - Lima – Perú

Marzo 2014

Emisión electrónica desde losSistemas del Contribuyente

RS 097-2012/SUNAT

Page 2: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

INDICE

1 Documentos electrónicos.....................................................................................4

1.1 Lineamientos generales....................................................................................4

1.2 Nombre del documento XML y archivos ZIP.....................................................4

1.3 Contenido del archivo ZIP.................................................................................6

1.4 Contenido del archivo XML...............................................................................6

2 Envío de documentos electrónicos..........................................................................7

2.1 Mecanismo de envío: WebServices..................................................................7

2.2 Mecanismo de seguridad: WS-Security y SSL.................................................7

2.3 Tipos de envío...................................................................................................9

2.4 Métodos disponibles.......................................................................................10

2.5 Constancia de Recepción (CDR)....................................................................14

3 Firma Digital...........................................................................................................16

3.1 Consideraciones sobre el certificado digital a utilizarse..................................16

3.2 Consideraciones sobre el proceso de firmado.......................................16

4 Procedimientos específicos....................................................................................18

4.1 Manejo de errores...........................................................................................18

4.2 Recuperación de la Constancia de Recepción...............................................20

4.3 Utilización de campos del estándar UBL........................................................20

ANEXO 1: Constancia de Recepción............................................................................21

A. Información contenida en la Constancia de Recepción y estructura XML......21

A.1 Campos contenidos en la Constancia de Recepción.............................22

A.2 Estructura XML de ApplicationResponse según norma UBL.................23

B. Elementos de la Constancia de Recepción....................................................26

B.1 ext:UBLExtensions.................................................................................26

B.2 cbc:UBLVersionID..................................................................................27

~ 2 ~

Page 3: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

B.3 cbc:CustomizationID..............................................................................27

B.4 cbc:ID.....................................................................................................27

B.5 cbc:IssueDate.........................................................................................27

B.6 cbc:IssueTime........................................................................................27

B.7 cbc:ResponseDate.................................................................................28

B.8 cbc:ResponseTime.................................................................................28

B.9 cac:Signature.........................................................................................28

B.10 cbc:Note.................................................................................................29

B.11 cac: SenderParty....................................................................................29

B.12 cac: ReceiverParty.................................................................................30

B.13 cac: DocumentResponse.......................................................................31

C. Ejemplos......................................................................................................33

C.1 Respuesta de aplicación SUNAT – Estado ACEPTADO.......................33

C.2 Respuesta de aplicación SUNAT – Estado RECHAZADO....................36

ANEXO 2 : Listado de Errores.......................................................................................40

~ 3 ~

Page 4: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

Registros de Cambios del Manual

Fecha Versión Elemento de Cambio Motivo de Cambio

31/05/2012 1.0

25/06/2012 1.1 Anexo 2 Incorporación de listado de

errores

27/03/2014 1.2 Anexo 2 Actualización listado de

errores.

~ 4 ~

Page 5: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

1 Documentos electrónicos

Los documentos electrónicos definidos en el proyecto de Factura Electrónica, están especificados en formato XML y basados en el estándar UBL 2.0 (http://docs.oasis-open.org/ubl/os-UBL-2.0/UBL-2.0.html). Para su envío a la SUNAT, se debe tener en cuenta las especificaciones descritas en este manual. El documento será rechazado en caso se incumplan éstas.

1.1 Lineamientos generales

1) Los documentos XML de la factura, boleta de venta y notas de crédito y debito, así como del resumen diario y comunicaciones de baja, antes de ser enviados a la SUNAT, deberán ser empaquetados en un archivo ZIP.

2) Los documentos XML de la factura, boleta de venta y notas de crédito y debito, así como del resumen diario y comunicaciones de baja, deberán tener un nombre.

3) El envío de los archivos ZIP, indicados en el punto 1, será vía WebServices.

4) El servicio Web estará protegido con un esquema de seguridad basado en WSSecurity.

5) El modelo de seguridad usado en WSSecurity será UsernameToken y sólo se aceptará las credenciales de la Clave SOL de la SUNAT.

1.2 Nombre del documento XML y archivos ZIP

Los documentos XML y los archivos ZIP que lo contienen, deben ser generados con los nombres que se detallan a continuación:

Factura y sus Notas de Crédito y Débito:

Posición Nemotécnico Descripción01-11 RRRRRRRRRR

RRuc del Emisor

12 - Guión separador13-14 TT Tipo de comprobante

01 Factura Electrónica03 Boleta de venta07 Nota de Crédito08 Nota de Debito

15 - Guión separador16-19 FAAA ó

BAAASerie del comprobante. Se espera que el primer carácter sea la constante “F” seguido por 3 caracteres alfanuméricos para las Facturas y Notas asociadas ó B seguido de 3 caracteres para las Boletas de venta y Notas asociadas.

20 - Guión separador

~ 5 ~

Page 6: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

21-28 CCCCCCCC Numero correlativo del comprobante. Este campo es variante, se espera un mínimo de 1 y máximo de 8.

29 (*) . Punto de extensión30-32 (*) EEE Extensión del archivo

XML Para el caso del documento XMLZIP Para el caso del archivo ZIP

(*) Las posiciones pueden variar dependiendo de la longitud variante del correlativo.

Ejemplos:

Nombre del archivo ZIP: 20100066603-01-F001-1.ZIPNombre del archivo XML: 20100066603-01-F001-1.XML

Nombre del archivo ZIP: 20100066603-01-F001-00000001.ZIPNombre del archivo XML: 20100066603-01-F001-00000001.XML

Nombre del archivo ZIP: 20100066603-07-F001-1.ZIPNombre del archivo XML: 20100066603-07-F001-1.XML

Nombre del archivo ZIP: 20100066603-08-F001-1.ZIPNombre del archivo XML: 20100066603-08-F001-1.XML

Resumen Diario de Boletas de Venta y sus correspondientes notas de crédito y débito y Comunicación de baja

Posición Nemotécnico Descripción01-11 RRRRRRRRRR

RRuc del Emisor

12 - Guión separador13-14 TT Tipo de resumen

RC Resumen diario de BoletasRA Comunicación de Bajas

15 - Guión separador16-23 YYYYMMDD Fecha de la generación del archivo en formato

YYYYMMDD24 - Guión separador25-29 Numero correlativo del archivo. Este campo es variante,

se espera un mínimo de 1 y máximo de 5. 30 (*) . Punto de extensión31-33 (*) EEE Extensión del archivo

XML Para el caso del documento XMLZIP Para el caso del archivo ZIP

(*) Las posiciones pueden variar dependiendo de la longitud variante del correlativo.

Ejemplos:

Nombre del archivo ZIP: 20100066603-RC-20110522-001.ZIPNombre del archivo XML: 20100066603-RC-20110522-001.XML

Nombre del archivo ZIP: 20100066603-RA-20110522-1.ZIPNombre del archivo XML: 20100066603-RA-20110522-1.XML

~ 6 ~

Page 7: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

1.3 Contenido del archivo ZIP

El contenido del archivo ZIP dependerá de la modalidad de envío, la cual deberá ser de la siguiente manera:

- En caso de las facturas y sus correspondientes notas de crédito y débito, se enviará un único comprobante, razón por la que se espera recibir un único archivo ZIP y dentro de este, un único documento XML. Los nombres de ambos archivos deben coincidir a excepción de la extensión. Por ejemplo:

o Nombre del archivo ZIP: 20100066603-01-F001-1.ZIPo Nombre del archivo XML: 20100066603-01-F001-1.XML

- En el caso del Resumen Diario de boletas de venta y sus correspondientes notas de crédito y débito y Comunicación de baja, se espera recibir un único archivo ZIP y dentro de este, un único documento XML de Resumen o Baja. Los nombres de ambos archivos deben coincidir a excepción de la extensión. Por ejemplo:

Para los archivos de resumen de boletas de venta y sus notas de crédito y débito.o Nombre del archivo ZIP: 20100066603-RC-20110522-1.ZIPo Nombre del archivo XML: 20100066603-RC-20110522-1.XML

Para los archivos de Comunicación de Bajaso Nombre del archivo ZIP: 20100066603-RA-20110522-002.ZIPo Nombre del archivo XML: 20100066603-RA-20110522-002.XML

1.4 Contenido del archivo XML

El contenido del archivo XML deberá cumplir con lo siguiente:

a. La estructura de cada documento deberá construirse de acuerdo a los esquemas (xsd) definidos para cada tipo de documento.

b. La información consignada debe cumplir las reglas de negocio definidas en la normatividad vigente. Estas especificaciones se encuentran detalladas en las “Guías de Elaboración de documentos electrónicos XML” publicadas en la página web de SUNAT.

c. En el caso de utilizarse acentos o letras propias del alfabeto español como la eñe, se debe generar el archivo XML con la codificación ISO-8859-1. Además se debe especificar en la primera línea del archivo xml el uso de dicha codificación para su correcto procesamiento:

<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>

~ 7 ~

Page 8: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

2 Envío de documentos electrónicos

2.1 Mecanismo de envío: WebServices

Los WebServices permiten la comunicación entre aplicaciones o componentes de aplicaciones de forma estándar a través de protocolos comunes como http(s) y de manera independiente al lenguaje de programación, plataforma de implantación, formato de presentación o sistema operativo. Un WebService es un contenedor que encapsula funciones específicas y hace que estas funciones puedan ser utilizadas en otros servidores.

La SUNAT ha determinado que la forma de envío de los comprobantes de pago, Resumen Diario y Comunicación de Baja se realice vía WebServices. En tal sentido, también se han definido métodos personalizados para recibir cada tipo de documento, los mismos que se detallan en el punto 2.4 del presente documento

El servicio Web será protegido vía SSL y estará publicado en la siguiente dirección web:

Para envío en producción:

https://www.sunat.gob.pe/ol-ti-itcpgem/billService

Para envío en el proceso de homologación:

https://www.sunat.gob.pe/ol-ti-itcpgem-sqa/billService

2.2 Mecanismo de seguridad: WS-Security y SSL

WS-Security (Seguridad en Servicios Web) es un protocolo de comunicaciones que suministra un medio para aplicar seguridad a los Servicios Web. WS-Security incorpora las características de seguridad en el encabezado de un mensaje SOAP.

La especificación WS-Security permite una variedad de formatos de firma digital, algoritmos de cifrado y dominios de confianza, y está abierta a diferentes modelos de seguridad, como por ejemplo:

X.509 certificates Kerberos tickets UserID/Password credentials SAML-Assertion Custom defined token

~ 8 ~

Page 9: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

Para acceder al Servicio Web de la SUNAT se ha determinado el uso del WS-Security en el modelo UsernameToken. En donde se debe consignar las credenciales de la Clave SOL, de la siguiente manera:

<soapenv:Header>

<wsse:Security>

<wsse:UsernameToken>

<wsse:Username>20100066603MODDATOS</wsse:Username>

<wsse:Password>moddatos</wsse:Password>

</wsse:UsernameToken>

</wsse:Security>

</soapenv:Header>

Como la modalidad UsernameToken solo permite consignar dos campos que son Username y Password y sin embargo la Clave SOL está compuesta de 3 campos que son RUC, usuario y contraseña, se debe concatenar los campos RUC y usuario en el campo Username. La contraseña se consignará en el campo Password.

La clave SOL que se utilizará debe cumplir con los siguientes requisitos:- Debe ser una clave de tipo secundaria- Tener asignado el perfil de “Envío de documentos electrónicos-Grandes

emisores”

Además se hará uso del protocolo SSL en conjunto con HTTPS, con el cual la información que se transfiera desde el servidor del emisor electrónico hacia el servidor de SUNAT, viajará en forma cifrada.

~ 9 ~

Page 10: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

2.3 Tipos de envío

Se han establecido dos tipos de envíos: Síncrono y Asíncrono.

Envío SíncronoEn este tipo de envío, el servicio web de SUNAT procesa el documento remitido por el emisor y responde inmediatamente con una constancia de recepción (CDR) que puede ser de aceptación o rechazo. Bajo esta modalidad se procesarán las facturas y las notas de crédito y débito asociadas.

INTERNET

SERVICIO WEB SUNAT

Archivo zip Archivo zip

Constancia de recepciónConstancia de recepción

SISTEMA COMERCIAL EMISOR

Envío AsíncronoEste tipo de envío será utilizado para el caso del Resumen diario de Boletas de Venta y sus notas de crédito y debito asociadas así como la Comunicación de Baja. El servicio web de SUNAT recibirá el archivo a procesar y devolverá un número de ticket de atención, con el cual el emisor podrá consultar el resultado del proceso.

INTERNET

SERVICIO WEB SUNAT

Archivo zip Archivo zip

# Ticket# Ticket

SISTEMA COMERCIAL EMISOR

INTERNET

SERVICIO WEB SUNAT

# Ticket # Ticket

Constancia de recepciónConstancia de recepción

SISTEMA COMERCIAL EMISOR

PASO 1: Envío de documento electrónico

PASO 2: Recuperación de Constancia de Recepción

~ 10 ~

Page 11: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

2.4 Métodos disponibles

El servicio web de recepción cuenta con un método personalizado para aceptar cada tipo de documento electrónico. Los métodos de recepción definidos son los siguientes:

- sendBill, este método recibe un archivo ZIP con un único documento XML de comprobante y devuelve un archivo Zip que contiene un documento XML que es la constancia de aceptación ó rechazo.

- sendSummary, este método recibe un archivo Zip con un único documento XML de resúmenes, ya sea resumen de boletas o comunicación de bajas. Devuelve un ticket con el que posteriormente utilizando el método getStatus se puede obtener el archivo Zip que contiene un documento XML que es la constancia de aceptación o rechazo.

- getStatus, este método recibe el ticket como parámetro y devuelve un objeto que indica el estado del proceso y en caso de haber terminado, devuelve adjunta la constancia de aceptación o rechazo.

A continuación se detalla el uso de cada uno de los métodos definidos:

sendBill

El método sendBill recibe como parámetro un nombre de archivo especificado por la SUNAT y el contenido de un archivo ZIP con un único documento XML de comprobante y devuelve un archivo Zip que contiene un documento XML que es la constancia de aceptación ó rechazo.

Parámetros de entradaTipo Parámetro ComentarioString Nombre del archivo Se debe consignar el nombre del

archivo de acuerdo a la especificación de la SUNAT. Por ejemplo:20100066603-01-F001-1.ZIP

~ 11 ~

Page 12: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

byte[] Contenido del archivo ZIP Se debe consignar el contenido del archivo ZIP en un arreglo de bytes.

TODOS los parámetros de entrada son obligatorios, de no ingresar alguno o ingresar valores nulos el servicio emitirá una excepción.

RetornoTipo Comentariobyte[] Devuelve un arreglo de bytes que es un archivo ZIP que

contiene el documento XML de la constancia de aceptación o rechazo.

Ejemplo SOAP para invocar el servicio:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:ser="http://service.sunat.gob.pe"

xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-

secext-1.0.xsd">

<soapenv:Header>

<wsse:Security>

<wsse:UsernameToken>

<wsse:Username>20100066603MODDATOS</wsse:Username>

<wsse:Password>moddatos</wsse:Password>

</wsse:UsernameToken>

</wsse:Security>

</soapenv:Header>

<soapenv:Body>

<ser:sendBill>

<fileName>20100066603-01-F001-1.zip</fileName>

<contentFile>cid:20100066603-01-F001-1.zip</contentFile>

</ser:sendBill>

</soapenv:Body>

</soapenv:Envelope>

sendSummary

El método sendSummary recibe como parámetro un nombre de archivo especificado por la SUNAT y el contenido de un archivo ZIP con un único documento XML de resúmenes, ya sea resumen de boletas o resumen de bajas. Devuelve un ticket con el que posteriormente utilizando el método getStatus se puede obtener la constancia de aceptación o rechazo.

~ 12 ~

Page 13: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

Parámetros de entradaTipo Parámetro ComentarioString Nombre del archivo Se debe consignar el nombre del

archivo de acuerdo a la especificación de la SUNAT. Por ejemplo:20100066603-RC-20110522.ZIP

byte[] Contenido del archivo ZIP Se debe consignar el contenido del archivo ZIP en un arreglo de bytes.

TODOS los parámetros de entrada son obligatorios, de no ingresar alguno o ingresar valores nulos el servicio emitirá una excepción.

RetornoTipo ComentarioString Retorna el ticket de proceso, con el que posteriormente

utilizando el método getStatus se puede obtener el archivo Zip que contiene un documento XML que es la constancia de aceptación o rechazo

Ejemplo SOAP para invocar el servicio:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:ser="http://service.sunat.gob.pe"

xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-

secext-1.0.xsd">

<soapenv:Header>

<wsse:Security>

<wsse:UsernameToken>

<wsse:Username>20100066603MODDATOS</wsse:Username>

<wsse:Password>moddatos</wsse:Password>

</wsse:UsernameToken>

</wsse:Security>

</soapenv:Header>

<soapenv:Body>

<ser:sendSummary>

<fileName>20100066603-RC-20110522-1.zip</fileName>

<contentFile>cid:20100066603-RC-20110522-1.zip</contentFile>

</ser:sendSummary>

</soapenv:Body>

</soapenv:Envelope>

~ 13 ~

Page 14: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

getStatus

El método getStatus recibe como parámetro el número de ticket de procesamiento y devuelve un objeto que indica el estado del proceso y en caso de haber terminado correctamente o con errores, adjunta la constancia de aceptación o rechazo respectivamente.

Parámetros de entradaTipo Parámetro ComentarioString ticket Es el ticket de

procesamiento que fue devuelto por algún método asíncrono, como lo es sendSummary.

TODOS los parámetros de entrada son obligatorios, de no ingresar alguno o ingresar valores nulos el servicio emitirá una excepción.

RetornoTipo ComentarioStatusResponse Es un objeto que contiene la respuesta del procesamiento. El

objeto StatusResponse tiene dos atributos:

statusCode: Indica el estado del procesamiento, es del tipo String y puede tener los siguientes valores:0 = Procesó correctamente98 = En proceso99 = Proceso con errores

content: Únicamente si el atributo statusCode tiene los valores 0 ó 99, este campo tendría valores, que es la constancia de aceptación o rechazo empaquetada en un archivo ZIP.

Ejemplo SOAP para invocar el servicio:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:ser="http://service.sunat.gob.pe"

xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-

secext-1.0.xsd">

<soapenv:Header>

<wsse:Security>

~ 14 ~

Page 15: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

<wsse:UsernameToken>

<wsse:Username>20100066603MODDATOS</wsse:Username>

<wsse:Password>moddatos</wsse:Password>

</wsse:UsernameToken>

</wsse:Security>

</soapenv:Header>

<soapenv:Body>

<ser:getStatus>

<ticket>201100000011227</ticket>

</ser:getStatus>

</soapenv:Body>

</soapenv:Envelope>

Y esto es lo que esperaríamos que responda:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">

<S:Body>

<ns2:getStatusResponse xmlns:ns2="http://service.sunat.gob.pe">

<status>

<content><!—- Aquí el contenido del archivo ZIP en Base64 -->content>

<statusCode>0</statusCode>

</status>

</ns2:getStatusResponse>

</S:Body>

</S:Envelope>

2.5 Constancia de Recepción (CDR)

El documento electrónico de respuesta de SUNAT para todos los documentos electrónicos enviados es la Constancia de Recepción (CDR). Este documento informa al emisor el resultado del envío, y podrá tener el estado de aceptada o rechazada. Las implicancias de la aceptación o rechazo se explican en el numeral 4.1 del presente manual.

La constancia de recepción ha sido clasificada en tres tipos de acuerdo al documento electrónico enviado:

- CDR - Factura y nota, cuando corresponde al resultado del envío de una Factura y/o Nota de crédito y Debito relacionadas

- CDR - Resumen Diario, cuando corresponde al resultado del Resumen diario de boletas de venta y notas de crédito y debito electrónicas relacionadas.

- CDR – Baja, cuando corresponde al resultado de la Comunicación de baja.

Sin embargo, para el sistema, los tres tipos de constancias son iguales, es decir, tienen la misma estructura y por lo tanto, contienen la misma información.

~ 15 ~

Page 16: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

Las características generales de la constancia son las siguientes:

- Formato y estructura: Tendrá formato XML basado en el documento ApplicationResponse de UBL versión 2.0. En el Anexo 1 del presente manual se encuentra el detalle de los elementos utilizados para el caso peruano.

- Nombre:La constancia de recepción es devuelta por el servicio web de SUNAT dentro de un archivo zip. Al desempaquetar dicho archivo, se encontrará la constancia con el siguiente formato de nombre:

R-<Nombre del archivo enviado sin extensión>.xml

Ejemplos:

Archivo XML enviado Constancia de Recepción

20199872761-01-FR92-9882.xml R-20199872761-01-FR92-9882.xml

20199872761-07-FC92-762.xml R-20199872761-07-FC92-762.xml

20199872761-RC-20120601-1.xml R-20199872761-RC-20120601-1.xml

20199872761-RA-20120601-1.xml R-20199872761-RA-20120601-1.xml

- Firma digital:Todas las constancias se encontrarán firmadas digitalmente por SUNAT.

~ 16 ~

Page 17: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

3 Firma Digital

Todos los documentos electrónicos que se enviarán a SUNAT deberán ser firmados digitalmente por el emisor, haciendo uso de un certificado digital. Las características que se deben cumplir se detallan a continuación:

3.1 Consideraciones sobre el certificado digital a utilizarse

a) El certificado debe cumplir con los siguientes requisitos técnicos:

Formato estándar X.509 v3. Longitud mínima de clave privada de 1024 bits Permitir que se identifique al titular de la Firma digital, señalando

nombre y apellidos y DNI, y el número de RUC de la empresa que representa.

El número de RUC deberá estar consignado en el campo OU (Organizational Unit) del atributo Subject Name.

El proveedor de los certificados digitales, deberá identificar a los titulares y/o suscriptores del certificado digital mediante el levantamiento de datos y la comprobación de la información brindada por el referido titular.

b) El certificado digital deberá previamente ser comunicado a SUNAT. Para ello se utilizará la opción de “Actualización de certificado digital” habilitada en el Menú SOL.

c) El certificado debe encontrarse vigente y no revocado, ya que el receptor de SUNAT valida estos dos requisitos.

3.2 Consideraciones sobre el proceso de firmado

a) Para todos los documentos, la firma digital se consignará en un elemento <ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent>. Dentro de éste elemento es donde se incluye la firma [XMLDSig] del emisor del documento. Por tanto, en el documento únicamente habrá un solo <ext:UBLExtension> para la inclusión de la firma.

b) Se firmará todo el documento completo, es decir, todo el contenido del elemento raíz: Invoice, CreditNote, DebitNote, SummaryDocuments o VoidedDocuments. Se deberá utilizar el estándar de firmas XMLDSig.

c) Antes de firmar el documento, el archivo debe contener la totalidad de la información del documento, incluyendo el elemento <cac:Signature> definido por el estándar UBL con su respectiva información. Además se debe generar el elemento donde se ubicará la firma digital.

Ejemplo de elemento <ext:UBLExtensions> antes de firmar: <ext:UBLExtensions>

~ 17 ~

Page 18: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

<ext:UBLExtension> <ext:ExtensionContent> <sac:AdditionalInformation> <sac:AdditionalMonetaryTotal> <cbc:ID>1001</cbc:ID> <cbc:PayableAmount currencyID="PEN">348199.15</cbc:PayableAmount> </sac:AdditionalMonetaryTotal> <sac:AdditionalProperty> <cbc:ID>1000</cbc:ID> <cbc:Value>CUATROCIENTOS VEINTITRES Y 00/100</cbc:Value> </sac:AdditionalProperty> </sac:AdditionalInformation> </ext:ExtensionContent> </ext:UBLExtension> <ext:UBLExtension> <ext:ExtensionContent> </ext:ExtensionContent> </ext:UBLExtension> </ext:UBLExtensions>

d) La firma digital se debe alojar en el elemento <ext:ExtensionContent> creado para tal fin.

e) Para firmar un documento electrónico se utilizará la clave privada de un certificado digital X509. Luego de este proceso no podrán añadirse nuevos datos al documento, ni siquiera extensiones en el formato acordado, puesto que la validación consideraría que el documento ha sido alterado.

f) La firma deberá generarse con el mismo tipo de codificación con el cual se generó el documento xml. Por ejemplo, si el archivo xml a firmar es generado con el ISO-8859-1, la firma también deberá ser generada con dicha codificación.

g) Mayores detalles de la firma digital se encuentra en cada informe de definición de los documentos electrónicos y también puede ser revisado en la página web del Consorcio World Wide Web - W3C (http://www.w3.org/TR/xmldsig-core/).

~ 18 ~

Page 19: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

4 Procedimientos específicos

4.1 Manejo de erroresEl sistema realiza una serie de validaciones durante el proceso de recepción de los documentos electrónicos. Cada una de estas validaciones en caso de no cumplirse genera un tipo de error. Estos tipos son:

1. Excepciones:

Son errores graves que imposibilitan el procesamiento del archivo. En estos casos, el documento se considera como no informado, y el emisor deberá corregir el problema para volver a enviar el documento.

2. Errores que generan rechazos:

En estos casos se procesó el documento electrónico, pero se detectaron errores que no permiten registrarlo como documento válido. Las implicancias de este tipo de error dependen del tipo de documento procesado y son las siguientes:

En Facturas y Notas de crédito y débito asociadas:Para estos documentos, la numeración se considera ya utilizada, pero la factura o nota electrónica no es válida. En estos casos el emisor ya no podrá utilizar ese número, y tendrá que generar un nuevo documento corrigiendo el problema que generó el error y asignar un nuevo número al documento.

En Resúmenes diarios de Boletas de Venta y Comunicación de baja:En estos documentos donde se informa más de un número de comprobante, se rechaza todo el documento completo. No hay procesamiento parcial, y tampoco se invalidan los números. Todo el documento completo se considera como no informado.El emisor debe corregir el problema y volver a enviar todo el documento nuevamente.Puede utilizar el mismo nombre de archivo.

3. Observaciones

Son errores que no invalidan el documento y por lo tanto el sistema registrará el comprobante como válido. Las observaciones se informarán en la Constancia de Recepción.

La relación de los códigos de error y su descripción se encuentra en el

parámetro 742. Los códigos se han clasificado de acuerdo al tipo de error:

- Del 0100 al 1999 Excepciones- Del 2000 al 3999 Errores que generan rechazo- Del 4000 en adelante Observaciones

~ 19 ~

Page 20: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

De acuerdo al tipo de error que se genera, el sistema responde de manera distinta al emisor. Las respuestas son:- Si es una EXCEPCION, el sistema responde como una excepción del

programa, es decir, retorna el código de error con su descripción.

- Si hay un ERROR QUE GENERA RECHAZO, el sistema genera una constancia de recepción (CDR) con estado rechazada, indicando que el comprobante no ha sido registrado en SUNAT por tener errores.

- Si hay OBSERVACIONES, el sistema genera una constancia de recepción (CDR) con estado aceptada con advertencias, indicando que el comprobante ha sido correctamente enviado y registrado en SUNAT. Las advertencias se muestran en la constancia de recepción.

- Finalmente, si no hay ningún tipo de error, se genera una constancia de recepción (CDR) aceptada, indicando que el comprobante ha sido correctamente enviado y registrado en SUNAT.

~ 20 ~

Page 21: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

4.2 Recuperación de la Constancia de Recepción

En los casos de envío síncrono, si se requiere recuperar la Constancia de Recepción de SUNAT (CDR-SUNAT), ésta podrá ser obtenida enviando el mismo documento electrónico. Se debe tomar en cuenta el siguiente comportamiento del sistema:

- Si el documento ha sido aceptado por SUNAT, retorna la Constancia generada cuando se recibió el documento. Si el documento no es el mismo (ha sido alterado) retorna una excepción indicando que el documento ya ha sido presentado con otra información.

- Si el documento ha sido rechazado por SUNAT, se retorna la Constancia de Recepción de rechazo generada cuando se recibió el documento. En estos casos, no se valida si el documento ha sido alterado.

Para los resúmenes diarios y comunicaciones de baja (envío asíncrono), la recuperación de la constancia se efectuará invocando el servicio web de consulta del estado del proceso de envío. En la medida de que el proceso de recepción haya concluido, el sistema devolverá la constancia de recepción correspondiente al proceso asociado al número de ticket consultado.

4.3 Utilización de campos del estándar UBL

El estándar UBL permite consignar una gran cantidad de datos comerciales. Todos los elementos disponibles en la versión 2.0 de UBL pueden ser utilizados por el emisor, siempre que cumplan con el formato establecido por el estándar.

La comprobación del cumplimiento del estándar se realiza verificando que el documento cumple con el esquema (archivos con extensión xsd) que define su estructura. Este proceso denominado “parseo” en el ámbito informático, debería realizarse siempre luego de construido un documento electrónico y antes de realizar su envío a SUNAT. Los diferentes lenguajes de programación ofrecen librerías que permiten realizar esta verificación.

~ 21 ~

Page 22: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

ANEXO 1: Constancia de Recepción

La Constancia de Recepción es el documento que permitirá indicar la respuesta de la aplicación SUNAT a la transacción de recepción de la factura, nota o resúmenes enviados por el contribuyente. Este documento informará el estado de recepción, indicando si ha sido aceptado o rechazado por SUNAT.

El objetivo de este anexo es describir las normas de uso que usará SUNAT cuando construya el documento de respuesta al proceso de recepción de documentos electrónicos. Este documento está basado en el esquema del documento ApplicationResponse del estándar UBL versión 2.0.

A. Información contenida en la Constancia de Recepción y estructura XML

Los diferentes campos contenidos en la constancia de recepción se detallan en el cuadro del literal A.1.

Para elaborar dicho cuadro se ha tomado en cuenta la siguiente nomenclatura: Para los tipos de campos y longitud:

a caracter alfabéticon caracter numéricoan caracter alfanuméricoa3 3 caracteres alfabéticos de longitud fijan3 3 caracteres numéricos de longitud fija an3 3 caracteres alfa-numéricos de longitud fija a..3 hasta 3 caracteres alfabéticos n..3 hasta 3 caracteres numéricos an..3 hasta 3 caracteres alfa-numéricos

Para la condición de obligatoriedad o no de un determinado elemento:

M: Mandatorio u obligatorioC: Condicional u opcional

En lo referente a la identificación del formato de los elementos:

n(12,2) elemento numérico hasta12 enteros + punto decimal+ hasta dos decimales

n(2,2) elemento numérico hasta 2 enteros + punto decimal+ hasta dos decimales

F##### elemento inicia con la letra F seguida de cinco dígitosYYYY-MM-DD formato fecha yyyy=año, mm=mes, dd=día

En el cuadro del literal A.2 se muestra la estructura del documento ApplicationResponse de acuerdo a UBL versión 2.0 y una referencia a la información que estará contenida en cada elemento. Además se muestra la cardinalidad de acuerdo al UBL y el asumido para el caso peruano

~ 22 ~

Page 23: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

A.1 Campos contenidos en la Constancia de Recepción

N° CAMPOS NIVEL CONDICIÓN TIPO Y LONGITUD FORMATO OBSERVACIONES

1 Firma Digital (Firma electrónica) Global M an..30002 Número identificador del proceso de recepción Global M n15 YYYY###########3 Fecha de recepción del documento electrónico

procesadoGlobal M an..10 YYYY-MM-DD Formato Date del XML

4 Hora de recepción del documento electrónico procesado Global M an..11 hh:mm:ss5 Fecha de generación de la constancia de recepción Global M an..10 YYYY-MM-DD Formato Date del XML 6 Hora de generación de la constancia de recepción Global M an..11 hh:mm:ss7 Mensajes o notas asociados a la constancia de recepción Global M an..1008 Número de RUC del Emisor de la constancia Global M n119 Número de RUC del Receptor de la constancia Global M n11

10 Identificador del documento electrónico enviado Global M an..23 Formato de acuerdo al tipo de documento procesado

11 Código de respuesta del envío Global M n..412 Descripción de la respuesta del envío Global M an..10013 Identificador del documento electrónico procesado Global M an..23 Formato de acuerdo al tipo de documento

procesado14 Identificación del receptor del documento electrónico

procesadoGlobal M an..13

15 Versión del UBL Global M an..1016 Versión de la estructura del documento Global M an..10

~ 23 ~

Page 24: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

A.2 Estructura XML de ApplicationResponse según norma UBL

ESTRUCTURA XML APPLICATIONRESPONSE - PERU

Etiqueta XML DescripciónCardinalidad

UBLConstancia de

Recepción

ApplicationResponseDocumento para indicar la respuesta de SUNAT al proceso de recepción de documentos

./ext:UBLExtensions

Contenedor de Componentes de extensión. Podrán incorporarse nuevas definiciones estructuradas cuando sean de interés conjunto para emisores y receptores, y no estén ya definidas en el esquema del documento de respuesta. 0..1 1

./ext:UBLExtension/ext:ExtensionContent Componente de extensión para especificar la firma XMLDSIG 1..n 1 ./ds:Signature @Id Identificación de la firma dentro del documento 1 1

./ds:SignedInfoinformación sobre el valor de la firma e información sobre los datos a firmar 1 1

./ds:CanonicalizationMethod@Algorithm

Indica cómo se debe transformar a forma canónica el elemento <Signinfo> antes de realizar la firma 1 1

./ds:SignatureMethod@Algorithm

Especifica qué tipo de algoritmo de firma que se utilizará para obtener la firma 1 1

./ds:Reference@URI Identifica al objeto de datos que se va a firmar, Si su valor es cadena vacía

identifica al documento completo que contiene la firma 1..n 1 ./ds:Reference/ds:Transforms/ds:Transform@Algorithm Indica un paso realizado en el procesamiento de cálculo del hash. 1..n 1 ./ds:Reference/ds:DigestMethod@Algorithm Define la función hash utilizada 0..n 1 ./ds:Reference/ds:DigestValue Es el valor hash codificado en Base64 1 1 ./ds:SignatureValue Contiene la firma codificada en Base64 1 1 ./ds:KeyInfo/ds:X509Data/ds:X509Certificate Es una estructura que contiene información del certificado firmante 1..n 1

./cbc:UBLVersionID Versión de UBL 0..1 1

. cbc:CustomizationID Versión de la estructura del documento 0..1 1 ./cbc:ID Número único asignado por SUNAT para identificar el proceso de 1 1

~ 24 ~

Page 25: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

recepción ./cbc:IssueDate Fecha de recepción del documento procesado (yyyy-mm-dd) 1 1 ./cbc:IssueTime Hora de recepción del documento procesado (hh:mm:ss.OZ) 0..1 1 ./cbc:ResponseDate Fecha de generación de la constancia de recepción (yyyy-mm-dd) 0..1 1 ./cbc:ResponseTime Hora de generación de la constancia de recepción (hh:mm:ss.OZ) 0..1 1

./cbc:Note Mensajes o notas asociados al documento de respuesta 0..n 0..n ./cac:Signature Referencia a la Firma Digital 0..n 1 ./cbc:ID Identificador de la firma 1 1 ./cac:SignatoryParty 1 1 ./cac:PartyIdentification Parte firmante 0..n 1 ./cbc:ID Identificación de la parte firmante 1 1 ./cac:PartyName 0..n 1

./cbc:Name Nombre de la parte firmante 1 1

./cac:DigitalSignatureAttachment Asociación con la firma codificada (en formato XMLDSIG, por ejemplo) 0..1 1

./cac:ExternalReference Información acerca de un documento vinculado. 0..1 1

./cbc:URIIdentificador de Recurso Uniforme (o URI) que identifica la localización de la firma 0..1 1

./cac:SenderParty Información sobre la parte que remite la información. 1 1

./cac:PartyIdentification Describe el tipo de documento de identificación a la parte que remite la

información 1..n 1 ./cbc:ID Indica el número de identificación (RUC) de la parte que envía la 1 1 información (SUNAT) ./cac:ReceiverParty Información sobre la parte que recibe la información 1 1

./cac:PartyIdentification Describe el tipo de documento de identificación a la parte que recibe la

información 1..n 1 ./cbc:ID Indica el número de identificación (RUC) de la parte que recibe la 1 1

~ 25 ~

Page 26: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

información. ./cac:DocumentResponse Describe el estado de la constancia de recepción 1..n 1 ./cac:Response Información sobre la respuesta al proceso de recepción 1..n 1 ./cbc:ReferenceID Identificación del documento electrónico procesado 1..n 1 ./cbc:ResponseCode Código de la respuesta al documento electrónico procesado 1..n 1 ./cbc:Description Descripción de la respuesta al documento electrónico procesado 1..n 1 ./cac:DocumentReference Identificación del documento procesado 1..n 1 ./cbc:ID Identificador del documento electrónico procesado 1 1

./cac:RecipientParty Información de la parte receptora del documento electrónico procesado 1..n 1

./cac:PartyIdentificationIdentificación de la parte receptora del documento electrónico procesado

./cbc:ID Identificación del receptor del documento electrónico procesado 1 1

~ 26 ~

Page 27: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

B. Elementos de la Constancia de Recepción

Para un mejor entendimiento de la estructura del archivo XML, se muestra el diagrama respectivo en donde se muestra los elementos utilizados para la constancia de recepción.

A continuación se detallan los elementos que forman parte de la constancia de recepción. En cada uno de ellos se indica una explicación de la información que almacena:

B.1 ext:UBLExtensions

Contenedor de Componentes de extensión. Para el caso peruano se utilizará para consignar la información correspondiente a la firma digital.

~ 27 ~

Page 28: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

ds:Signature: Este elemento complejo se ubicará dentro del tag <ext:ExtensionContent> y contendrá la información correspondiente a la firma digital, la cual se encontrará estructurada de acuerdo a las especificaciones de XMLDSig (recomendación de W3C para firmas digitales).

B.2 cbc:UBLVersionID

Versión del esquema UBL utilizado para la elaboración de la constancia de recepción. Para el caso peruano se ha utilizado la versión “2.0”.

<cbc:UBLVersionID>2.0</cbc:UBLVersionID>

B.3 cbc:CustomizationID

Identifica una personalización de UBL definida para un uso específico. Para nuestro caso corresponderá a la versión 1.0. Por cada variación o adecuación del esquema se deberá de aumentar la versión.

<cbc:CustomizationID>1.0</cbc:CustomizationID>

B.4 cbc:ID

Número único asignado por SUNAT para identificar el proceso de recepción.

B.5 cbc:IssueDate

Fecha de recepción del documento electrónico enviado por el contribuyente. El tipo de dato corresponde con el tipo Date de XML por lo que el formato deberá ser yyyy-mm-dd.

<cbc:IssueDate>2012-06-01</cbc:IssueDate>

B.6 cbc:IssueTime

Hora de recepción del documento electrónico enviado por el contribuyente. El documento puede ser un comprobante de pago, nota electrónica, resumen diario o

~ 28 ~

Page 29: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

comunicación de baja. El tipo de dato corresponde con el tipo Time de XML por lo que el formato deberá ser hh:mm:ss.

<cbc:IssueTime>15:12:23</cbc:IssueTime>

B.7 cbc:ResponseDate

Fecha de generación de la constancia de recepción. El tipo de dato corresponde con el tipo Date de XML por lo que el formato deberá ser yyyy-mm-dd.

<cbc:ResponseDate>2012-06-01</cbc:ResponseDate>

B.8 cbc:ResponseTime

Hora de generación de la constancia de recepción. El tipo de dato corresponde con el tipo Time de XML por lo que el formato deberá ser hh:mm:ss.

<cbc:ResponseTime>15:13:00</cbc:ResponseTime>

B.9 cac:Signature

Utilizado para identificar al firmante y otro tipo de información relacionada con la firma digital. Su uso se da principalmente para especificar la ubicación de la firma digital.

cbc:ID. Identificador de la firma. cac:SignatoryParty. Asociación con la parte firmante, la cual para el

caso de la constancia de recepción corresponde a los datos de SUNAT.o PartyIdentification. A través del elemento ID, se consigna el RUC

de la parte firmante.o PartyName. A través del elemento Name, se consigna el nombre de

la parte firmante. En este caso corresponde a SUNAT.

cac:DigitalSignatureAttachment. En este componente se puede referenciar la firma del documento como una referencia externa a una URI local o remota.

~ 29 ~

Page 30: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

o ExternalReference. Información acerca de un documento

vinculado. Los vínculos pueden ser externos (referenciados mediante un elemento URI), internos (accesibles mediante un elemento MIME) o pueden estar contenidos dentro del mismo documento en el que se alude a ellos (mediante elementos Documento Incrustado). Este último será el caso a utilizar, es decir una referencia dentro del mismo documento ApplicationResponse. Específicamente se referencia hacia el componente UBLExtensions donde se ha colocado la firma digital.

B.10 cbc:Note

Los mensajes o notas almacenados en este elemento, corresponderán a advertencias sobre inconsistencias detectadas en el proceso de recepción del documento electrónico, pero que no representan rechazos. Estos mensajes se consignarán con el siguiente formato:

<Código de observación>-<Descripción de la observación>

<cbc:Note>4001-Número de RUC del receptor no existe</cbc:Note>

4031-Debe indicar el nombre comercial

B.11 cac: SenderParty

Información sobre la parte que remite la información.

PartyIdentification. En este elemento se consigna los datos de identificación de la parte emisora de la constancia de recepción. En este caso corresponde a datos de SUNAT.

~ 30 ~

Page 31: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

o cbc:ID. Indica el Número de RUC del emisor de la constancia de recepción (RUC de SUNAT).

<cac:SenderParty><cac:PartyIdentification>

<cbc:ID>20131312955</cbc:ID></cac:PartyIdentification>

</cac:SenderParty>

B.12 cac: ReceiverParty

Información sobre la parte que recibe la constancia de recepción.

PartyIdentification. En este elemento se consigna los datos de identificación de la parte que recibe la constancia de recepción. En este caso corresponde a datos del emisor del documento electrónico enviado a SUNAT.

o cbc:ID. Indica el Número de RUC del receptor de la constancia

de recepción.

Un ejemplo de ReceiverParty, sería:

<cac:ReceiverParty><cac:PartyIdentification>

<cbc:ID>20100043218</cbc:ID></cac:PartyIdentification>

</cac:ReceiverParty>

B.13 cac: DocumentResponse

Información sobre la respuesta que se da al proceso de recepción del documento electrónico enviado por el contribuyente.

~ 31 ~

Page 32: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

Response: Respuesta al documento recibido.

o cbc:ReferenceID. Identificador del documento enviado por el

contribuyente.

o Para el caso de facturas, notas de crédito y notas de débito se consignará la serie y número de documento separado por un guión: <FAAA>-<NNNNNNNN>

o Para el caso de resúmenes diarios y comunicaciones de baja, se colocará el nombre del archivo de acuerdo al siguiente formato:

<RA>-<YYYYMMDD>-<NNNNN>

<RB>-<YYYYMMDD>-<NNNNN>

o cbc:ResponseCode. Proporciona el código que da respuesta al proceso de recepción. Indica el estado de la recepción del documento enviado por el contribuyente:

o Si es Aceptada se colocará el valor cero (“0”). o Si es Rechazada se colocará un valor diferente de cero, y

que corresponde al código del error que genera el rechazo.

o cbc:Description. Describe la respuesta que se da al documento. En el caso de estado aceptado, se muestra una descripción indicando dicha situación. En caso de estado rechazado, se muestra la descripción del error que generó el rechazo.

DocumentReference: En este elemento se ubicará la identificación del documento electrónico procesado.

~ 32 ~

Page 33: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

o cbc:ID. Identificador del documento electrónico procesado. o Si el documento es un comprobante de pago o nota, se

consignará la serie y número de comprobante.o Si el documento es un resumen diario o una

comunicación de baja, se consignará el nombre del archivo.

RecipientParty: En este elemento se ubicará la identificación del receptor

del documento electrónico procesado.

o PartyIdentification. A través del elemento ID, se consigna la

identificación de la parte receptora el documento electrónico procesado.

o cbc:ID. Indica el tipo y número de documento de identidad del receptor del documento electrónico procesado. Para la factura y notas, corresponde a los datos del adquiriente o usuario. Los datos se encontrarán separados por un guión:

<Tipo documento>-<Número de documento>Para el caso del resumen diario y la comunicación de baja, se consignará un guión.

~ 33 ~

Page 34: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

Ejemplo:

<cac:DocumentResponse><cac:Response>

<cbc:ReferenceID>F001-747</cbc:ReferenceID><cbc:ResponseCode>0</cbc:ResponseCode><cbc:Description> La factura numero F001-747, ha sido aceptada

</cbc:Description></cac:Response><cac:DocumentReference>

<cbc:ID> F001-747</cbc:ID></cac:DocumentReference><cac:RecipientParty>

<cbc:ID>06-20100088982</cbc:ID></cac:RecipientParty>

</cac:DocumentResponse>

~ 34 ~

Page 35: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

C. Ejemplos

C.1 Respuesta de aplicación SUNAT – Estado ACEPTADO

REQUISITO CASO 1

Número identificador del proceso de recepción 201200000230061Fecha de recepción del documento electrónico procesado 2012-06-12Hora de recepción del documento electrónico procesado 10:09:27Fecha de generación del documento de respuesta 2012-06-12Hora de generación del documento de respuesta 10:09:30Mensajes o notas asociados al documento de respuesta 4031 - Debe indicar el nombre comercial

4001 - El numero de RUC del receptor no existe

Número de RUC del Emisor de la constancia de recepción (SUNAT) 20131312955Número de RUC del Emisor del documento electrónico procesado 20150147718Número de RUC del Receptor del documento electrónico procesado

20997898754

Identificador del documento enviado FA01-981Código de respuesta del envío 0Descripción de la respuesta del envío La Factura numero FA01-981, ha sido

aceptadaIdentificador del documento procesado FA01-981

Firma Digital

  <?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> <ApplicationResponse xmlns="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"> <ext:UBLExtensions> <ext:UBLExtension> <ext:ExtensionContent> <ds:Signature Id="SignSUNAT"> <ds:SignedInfo>  <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />   <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <ds:Reference URI=""> <ds:Transforms>   <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />   </ds:Transforms>  <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />   <ds:DigestValue>2Hp6yx1+sD9H6n0hDMC625+I40U=</ds:DigestValue>   </ds:Reference>  </ds:SignedInfo><ds:SignatureValue>32xhlEkXaoaTKAhxiIdf13qXNGFhcIPROd8dSZpFRqgr8em43vXl4Is/I+mMhTgn9oAgg5CxpVfa AExM5JJxp9laI+YC4QUKJ8jyIurMCxk2SngUnV5tfrp/ydy/y4bASVDuNp+ewNIUVhXEUQA9sLs+ JnWYj0WPlppqykHm5W8=</ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>MIIC3TCCAcUCCQCbWZdbGxwQajANBgkqhkiG9w0BAQUFADCBhzELMAkGA1UEBhMCUEUxDTALBgNV BAgTBExpbWExDTALBgNVBAcTBExpbWExDjAMBgNVBAoTBVNVTkFUMQ0wCwYDVQQLEwRERFNUMRYw FAYDVQQDEw1Kb2hubnkgVmFsZGV6MSMwIQYJKoZIhvcNAQkBFhRqdmFsZGV6QHN1bmF0LmdvYi5w ZTAeFw0wODA3MTYxNzE2MDdaFw0xNDAxMDYxNzE2MDdaMF0xCzAJBgNVBAYTAlBFMQ0wCwYDVQQI EwRMaW1hMQ0wCwYDVQQHEwRMaW1hMQ4wDAYDVQQKEwVTVU5BVDENMAsGA1UECxMERERTVDERMA8G A1UEAxMIc3J2ZGVzYTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOP4nN062737OUzejMiH p5hba8/IbAfvyedc7aTXWpf6MHXpxT7X6qVoUSG2ulmKygkPW2h8ogyZC9RLo/SBIoGZrt5bD+Cm 1dsK3H4ObRgLDlK6ftdIVZFkvr6rYXGiz92je0QNaNVXuktsNskmvGUbMG6bcUSypQB4rDZhgR9r

~ 35 ~

Page 36: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

AgMBAAEwDQYJKoZIhvcNAQEFBQADggEBALN/qz38GM4H4M8T7uPXEqPGurSqfUT59KYqoZ/R24Kf aI/t44usI0QbNJSp8w9Yl01XyO+ewnBzJNOKJtL3M8LiawjRoz0DSa8uPJQEMgQXvgJeipAe+IO7 yLMiYA3rOaG1nSXcBYUaRTh6AGeWW+pIheThhcq+Z7uHXMoqbBkIzpUuflkZKPAZFFkSQTUYyhrB Bv1Vj8nEfoy+y9758KTc7n6yF3GJOIUUpzDQJ65iaIrL6CIlbyHHPhNIcrS2iDvYskqjamiI4Qzs Kcm+qcFRf7UZWYNPCA9w9QISByv5KqVfDQtgZGRh3Uved9BR15mpbdVvs9tJhLYrTHw7Fb8=</ds:X509Certificate>   </ds:X509Data>  </ds:KeyInfo>  </ds:Signature>  </ext:ExtensionContent>  </ext:UBLExtension>  </ext:UBLExtensions>  <cbc:UBLVersionID>2.0</cbc:UBLVersionID>   <cbc:CustomizationID>1.0</cbc:CustomizationID>   <cbc:ID>201200000230061</cbc:ID>   <cbc:IssueDate>2012-06-12</cbc:IssueDate>   <cbc:IssueTime>10:09:27</cbc:IssueTime>   <cbc:ResponseDate>2012-06-12</cbc:ResponseDate>   <cbc:ResponseTime>10:09:30</cbc:ResponseTime>   <cbc:Note>4031 - Debe indicar el nombre comercial</cbc:Note>   <cbc:Note>4001 - El numero de RUC del receptor no existe.</cbc:Note> <cac:Signature>  <cbc:ID>SignSUNAT</cbc:ID> <cac:SignatoryParty> <cac:PartyIdentification>  <cbc:ID>20131312955</cbc:ID>   </cac:PartyIdentification> <cac:PartyName> <cbc:Name><![CDATA[SUNAT]]></cbc:Name>   </cac:PartyName>  </cac:SignatoryParty> <cac:DigitalSignatureAttachment> <cac:ExternalReference>  <cbc:URI>#SignSUNAT</cbc:URI>   </cac:ExternalReference>  </cac:DigitalSignatureAttachment>  </cac:Signature> <cac:SenderParty> <cac:PartyIdentification>  <cbc:ID>20131312955</cbc:ID>   </cac:PartyIdentification>  </cac:SenderParty> <cac:ReceiverParty> <cac:PartyIdentification>  <cbc:ID>20150147718</cbc:ID>   </cac:PartyIdentification>  </cac:ReceiverParty> <cac:DocumentResponse> <cac:Response>  <cbc:ReferenceID>FA01-981</cbc:ReferenceID>   <cbc:ResponseCode>0</cbc:ResponseCode> <cbc:Description><![CDATA[La Factura numero FA01-981, ha sido aceptada]]></cbc:Description>  </cac:Response> <cac:DocumentReference>  <cbc:ID>FA01-981</cbc:ID>   </cac:DocumentReference> <cac:RecipientParty> <cac:PartyIdentification>  <cbc:ID>6-20997898754</cbc:ID>   </cac:PartyIdentification>  </cac:RecipientParty>  </cac:DocumentResponse></ApplicationResponse>

~ 36 ~

Page 37: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

C.2 Respuesta de aplicación SUNAT – Estado RECHAZADO

REQUISITO CASO 2Número identificador del proceso de recepción 201200000230098Fecha de recepción del documento electrónico procesado 2012-06-13Hora de recepción del documento electrónico procesado 13:20:37Fecha de generación del documento de respuesta 2012-06-13Hora de generación del documento de respuesta 13:21:38Mensajes o notas asociados al documento de respuesta Número de RUC del Emisor de la constancia de recepción (SUNAT)

20131312955

Número de RUC del Emisor del documento electrónico procesado

20150147718

Número de RUC del Receptor del documento electrónico procesado

20196582743

Identificador del documento enviado FT01-982Código de respuesta del envío 2047Descripción de la respuesta del envío Es obligatorio al menos un

AdditionalMonetaryTotal con codigo 1001, 1002 o 1003

Identificador del documento procesado FA01-981Firma Digital

  <?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> <ApplicationResponse xmlns="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"> <ext:UBLExtensions> <ext:UBLExtension> <ext:ExtensionContent> <ds:Signature Id="SignSUNAT"> <ds:SignedInfo>  <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />   <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <ds:Reference URI=""> <ds:Transforms>   <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />   </ds:Transforms>  <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />   <ds:DigestValue>urbmyAumKx6HkJbT8fvUIJxzV+c=</ds:DigestValue>   </ds:Reference>  </ds:SignedInfo><ds:SignatureValue> GnHp455UMFKgplGx7urhV3G1XHGg0loKPsnj4fDgy1byNd93lzVtkIKQXOJtSQVJ3tmss94dzxl0 Yf3gKfLt01M4QCNOuyTnRNdvwl9pjjzKUbN3H8Tsb3BAX91NvzNlgUhbw7dxJgGeWJkTfihEZGPT /02COVKdDwrBPBWp2zU=</ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>MIIC3TCCAcUCCQCbWZdbGxwQajANBgkqhkiG9w0BAQUFADCBhzELMAkGA1UEBhMCUEUxDTALBgNV BAgTBExpbWExDTALBgNVBAcTBExpbWExDjAMBgNVBAoTBVNVTkFUMQ0wCwYDVQQLEwRERFNUMRYw FAYDVQQDEw1Kb2hubnkgVmFsZGV6MSMwIQYJKoZIhvcNAQkBFhRqdmFsZGV6QHN1bmF0LmdvYi5w ZTAeFw0wODA3MTYxNzE2MDdaFw0xNDAxMDYxNzE2MDdaMF0xCzAJBgNVBAYTAlBFMQ0wCwYDVQQI EwRMaW1hMQ0wCwYDVQQHEwRMaW1hMQ4wDAYDVQQKEwVTVU5BVDENMAsGA1UECxMERERTVDERMA8G A1UEAxMIc3J2ZGVzYTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOP4nN062737OUzejMiH p5hba8/IbAfvyedc7aTXWpf6MHXpxT7X6qVoUSG2ulmKygkPW2h8ogyZC9RLo/SBIoGZrt5bD+Cm 1dsK3H4ObRgLDlK6ftdIVZFkvr6rYXGiz92je0QNaNVXuktsNskmvGUbMG6bcUSypQB4rDZhgR9r

~ 37 ~

Page 38: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

AgMBAAEwDQYJKoZIhvcNAQEFBQADggEBALN/qz38GM4H4M8T7uPXEqPGurSqfUT59KYqoZ/R24Kf aI/t44usI0QbNJSp8w9Yl01XyO+ewnBzJNOKJtL3M8LiawjRoz0DSa8uPJQEMgQXvgJeipAe+IO7 yLMiYA3rOaG1nSXcBYUaRTh6AGeWW+pIheThhcq+Z7uHXMoqbBkIzpUuflkZKPAZFFkSQTUYyhrB Bv1Vj8nEfoy+y9758KTc7n6yF3GJOIUUpzDQJ65iaIrL6CIlbyHHPhNIcrS2iDvYskqjamiI4Qzs Kcm+qcFRf7UZWYNPCA9w9QISByv5KqVfDQtgZGRh3Uved9BR15mpbdVvs9tJhLYrTHw7Fb8=</ds:X509Certificate>   </ds:X509Data>  </ds:KeyInfo>  </ds:Signature>  </ext:ExtensionContent>  </ext:UBLExtension>  </ext:UBLExtensions>  <cbc:UBLVersionID>2.0</cbc:UBLVersionID>   <cbc:CustomizationID>1.0</cbc:CustomizationID>   <cbc:ID>201200000230098</cbc:ID>   <cbc:IssueDate>2012-06-13</cbc:IssueDate>   <cbc:IssueTime>13:20:37</cbc:IssueTime>   <cbc:ResponseDate>2012-06-13</cbc:ResponseDate>   <cbc:ResponseTime>13:21:38</cbc:ResponseTime> <cac:Signature>  <cbc:ID>SignSUNAT</cbc:ID> <cac:SignatoryParty> <cac:PartyIdentification>  <cbc:ID>20131312955</cbc:ID>   </cac:PartyIdentification> <cac:PartyName> <cbc:Name><![CDATA[SUNAT]]></cbc:Name>   </cac:PartyName>  </cac:SignatoryParty> <cac:DigitalSignatureAttachment> <cac:ExternalReference>  <cbc:URI>#SignSUNAT</cbc:URI>   </cac:ExternalReference>  </cac:DigitalSignatureAttachment>  </cac:Signature> <cac:SenderParty> <cac:PartyIdentification>  <cbc:ID>20131312955</cbc:ID>   </cac:PartyIdentification>  </cac:SenderParty> <cac:ReceiverParty> <cac:PartyIdentification>  <cbc:ID>20150147718</cbc:ID>   </cac:PartyIdentification>  </cac:ReceiverParty> <cac:DocumentResponse> <cac:Response>  <cbc:ReferenceID>FT01-982</cbc:ReferenceID>   <cbc:ResponseCode>2047</cbc:ResponseCode> <cbc:Description><![CDATA[Es obligatorio al menos un AdditionalMonetaryTotal con codigo 1001, 1002 o 1003]]></cbc:Description>  </cac:Response> <cac:DocumentReference>  <cbc:ID>FT01-982</cbc:ID>   </cac:DocumentReference> <cac:RecipientParty> <cac:PartyIdentification>  <cbc:ID>6-20196582743</cbc:ID>   </cac:PartyIdentification>  </cac:RecipientParty>  </cac:DocumentResponse></ApplicationResponse>

~ 38 ~

Page 39: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

ANEXO 2 : Listado de ErroresCODIGO DESCRIPCION

0100 El sistema no puede responder su solicitud. Intente nuevamente o comuníquese con su Administrador 0101 El encabezado de seguridad es incorrecto 0102 Usuario o contraseña incorrectos 0103 El Usuario ingresado no existe 0104 La Clave ingresada es incorrecta 0105 El Usuario no está activo 0106 El Usuario no es válido 0109 El sistema no puede responder su solicitud. (El servicio de autenticación no está disponible) 0110 No se pudo obtener la informacion del tipo de usuario 0111 No tiene el perfil para enviar comprobantes electronicos 0112 El usuario debe ser secundario 0113 El usuario no esta afiliado a Factura Electronica 0125 No se pudo obtener la constancia 0126 El ticket no le pertenece al usuario 0127 El ticket no existe 0130 El sistema no puede responder su solicitud. (No se pudo obtener el ticket de proceso) 0131 El sistema no puede responder su solicitud. (No se pudo grabar el archivo en el directorio) 0132 El sistema no puede responder su solicitud. (No se pudo grabar escribir en el archivo zip) 0133 El sistema no puede responder su solicitud. (No se pudo grabar la entrada del log) 0134 El sistema no puede responder su solicitud. (No se pudo grabar en el storage) 0135 El sistema no puede responder su solicitud. (No se pudo encolar el pedido) 0136 El sistema no puede responder su solicitud. (No se pudo recibir una respuesta del batch) 0137 El sistema no puede responder su solicitud. (Se obtuvo una respuesta nula) 0138 El sistema no puede responder su solicitud. (Error en Base de Datos)0151 El nombre del archivo ZIP es incorrecto 0152 No se puede enviar por este método un archivo de resumen 0153 No se puede enviar por este método un archivo por lotes 0154 El RUC del archivo no corresponde al RUC del usuario 0155 El archivo ZIP esta vacio 0156 El archivo ZIP esta corrupto 0157 El archivo ZIP no contiene comprobantes 0158 El archivo ZIP contiene demasiados comprobantes para este tipo de envío 0159 El nombre del archivo XML es incorrecto 0160 El archivo XML esta vacio 0161 El nombre del archivo XML no coincide con el nombre del archivo ZIP 0200 No se pudo procesar su solicitud. (Ocurrio un error en el batch) 0201 No se pudo procesar su solicitud. (Llego un requerimiento nulo al batch)0202 No se pudo procesar su solicitud. (No llego información del archivo ZIP)0203 No se pudo procesar su solicitud. (No se encontro archivos en la informacion del archivo ZIP)0204 No se pudo procesar su solicitud. (Este tipo de requerimiento solo acepta 1 archivo)0250 No se pudo procesar su solicitud. (Ocurrio un error desconocido al hacer unzip) 0251 No se pudo procesar su solicitud. (No se pudo crear un directorio para el unzip) 0252 No se pudo procesar su solicitud. (No se encontro archivos dentro del zip) 0253 No se pudo procesar su solicitud. (No se pudo comprimir la constancia) 0300 No se encontró la raíz documento xml0301 Elemento raiz del xml no esta definido0302 Codigo del tipo de comprobante no registrado0303 No existe el directorio de schemas 0304 No existe el archivo de schema 0305 El sistema no puede procesar el archivo xml 0306 No se puede leer (parsear) el archivo XML 0307 No se pudo recuperar la constancia 0400 No tiene permiso para enviar casos de pruebas 0401 El caso de prueba no existe 0402 La numeracion o nombre del documento ya ha sido enviado anteriormente 0403 El documento afectado por la nota no existe 0404 El documento afectado por la nota se encuentra rechazado 1001 ID - El dato SERIE-CORRELATIVO no cumple con el formato de acuerdo al tipo de comprobante 1002 El XML no contiene informacion en el tag ID 1003 InvoiceTypeCode - El valor del tipo de documento es invalido o no coincide con el nombre del archivo 1004 El XML no contiene el tag o no existe informacion de InvoiceTypeCode 1005 CustomerAssignedAccountID - El dato ingresado no cumple con el estandar 1006 El XML no contiene el tag o no existe informacion de CustomerAssignedAccountID del emisor del documento 1007 AdditionalAccountID - El dato ingresado no cumple con el estandar 1008 El XML no contiene el tag o no existe informacion de AdditionalAccountID del emisor del documento 1009 IssueDate - El dato ingresado no cumple con el patron YYYY-MM-DD1010 El XML no contiene el tag IssueDate1011 IssueDate- El dato ingresado no es valido

~ 39 ~

Page 40: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

CODIGO DESCRIPCION 1012 ID - El dato ingresado no cumple con el patron SERIE-CORRELATIVO1013 El XML no contiene informacion en el tag ID1014 CustomerAssignedAccountID - El dato ingresado no cumple con el estándar1015 El XML no contiene el tag o no existe informacion de CustomerAssignedAccountID del emisor del documento1016 AdditionalAccountID - El dato ingresado no cumple con el estándar1017 El XML no contiene el tag AdditionalAccountID del emisor del documento1018 IssueDate - El dato ingresado no cumple con el patron YYYY-MM-DD1019 El XML no contiene el tag IssueDate1020 IssueDate- El dato ingresado no es valido1021 Error en la validacion de la nota de credito1022 La serie o numero del documento modificado por la Nota Electrónica no cumple con el formato establecido 1023 No se ha especificado el tipo de documento modificado por la Nota electronica 1024 CustomerAssignedAccountID - El dato ingresado no cumple con el estándar1025 El XML no contiene el tag o no existe informacion de CustomerAssignedAccountID del emisor del documento1026 AdditionalAccountID - El dato ingresado no cumple con el estándar1027 El XML no contiene el tag AdditionalAccountID del emisor del documento1028 IssueDate - El dato ingresado no cumple con el patron YYYY-MM-DD1029 El XML no contiene el tag IssueDate1030 IssueDate- El dato ingresado no es valido1031 Error en la validacion de la nota de debito1032 El comprobante fue informado previamente en una comunicacion de baja 1033 El comprobante fue registrado previamente con otros datos 1034 Número de RUC del nombre del archivo no coincide con el consignado en el contenido del archivo XML 1035 Numero de Serie del nombre del archivo no coincide con el consignado en el contenido del archivo XML 1036 Número de documento en el nombre del archivo no coincide con el consignado en el contenido del XML 1037 El XML no contiene el tag o no existe informacion de RegistrationName del emisor del documento 1038 RegistrationName - El nombre o razon social del emisor no cumple con el estandar 1039 Solo se pueden recibir notas electronicas que modifican facturas 1040 El tipo de documento modificado por la nota electronica no es valido 2010 El contribuyente no esta activo 2011 El contribuyente no esta habido 2012 El contribuyente no está autorizado a emitir comprobantes electrónicos2013 El contribuyente no cumple con tipo de empresa o tributos requeridos 2014 El XML no contiene el tag o no existe informacion de CustomerAssignedAccountID del receptor del documento 2015 El XML no contiene el tag o no existe informacion de AdditionalAccountID del receptor del documento 2016 AdditionalAccountID - El dato ingresado en el tipo de documento de identidad del receptor no cumple con el

estandar 2017 CustomerAssignedAccountID - El numero de documento de identidad del recepetor debe ser RUC 2018 CustomerAssignedAccountID - El dato ingresado no cumple con el estándar2019 El XML no contiene el tag o no existe informacion de RegistrationName del emisor del documento2020 RegistrationName - El nombre o razon social del emisor no cumple con el estándar2021 El XML no contiene el tag o no existe informacion de RegistrationName del receptor del documento 2022 RegistrationName - El dato ingresado no cumple con el estandar 2023 El Numero de orden del item no cumple con el formato establecido 2024 El XML no contiene el tag InvoicedQuantity en el detalle de los Items 2025 InvoicedQuantity El dato ingresado no cumple con el estandar 2026 El XML no contiene el tag cac:Item/cbc:Description en el detalle de los Items2027 El XML no contiene el tag o no existe informacion de cac:Item/cbc:Description del item 2028 Debe existir el tag cac:AlternativeConditionPrice con un elemento cbc:PriceTypeCode con valor 01 2029 PriceTypeCode El dato ingresado no cumple con el estándar2030 El XML no contiene el tag cbc:PriceTypeCode2031 LineExtensionAmount El dato ingresado no cumple con el estándar2032 El XML no contiene el tag LineExtensionAmount en el detalle de los Items2033 El dato ingresado en TaxAmount de la linea no cumple con el formato establecido 2034 TaxAmount es obligatorio2035 cac:TaxCategory/cac:TaxScheme/cbc:ID El dato ingresado no cumple con el estandar 2036 El codigo del tributo es invalido 2037 El XML no contiene el tag cac:TaxCategory/cac:TaxScheme/cbc:ID del Item2038 cac:TaxScheme/cbc:Name del item - No existe el tag o el dato ingresado no cumple con el estandar 2039 El XML no contiene el tag cac:TaxCategory/cac:TaxScheme/cbc:Name del Item2040 El tipo de afectacion del IGV es incorrecto 2041 El sistema de calculo del ISC es incorrecto 2042 Debe indicar el IGV. Es un campo obligatorio 2043 El dato ingresado en PayableAmount no cumple con el formato establecido 2044 PayableAmount es obligatorio2045 El valor ingresado en AdditionalMonetaryTotal/cbc:ID es incorrecto 2046 AdditionalMonetaryTotal/cbc:ID debe tener valor2047 Es obligatorio al menos un AdditionalMonetaryTotal con codigo 1001, 1002 o 1003 2048 El dato ingresado en TaxAmount no cumple con el formato establecido 2049 TaxAmount es obligatorio

CODIGO DESCRIPCION

~ 40 ~

Page 41: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

2050 TaxScheme ID - No existe el tag o el dato ingresado no cumple con el estandar 2051 El codigo del tributo es invalido 2052 El XML no contiene el tag TaxScheme ID de impuestos globales2053 TaxScheme Name - No existe el tag o el dato ingresado no cumple con el estandar 2054 El XML no contiene el tag TaxScheme Name de impuestos globales2055 TaxScheme TaxTypeCode - El dato ingresado no cumple con el estandar 2056 El XML no contiene el tag TaxScheme TaxTypeCode de impuestos globales2057 El Name o TaxTypeCode debe corresponder con el Id para el IGV 2058 El Name o TaxTypeCode debe corresponder con el Id para el ISC 2059 El dato ingresado en TaxSubtotal/cbc:TaxAmount no cumple con el formato establecido 2060 TaxSubtotal/cbc:TaxAmount es obligatorio2061 El tag global cac:TaxTotal/cbc:TaxAmount debe tener el mismo valor que

cac:TaxTotal/cac:Subtotal/cbc:TaxAmount 2062 El dato ingresado en PayableAmount no cumple con el formato establecido 2063 El XML no contiene el tag PayableAmount2064 El dato ingresado en ChargeTotalAmount no cumple con el formato establecido 2065 El dato ingresado en el campo Total Descuentos no cumple con el formato establecido 2066 Debe indicar una descripcion para el tag sac:AdditionalProperty/cbc:Value2067 cac:Price/cbc:PriceAmount - El dato ingresado no cumple con el estandar2068 El XML no contiene el tag cac:Price/cbc:PriceAmount en el detalle de los Items 2069 DocumentCurrencyCode - El dato ingresado no cumple con la estructura 2070 El XML no contiene el tag o no existe informacion de DocumentCurrencyCode 2071 La moneda debe ser la misma en todo el documento 2072 CustomizationID - La versión del documento no es la correcta 2073 El XML no contiene el tag o no existe informacion de CustomizationID 2074 UBLVersionID - La versión del UBL no es correcta 2075 El XML no contiene el tag o no existe informacion de UBLVersionID 2076 cac:Signature/cbc:ID - Falta el identificador de la firma 2077 El tag cac:Signature/cbc:ID debe contener informacion 2078 cac:Signature/cac:SignatoryParty/cac:PartyIdentification/cbc:ID - Debe ser igual al RUC del emisor 2079 El XML no contiene el tag cac:Signature/cac:SignatoryParty/cac:PartyIdentification/cbc:ID2080 cac:Signature/cac:SignatoryParty/cac:PartyName/cbc:Name - No cumple con el estandar 2081 El XML no contiene el tag cac:Signature/cac:SignatoryParty/cac:PartyName/cbc:Name2082 cac:Signature/cac:DigitalSignatureAttachment/cac:ExternalReference/cbc:URI - No cumple con el estandar 2083 El XML no contiene el tag cac:Signature/cac:DigitalSignatureAttachment/cac:ExternalReference/cbc:URI 2084 ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/ds:Signature/@Id - No cumple con el estandar 2085 El XML no contiene el tag ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/ds:Signature/@Id 2086 ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/ds:CanonicalizationMethod/@Algorithm - No cumple con el

estandar 2087 El XML no contiene el tag ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/ds:CanonicalizationMethod/

@Algorithm 2088 ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/ds:SignatureMethod/@Algorithm - No cumple con el estandar 2089 El XML no contiene el tag ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/ds:SignatureMethod/@Algorithm 2090 ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/ds:Reference/@URI - Debe estar vacio para id 2091 El XML no contiene el tag ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/ds:Reference/@URI2092 ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/.../ds:Transform@Algorithm - No cumple con el estandar 2093 El XML no contiene el tag

ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/ds:Reference/ds:Transform@Algorithm 2094 ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestMethod/@Algorithm - No cumple con el

estandar 2095 El XML no contiene el tag ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestMethod/

@Algorithm 2096 ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestValue - No cumple con el estandar 2097 El XML no contiene el tag ext:UBLExtensions/.../ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestValue 2098 ext:UBLExtensions/.../ds:Signature/ds:SignatureValue - No cumple con el estandar 2099 El XML no contiene el tag ext:UBLExtensions/.../ds:Signature/ds:SignatureValue 2100 ext:UBLExtensions/.../ds:Signature/ds:KeyInfo/ds:X509Data/ds:X509Certificate - No cumple con el estandar 2101 El XML no contiene el tag ext:UBLExtensions/.../ds:Signature/ds:KeyInfo/ds:X509Data/ds:X509Certificate 2102 Error al procesar la factura2103 La serie ingresada no es válida2104 Numero de RUC del emisor no existe2105 Factura a dar de baja no se encuentra registrada en SUNAT 2106 Factura a dar de baja ya se encuentra en estado de baja 2107 Numero de RUC SOL no coincide con RUC emisor2108 Presentacion fuera de fecha 2109 El comprobante fue registrado previamente con otros datos2110 UBLVersionID - La versión del UBL no es correcta2111 El XML no contiene el tag o no existe informacion de UBLVersionID2112 CustomizationID - La version del documento no es correcta2113 El XML no contiene el tag o no existe informacion de CustomizationID2114 DocumentCurrencyCode - El dato ingresado no cumple con la estructura

CODIGO DESCRIPCION

~ 41 ~

Page 42: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

2115 El XML no contiene el tag o no existe informacion de DocumentCurrencyCode2116 El tipo de documento modificado por la Nota de credito debe ser factura electronica o ticket 2117 La serie o numero del documento modificado por la Nota de Credito no cumple con el formato establecido 2118 Debe indicar las facturas relacionadas a la Nota de Credito 2119 La factura relacionada en la Nota de credito no esta registrada. 2120 La factura relacionada en la nota de credito se encuentra de baja 2121 La factura relacionada en la nota de credito esta registrada como rechazada 2122 El tag cac:LegalMonetaryTotal/cbc:PayableAmount debe tener informacion valida2123 RegistrationName - El dato ingresado no cumple con el estandar2124 El XML no contiene el tag RegistrationName del emisor del documento2125 ReferenceID - El dato ingresado debe indicar SERIE-CORRELATIVO del documento al que se relaciona la Nota 2126 El XML no contiene informacion en el tag ReferenceID del documento al que se relaciona la nota 2127 ResponseCode - El dato ingresado no cumple con la estructura 2128 El XML no contiene el tag o no existe informacion de ResponseCode 2129 AdditionalAccountID - El dato ingresado en el tipo de documento de identidad del receptor no cumple con el

estandar 2130 El XML no contiene el tag o no existe informacion de AdditionalAccountID del receptor del documento 2131 CustomerAssignedAccountID - El numero de documento de identidad del receptor debe ser RUC 2132 El XML no contiene el tag o no existe informacion de CustomerAssignedAccountID del receptor del documento 2133 RegistrationName - El dato ingresado no cumple con el estandar 2134 El XML no contiene el tag o no existe informacion de RegistrationName del receptor del documento 2135 cac:DiscrepancyResponse/cbc:Description - El dato ingresado no cumple con la estructura 2136 El XML no contiene el tag o no existe informacion de cac:DiscrepancyResponse/cbc:Description 2137 El Número de orden del item no cumple con el formato establecido 2138 CreditedQuantity/@unitCode - El dato ingresado no cumple con el estandar2139 CreditedQuantity - El dato ingresado no cumple con el estandar 2140 El PriceTypeCode debe tener el valor 01 2141 cac:TaxCategory/cac:TaxScheme/cbc:ID - El dato ingresado no cumple con el estandar 2142 El codigo del tributo es invalido 2143 cac:TaxScheme/cbc:Name del item - No existe el tag o el dato ingresado no cumple con el estandar 2144 cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode El dato ingresado no cumple con el estandar2145 El tipo de afectacion del IGV es incorrecto 2146 El Nombre Internacional debe ser VAT2147 El sistema de calculo del ISC es incorrecto 2148 El Nombre Internacional debe ser EXC 2149 El dato ingresado en PayableAmount no cumple con el formato establecido 2150 El valor ingresado en AdditionalMonetaryTotal/cbc:ID es incorrecto 2151 AdditionalMonetaryTotal/cbc:ID debe tener valor 2152 Es obligatorio al menos un AdditionalInformation2153 Error al procesar la Nota de Credito2154 TaxAmount - El dato ingresado en impuestos globales no cumple con el estandar2155 El XML no contiene el tag TaxAmount de impuestos globales2156 TaxScheme ID - El dato ingresado no cumple con el estandar 2157 El codigo del tributo es invalido 2158 El XML no contiene el tag o no existe informacion de TaxScheme ID de impuestos globales 2159 TaxScheme Name - El dato ingresado no cumple con el estandar 2160 El XML no contiene el tag o no existe informacion de TaxScheme Name de impuestos globales 2161 CustomizationID - La version del documento no es correcta2162 El XML no contiene el tag o no existe informacion de CustomizationID2163 UBLVersionID - La versión del UBL no es correcta2164 El XML no contiene el tag o no existe informacion de UBLVersionID2165 Error al procesar la Nota de Debito2166 RegistrationName - El dato ingresado no cumple con el estandar2167 El XML no contiene el tag RegistrationName del emisor del documento2168 DocumentCurrencyCode - El dato ingresado no cumple con el formato establecido2169 El XML no contiene el tag o no existe informacion de DocumentCurrencyCode2170 ReferenceID - El dato ingresado debe indicar SERIE-CORRELATIVO del documento al que se relaciona la Nota 2171 El XML no contiene informacion en el tag ReferenceID del documento al que se relaciona la nota 2172 ResponseCode - El dato ingresado no cumple con la estructura 2173 El XML no contiene el tag o no existe informacion de ResponseCode 2174 cac:DiscrepancyResponse/cbc:Description - El dato ingresado no cumple con la estructura 2175 El XML no contiene el tag o no existe informacion de cac:DiscrepancyResponse/cbc:Description 2176 AdditionalAccountID - El dato ingresado en el tipo de documento de identidad del receptor no cumple con el

estandar 2177 El XML no contiene el tag o no existe informacion de AdditionalAccountID del receptor del documento 2178 CustomerAssignedAccountID - El numero de documento de identidad del receptor debe ser RUC. 2179 El XML no contiene el tag o no existe informacion de CustomerAssignedAccountID del receptor del documento 2180 RegistrationName - El dato ingresado no cumple con el estandar 2181 El XML no contiene el tag o no existe informacion de RegistrationName del receptor del documento 2182 TaxScheme ID - El dato ingresado no cumple con el estandar

CODIGO DESCRIPCION 2183 El codigo del tributo es invalido

~ 42 ~

Page 43: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

2184 El XML no contiene el tag o no existe informacion de TaxScheme ID de impuestos globales 2185 TaxScheme Name - El dato ingresado no cumple con el estandar 2186 El XML no contiene el tag o no existe informacion de TaxScheme Name de impuestos globales 2187 El Numero de orden del item no cumple con el formato establecido 2188 DebitedQuantity/@unitCode El dato ingresado no cumple con el estandar2189 DebitedQuantity El dato ingresado no cumple con el estandar 2190 El XML no contiene el tag Price/cbc:PriceAmount en el detalle de los Items 2191 El XML no contiene el tag Price/cbc:LineExtensionAmount en el detalle de los Items2192 EL PriceTypeCode debe tener el valor 01 2193 cac:TaxCategory/cac:TaxScheme/cbc:ID El dato ingresado no cumple con el estandar 2194 El codigo del tributo es invalido 2195 cac:TaxScheme/cbc:Name del item - No existe el tag o el dato ingresado no cumple con el estandar 2196 cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode El dato ingresado no cumple con el estandar2197 El tipo de afectacion del IGV es incorrecto 2198 El Nombre Internacional debe ser VAT2199 El sistema de calculo del ISC es incorrecto 2200 El Nombre Internacional debe ser EXC2201 El tag cac:RequestedMonetaryTotal/cbc:PayableAmount debe tener informacion valida2202 TaxAmount - El dato ingresado en impuestos globales no cumple con el estándar2203 El XML no contiene el tag TaxAmount de impuestos globales2204 El tipo de documento modificado por la Nota de Debito debe ser factura electronica o ticket 2205 La serie o numero del documento modificado por la Nota de Debito no cumple con el formato establecido 2206 Debe indicar los documentos afectados por la Nota de Debito 2207 La factura relacionada en la nota de debito se encuentra de baja 2208 La factura relacionada en la nota de debito esta registrada como rechazada 2209 La factura relacionada en la Nota de debito no esta registrada 2210 El dato ingresado no cumple con el formato RC-fecha-correlativo 2211 El XML no contiene el tag ID 2212 UBLVersionID - La versión del UBL del resumen de boletas no es correcta2213 El XML no contiene el tag UBLVersionID2214 CustomizationID - La versión del resumen de boletas no es correcta2215 El XML no contiene el tag CustomizationID2216 CustomerAssignedAccountID - El dato ingresado no cumple con el estandar 2217 El XML no contiene el tag CustomerAssignedAccountID del emisor del documento 2218 AdditionalAccountID - El dato ingresado no cumple con el estandar 2219 El XML no contiene el tag AdditionalAccountID del emisor del documento 2220 El ID debe coincidir con el nombre del archivo 2221 El RUC debe coincidir con el RUC del nombre del archivo 2222 El contribuyente no está autorizado a emitir comprobantes electronicos2223 El archivo ya fue presentado anteriormente 2224 Numero de RUC SOL no coincide con RUC emisor2225 Numero de RUC del emisor no existe2226 El contribuyente no esta activo2227 El contribuyente no cumple con tipo de empresa o tributos requeridos2228 RegistrationName - El dato ingresado no cumple con el estandar 2229 El XML no contiene el tag RegistrationName del emisor del documento 2230 IssueDate - El dato ingresado no cumple con el patron YYYY-MM-DD2231 El XML no contiene el tag IssueDate2232 IssueDate- El dato ingresado no es valido2233 ReferenceDate - El dato ingresado no cumple con el patron YYYY-MM-DD 2234 El XML no contiene el tag ReferenceDate2235 ReferenceDate- El dato ingresado no es valido2236 La fecha del IssueDate no debe ser mayor al Today 2237 La fecha del ReferenceDate no debe ser mayor al Today 2238 LineID - El dato ingresado no cumple con el estandar 2239 LineID - El dato ingresado debe ser correlativo mayor a cero 2240 El XML no contiene el tag LineID de SummaryDocumentsLine 2241 DocumentTypeCode - El valor del tipo de documento es invalido 2242 El XML no contiene el tag DocumentTypeCode 2243 El dato ingresado no cumple con el patron SERIE 2244 El XML no contiene el tag DocumentSerialID 2245 El dato ingresado en StartDocumentNumberID debe ser numerico 2246 El XML no contiene el tag StartDocumentNumberID 2247 El dato ingresado en sac:EndDocumentNumberID debe ser numerico 2248 El XML no contiene el tag sac:EndDocumentNumberID 2249 Los rangos deben ser mayores a cero 2250 En el rango de comprobantes, el EndDocumentNumberID debe ser mayor o igual al StartInvoiceNumberID 2251 El dato ingresado en TotalAmount debe ser numerico mayor o igual a cero 2252 El XML no contiene el tag TotalAmount

CODIGO DESCRIPCION 2253 El dato ingresado en TotalAmount debe ser numerico mayor a cero

~ 43 ~

Page 44: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

2254 PaidAmount - El dato ingresado no cumple con el estandar 2255 El XML no contiene el tag PaidAmount 2256 InstructionID - El dato ingresado no cumple con el estandar 2257 El XML no contiene el tag InstructionID 2258 Debe indicar Referencia de Importes asociados a las boletas de venta2259 Debe indicar 3 Referencias de Importes asociados a las boletas de venta 2260 PaidAmount - El dato ingresado debe ser mayor o igual a 0.002261 cbc:Amount - El dato ingresado no cumple con el estandar 2262 El XML no contiene el tag cbc:Amount2263 ChargeIndicator - El dato ingresado no cumple con el estandar 2264 El XML no contiene el tag ChargeIndicator2265 Debe indicar Información acerca del Importe Total de Otros Cargos 2266 Debe indicar cargos mayores o iguales a cero2267 TaxScheme ID - El dato ingresado no cumple con el estandar 2268 El codigo del tributo es invalido 2269 El XML no contiene el tag TaxScheme ID de Información acerca del importe total de un tipo particular de

impuesto 2270 TaxScheme Name - El dato ingresado no cumple con el estandar 2271 El XML no contiene el tag TaxScheme Name de impuesto 2272 TaxScheme TaxTypeCode - El dato ingresado no cumple con el estandar2273 TaxAmount - El dato ingresado no cumple con el estandar 2274 El XML no contiene el tag TaxAmount2275 Si el codigo de tributo es 2000, el nombre del tributo debe ser ISC 2276 Si el codigo de tributo es 1000, el nombre del tributo debe ser IGV 2277 No se ha consignado ninguna informacion del importe total de tributos 2278 Debe indicar Información acerca del importe total de ISC e IGV 2279 Debe indicar Items de consolidado de documentos2280 Existen problemas con la informacion del resumen de comprobantes2281 Error en la validacion de los rangos de los comprobantes2282 Existe documento ya informado anteriormente 2283 El dato ingresado no cumple con el formato RA-fecha-correlativo 2284 El XML no contiene el tag ID2285 El ID debe coincidir con el nombre del archivo 2286 El RUC debe coincidir con el RUC del nombre del archivo 2287 AdditionalAccountID - El dato ingresado no cumple con el estandar 2288 El XML no contiene el tag AdditionalAccountID del emisor del documento 2289 CustomerAssignedAccountID - El dato ingresado no cumple con el estándar2290 El XML no contiene el tag CustomerAssignedAccountID del emisor del documento2291 El contribuyente no esta autorizado a emitir comprobantes electrónicos2292 Numero de RUC SOL no coincide con RUC emisor2293 Numero de RUC del emisor no existe2294 El contribuyente no esta activo2295 El contribuyente no cumple con tipo de empresa o tributos requeridos2296 RegistrationName - El dato ingresado no cumple con el estandar 2297 El XML no contiene el tag RegistrationName del emisor del documento 2298 IssueDate - El dato ingresado no cumple con el patron YYYY-MM-DD2299 El XML no contiene el tag IssueDate 2300 IssueDate - El dato ingresado no es valido2301 La fecha del IssueDate no debe ser mayor al Today 2302 ReferenceDate - El dato ingresado no cumple con el patron YYYY-MM-DD 2303 El XML no contiene el tag ReferenceDate2304 ReferenceDate - El dato ingresado no es valido2305 LineID - El dato ingresado no cumple con el estandar 2306 LineID - El dato ingresado debe ser correlativo mayor a cero 2307 El XML no contiene el tag LineID de VoidedDocumentsLine 2308 DocumentTypeCode - El valor del tipo de documento es invalido 2309 El XML no contiene el tag DocumentTypeCode 2310 El dato ingresado no cumple con el patron SERIE 2311 El XML no contiene el tag DocumentSerialID 2312 El dato ingresado en DocumentNumberID debe ser numerico y como maximo de 8 digitos 2313 El XML no contiene el tag DocumentNumberID 2314 El dato ingresado en VoidReasonDescription debe contener información válida 2315 El XML no contiene el tag VoidReasonDescription 2316 Debe indicar Items en VoidedDocumentsLine2317 Error al procesar el resumen de anulados2318 CustomizationID - La version del documento no es correcta2319 El XML no contiene el tag CustomizationID2320 UBLVersionID - La version del UBL no es la correcta2321 El XML no contiene el tag UBLVersionID

CODIGO DESCRIPCION 2322 Error en la validacion de los rangos2323 Existe documento ya informado anteriormente en una comunicacion de baja

~ 44 ~

Page 45: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

2324 El archivo de comunicacion de baja ya fue presentado anteriormente 2325 El certificado usado no es el comunicado a SUNAT 2326 El certificado usado se encuentra de baja 2327 El certificado usado no se encuentra vigente 2328 El certificado usado se encuentra revocado 2329 La fecha de emision se encuentra fuera del limite permitido 2330 La fecha de generación de la comunicación debe ser igual a la fecha consignada en el nombre del archivo 2331 Número de RUC del nombre del archivo no coincide con el consignado en el contenido del archivo XML2332 Número de Serie del nombre del archivo no coincide con el consignado en el contenido del archivo XML2333 Número de documento en el nombre del archivo no coincide con el consignado en el contenido del XML2334 El documento electrónico ingresado ha sido alterado 2335 El documento electrónico ingresado ha sido alterado 2336 Ocurrió un error en el proceso de validación de la firma digital 2337 La moneda debe ser la misma en todo el documento 2338 La moneda debe ser la misma en todo el documento 2339 El dato ingresado en PayableAmount no cumple con el formato establecido 2340 El valor ingresado en AdditionalMonetaryTotal/cbc:ID es incorrecto 2341 AdditionalMonetaryTotal/cbc:ID debe tener valor 2342 Fecha de emision de la factura no coincide con la informada en la comunicacion 2343 cac:TaxTotal/cac:TaxSubtotal/cbc:TaxAmount - El dato ingresado no cumple con el estandar 2344 El XML no contiene el tag cac:TaxTotal/cac:TaxSubtotal/cbc:TaxAmount2345 La serie no corresponde al tipo de comprobante 2346 La fecha de generación del resumen debe ser igual a la fecha consignada en el nombre del archivo 2347 Los rangos informados en el archivo XML se encuentran duplicados o superpuestos2348 Los documentos informados en el archivo XML se encuentran duplicados2349 Debe consignar solo un elemento sac:AdditionalMonetaryTotal con cbc:ID igual a 1001 2350 Debe consignar solo un elemento sac:AdditionalMonetaryTotal con cbc:ID igual a 1002 2351 Debe consignar solo un elemento sac:AdditionalMonetaryTotal con cbc:ID igual a 1003 2352 Debe consignar solo un elemento cac:TaxTotal a nivel global para IGV (cbc:ID igual a 1000) 2353 Debe consignar solo un elemento cac:TaxTotal a nivel global para ISC (cbc:ID igual a 2000) 2354 Debe consignar solo un elemento cac:TaxTotal a nivel global para Otros (cbc:ID igual a 9999) 2355 Debe consignar solo un elemento cac:TaxTotal a nivel de item para IGV (cbc:ID igual a 1000) 2356 Debe consignar solo un elemento cac:TaxTotal a nivel de item para ISC (cbc:ID igual a 2000) 2357 Debe consignar solo un elemento sac:BillingPayment a nivel de item con cbc:InstructionID igual a 01 2358 Debe consignar solo un elemento sac:BillingPayment a nivel de item con cbc:InstructionID igual a 02 2359 Debe consignar solo un elemento sac:BillingPayment a nivel de item con cbc:InstructionID igual a 03 2360 Debe consignar solo un elemento sac:BillingPayment a nivel de item con cbc:InstructionID igual a 042361 Debe consignar solo un elemento cac:TaxTotal a nivel de item para Otros (cbc:ID igual a 9999) 2362 Debe consignar solo un tag cac:AccountingSupplierParty/cbc:AdditionalAccountID 2363 Debe consignar solo un tag cac:AccountingCustomerParty/cbc:AdditionalAccountID 2364 El comprobante contiene un tipo y número de Guía de Remisión repetido 2365 El comprobante contiene un tipo y número de Documento Relacionado repetido 2366 El codigo en el tag sac:AdditionalProperty/cbc:ID debe tener 4 posiciones2367 El dato ingresado en PriceAmount del Precio de venta unitario por item no cumple con el formato establecido 2368 El dato ingresado en TaxSubtotal/cbc:TaxAmount del item no cumple con el formato establecido 2369 El dato ingresado en PriceAmount del Valor de venta unitario por item no cumple con el formato establecido 2370 El dato ingresado en LineExtensionAmount del item no cumple con el formato establecido 2371 El XML no contiene el tag cbc:TaxExemptionReasonCode de Afectacion al IGV 2372 El tag en el item cac:TaxTotal/cbc:TaxAmount debe tener el mismo valor que

cac:TaxTotal/cac:TaxSubtotal/cbc:TaxAmount 2373 Si existe monto de ISC en el ITEM debe especificar el sistema de calculo 2374 La factura a dar de baja tiene una fecha de recepcion fuera del plazo permitido 2375 Fecha de emision de la boleta no coincide con la fecha de emision consignada en la comunicacion 2376 La boleta de venta a dar de baja fue informada en un resumen con fecha de recepcion fuera del plazo permitido 2377 El Name o TaxTypeCode debe corresponder con el Id para el IGV 2378 El Name o TaxTypeCode debe corresponder con el Id para el ISC 2379 La numeracion de boleta de venta a dar de baja fue generada en una fecha fuera del plazo permitido 2380 El documento tiene observaciones2381 Comprobante no cumple con el Grupo 1: No todos los items corresponden a operaciones gravadas a IGV 2382 Comprobante no cumple con el Grupo 2: No todos los items corresponden a operaciones inafectas o exoneradas

al IGV 2383 Comprobante no cumple con el Grupo 3: Falta leyenda con codigo 1002 2384 Comprobante no cumple con el Grupo 3: Existe item con operación onerosa 2385 Comprobante no cumple con el Grupo 4: Debe exitir Total descuentos mayor a cero 2386 Comprobante no cumple con el Grupo 5: Todos los items deben tener operaciones afectas a ISC 2387 Comprobante no cumple con el Grupo 6: El monto de percepcion no existe o es cero 2388 Comprobante no cumple con el Grupo 6: Todos los items deben tener código de Afectación al IGV igual a 10 2389 Comprobante no cumple con el Grupo 7: El codigo de moneda no es diferente a PEN

CODIGO DESCRIPCION 2390 Comprobante no cumple con el Grupo 8: No todos los items corresponden a operaciones gravadas a IGV 2391 Comprobante no cumple con el Grupo 9: No todos los items corresponden a operaciones inafectas o exoneradas

al IGV

~ 45 ~

Page 46: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

2392 Comprobante no cumple con el Grupo 10: Falta leyenda con codigo 1002 2393 Comprobante no cumple con el Grupo 10: Existe item con operación onerosa 2394 Comprobante no cumple con el Grupo 11: Debe existir Total descuentos mayor a cero 2395 Comprobante no cumple con el Grupo 12: El codigo de moneda no es diferente a PEN 2396 Si el monto total es mayor a S/. 700.00 debe consignar tipo y numero de documento del adquiriente 2397 El tipo de documento del adquiriente no puede ser Numero de RUC 2398 El documento a dar de baja se encuentra rechazado 2399 El tipo de documento modificado por la Nota de credito debe ser boleta electronica2400 El tipo de documento modificado por la Nota de debito debe ser boleta electronica 2401 No se puede leer (parsear) el archivo XML 2402 El caso de prueba no existe2403 La numeracion o nombre del documento ya ha sido enviado anteriormente2404 Documento afectado por la nota electronica no se encuentra autorizado 2405 Contribuyente no se encuentra autorizado como emisor de boletas electronicas 2406 Existe mas de un tag sac:AdditionalMonetaryTotal con el mismo ID 2407 Existe mas de un tag sac:AdditionalProperty con el mismo ID 2408 El dato ingresado en PriceAmount del Valor referencial unitario por item no cumple con el formato establecido 2409 Existe mas de un tag cac:AlternativeConditionPrice con el mismo cbc:PriceTypeCode 2410 Se ha consignado un valor invalido en el campo cbc:PriceTypeCode 2411 Ha consignado mas de un elemento cac:AllowanceCharge con el mismo campo cbc:ChargeIndicator 2412 Se ha consignado mas de un documento afectado por la nota (tag cac:BillingReference) 2413 Se ha consignado mas de un motivo o sustento de la nota (tag cac:DiscrepancyResponse/cbc:Description) 2414 No se ha consignado en la nota el tag cac:DiscrepancyResponse 2415 Se ha consignado en la nota mas de un tag cac:DiscrepancyResponse 2416 Si existe leyenda Transferida Gratuita debe consignar Total Valor de Venta de Operaciones Gratuitas2417 Debe consignar Valor Referencial unitario por ítem en operaciones no onerosas2418 Si consigna Valor Referencial unitario por ítem en operaciones no onerosas, la operación debe ser no onerosa2419 El dato ingresado en AllowanceTotalAmount no cumple con el formato establecido2420 Ya transcurrieron mas de 25 dias calendarios para concluir con su proceso de homologacion4000 El documento ya fue presentado anteriormente.4001 El numero de RUC del receptor no existe. 4002 Para el TaxTypeCode, esta usando un valor que no existe en el catalogo. 4003 El comprobante fue registrado previamente como rechazado.4004 El DocumentTypeCode de las guias debe existir y tener 2 posiciones 4005 El DocumentTypeCode de las guias debe ser 09 o 31 4006 El ID de las guias debe tener informacion de la SERIE-NUMERO de guia. 4007 El XML no contiene el ID de las guias.4008 El DocumentTypeCode de Otros documentos relacionados no cumple con el estandar. 4009 El DocumentTypeCode de Otros documentos relacionados tiene valores incorrectos. 4010 El ID de los documentos relacionados no cumplen con el estandar. 4011 El XML no contiene el tag ID de documentos relacionados.4012 El ubigeo indicado en el comprobante no es el mismo que esta registrado para el contribuyente. 4013 El RUC del receptor no esta activo 4014 El RUC del receptor no esta habido 4015 Si el tipo de documento del receptor no es RUC, debe tener operaciones de exportacion 4016 El total valor venta neta de oper. gravadas IGV debe ser mayor a 0.00 o debe existir oper. gravadas onerosas 4017 El total valor venta neta de oper. inafectas IGV debe ser mayor a 0.00 o debe existir oper. inafectas onerosas o

de export. 4018 El total valor venta neta de oper. exoneradas IGV debe ser mayor a 0.00 o debe existir oper. exoneradas 4019 El calculo del IGV no es correcto 4020 El ISC no esta informado correctamente 4021 Si se utiliza la leyenda con codigo 2000, el importe de percepcion debe ser mayor a 0.00 4022 Si se utiliza la leyenda con código 2001, el total de operaciones exoneradas debe ser mayor a 0.00 4023 Si se utiliza la leyenda con código 2002, el total de operaciones exoneradas debe ser mayor a 0.00 4024 Si se utiliza la leyenda con código 2003, el total de operaciones exoneradas debe ser mayor a 0.00 4025 Si usa la leyenda de Transferencia o Servivicio gratuito, todos los items deben ser no onerosos 4026 No se puede indicar Guia de remision de remitente y Guia de remision de transportista en el mismo documento 4027 El importe total no coincide con la sumatoria de los valores de venta mas los tributos mas los cargos 4028 El monto total de la nota de credito debe ser menor o igual al monto de la factura 4029 El ubigeo indicado en el comprobante no es el mismo que esta registrado para el contribuyente 4030 El ubigeo indicado en el comprobante no es el mismo que esta registrado para el contribuyente 4031 Debe indicar el nombre comercial 4032 Si el código del motivo de emisión de la Nota de Credito es 03, debe existir la descripción del item 4033 La fecha de generación de la numeración debe ser menor o igual a la fecha de generación de la comunicación 4034 El comprobante fue registrado previamente como baja4035 El comprobante fue registrado previamente como rechazado4036 La fecha de emisión de los rangos debe ser menor o igual a la fecha de generación del resumen

CODIGO DESCRIPCION 4037 El calculo del Total de IGV del Item no es correcto 4038 El resumen contiene menos series por tipo de documento que el envío anterior para la misma fecha de emisión 4039 No ha consignado información del ubigeo del domicilio fiscal 4040 Si el importe de percepcion es mayor a 0.00, debe utilizar una leyenda con codigo 2000

~ 46 ~

Page 47: Manual Programador Sunat (JOY-MP)

Manual del programador v. 1.0

4041 El codigo de pais debe ser PE

~ 47 ~