From aaa4a3f8fddf7d9949396b5717e692e19463de43 Mon Sep 17 00:00:00 2001 From: giansalex Date: Sat, 27 Jan 2018 14:12:22 -0500 Subject: [PATCH] add code translator --- src/Validator/CodeTranslate.php | 1159 ++++++++++++++++++ src/Validator/Loader/InvoiceLoader.php | 6 +- src/Validator/SymfonyValidator.php | 21 +- tests/Validator/CeReversionValidatorTest.php | 5 +- tests/Validator/FeVoidedValidatorTest.php | 5 +- 5 files changed, 1186 insertions(+), 10 deletions(-) create mode 100644 src/Validator/CodeTranslate.php diff --git a/src/Validator/CodeTranslate.php b/src/Validator/CodeTranslate.php new file mode 100644 index 0000000..87fa494 --- /dev/null +++ b/src/Validator/CodeTranslate.php @@ -0,0 +1,1159 @@ + '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 o el proveedor no esta autorizado a enviar comprobantes del contribuyente', + '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 xml', + '0301' => 'Elemento raiz del xml no esta definido', + '0302' => 'Codigo del tipo de comprobante no registrado', + '0303' => '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-DD', + '1010' => 'El XML no contiene el tag IssueDate', + '1011' => 'IssueDate- El dato ingresado no es valido', + '1012' => 'ID - El dato ingresado no cumple con el patron SERIE-CORRELATIVO', + '1013' => 'El XML no contiene informacion en el tag ID', + '1014' => 'CustomerAssignedAccountID - El dato ingresado no cumple con el estandar', + '1015' => 'El XML no contiene el tag o no existe informacion de CustomerAssignedAccountID del emisor del documento', + '1016' => 'AdditionalAccountID - El dato ingresado no cumple con el estandar', + '1017' => 'El XML no contiene el tag AdditionalAccountID del emisor del documento', + '1018' => 'IssueDate - El dato ingresado no cumple con el patron YYYY-MM-DD', + '1019' => 'El XML no contiene el tag IssueDate', + '1020' => 'IssueDate- El dato ingresado no es valido', + '1021' => 'Error en la validacion de la nota de credito', + '1022' => '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 estandar', + '1025' => 'El XML no contiene el tag o no existe informacion de CustomerAssignedAccountID del emisor del documento', + '1026' => 'AdditionalAccountID - El dato ingresado no cumple con el estandar', + '1027' => 'El XML no contiene el tag AdditionalAccountID del emisor del documento', + '1028' => 'IssueDate - El dato ingresado no cumple con el patron YYYY-MM-DD', + '1029' => 'El XML no contiene el tag IssueDate', + '1030' => 'IssueDate- El dato ingresado no es valido', + '1031' => 'Error en la validacion de la nota de debito', + '1032' => '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', + '1041' => 'cac:PrepaidPayment/cbc:ID - El tag no contiene el atributo @SchemaID. que indica el tipo de documento que realiza el anticipo', + '1042' => 'cac:PrepaidPayment/cbc:InstructionID – El tag no contiene el atributo @SchemaID. Que indica el tipo de documento del emisor del documento del anticipo.', + '1043' => 'cac:OriginatorDocumentReference/cbc:ID - El tag no contiene el atributo @SchemaID. Que indica el tipo de documento del originador del documento electrónico.', + '1044' => 'cac:PrepaidPayment/cbc:InstructionID – El dato ingresado no cumple con el estándar.', + '1045' => 'cac:OriginatorDocumentReference/cbc:ID – El dato ingresado no cumple con el estándar.', + '1046' => 'cbc:Amount - El dato ingresado no cumple con el estándar.', + '1047' => 'cbc:Quantity - El dato ingresado no cumple con el estándar.', + '1048' => 'El XML no contiene el tag o no existe información de PrepaidAmount para un documento con anticipo.', + '1049' => 'ID - Serie y Número del archivo no coincide con el consignado en el contenido del XML.', + '1050' => 'El XML no contiene informacion en el tag DespatchAdviceTypeCode.', + '1051' => 'DespatchAdviceTypeCode - El valor del tipo de guía es inválido.', + '1052' => 'DespatchAdviceTypeCode - No coincide con el consignado en el contenido del XML.', + '1053' => 'cac:OrderReference - El XML no contiene informacion en serie y numero dado de baja (cbc:ID).', + '1054' => 'cac:OrderReference - El valor en numero de documento no cumple con un formato valido (SERIE-NUMERO).', + '1055' => 'cac:OrderReference - Numero de serie del documento no cumple con un formato valido (EG01 ó TXXX).', + '1056' => 'cac:OrderReference - El XML no contiene informacion en el código de tipo de documento (cbc:OrderTypeCode).', + '1057' => 'cac:AdditionalDocumentReference - El XML no contiene el tag o no existe información en el numero de documento adicional (cbc:ID).', + '1058' => 'cac:AdditionalDocumentReference - El XML no contiene el tag o no existe información en el tipo de documento adicional (cbc:DocumentTypeCode).', + '1059' => 'El XML no contiene firma digital.', + '1060' => 'cac:Shipment - El XML no contiene el tag o no existe informacion del numero de RUC del Remitente (cac:).', + '1061' => 'El numero de RUC del Remitente no existe.', + '1062' => 'El XML no contiene el atributo o no existe informacion del motivo de traslado.', + '1063' => 'El valor ingresado como motivo de traslado no es valido.', + '1064' => 'El XML no contiene el atributo o no existe informacion en el tag cac:DespatchLine de bienes a transportar.', + '1065' => 'El XML no contiene el atributo o no existe informacion en modalidad de transporte.', + '1066' => 'El XML no contiene el atributo o no existe informacion de datos del transportista.', + '1067' => 'El XML no contiene el atributo o no existe información de vehiculos.', + '1068' => 'El XML no contiene el atributo o no existe información de conductores.', + '1069' => 'El XML no contiene el atributo o no existe información de la fecha de inicio de traslado o fecha de entrega del bien al transportista.', + '1070' => 'El valor ingresado como fecha de inicio o fecha de entrega al transportista no cumple con el estandar (YYYY-MM-DD).', + '1071' => 'El valor ingresado como fecha de inicio o fecha de entrega al transportista no es valido.', + '1072' => 'Starttime - El dato ingresado no cumple con el patron HH:mm:ss.SZ.', + '1073' => 'StartTime - El dato ingresado no es valido.', + '1074' => 'cac:Shipment - El XML no contiene o no existe información en punto de llegada (cac:DeliveryAddress).', + '1075' => 'cac:Shipment - El XML no contiene o no existe información en punto de partida (cac:OriginAddress).', + '2010' => 'El contribuyente no esta activo', + '2011' => 'El contribuyente no esta habido', + '2012' => 'El contribuyente no está autorizado a emitir comprobantes electrónicos', + '2013' => '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 o no esta permitido.', + '2017' => 'CustomerAssignedAccountID - El numero de documento de identidad del recepetor debe ser RUC', + '2018' => 'CustomerAssignedAccountID - El dato ingresado no cumple con el estandar', + '2019' => 'El XML no contiene el tag o no existe informacion de RegistrationName del emisor del documento', + '2020' => 'RegistrationName - El nombre o razon social del emisor no cumple con el estandar', + '2021' => '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 Items', + '2027' => 'El XML no contiene el tag o no existe informacion de cac:Item/cbc:Description del item', + '2028' => 'Debe existir el tag cac:AlternativeConditionPrice', + '2029' => 'PriceTypeCode El dato ingresado no cumple con el estandar', + '2030' => 'El XML no contiene el tag cbc:PriceTypeCode', + '2031' => 'LineExtensionAmount El dato ingresado no cumple con el estandar', + '2032' => 'El XML no contiene el tag LineExtensionAmount en el detalle de los Items', + '2033' => 'El dato ingresado en TaxAmount de la linea no cumple con el formato establecido', + '2034' => 'TaxAmount es obligatorio', + '2035' => '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 Item', + '2038' => '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 Item', + '2040' => '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 obligatorio', + '2045' => 'El valor ingresado en AdditionalMonetaryTotal/cbc:ID es incorrecto', + '2046' => 'AdditionalMonetaryTotal/cbc:ID debe tener valor', + '2047' => 'Es obligatorio al menos un AdditionalMonetaryTotal con codigo 1001, 1002, 1003 o 3001', + '2048' => 'El dato ingresado en TaxAmount no cumple con el formato establecido', + '2049' => 'TaxAmount es obligatorio', + '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 globales', + '2053' => '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 globales', + '2055' => 'TaxScheme TaxTypeCode - El dato ingresado no cumple con el estandar', + '2056' => 'El XML no contiene el tag TaxScheme TaxTypeCode de impuestos globales', + '2057' => '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 obligatorio', + '2061' => '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 PayableAmount', + '2064' => '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:Value', + '2067' => 'cac:Price/cbc:PriceAmount - El dato ingresado no cumple con el estandar', + '2068' => '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 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:ID', + '2080' => '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:Name', + '2082' => '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/@URI', + '2092' => '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 factura', + '2103' => 'La serie ingresada no es válida', + '2104' => 'Numero de RUC del emisor no existe', + '2105' => '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 emisor', + '2108' => 'Presentacion fuera de fecha', + '2109' => 'El comprobante fue registrado previamente con otros datos', + '2110' => 'UBLVersionID - La versión del UBL no es correcta', + '2111' => 'El XML no contiene el tag o no existe informacion de UBLVersionID', + '2112' => 'CustomizationID - La version del documento no es correcta', + '2113' => 'El XML no contiene el tag o no existe informacion de CustomizationID', + '2114' => 'DocumentCurrencyCode - El dato ingresado no cumple con la estructura', + '2115' => 'El XML no contiene el tag o no existe informacion de DocumentCurrencyCode', + '2116' => '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 valida', + '2123' => 'RegistrationName - El dato ingresado no cumple con el estandar', + '2124' => 'El XML no contiene el tag RegistrationName del emisor del documento', + '2125' => '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 Numero de orden del item no cumple con el formato establecido', + '2138' => 'CreditedQuantity/@unitCode - El dato ingresado no cumple con el estandar', + '2139' => '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 estandar', + '2145' => 'El tipo de afectacion del IGV es incorrecto', + '2146' => 'El Nombre Internacional debe ser VAT', + '2147' => '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 AdditionalInformation', + '2153' => 'Error al procesar la Nota de Credito', + '2154' => 'TaxAmount - El dato ingresado en impuestos globales no cumple con el estandar', + '2155' => 'El XML no contiene el tag TaxAmount de impuestos globales', + '2156' => '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 correcta', + '2162' => 'El XML no contiene el tag o no existe informacion de CustomizationID', + '2163' => 'UBLVersionID - La versión del UBL no es correcta', + '2164' => 'El XML no contiene el tag o no existe informacion de UBLVersionID', + '2165' => 'Error al procesar la Nota de Debito', + '2166' => 'RegistrationName - El dato ingresado no cumple con el estandar', + '2167' => 'El XML no contiene el tag RegistrationName del emisor del documento', + '2168' => 'DocumentCurrencyCode - El dato ingresado no cumple con el formato establecido', + '2169' => 'El XML no contiene el tag o no existe informacion de DocumentCurrencyCode', + '2170' => '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', + '2183' => 'El codigo del tributo es invalido', + '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 estandar', + '2189' => '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 Items', + '2192' => '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 estandar', + '2197' => 'El tipo de afectacion del IGV es incorrecto', + '2198' => 'El Nombre Internacional debe ser VAT', + '2199' => 'El sistema de calculo del ISC es incorrecto', + '2200' => 'El Nombre Internacional debe ser EXC', + '2201' => 'El tag cac:RequestedMonetaryTotal/cbc:PayableAmount debe tener informacion valida', + '2202' => 'TaxAmount - El dato ingresado en impuestos globales no cumple con el estandar', + '2203' => 'El XML no contiene el tag TaxAmount de impuestos globales', + '2204' => '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 correcta', + '2213' => 'El XML no contiene el tag UBLVersionID', + '2214' => 'CustomizationID - La versión del resumen de boletas no es correcta', + '2215' => 'El XML no contiene el tag CustomizationID', + '2216' => '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 electronicos', + '2223' => 'El archivo ya fue presentado anteriormente', + '2224' => 'Numero de RUC SOL no coincide con RUC emisor', + '2225' => 'Numero de RUC del emisor no existe', + '2226' => 'El contribuyente no esta activo', + '2227' => 'El contribuyente no cumple con tipo de empresa o tributos requeridos', + '2228' => '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-DD', + '2231' => 'El XML no contiene el tag IssueDate', + '2232' => 'IssueDate- El dato ingresado no es valido', + '2233' => 'ReferenceDate - El dato ingresado no cumple con el patron YYYY-MM-DD', + '2234' => 'El XML no contiene el tag ReferenceDate', + '2235' => 'ReferenceDate- El dato ingresado no es valido', + '2236' => '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', + '2253' => 'El dato ingresado en TotalAmount debe ser numerico mayor a cero', + '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 venta', + '2259' => 'Debe indicar 3 Referencias de Importes asociados a las boletas de venta', + '2260' => 'PaidAmount - El dato ingresado debe ser mayor o igual a 0.00', + '2261' => 'cbc:Amount - El dato ingresado no cumple con el estandar', + '2262' => 'El XML no contiene el tag cbc:Amount', + '2263' => 'ChargeIndicator - El dato ingresado no cumple con el estandar', + '2264' => 'El XML no contiene el tag ChargeIndicator', + '2265' => 'Debe indicar Información acerca del Importe Total de Otros Cargos', + '2266' => 'Debe indicar cargos mayores o iguales a cero', + '2267' => '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 estandar', + '2273' => 'TaxAmount - El dato ingresado no cumple con el estandar', + '2274' => 'El XML no contiene el tag TaxAmount', + '2275' => '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 documentos', + '2280' => 'Existen problemas con la informacion del resumen de comprobantes', + '2281' => 'Error en la validacion de los rangos de los comprobantes', + '2282' => 'Existe documento ya informado anteriormente', + '2283' => 'El dato ingresado no cumple con el formato RA-fecha-correlativo', + '2284' => 'El tag ID esta vacío', + '2285' => '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 estandar', + '2290' => 'El XML no contiene el tag CustomerAssignedAccountID del emisor del documento', + '2291' => 'El contribuyente no esta autorizado a emitir comprobantes electronicos', + '2292' => 'Numero de RUC SOL no coincide con RUC emisor', + '2293' => 'Numero de RUC del emisor no existe', + '2294' => 'El contribuyente no esta activo', + '2295' => 'El contribuyente no cumple con tipo de empresa o tributos requeridos', + '2296' => '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-DD', + '2299' => 'El XML no contiene el tag IssueDate', + '2300' => 'IssueDate - El dato ingresado no es valido', + '2301' => '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 ReferenceDate', + '2304' => 'ReferenceDate - El dato ingresado no es valido', + '2305' => 'LineID - El dato ingresado no cumple con el estandar', + '2306' => 'LineID - El dato ingresado debe ser correlativo mayor a cero', + '2307' => 'El tag LineID de VoidedDocumentsLine esta vacío', + '2308' => 'DocumentTypeCode - El valor del tipo de documento es invalido', + '2309' => 'El tag DocumentTypeCode es vacío', + '2310' => 'El dato ingresado no cumple con el patron SERIE', + '2311' => 'El tag DocumentSerialID es vacío', + '2312' => 'El dato ingresado en DocumentNumberID debe ser numerico y como maximo de 8 digitos', + '2313' => 'El tag DocumentNumberID esta vacío', + '2314' => 'El dato ingresado en VoidReasonDescription debe contener información válida', + '2315' => 'El tag VoidReasonDescription esta vacío', + '2316' => 'Debe indicar Items en VoidedDocumentsLine', + '2317' => 'Error al procesar el resumen de anulados', + '2318' => 'CustomizationID - La version del documento no es correcta', + '2319' => 'El XML no contiene el tag CustomizationID', + '2320' => 'UBLVersionID - La version del UBL no es la correcta', + '2321' => 'El XML no contiene el tag UBLVersionID', + '2322' => 'Error en la validacion de los rangos', + '2323' => 'Existe documento ya informado anteriormente en una comunicacion de baja', + '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 XML', + '2332' => 'Número de Serie del nombre del archivo no coincide con el consignado en el contenido del archivo XML', + '2333' => 'Número de documento en el nombre del archivo no coincide con el consignado en el contenido del XML', + '2334' => '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:TaxAmount', + '2345' => '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 superpuestos', + '2348' => 'Los documentos informados en el archivo XML se encuentran duplicados', + '2349' => '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 04', + '2361' => '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 posiciones', + '2367' => '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 observaciones', + '2381' => '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', + '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', + '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 electronica', + '2400' => '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 existe', + '2403' => 'La numeracion o nombre del documento ya ha sido enviado anteriormente', + '2404' => '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 Transferencia Gratuita debe consignar Total Valor de Venta de Operaciones Gratuitas', + '2417' => 'Debe consignar Valor Referencial unitario por item en operaciones no onerosas', + '2418' => 'Si consigna Valor Referencial unitario por item en operaciones no onerosas,la operacion debe ser no onerosa.', + '2419' => 'El dato ingresado en AllowanceTotalAmount no cumple con el formato establecido', + '2420' => 'Ya transcurrieron mas de 25 dias calendarios para concluir con su proceso de homologacion', + '2421' => 'Debe indicar toda la informacion de sustento de translado de bienes.', + '2422' => 'El valor unitario debe ser menor al precio unitario.', + '2423' => 'Si ha consignado monto ISC a nivel de item, debe consignar un monto a nivel de total.', + '2424' => 'RC Debe consignar solo un elemento sac:BillingPayment a nivel de item con cbc:InstructionID igual a 05.', + '2425' => 'Si la operacion es gratuita PriceTypeCode =02 y cbc:PriceAmount> 0 el codigo de afectacion de igv debe ser no onerosa es decir diferente de 10,20,30.', + '2426' => 'Documentos relacionados duplicados en el comprobante.', + '2427' => 'Solo debe de existir un tag AdditionalInformation.', + '2428' => 'Comprobante no cumple con grupo de facturas con detracciones.', + '2429' => 'Comprobante no cumple con grupo de facturas con comercio exterior.', + '2430' => 'Comprobante no cumple con grupo de facturas con tag de factura guia.', + '2431' => 'Comprobante no cumple con grupo de facturas con tags no tributarios.', + '2432' => 'Comprobante no cumple con grupo de boletas con tags no tributarios.', + '2433' => 'Comprobante no cumple con grupo de facturas con tag venta itinerante.', + '2434' => 'Comprobante no cumple con grupo de boletas con tag venta itinerante.', + '2435' => 'Comprobante no cumple con grupo de boletas con ISC.', + '2436' => 'Comprobante no cumple con el grupo de boletas de venta con percepcion: El monto de percepcion no existe o es cero.', + '2437' => 'Comprobante no cumple con el grupo de boletas de venta con percepcion: Todos los items deben tener código de Afectación al IGV igual a 10.', + '2438' => 'Comprobante no cumple con grupo de facturas con tag venta anticipada I.', + '2439' => 'Comprobante no cumple con grupo de facturas con tag venta anticipada II.', + '2500' => 'Ingresar descripción y valor venta por ítem para documento de anticipos.', + '2501' => 'Valor venta debe ser mayor a cero.', + '2502' => 'Los valores totales deben ser mayores a cero.', + '2503' => 'PaidAmount: monto anticipado por documento debe ser mayor a cero.', + '2504' => 'Falta referencia de la factura relacionada con anticipo.', + '2505' => 'cac:PrepaidPayment/cbc:ID/@SchemaID: Código de referencia debe ser 02 o 03.', + '2506' => 'cac:PrepaidPayment/cbc:ID: Factura o boleta no existe o comunicada de Baja.', + '2507' => 'Factura relacionada con anticipo no corresponde como factura de anticipo.', + '2508' => 'Ingresar documentos por anticipos.', + '2509' => 'Total de anticipos diferente a los montos anticipados por documento.', + '2510' => 'Nro nombre del documento no tiene el formato correcto.', + '2511' => 'El tipo de documento no es aceptado.', + '2512' => 'No existe información de serie o número.', + '2513' => 'Dato no cumple con formato de acuerdo al número de comprobante.', + '2514' => 'No existe información de receptor de documento.', + '2515' => 'Dato ingresado no cumple con catalogo 6.', + '2516' => 'Debe indicar tipo de documento.', + '2517' => 'Dato no cumple con formato establecido.', + '2518' => 'Calculo IGV no es correcto.', + '2519' => 'El importe total no coincide con la sumatoria de los valores de venta mas los tributos mas los cargos.', + '2520' => 'cac:PrepaidPayment/cbc:InstructionID/@SchemaID – El tipo documento debe ser 6 del catalogo de tipo de documento.', + '2521' => 'cac:PrepaidPayment/cbc:ID - El dato ingresado debe indicar SERIE-CORRELATIVO del documento que se realizo el anticipo.', + '2522' => 'No existe información del documento del anticipo.', + '2523' => 'GrossWeightMeasure – El dato ingresado no cumple con el formato establecido.', + '2524' => 'El dato ingresado en Amount no cumple con el formato establecido.', + '2525' => 'El dato ingresado en Quantity no cumple con el formato establecido.', + '2526' => 'El dato ingresado en Percent no cumple con el formato establecido.', + '2527' => 'PrepaidAmount: Monto total anticipado debe ser mayor a cero.', + '2528' => 'cac:OriginatorDocumentReference/cbc:ID/@SchemaID – El tipo documento debe ser 6 del catalogo de tipo de documento.', + '2529' => 'RUC que emitio documento de anticipo, no existe.', + '2530' => 'RUC que solicita la emision de la factura, no existe.', + '2531' => 'Codigo del Local Anexo del emisor no existe.', + '2532' => 'No existe información de modalidad de transporte.', + '2533' => 'Si ha consignado Transporte Privado, debe consignar Licencia de conducir, Placa, N constancia de inscripcion y marca del vehiculo.', + '2534' => 'Si ha consignado Transporte púbico, debe consignar Datos del transportista.', + '2535' => 'La nota de crédito por otros conceptos tributarios debe tener Otros Documentos Relacionados.', + '2536' => 'Serie y numero no se encuentra registrado como baja por cambio de destinatario.', + '2537' => 'cac:OrderReference/cac:DocumentReference/cbc:DocumentTypeCode - El tipo de documento de serie y número dado de baja es incorrecta.', + '2538' => 'El contribuyente no se encuentra autorizado como emisor electronico de Guía o de factura o de boletaFactura GEM.', + '2539' => 'El contribuyente no esta activo.', + '2540' => 'El contribuyente no esta habido.', + '2541' => 'El XML no contiene el tag o no existe informacion del tipo de documento identidad del remitente.', + '2542' => 'cac:DespatchSupplierParty/cbc:CustomerAssignedAccountID@schemeID - El valor ingresado como tipo de documento identidad del remitente es incorrecta.', + '2543' => 'El XML no contiene el tag o no existe informacion de la dirección completa y detallada en domicilio fiscal.', + '2544' => 'El XML no contiene el tag o no existe información de la provincia en domicilio fiscal.', + '2545' => 'El XML no contiene el tag o no existe información del departamento en domicilio fiscal.', + '2546' => 'El XML no contiene el tag o no existe información del distrito en domicilio fiscal.', + '2547' => 'El XML no contiene el tag o no existe información del país en domicilio fiscal.', + '2548' => 'El valor del país inválido.', + '2549' => 'El XML no contiene el tag o no existe informacion del tipo de documento identidad del destinatario.', + '2550' => 'cac:DeliveryCustomerParty/cbc:CustomerAssignedAccountID@schemeID - El dato ingresado de tipo de documento identidad del destinatario no cumple con el estandar.', + '2551' => 'El XML no contiene el tag o no existe informacion de CustomerAssignedAccountID del proveedor de servicios.', + '2552' => 'El XML no contiene el tag o no existe informacion del tipo de documento identidad del proveedor.', + '2553' => 'cac:SellerSupplierParty/cbc:CustomerAssignedAccountID@schemeID - El dato ingresado no es valido.', + '2554' => 'Para el motivo de traslado ingresado el Destinatario debe ser igual al remitente.', + '2555' => 'Destinatario no debe ser igual al remitente.', + '2556' => 'cbc:TransportModeCode - dato ingresado no es valido.', + '2557' => 'La fecha del StartDate no debe ser menor al Today.', + '2558' => 'El XML no contiene el tag o no existe informacion en Numero de Ruc del transportista.', + '2559' => '/DespatchAdvice/cac:Shipment/cac:ShipmentStage/cac:CarrierParty/cac:PartyIdentification/cbc:ID - El dato ingresado no cumple con el formato establecido.', + '2560' => 'Transportista no debe ser igual al remitente o destinatario.', + '2561' => 'El XML no contiene el tag o no existe informacion del tipo de documento identidad del transportista.', + '2562' => '/DespatchAdvice/cac:Shipment/cac:ShipmentStage/cac:CarrierParty/cac:PartyIdentification/cbc:ID@schemeID - El dato ingresado no es valido.', + '2563' => 'El XML no contiene el tag o no existe informacion de Apellido, Nombre o razon social del transportista.', + '2564' => 'Razon social transportista - El dato ingresado no cumple con el formato establecido.', + '2565' => 'El XML no contiene el tag o no existe informacion del tipo de unidad de transporte.', + '2566' => 'El XML no contiene el tag o no existe informacion del Numero de placa del vehículo.', + '2567' => 'Numero de placa del vehículo - El dato ingresado no cumple con el formato establecido.', + '2568' => 'El XML no contiene el tag o no existe informacion en el Numero de documento de identidad del conductor.', + '2569' => 'Documento identidad del conductor - El dato ingresado no cumple con el formato establecido.', + '2570' => 'El XML no contiene el tag o no existe informacion del tipo de documento identidad del conductor.', + '2571' => 'cac:DriverPerson/ID@schemeID - El valor ingresado de tipo de documento identidad de conductor es incorrecto.', + '2572' => 'El XML no contiene el tag o no existe informacion del Numero de licencia del conductor.', + '2573' => 'Numero de licencia del conductor - El dato ingresado no cumple con el formato establecido.', + '2574' => 'El XML no contiene el tag o no existe informacion de direccion detallada de punto de llegada.', + '2575' => 'El XML no contiene el tag o no existe informacion de CityName.', + '2576' => 'El XML no contiene el tag o no existe informacion de District.', + '2577' => 'El XML no contiene el tag o no existe informacion de direccion detallada de punto de partida.', + '2578' => 'El XML no contiene el tag o no existe informacion de CityName.', + '2579' => 'El XML no contiene el tag o no existe informacion de District.', + '2580' => 'El XML No contiene el tag o no existe información de la cantidad del item.', + '2600' => 'El comprobante fue enviado fuera del plazo permitido.', + '2601' => 'Señor contribuyente a la fecha no se encuentra registrado ó habilitado con la condición de Agente de percepción.', + '2602' => 'El régimen percepción enviado no corresponde con su condición de Agente de percepción.', + '2603' => 'La tasa de percepción enviada no corresponde con el régimen de percepción.', + '2604' => 'El Cliente no puede ser el mismo que el Emisor del comprobante de percepción.', + '2605' => 'Número de RUC del Cliente no existe.', + '2606' => 'Documento de identidad del Cliente no existe.', + '2607' => 'La moneda del importe de cobro debe ser la misma que la del documento relacionado.', + '2608' => 'Los montos de pago, percibidos y montos cobrados consignados para el documento relacionado no son correctos.', + '2609' => 'El comprobante electrónico enviado no se encuentra registrado en la SUNAT.', + '2610' => 'La fecha de emisión, Importe total del comprobante y la moneda del comprobante electrónico enviado no son los registrados en los Sistemas de SUNAT.', + '2611' => 'El comprobante electrónico no ha sido emitido al cliente.', + '2612' => 'La fecha de cobro debe estar entre el primer día calendario del mes al cual corresponde la fecha de emisión del comprobante de percepción o desde la fecha de emisión del comprobante relacionado.', + '2613' => 'El Nro. de documento con número de cobro ya se encuentra en la Relación de Documentos Relacionados agregados.', + '2614' => 'El Nro. de documento con el número de cobro ya se encuentra registrado como pago realizado.', + '2615' => 'Importe total percibido debe ser igual a la suma de los importes percibidos por cada documento relacionado.', + '2616' => 'Importe total cobrado debe ser igual a la suma de los importe totales cobrados por cada documento relacionado.', + '2617' => 'Señor contribuyente a la fecha no se encuentra registrado ó habilitado con la condición de Agente de retención.', + '2618' => 'El régimen retención enviado no corresponde con su condición de Agente de retención.', + '2619' => 'La tasa de retención enviada no corresponde con el régimen de retención.', + '2620' => 'El Proveedor no puede ser el mismo que el Emisor del comprobante de retención.', + '2621' => 'Número de RUC del Proveedor no existe.', + '2622' => 'La moneda del importe de pago debe ser la misma que la del documento relacionado.', + '2623' => 'Los montos de pago, retenidos y montos pagados consignados para el documento relacionado no son correctos.', + '2624' => 'El comprobante electrónico no ha sido emitido por el proveedor.', + '2625' => 'La fecha de pago debe estar entre el primer día calendario del mes al cual corresponde la fecha de emisión del comprobante de retención o desde la fecha de emisión del comprobante relacionado.', + '2626' => 'El Nro. de documento con el número de pago ya se encuentra en la Relación de Documentos Relacionados agregados.', + '2627' => 'El Nro. de documento con el número de pago ya se encuentra registrado como pago realizado.', + '2628' => 'Importe total retenido debe ser igual a la suma de los importes retenidos por cada documento relacionado.', + '2629' => 'Importe total pagado debe ser igual a la suma de los importes pagados por cada documento relacionado.', + '2630' => 'La serie o numero del documento(01) modificado por la Nota de Credito no cumple con el formato establecido para tipo codigo Nota Credito 10.', + '2631' => 'La serie o numero del documento(12) modificado por la Nota de Credito no cumple con el formato establecido para tipo codigo Nota Credito 10.', + '2632' => 'La serie o numero del documento(56) modificado por la Nota de Credito no cumple con el formato establecido para tipo codigo Nota Credito 10.', + '2633' => 'La serie o numero del documento(03) modificado por la Nota de Credito no cumple con el formato establecido para tipo codigo Nota Credito 10.', + '2634' => 'ReferenceID - El dato ingresado debe indicar serie correcta del documento al que se relaciona la Nota tipo 10.', + '2635' => 'Debe existir DocumentTypeCode de Otros documentos relacionados con valor 99 para un tipo codigo Nota Credito 10.', + '2636' => 'No existe datos del ID de los documentos relacionados con valor 99 para un tipo codigo Nota Credito 10.', + '2637' => 'No existe datos del DocumentType de los documentos relacionados con valor 99 para un tipo codigo Nota Credito 10.', + '2640' => 'Operacion gratuita, solo debe consignar un monto referencial', + '2641' => 'Operacion gratuita, debe consignar Total valor venta - operaciones gratuitas mayor a cero', + '2642' => 'Operaciones de exportacion, deben consignar Tipo Afectacion igual a 40', + '2643' => 'Factura de operacion sujeta IVAP debe consignar Monto de impuestos por item', + '2644' => 'Factura de operacion sujeta IVAP solo debe tener ítems con código afectación IGV 17.', + '2645' => 'Factura de operacion sujeta a IVAP debe consignar items con codigo de tributo 1000', + '2646' => 'Factura de operacion sujeta a IVAP debe consignar items con nombre de tributo IVAP', + '2647' => 'Código tributo UN/ECE debe ser VAT', + '2648' => 'Factura de operacion sujeta al IVAP, solo puede consignar informacion para operacion gravadas', + '2649' => 'Operación sujeta al IVAP, debe consignar monto en total operaciones gravadas', + '2650' => 'Factura de operacion sujeta al IVAP , no debe consignar valor para ISC o debe ser 0', + '2651' => 'Factura de operacion sujeta al IVAP , no debe consignar valor para IGV o debe ser 0', + '2652' => 'Factura de operacion sujeta al IVAP , debe registrar mensaje 2007', + '2653' => 'Servicios prestados No domiciliados. Total IGV debe se mayor a cero', + '2654' => 'Servicios prestados No domiciliados. Código tributo a consignar debe ser 1000', + '2655' => 'Servicios prestados No domiciliados. El código de afectación debe ser 40', + '2656' => 'Servicios prestados No domiciliados. Código tributo UN/ECE debe ser VAT', + '2657' => 'El Nro. de documento ya fué utilizado en la emision de CPE.', + '2658' => 'El Nro. de documento no se ha informado o no se encuentra en estado Revertido', + '2659' => 'La fecha de cobro de cada documento relacionado deben ser del mismo Periodo (mm/aaaa), asimismo estas fechas podrán ser menores o iguales a la fecha de emisión del comprobante de percepción', + '2660' => 'Los datos del CPE revertido no corresponden a los registrados en la SUNAT', + '2661' => 'La fecha de cobro de cada documento relacionado deben ser del mismo Periodo (mm/aaaa), asimismo estas fechas podrán ser menores o iguales a la fecha de emisión del comprobante de retencion', + '2662' => 'El Nro. de documento ya fué utilizado en la emision de CRE.', + '2663' => 'El documento indicado no existe no puede ser modificado/eliminado', + '2664' => 'El calculo de la base imponible de percepción y el monto de la percepción no coincide con el monto total informado.', + '2665' => 'El contribuyente no se encuentra autorizado a emitir Tickets', + '2666' => 'Las percepciones son solo válidas para boletas de venta al contado.', + '2667' => 'Importe total percibido debe ser igual a la suma de los importes percibidos por cada documento relacionado.', + '2668' => 'Importe total cobrado debe ser igual a la suma de los importes cobrados por cada documento relacionado.', + '2669' => 'El dato ingresado en TotalInvoiceAmount debe ser numérico mayor a cero', + '2670' => 'La razón social no corresponde al ruc informado.', + '2671' => 'La fecha de generación de la comunicación debe ser mayor o igual a la fecha de generación del documento revertido.', + '2672' => 'La fecha de generación del documento revertido debe ser menor o igual a la fecha actual.', + '2673' => 'El dato ingresado no cumple con el formato RR-fecha-correlativo.', + '2674' => 'El dato ingresado no cumple con el formato de DocumentSerialID, para DocumentTypeCode con valor 20.', + '2675' => 'El dato ingresado no cumple con el formato de DocumentSerialID, para DocumentTypeCode con valor 40.', + '2676' => 'El XML no contiene el tag o no existe información del número de RUC del emisor', + '2677' => 'El valor ingresado como número de RUC del emisor es incorrecto', + '2678' => 'El XML no contiene el atributo o no existe información del tipo de documento del emisor', + '2679' => 'El XML no contiene el tag o no existe información del número de documento de identidad del cliente', + '2680' => 'El valor ingresado como documento de identidad del cliente es incorrecto', + '2681' => 'El XML no contiene el atributo o no existe información del tipo de documento del cliente', + '2682' => 'El valor ingresado como tipo de documento del cliente es incorrecto', + '2683' => 'El XML no contiene el tag o no existe información del Importe total Percibido', + '2684' => 'El XML no contiene el tag o no existe información de la moneda del Importe total Percibido', + '2685' => 'El valor de la moneda del Importe total Percibido debe ser PEN', + '2686' => 'El XML no contiene el tag o no existe información del Importe total Cobrado', + '2687' => 'El dato ingresado en SUNATTotalCashed debe ser numérico mayor a cero', + '2689' => 'El XML no contiene el tag o no existe información de la moneda del Importe total Cobrado', + '2690' => 'El valor de la moneda del Importe total Cobrado debe ser PEN', + '2691' => 'El XML no contiene el tag o no existe información del tipo de documento relacionado', + '2692' => 'El tipo de documento relacionado no es válido', + '2693' => 'El XML no contiene el tag o no existe información del número de documento relacionado', + '2694' => 'El número de documento relacionado no está permitido o no es valido', + '2695' => 'El XML no contiene el tag o no existe información del Importe total documento Relacionado', + '2696' => 'El dato ingresado en el importe total documento relacionado debe ser numérico mayor a cero', + '2697' => 'El XML no contiene el tag o no existe información del número de cobro', + '2698' => 'El dato ingresado en el número de cobro no es válido', + '2699' => 'El XML no contiene el tag o no existe información del Importe del cobro', + '2700' => 'El dato ingresado en el Importe del cobro debe ser numérico mayor a cero', + '2701' => 'El XML no contiene el tag o no existe información de la moneda del documento Relacionado', + '2702' => 'El XML no contiene el tag o no existe información de la fecha de cobro del documento Relacionado', + '2703' => 'La fecha de cobro del documento relacionado no es válido', + '2704' => 'El XML no contiene el tag o no existe información del Importe percibido', + '2705' => 'El dato ingresado en el Importe percibido debe ser numérico mayor a cero', + '2706' => 'El XML no contiene el tag o no existe información de la moneda de importe percibido', + '2707' => 'El valor de la moneda de importe percibido debe ser PEN', + '2708' => 'El XML no contiene el tag o no existe información de la Fecha de Percepción', + '2709' => 'La fecha de percepción no es válido', + '2710' => 'El XML no contiene el tag o no existe información del Monto total a cobrar', + '2711' => 'El dato ingresado en el Monto total a cobrar debe ser numérico mayor a cero', + '2712' => 'El XML no contiene el tag o no existe información de la moneda del Monto total a cobrar', + '2713' => 'El valor de la moneda del Monto total a cobrar debe ser PEN', + '2714' => 'El valor de la moneda de referencia para el tipo de cambio no es válido', + '2715' => 'El valor de la moneda objetivo para la Tasa de Cambio debe ser PEN', + '2716' => 'El dato ingresado en el tipo de cambio debe ser numérico mayor a cero', + '2717' => 'La fecha de cambio no es válido', + '2718' => 'El valor de la moneda del documento Relacionado no es válido', + '2719' => 'El XML no contiene el tag o no existe información de la moneda de referencia para el tipo de cambio', + '2720' => 'El XML no contiene el tag o no existe información de la moneda objetivo para la Tasa de Cambio', + '2721' => 'El XML no contiene el tag o no existe información del tipo de cambio', + '2722' => 'El XML no contiene el tag o no existe información de la fecha de cambio', + '2723' => 'El XML no contiene el tag o no existe información del número de documento de identidad del proveedor', + '2724' => 'El valor ingresado como documento de identidad del proveedor es incorrecto', + '2725' => 'El XML no contiene el tag o no existe información del Importe total Retenido', + '2726' => 'El XML no contiene el tag o no existe información de la moneda del Importe total Retenido', + '2727' => 'El XML no contiene el tag o no existe información de la moneda del Importe total Retenido', + '2728' => 'El valor de la moneda del Importe total Retenido debe ser PEN', + '2729' => 'El XML no contiene el tag o no existe información del Importe total Pagado', + '2730' => 'El dato ingresado en SUNATTotalPaid debe ser numérico mayor a cero', + '2731' => 'El XML no contiene el tag o no existe información de la moneda del Importe total Pagado', + '2732' => 'El valor de la moneda del Importe total Pagado debe ser PEN', + '2733' => 'El XML no contiene el tag o no existe información del número de pago', + '2734' => 'El dato ingresado en el número de pago no es válido', + '2735' => 'El XML no contiene el tag o no existe información del Importe del pago', + '2736' => 'El dato ingresado en el Importe del pago debe ser numérico mayor a cero', + '2737' => 'El XML no contiene el tag o no existe información de la fecha de pago del documento Relacionado', + '2738' => 'La fecha de pago del documento relacionado no es válido', + '2739' => 'El XML no contiene el tag o no existe información del Importe retenido', + '2740' => 'El dato ingresado en el Importe retenido debe ser numérico mayor a cero', + '2741' => 'El XML no contiene el tag o no existe información de la moneda de importe retenido', + '2742' => 'El valor de la moneda de importe retenido debe ser PEN', + '2743' => 'El XML no contiene el tag o no existe información de la Fecha de Retención', + '2744' => 'La fecha de retención no es válido', + '2745' => 'El XML no contiene el tag o no existe información del Importe total a pagar (neto)', + '2746' => 'El dato ingresado en el Importe total a pagar (neto) debe ser numérico mayor a cero', + '2747' => 'El XML no contiene el tag o no existe información de la Moneda del monto neto pagado', + '2748' => 'El valor de la Moneda del monto neto pagado debe ser PEN', + '2749' => 'La moneda de referencia para el tipo de cambio debe ser la misma que la del documento relacionado', + '2750' => 'El comprobante que desea revertir no existe.', + '2751' => 'El comprobante fue informado previamente en una reversión.', + '2752' => 'El número de ítem no puede estar duplicado.', + '2753' => 'No debe existir mas de una referencia en guía dada de baja.', + '2754' => 'El tipo de documento de la guia dada de baja es incorrecto (tipo documento = 09).', + '2755' => 'El tipo de documento relacionado es incorrecto (ver catalogo nro 21).', + '2756' => 'El numero de documento relacionado no cumple con el estandar.', + '2757' => 'El XML no contiene el tag o no existe información del número de documento de identidad del destinatario.', + '2758' => 'El valor ingresado como numero de documento de identidad del destinatario no cumple con el estandar.', + '2759' => 'El XML no contiene el atributo o no existe información del tipo de documento del destinatario.', + '2760' => 'El valor ingresado como tipo de documento del destinatario es incorrecto.', + '2761' => 'El XML no contiene el atributo o no existe información del nombre o razon social del destinatario.', + '2762' => 'El valor ingresado como tipo de documento del nombre o razon social del destinatario es incorrecto.', + '2763' => 'El XML no contiene el tag o no existe información del número de documento de identidad del tercero relacionado.', + '2764' => 'El valor ingresado como numero de documento de identidad del tercero relacionado no cumple con el estandar.', + '2765' => 'El XML no contiene el atributo o no existe información del tipo de documento del tercero relacionado.', + '2766' => 'El valor ingresado como tipo de documento del tercero relacionado es incorrecto.', + '2767' => 'Para importación, el XML no contiene el tag o no existe informacion del numero de DAM.', + '2768' => 'Para importación, el XML no contiene el tag o no existe informacion del numero de manifiesto de carga.', + '2769' => 'El valor ingresado como numero de DAM no cumple con el estandar.', + '2770' => 'El valor ingresado como numero de manifiesto de carga no cumple con el estandar.', + '2771' => 'El XML no contiene el atributo o no existe informacion en numero de bultos o pallets obligatorio para importación.', + '2772' => 'El valor ingresado como numero de bultos o pallets no cumple con el estandar.', + '2773' => 'El valor ingresado como modalidad de transporte no es correcto.', + '2774' => 'El XML no contiene datos de vehiculo o datos de conductores para una operación de transporte publico completo.', + '2775' => 'El XML no contiene el atributo o no existe informacion del codigo de ubigeo.', + '2776' => 'El valor ingresado como codigo de ubigeo no cumple con el estandar.', + '2777' => 'El XML no contiene el atributo o no existe informacion de direccion completa y detallada.', + '2778' => 'El valor ingresado como direccion completa y detallada no cumple con el estandar.', + '2779' => 'El XML no contiene el atributo o no existe informacion de cantida de items', + '2780' => 'El valor ingresado en cantidad de items no cumple con el estandar', + '2781' => 'El XML no contiene el atributo o no existe informacion de descripcion del items', + '2782' => 'El valor ingresado en descripcion del items no cumple con el estandar', + '2783' => 'El valor ingresado en codigo del item no cumple con el estandar.', + '2784' => 'Debe consignar codigo de regimen de percepcion (sac:AdditionalMonetaryTotal/cbc:ID@schemeID).', + '2785' => 'sac:ReferenceAmount es obligatorio y mayor a cero cuando sac:AdditionalMonetaryTotal/cbc:ID es 2001', + '2786' => 'El dato ingresado en sac:ReferenceAmount no cumple con el formato establecido', + '2787' => 'Debe consignar la moneda para la Base imponible percepcion (sac:ReferenceAmount/@currencyID)', + '2788' => 'El dato ingresado en sac:ReferenceAmount/@currencyID debe ser PEN', + '2789' => 'cbc:PayableAmount es obligatorio y mayor a cero cuando sac:AdditionalMonetaryTotal/cbc:ID es 2001', + '2790' => 'El dato ingresado en cbc:PayableAmount no cumple con el formato establecido', + '2791' => 'Debe consignar la moneda para el Monto de la percepcion (cbc:PayableAmount/@currencyID)', + '2792' => 'El dato ingresado en cbc:PayableAmount/@currencyID debe ser PEN', + '2793' => 'sac:TotalAmount es obligatorio y mayor a cero cuando sac:AdditionalMonetaryTotal/cbc:ID es 2001', + '2794' => 'El dato ingresado en sac:TotalAmount no cumple con el formato establecido', + '2795' => 'Debe consignar la moneda para el Monto Total incluido la percepcion (sac:TotalAmount/@currencyID)', + '2796' => 'El dato ingresado en sac:TotalAmount/@currencyID debe ser PEN', + '2797' => 'sac:ReferenceAmount no puede ser mayor al importe total de la venta (cac:LegalMonetaryTotal/cbc:PayableAmount) cuando sac:AdditionalMonetaryTotal/cbc:ID es 2001', + '2798' => 'cbc:PayableAmount no tiene el valor correcto cuando sac:AdditionalMonetaryTotal/cbc:ID es 2001', + '2799' => 'sac:TotalAmount no tiene el valor correcto cuando sac:AdditionalMonetaryTotal/cbc:ID es 2001', + '2800' => 'AdditionalAccountID - El dato ingresado en el tipo de documento de identidad del receptor no esta permitido.', + '2801' => 'CustomerAssignedAccountID - El DNI ingresado no cumple con el estandar.', + '2802' => 'CustomerAssignedAccountID - El RUC ingresado no cumple con el estandar.', + '2803' => 'ID - No cumple con el formato UUID', + '2804' => 'La fecha de recepcion del comprobante por ose, no debe de ser mayor a la fecha de recepcion de sunat', + '2805' => 'El XML no contiene el tag IssueTime', + '2806' => 'IssueTime - El dato ingresado no cumple con el patrón hh:mm:ss.sssss', + '2807' => 'El XML no contiene el tag ResponseDate', + '2808' => 'ResponseDate - El dato ingresado no cumple con el patrón YYYY-MM-DD', + '2809' => 'La fecha de recepcion del comprobante por ose, no debe de ser mayor a la fecha de comprobacion del ose', + '2810' => 'La fecha de comprobacion del comprobante en OSE no puede ser mayor a la fecha de recepcion en SUNAT.', + '2811' => 'El XML no contiene el tag ResponseTime', + '2812' => 'ResponseTime - El dato ingresado no cumple con el patrón hh:mm:ss.sssss', + '2813' => 'El XML no contiene el tag o no existe información del Número de documento de identificación del que envía el CPE (emisor o PSE)', + '2814' => 'El valor ingresado como Número de documento de identificación del que envía el CPE (emisor o PSE) es incorrecto', + '2816' => 'El XML no contiene el atributo schemeID o no existe información del Tipo de documento de identidad del que envía el CPE (emisor o PSE)', + '2817' => 'El valor ingresado como Tipo de documento de identidad del que envía el CPE (emisor o PSE) es incorrecto', + '2818' => 'El XML no contiene el atributo schemeAgencyName o no existe información del Tipo de documento de identidad del que envía el CPE (emisor o PSE)', + '2819' => 'El valor ingresado en el atributo schemeAgencyName del Tipo de documento de identidad del que envía el CPE (emisor o PSE) es incorrecto', + '2820' => 'El XML no contiene el atributo schemeURI o no existe información del Tipo de documento de identidad del que envía el CPE (emisor o PSE)', + '2821' => 'El valor ingresado en el atributo schemeURI del Tipo de documento de identidad del que envía el CPE (emisor o PSE) es incorrecto', + '2822' => 'El XML no contiene el tag o no existe información del Número de documento de identificación del OSE', + '2823' => 'El valor ingresado como Número de documento de identificación del OSE es incorrecto', + '2824' => 'El certificado digital con el que se firma el CDR OSE no corresponde con el RUC del OSE informado', + '2825' => 'El Número de documento de identificación del OSE informado no esta registrado en el padron.', + '2826' => 'El XML no contiene el atributo schemeID o no existe información del Tipo de documento de identidad del OSE', + '2827' => 'El valor ingresado como Tipo de documento de identidad del OSE es incorrecto', + '2828' => 'El XML no contiene el atributo schemeAgencyName o no existe información del Tipo de documento de identidad del OSE', + '2829' => 'El valor ingresado en el atributo schemeAgencyName del Tipo de documento de identidad del OSE es incorrecto', + '2830' => 'El XML no contiene el atributo schemeURI o no existe información del Tipo de documento de identidad del OSE', + '2831' => 'El valor ingresado en el atributo schemeURI del Tipo de documento de identidad del OSE es incorrecto', + '2832' => 'El XML no contiene el tag o no existe información del Código de Respuesta', + '2833' => 'El valor ingresado como Código de Respuesta es incorrecto', + '2834' => 'El XML no contiene el atributo listAgencyName o no existe información del Código de Respuesta', + '2835' => 'El valor ingresado en el atributo listAgencyName del Código de Respuesta es incorrecto', + '2836' => 'El XML no contiene el tag o no existe información de la Descripción de la Respuesta', + '2837' => 'El valor ingresado como Descripción de la Respuesta es incorrecto', + '2838' => 'El valor ingresado como Código de observación es incorrecto', + '2839' => 'El XML no contiene el atributo listURI o no existe información del Código de observación', + '2840' => 'El valor ingresado en el atributo listURI del Código de observación es incorrecto', + '2841' => 'El XML no contiene el tag o no existe información de la Descripción de la observación', + '2842' => 'El valor ingresado como Descripción de la observación es incorrecto', + '2843' => 'Se ha encontrado mas de una Descripción de la observación, tag cac:Response/cac:Status/cbc:StatusReason', + '2844' => 'No se encontro el tag cbc:StatusReasonCode cuando ingresó la Descripción de la observación', + '2845' => 'El XML contiene mas de un elemento cac:DocumentReference', + '2846' => 'El XML no contiene informacion en el tag cac:DocumentReference/cbc:ID', + '2848' => 'El valor ingresado como Serie y número del comprobante no corresponde con el del comprobante', + '2849' => 'El XML no contiene el tag o no existe información de la Fecha de emisión del comprobante', + '2851' => 'El valor ingresado como Fecha de emisión del comprobante no corresponde con el del comprobante', + '2852' => 'El XML no contiene el tag o no existe información de la Hora de emisión del comprobante', + '2853' => 'El valor ingresado como Hora de emisión del comprobante no cumple con el patrón hh:mm:ss.sssss', + '2854' => 'El valor ingresado como Hora de emisión del comprobante no corresponde con el del comprobante', + '2855' => 'El XML no contiene el tag o no existe información del Tipo de comprobante', + '2856' => 'El valor ingresado como Tipo de comprobante es incorrecto', + '2857' => 'El valor ingresado como Tipo de comprobante no corresponde con el del comprobante', + '2858' => 'El XML no contiene el tag o no existe información del Hash del comprobante', + '2859' => 'El valor ingresado como Hash del comprobante es incorrecto', + '2860' => 'El valor ingresado como Hash del comprobante no corresponde con el del comprobante', + '2861' => 'El XML no contiene el tag o no existe información del Número de documento de identificación del emisor', + '2862' => 'El valor ingresado como Número de documento de identificación del emisor es incorrecto', + '2863' => 'El valor ingresado como Número de documento de identificación del emisor no corresponde con el del comprobante', + '2864' => 'El XML no contiene el atributo o no existe información del Tipo de documento de identidad del emisor', + '2865' => 'El valor ingresado como Tipo de documento de identidad del emisor es incorrecto', + '2866' => 'El valor ingresado como Tipo de documento de identidad del emisor no corresponde con el del comprobante', + '2867' => 'El XML no contiene el tag o no existe información del Número de documento de identificación del receptor', + '2868' => 'El valor ingresado como Número de documento de identificación del receptor es incorrecto', + '2869' => 'El valor ingresado como Número de documento de identificación del receptor no corresponde con el del comprobante', + '2870' => 'El XML no contiene el atributo o no existe información del Tipo de documento de identidad del receptor', + '2871' => 'El valor ingresado como Tipo de documento de identidad del receptor es incorrecto', + '2872' => 'El valor ingresado como Tipo de documento de identidad del receptor no corresponde con el del comprobante', + '2873' => 'El PSE informado no se encuentra vinculado con el emisor del comprobante en la fecha de comprobación', + '2874' => 'El Número de documento de identificación del OSE informado no se encuentra vinculado al emisor del comprobante en la fecha de comprobación', + '2875' => 'ID - El dato ingresado no cumple con el formato R#-fecha-correlativo', + '2876' => 'La fecha de recepción del comprobante por OSE debe ser mayor a la fecha de emisión del comprobante enviado', + '2880' => 'Es obligatorio ingresar el peso bruto total de la guía', + '2881' => 'Es obligatorio indicar la unidad de medida del Peso Total de la guía', + '2883' => 'Es obligatorio indicar la unidad de medida del ítem', + '2891' => 'El código ingresado como tasa de percepción no existe en el catálogo', + '2892' => 'El valor del tag no cumple con el formato establecido', + '2893' => 'Debe consignar um importe igual o mayor a cero (0)', + '2894' => 'El valor del tag no cumple con el formato establecido', + '2895' => 'Debe consignar um importe igual o mayor a cero (0)', + '2896' => 'El código ingresado como estado del ítem no existe en el catálogo', + '2897' => 'Debe consignar um importe igual o mayor a cero (0)', + '2900' => 'El Número de comprobante de fin de rango debe ser igual o mayor al de inicio', + '2901' => 'El nombre comercial del emisor no cumple con el formato establecido', + '2902' => 'La urbanización del domicilio fiscal del emisor no cumple con el formato establecido', + '2903' => 'La provincia del domicilio fiscal del emisor no cumple con el formato establecido', + '2904' => 'El departamento del domicilio fiscal del emisor no cumple con el formato establecido', + '2905' => 'El distrito del domicilio fiscal del emisor no cumple con el formato establecido', + '2906' => 'El nombre comercial del proveedor no cumple con el formato establecido', + '2907' => 'La urbanización del domicilio fiscal del proveedor no cumple con el formato establecido', + '2908' => 'La provincia del domicilio fiscal del proveedor no cumple con el formato establecido', + '2909' => 'El departamento del domicilio fiscal del proveedor no cumple con el formato establecido', + '2910' => 'El distrito del domicilio fiscal del proveedor no cumple con el formato establecido', + '2911' => 'El nombre comercial del cliente no cumple con el formato establecido', + '2912' => 'La urbanización del domicilio fiscal del cliente no cumple con el formato establecido', + '2913' => 'La provincia del domicilio fiscal del cliente no cumple con el formato establecido', + '2914' => 'El departamento del domicilio fiscal del cliente no cumple con el formato establecido', + '2915' => 'El distrito del domicilio fiscal del cliente no cumple con el formato establecido', + '2916' => 'La dirección completa y detallada del domicilio fiscal del emisor no cumple con el formato establecido', + '2917' => 'Debe corresponder a algún valor válido establecido en el catálogo 13', + '2918' => 'La dirección completa y detallada del domicilio fiscal del proveedor no cumple con el formato establecido', + '2919' => 'La dirección completa y detallada del domicilio fiscal del cliente no cumple con el formato establecido', + '2920' => 'Dato no cumple con formato de acuerdo al número de comprobante.', + '4000' => '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 baja', + '4035' => 'El comprobante fue registrado previamente como rechazado', + '4036' => 'La fecha de emisión de los rangos debe ser menor o igual a la fecha de generación del resumen', + '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', + '4041' => 'El codigo de pais debe ser PE', + '4042' => 'Para sac:SUNATTransaction/cbc:ID, se está usando un valor que no existe en el catálogo. Nro. 17.', + '4043' => 'Para el TransportModeCode, se está usando un valor que no existe en el catálogo Nro. 18.', + '4044' => 'PrepaidAmount: Monto total anticipado no coincide con la sumatoria de los montos por documento de anticipo.', + '4045' => 'No debe consignar los datos del transportista para la modalidad de transporte 02 – Transporte Privado.', + '4046' => 'No debe consignar información adicional en la dirección para los locales anexos.', + '4047' => 'sac:SUNATTransaction/cbc:ID debe ser igual a 10 o igual a 11 cuando ingrese información para sustentar el traslado.', + '4048' => 'cac:AdditionalDocumentReference/cbc:DocumentTypeCode - Contiene un valor no valido para documentos relacionado.', + '4049' => 'El numero de DNI del receptor no existe.', + '4050' => 'El numero de RUC del proveedor no existe.', + '4051' => 'El RUC del proveedor no esta activo.', + '4052' => 'El RUC del proveedor no esta habido.', + '4053' => 'Proveedor no debe ser igual al remitente o destinatario.', + '4054' => 'La guía no debe contener datos del proveedor.', + '4055' => 'El XML no contiene el atributo o no existe información en descripcion del motivo de traslado.', + '4056' => 'El XML no contiene el tag o no existe información en el tag SplitConsignmentIndicator.', + '4057' => 'GrossWeightMeasure – El dato ingresado no cumple con el formato establecido.', + '4058' => 'cbc:TotalPackageQuantity - El dato ingresado no cumple con el formato establecido.', + '4059' => 'Numero de bultos o pallets - información válida para importación.', + '4060' => 'La guía no debe contener datos del transportista.', + '4061' => 'El numero de RUC del transportista no existe.', + '4062' => 'El RUC del transportista no esta activo.', + '4063' => 'El RUC del transportista no esta habido.', + '4064' => '/DespatchAdvice/cac:Shipment/cac:ShipmentStage/cac:TransportMeans/cbc:RegistrationNationalityID - El dato ingresado no cumple con el formato establecido.', + '4065' => 'cac:TransportMeans/cbc:TransportMeansTypeCode - El valor ingresado como tipo de unidad de transporte es incorrecta.', + '4066' => 'El numero de DNI del conductor no existe.', + '4067' => 'El XML no contiene el tag o no existe informacion del ubigeo del punto de llegada.', + '4068' => 'Direccion de punto de lllegada - El dato ingresado no cumple con el formato establecido.', + '4069' => 'CityName - El dato ingresado no cumple con el formato establecido.', + '4070' => 'District - El dato ingresado no cumple con el formato establecido.', + '4071' => 'Numero de Contenedor - El dato ingresado no cumple con el formato establecido.', + '4072' => 'Numero de contenedor - información válida para importación.', + '4073' => 'TransEquipmentTypeCode - El valor ingresado como tipo de contenedor es incorrecta.', + '4074' => 'Numero Precinto - El dato ingresado no cumple con el formato establecido.', + '4075' => 'El XML no contiene el tag o no existe informacion del ubigeo del punto de partida.', + '4076' => 'Direccion de punto de partida - El dato ingresado no cumple con el formato establecido.', + '4077' => 'CityName - El dato ingresado no cumple con el formato establecido.', + '4078' => 'District - El dato ingresado no cumple con el formato establecido.', + '4079' => 'Código de Puerto o Aeropuerto - El dato ingresado no cumple con el formato establecido.', + '4080' => 'Tipo de Puerto o Aeropuerto - El dato ingresado no cumple con el formato establecido.', + '4081' => 'El XML No contiene El tag o No existe información del Numero de orden del item.', + '4082' => 'Número de Orden del Ítem - El orden del ítem no cumple con el formato establecido.', + '4083' => 'Cantidad - El dato ingresado no cumple con el formato establecido.', + '4084' => 'Descripción del Ítem - El dato ingresado no cumple con el formato establecido.', + '4085' => 'Código del Ítem - El dato ingresado no cumple con el formato establecido.', + '4086' => 'El emisor y el cliente son Agentes de percepción de combustible en la fecha de emisión.', + '4087' => 'El Comprobante de Pago Electrónico no está Registrado en los Sistemas de la SUNAT.', + '4088' => 'El Comprobante de Pago no está autorizado en los Sistemas de la SUNAT.', + '4089' => 'La operación con este cliente está excluida del sistema de percepción. Es agente de retención.', + '4090' => 'La operación con este cliente está excluida del sistema de percepción. Es entidad exceptuada de la percepción.', + '4091' => 'La operación con este proveedor está excluida del sistema de retención. Es agente de percepción, agente de retención o buen contribuyente.', + '4092' => 'El nombre comercial del emisor no cumple con el formato establecido', + '4093' => 'El ubigeo del emisor no cumple con el formato establecido o no es válido', + '4094' => 'La dirección completa y detallada del domicilio fiscal del emisor no cumple con el formato establecido', + '4095' => 'La urbanización del domicilio fiscal del emisor no cumple con el formato establecido', + '4096' => 'La provincia del domicilio fiscal del emisor no cumple con el formato establecido', + '4097' => 'El departamento del domicilio fiscal del emisor no cumple con el formato establecido', + '4098' => 'El distrito del domicilio fiscal del emisor no cumple con el formato establecido', + '4099' => 'El nombre comercial del cliente no cumple con el formato establecido', + '4100' => 'El ubigeo del cliente no cumple con el formato establecido o no es válido', + '4101' => 'La dirección completa y detallada del domicilio fiscal del cliente no cumple con el formato establecido', + '4102' => 'La urbanización del domicilio fiscal del cliente no cumple con el formato establecido', + '4103' => 'La provincia del domicilio fiscal del cliente no cumple con el formato establecido', + '4104' => 'El departamento del domicilio fiscal del cliente no cumple con el formato establecido', + '4105' => 'El distrito del domicilio fiscal del cliente no cumple con el formato establecido', + '4106' => 'El nombre comercial del proveedor no cumple con el formato establecido', + '4107' => 'El ubigeo del proveedor no cumple con el formato establecido o no es válido', + '4108' => 'La dirección completa y detallada del domicilio fiscal del proveedor no cumple con el formato establecido', + '4109' => 'La urbanización del domicilio fiscal del proveedor no cumple con el formato establecido', + '4110' => 'La provincia del domicilio fiscal del proveedor no cumple con el formato establecido', + '4111' => 'El departamento del domicilio fiscal del proveedor no cumple con el formato establecido', + '4112' => 'El distrito del domicilio fiscal del proveedor no cumple con el formato establecido', + '4120' => 'El XML no contiene o no existe informacion en el tag SUNATEmbededDespatchAdvice de Información que sustenta el traslado.', + '4121' => 'Para el tipo de operación no se consigna el tag SUNATEmbededDespatchAdvice de Información de sustento de traslado.', + '4122' => 'Factura con información que sustenta el traslado, debe registrar leyenda 2008.', + '4123' => 'sac:SUNATEmbededDespatchAdvice - Para Factura Electrónica Remitente no se consigna datos en documento de referencia(cac:OrderReference).', + '4124' => 'cac:Shipment - Para Factura Electrónica Remitente debe indicar sujeto que realiza el traslado de bienes (1: Vendendor o 2: Comprador).', + '4125' => 'cac:Shipment - Para Factura Electrónica Remitente debe indicar modalidad de transporte para el sustento de traslado de bienes (cbc:TransportModeCode).', + '4126' => 'cac:Shipment - Debe indicar fecha de inicio de traslado para el sustento de traslado de bienes (cac:TransitPeriod/cbc:StartDate).', + '4127' => 'cac:Shipment - Para Factura Electrónica Remitente debe indicar el punto de partida para el sustento de traslado de bienes (cac:DeliveryAddrees).', + '4128' => 'cac:Shipment - Para Factura Electrónica Remitente debe indicar el punto de llegada para el sustento de traslado de bienes (cac:OriginAddress).', + '4129' => 'sac:SUNATEmbededDespatchAdvice - Para Factura Electrónica Remitente no se consigna indicador de subcontratación (cbc:MarkAttentionIndicator).', + '4130' => 'sac:SUNATEmbededDespatchAdvice - Para Factura Electrónica Remitente debe consignar datos en documento de referencia (cac:OrderReference).', + '4131' => 'sac:SUNATEmbededDespatchAdvice - Para Factura Electrónica Transportista no se consigna destinatario para el sustento de traslado de bienes (cac:DeliveryCustomerParty).', + '4132' => 'cac:Shipment - Para Factura Electrónica Transportista no se consigna sujeto que realiza el traslado (cbc:HandlingCode).', + '4133' => 'cac:Shipment - Para Factura Electrónica Transportista no se consigna peso total de la factura para el sustento de traslado de bienes (cbc:GrossWeightMeasure).', + '4134' => 'cac:Shipment - Para Factura Electrónica Transportista no se consigna modalidad de transporte para el sustento de traslado de bienes (cbc:TransportModeCode).', + '4135' => 'cac:Shipment - Para Factura Electrónica Transportista no se consigna punto de llegada para el sustento de traslado de bienes (cac:DeliveryAddress).', + '4136' => 'cac:Shipment - Para Factura Electrónica transportista no se consigna punto de partida para el sustento de traslado de bienes (cac:OriginAddress).', + '4137' => 'cac:OrderReference - Debe consignar número de documento de referencia que sustenta el traslado (./cbc:ID).', + '4138' => 'cac:OrderReference - Debe consignar tipo de documento de referencia que sustenta el traslado (./cbc:OrderTypeCode).', + '4139' => 'cac:OrderReference - Tipo de documento de referencia que sustenta el traslado no válido (01 – Factura o 09 – Guía de Remisión).', + '4140' => 'cac:OrderReference - Serie-Numero ingresado en documento de referencia que sustenta el traslado no cumple con el formato establecido.', + '4141' => 'cac:OrderReference - Debe consignar RUC emisor del documento de referencia que sustenta el traslado (./cac:DocumentReference/cac:IssuerParty/cac:PartyIdentification/cbc:ID).', + '4142' => 'cac:OrderReference - RUC emisor del documento de referencia que sustenta el traslado no cumple con el formato establecido.', + '4143' => 'cac:OrderReference – RUC Emisor de documento de referencia que sustenta el traslado no existe o se encuentra dado de baja.', + '4144' => 'cac:OrderReference – Documento de Referencia ingresado no corresponde a un comprobante electrónico declarado y activo en SUNAT.', + '4145' => 'cac:OrderReference – Documento de Referencia ingresado no corresponde comprobante autorizado por SUNAT.', + '4146' => 'cac:OrderReference - Nombre o razon social del emisodr de referencia que sustenta el traslado de bienes no cumple con un formato válido.', + '4147' => 'cac:DeliveryCustomerParty - Debe consignar numero de documento de identidad del destinatario (cbc:CustomerAssignedAccountID).', + '4148' => 'cac:DeliveryCustomerParty - Debe consignar tipo de documento de identidad del destinatario (cbc:CustomerAssignedAccountID/@schemeID).', + '4149' => 'cac:DeliveryCustomerParty - Tipo de documento de identidad del destinatario no válido (Catálogo N° 06).', + '4150' => 'cac:DeliveryCustomerParty - Numero de documento de identidad del destinatario no cumple con un formato válido.', + '4151' => 'cac:DeliveryCustomerParty - Debe consignar apellidos y nombres, denominación o razón social del destinatario (cac:Party/cac:PartyLegalEntity/cbc:RegistrationName).', + '4152' => 'cac:DeliveryCustomerParty - Nombre o razon social del destinatario no cumple con un formato válido.', + '4153' => 'cbc:HandlingCode - Sujeto que realiza el traslado no es valido.', + '4154' => 'cbc:GrossWeightMeasure@unitCode: El valor ingresado en la unidad de medida para el peso bruto total no es correcta (KGM).', + '4155' => 'GrossWeightMeasure – El valor ingresado no cumple con el estandar.', + '4156' => 'Debe ingresar la totalidad de la información requerida al transportista.', + '4157' => 'No existe información en el tag datos de conductores.', + '4158' => 'No existe información en el tag datos de vehículos.', + '4159' => 'No es necesario consignar los datos del transportista para una operación de Transporte Privado.', + '4160' => 'cac:CarrierParty: Debe consignar número de documento de identidad del transportista.', + '4161' => 'cac:CarrierParty: Debe consignar tipo de documento de identidad del transportista.', + '4162' => 'cac:CarrierParty: Tipo de documento de identidad del transportista no válido (06 - RUC).', + '4163' => 'cac:CarrierParty: Numero de documento de identidad del transportista no cumple con un formato válido.', + '4164' => 'cac:CarrierParty: Debe consignar apellidos y nombres, denominación o razón social del transportista.', + '4165' => 'cac:CarrierParty: nombre o razon social del transportista no cumple con un formato válido.', + '4166' => 'cac: TransportHandlingUnit: Numero de placa (cbc:ID) no coincide con el numero de placa del vehiculo prinicipal.', + '4167' => 'cac:RoadTransport/cbc:LicensePlateID: Numero de placa del vehículo no cumple con el formato válido.', + '4168' => 'cac: TransportHandlingUnit: Numero de placa del vehículo principal no existe o no cumple con el formato válido (cbc:ID).', + '4169' => 'cac:TransportEquipment: debe consignar al menos un vehiculo secundario.', + '4170' => 'cac:TransportEquipment: Numero de placa del vehículo principal no existe o no cumple con el formato válido (cbc:ID).', + '4171' => 'cac:DriverPerson: Debe consignar número de documento de identidad del conductor (cbc:ID).', + '4172' => 'cac:DriverPerson: Debe consignar tipo de documento de identidad del conductor (cbc:ID/@schemeID).', + '4173' => 'cac:DriverPerson: Tipo de documento de identidad del conductor no válido (Catalogo Nro 06).', + '4174' => 'cac:DriverPerson: Numero de documento de identidad del conductor no cumple con el formato válido.', + '4175' => 'cac:DeliveryAddress: Debe consignar código de ubigeo de punto de llegada (cbc:ID).', + '4176' => 'cac:DeliveryAddress: Código de ubigeo de punto de llegada no cumple con el formato válido.', + '4177' => 'cac:DeliveryAddress: Debe consignar código de ubigeo válido (Catálogo N° 13).', + '4178' => 'cac:DeliveryAddress: Debe consignar Dirección del punto de llegada (cbc:StreetName).', + '4179' => 'cac:DeliveryAddress: Dirección completa y detallada del punto de llegada no cumple con el formato válido.', + '4180' => 'cac:OriginAddress: Debe consignar código de ubigeo de punto de partida (cbc:ID).', + '4181' => 'cac:OriginAddress: Código de ubigeo de punto de llegada no cumple con el formato válido.', + '4182' => 'cac:OriginAddress: Debe consignar código de ubigeo válido (Catálogo N° 13).', + '4183' => 'cac:OriginAddress: Debe consignar Dirección detallada del punto de partida (cbc:StreetName).', + '4184' => 'cac:OriginAddres: Dirección completa y detallada del punto de partida no cumple con el estandar.', + '4185' => 'cac:OrderReference - Serie y numero no se encuentra registrado como baja por cambio de destinatario.', + '4186' => 'cbc:Note - El campo observaciones supera la cantidad maxima especificada (250 carácteres).', + '4187' => 'cac:OrderReference - El campo Tipo de documento (descripción) supera la cantidad maxima especificada (50 carácteres).', + '4188' => 'El XML no contiene el atributo o no existe información del nombre o razon social del tercero relacionado.', + '4189' => 'El valor ingresado como tipo de documento del nombre o razon social del tercero relacionado es incorrecto.', + '4190' => 'El valor ingresado como descripcion de motivo de traslado no cumple con el estandar.', + '4191' => 'Para el motivo de traslado, no se consigna información en el numero de DAM.', + '4192' => 'Para el motivo de traslado, no se consigna información del manifiesto de carga.', + '4193' => 'El valor ingresado como indicador de transbordo programado no cumple con el estandar.', + '4194' => 'El XML no contiene el atributo o no existe información en peso bruto total de la guia.', + '4195' => 'Numero de bultos o pallets es una información válida solo para importación.', + '4196' => 'La fecha de recepción en SUNAT es mayor a 1 hora(s) respecto a la fecha de comprobación por OSE', + '4197' => 'IssueTime - El dato ingresado no cumple con el patrón hh:mm:ss.sssss', + '4200' => 'Debe corresponder a algún valor válido establecido en el catálogo 13', + '4201' => 'EL monto del ISC se debe detallar a nivel de línea', + '4207' => 'El DNI debe tener 8 caracteres numéricos', + '4208' => 'Para el tipo de documento 4 o 7 sólo es permitido hasta 15 caracteres alfanuméricos', + '4230' => 'el Comprobante no debió ser observado.', + ]; +} \ No newline at end of file diff --git a/src/Validator/Loader/InvoiceLoader.php b/src/Validator/Loader/InvoiceLoader.php index c7f8ef6..a032314 100644 --- a/src/Validator/Loader/InvoiceLoader.php +++ b/src/Validator/Loader/InvoiceLoader.php @@ -20,16 +20,16 @@ public function load(ClassMetadata $metadata) $metadata->addPropertyConstraints('tipoDoc', [ new Assert\NotBlank(), new Assert\Choice([ - 'choices' => ['01', '03'], + 'choices' => ['01', '03'], 'message' => '1003' ]), ]); $metadata->addPropertyConstraints('serie', [ new Assert\NotBlank(), - new Assert\Regex(['pattern' => '/^[F|B][A-Z0-9]{3}$/']), + new Assert\Regex(['pattern' => '/^[F|B][A-Z0-9]{3}$/', 'message' => 'serie no cumple con el formato']), ]); $metadata->addPropertyConstraints('correlativo', [ new Assert\NotBlank(), - new Assert\Regex(['pattern' => '/^[0-9]{1,8}$/']), + new Assert\Regex(['pattern' => '/^[0-9]{1,8}$/', 'message' => 'correlativo no cumple con el formato']), ]); $metadata->addPropertyConstraints('fechaEmision', [ new Assert\NotBlank(), diff --git a/src/Validator/SymfonyValidator.php b/src/Validator/SymfonyValidator.php index b00afc0..15fc3e1 100644 --- a/src/Validator/SymfonyValidator.php +++ b/src/Validator/SymfonyValidator.php @@ -9,6 +9,10 @@ namespace Greenter\Validator; use Greenter\Model\DocumentInterface; +use Symfony\Component\Translation\Loader\ArrayLoader; +use Symfony\Component\Translation\MessageSelector; +use Symfony\Component\Translation\Translator; +use Symfony\Component\Translation\TranslatorInterface; use Symfony\Component\Validator\Validation; /** @@ -20,13 +24,19 @@ class SymfonyValidator implements DocumentValidatorInterface /** * SymfonyValidator constructor. + * @param TranslatorInterface|null $translator */ - public function __construct() + public function __construct(TranslatorInterface $translator = null) { + if ($translator == null) { + $translator = $this->getTranslator(); + } + $metaDataFactory = new CustomMetadataFactory(); $this->validator = Validation::createValidatorBuilder() ->setMetadataFactory($metaDataFactory) + ->setTranslator($translator) ->getValidator(); } @@ -39,4 +49,13 @@ public function validate(DocumentInterface $document) { return $this->validator->validate($document); } + + private function getTranslator() + { + $translator = new Translator('es_PE', new MessageSelector()); + $translator->addLoader('array', new ArrayLoader()); + $translator->addResource('array', CodeTranslate::$ErrorCodes, 'es_PE'); + + return $translator; + } } diff --git a/tests/Validator/CeReversionValidatorTest.php b/tests/Validator/CeReversionValidatorTest.php index 19ec15b..82551f6 100644 --- a/tests/Validator/CeReversionValidatorTest.php +++ b/tests/Validator/CeReversionValidatorTest.php @@ -27,12 +27,11 @@ public function testValidateReversion() public function testNotValidateReversion() { $reversion = $this->getReversion(); - $reversion->setCorrelativo('123234') - ->setFecComunicacion(null); + $reversion->setCorrelativo('123234'); $validator = $this->getValidator(); $errors = $validator->validate($reversion); - $this->assertEquals(2, count($errors)); + $this->assertEquals(1, count($errors)); } private function getReversion() diff --git a/tests/Validator/FeVoidedValidatorTest.php b/tests/Validator/FeVoidedValidatorTest.php index 367a738..b869999 100644 --- a/tests/Validator/FeVoidedValidatorTest.php +++ b/tests/Validator/FeVoidedValidatorTest.php @@ -27,12 +27,11 @@ public function testValidateVoided() public function testNotValidateVoided() { $voided = $this->getVoided(); - $voided->setCorrelativo('123342') - ->setFecComunicacion(null); + $voided->setCorrelativo('123342'); $validator = $this->getValidator(); $errors = $validator->validate($voided); - $this->assertEquals(2, count($errors)); + $this->assertEquals(1, count($errors)); } private function getVoided()