Resultado de Emisión de Comprobantes Fiscales por archivo de texto plano
Al procesar archivos de texto plano por medio de transferencia de archivos con nuestro SFTP, se puede obtener el resultado de procesamiento del archivo recibido por medio de otro archivo que puede ser en texto plano delimitado por pipes, o en XML. Éste archivo se puede depositar en una de las carpetas del SFTP para que puedas obtenerlo y trabajar con el.
Además de los dos formatos del reporte (TXT y XML), existen dos estructuras para cada uno dependiendo de las opciones de procesamiento que tengas configuradas en tu cuenta Reachcore: procesamiento con validación parcial (se procesan todos los Comprobantes del lote y se reportan los que sí pudieron generar CFDI), o procesamiento con validación estricta (se deja de procesar el lote si se encuentra un error al procesar el lote).
Archivo de texto plano TXT
El resultado del procesamiento del archivo de integración que tiene como salida un archivo de texto plano que ha sido procesado con una configuración de validación completa, tendrá el siguiente formato en donde cada campo se separa por un pipe:
Reporte de procesamiento con Validación completa
Resultados|[nombreArchivo]|[fechaDeRecepcion]|[formatoValido]|[mensajeError]
Comprobante|[rfcEmisor]|[rfcReceptor]|[serie]|[folio]|[estatus]|[detalleError/UUID]
...
Comprobante|[rfcEmisor]|[rfcReceptor]|[serie]|[folio]|[estatus]|[detalleError/UUID]
ErrorFormato|[linea]|[columna]|[descripcion]
...
ErrorFormato|[linea]|[columna]|[descripcion]
Posición | Campo | Tipo | Descripción |
---|---|---|---|
[Inicio línea] | Resultados | Indicador | Indica el inicio del archivo de resultado de procesamiento. Sólo aparece una vez por archivo |
1 | nombreArchivo | Campo | El nombre del archivo de integración que se procesó. |
2 | fechaDeRecepcion | Campo | Fecha en que el archivo se procesó en Reachcore |
3 | formatoValido | Campo | Bandera con valores booleanos (true o false ) que indica si el archivo procesado tuvo un formato válido |
4 | mensajeError | Campo | Mensaje de texto con la descripción del error |
[Inicio de línea] | ErrorFormato | Indicador | Indica un línea con detalle de error en sintaxis al procesar el archivo recibido. Puede aparecer varias veces dentro de un reporte |
1 | linea | Campo | Indica el número de línea en el archivo procesado en donde se encontró el error |
2 | columna | Campo | Indica el número de columna dentro del archivo procesado en donde se encontró el error |
3 | descripcion | Campo | Mensaje de texto con el mensaje de error |
[Inicio de línea] | Comprobante | Indicador | Indica una línea que contiene el resultado de procesar un Documento. Puede aparecer varias veces dentro de un reporte |
1 | rfcEmisor | Campo | Indica el RFC Emisor del Documento proporcionado en el archivo recibido |
2 | rfcReceptor | Campo | Indica el RFC Receptor del Documento proporcionado en el archivo recibido |
3 | serie | Campo | Indica la Serie empleada por el Emisor para identificar al Documento. Este campo se entrega vacío si no se especificó una Serie |
4 | folio | Campo | Indica el Folio empleado por el Emisor para identificar al Documento. Este campo se entrega vacío si no se especificó un Folio |
5 | estatus | Campo | Indica si se pudo generar el Documento. Este tipo de error es distinto al que se reporta en la líneas de ErrorFormato pues aunque un Documento tenga un formato válido: existen reglas para emisión de Comprobantes Fiscales Digitales que se deben considerar al llevar a cabo el timbrado. Si un Documento no cumple con una de las reglas establecidas por la autoridad, el detalle se reportará en las líneas Comprobante . Valores posibles: Emitido o Error |
6 | detalleError/UUID | Campo | Si en el Campo estatus se encontró el valor Emitido : Este campo tiene el Folio Fiscal (UUID) del Documento generado. Si en el Campo estatus se encontró el valor Error : Este campo contiene el detalle del error al procesar el Documento. |
Ejemplo donde hay error por estructura inválida
Resultados|miarchivo.txt|2014-01-01T00:00:00|false|Estructura inválida
ErrorFormato|4|26|Error de sintáxis, se esperaba un salto de línea, pero no se encontró ningún valor.
Ejemplo donde hay un error por archivo desconocido
Resultados|miarchivo.txt|2014-01-01T00:00:00|False|El servicio está configurado para enviar archivos de Reachcore, pero se ha enviado un archivo DESCONOCIDO.
Ejemplo donde hay errores por Comprobantes duplicados dentro del mismo archivo
Resultados|miarchivo.txt|2014-01-01T00:00:00|True|
Comprobante|AAA010101AAA|XEXX010101000|A|22222|Emitido|89b63088-b6ca-444e-99fd-0f4e02e56d54
Comprobante|AAA010101AAA|XEXX010101000|A|11111|Error|Hash duplicado
Reporte de procesamiento con Validación parcial
Si en el archivo de entrada, al menos uno de los Documentos que se envían para emitir hace uso del indicador ID_CONTROL en la estructura de la línea DOCUMENTO, se genera un reporte de procesamiento con hasta 10 posiciones separadas por pipes. Si en el archivo de entrada no se usa el indicador ID_CONTROL en la estructura de la línea DOCUMENTO, se genera un reporte de procesamiento con hasta 9 posiciones (no se reporta ni se reserva la posición asociada al ID Control).
Si tu cuenta Reachcore está configurada para llevar a cabo procesamiento parcial, el reporte que se generará tendrá la siguiente estructura:
Resultados|[nombreArchivo]|[fechaDeRecepcion]
Documento|[secuencial]|[status]|[estructuraValida]|ErrorFormato|[linea]|[columna]|[mensaje]
...
Documento|[secuencial]|[status]|[estructuraValida]|Comprobante|[rfcEmisor]|[rfcReceptor]|[serie]|[folio]|[detalleError/UUID]
...
Posición | Campo | Tipo | Descripción |
---|---|---|---|
[Inicio línea] | Resultados | Indicador | Indica el inicio del archivo de resultado de procesamiento. Sólo aparece una vez por archivo |
1 | nombreArchivo | Campo | El nombre del archivo de integración que se procesó. |
2 | fechaDeRecepcion | Campo | Fecha en que el archivo se procesó en Reachcore |
[Inicio de línea] | Documento | Indicador | Indica el inicio del detalle de procesar un Comprobante. Puede aparecer varias veces dentro de un reporte |
1 | secuencial | Campo | Indica el número de Comprobante (según su posición en el archivo recibido) al que se refiere el registro |
2 | status | Campo | Indica si se pudo generar el Documento. Valores posibles: ERROR o EMITIDO |
3 | estructuraValida | Campo | Indica si el Documento a procesar tiene una estructura válida. Valores permitidos true o false |
4 | ErrorFormato | Indicador | Indica si el Documento asociado al secuencial tuvo un error asociado a la estructura en la que se recibe la información del Documento |
5 | linea | Campo | Indica el número de línea en el archivo procesado en donde se encontró el error |
6 | columna | Campo | Indica el número de columna dentro del archivo procesado en donde se encontró el error |
7 | mensaje | Campo | Mensaje de texto con el mensaje de error |
4 | Comprobante | Indicador | Indica el inicio de información asociada al Documento que corresponde al secuencial |
5 | rfcEmisor | Campo | Indica el RFC Emisor del CFDI |
6 | rfcReceptor | Campo | Indica el RFC Receptor del CFDI |
7 | serie | Campo | Indica la Serie empleada por el Emisor para identificar al Comprobante. Este campo se entrega vacío si no se especificó una Serie |
8 | folio | Campo | Indica el Folio empleado por el Emisor para identificar al Comprobante. Este campo se entrega vacío si no se especificó un Folio |
9 | detalleError/UUID | Campo | Si en el Campo estatus se encontró el valor Emitido : Este campo tiene el Folio Fiscal (UUID) del Comprobante generado. Si en el Campo estatus se encontró el valor Error : Este campo contiene el detalle del error al procesar el Comprobante. |
Ejemplo de reporte de procesamiento con validaciones parciales del lote:
Resultados|miarchivo.txt|2018-11-06T01:00:00
Documento|1|ERROR|false|ErrorFormato|4|26|Error de sintáxis, se esperaba un salto de línea, pero no se encontró ningún valor.
Documento|2|EMITIDO|true|Comprobante|AAA010101AAA|XAXX010101000|NOTA|000011|FDAA9BB8-24A1-426A-B39F-DEA945B41718
Documento|3|EMITIDO|true|Comprobante|AAA010101AAA|XAXX010101000|FACTURA|000012|01581873-D34A-440A-8F7F-59A6206DAB7A
Si tu cuenta Reachcore está configurada para llevar a cabo procesamiento parcial, el reporte que se generará tendrá la siguiente estructura:
Resultados|[nombreArchivo]|[fechaDeRecepcion]
Documento|[secuencial]|[status]|[estructuraValida]|ErrorFormato|[linea]|[columna]|[mensaje]
...
Documento|[secuencial]|[status]|[estructuraValida]|Comprobante|[rfcEmisor]|[rfcReceptor]|[serie]|[folio]|[IdControl]|[detalleError/UUID]
...
Posición | Campo | Tipo | Descripción |
---|---|---|---|
[Inicio línea] | Resultados | Indicador | Indica el inicio del archivo de resultado de procesamiento. Sólo aparece una vez por archivo |
1 | nombreArchivo | Campo | El nombre del archivo de integración que se procesó. |
2 | fechaDeRecepcion | Campo | Fecha en que el archivo se procesó en Reachcore |
[Inicio de línea] | Documento | Indicador | Indica el inicio del detalle de procesar un Comprobante. Puede aparecer varias veces dentro de un reporte |
1 | secuencial | Campo | Indica el número de Comprobante (según su posición en el archivo recibido) al que se refiere el registro |
2 | status | Campo | Indica si se pudo generar el Documento. Valores posibles: ERROR o EMITIDO |
3 | estructuraValida | Campo | Indica si el Documento a procesar tiene una estructura válida. Valores permitidos true o false |
4 | ErrorFormato | Indicador | Indica si el Documento asociado al secuencial tuvo un error asociado a la estructura en la que se recibe la información del Documento |
5 | linea | Campo | Indica el número de línea en el archivo procesado en donde se encontró el error |
6 | columna | Campo | Indica el número de columna dentro del archivo procesado en donde se encontró el error |
7 | mensaje | Campo | Mensaje de texto con el mensaje de error |
4 | Comprobante | Indicador | Indica el inicio de información asociada al Documento que corresponde al secuencial |
5 | rfcEmisor | Campo | Indica el RFC Emisor del CFDI |
6 | rfcReceptor | Campo | Indica el RFC Receptor del CFDI |
7 | serie | Campo | Indica la Serie empleada por el Emisor para identificar al Comprobante. Este campo se entrega vacío si no se especificó una Serie |
8 | folio | Campo | Indica el Folio empleado por el Emisor para identificar al Comprobante. Este campo se entrega vacío si no se especificó un Folio |
9 | idControl | Campo | Indica el ID Control empleado por el Emisor para identificar al Comprobante. Este campo se entrega vacío si no se especificó un ID Control |
10 | detalleError/UUID | Campo | Si en el Campo estatus se encontró el valor Emitido : Este campo tiene el Folio Fiscal (UUID) del Comprobante generado. Si en el Campo estatus se encontró el valor Error : Este campo contiene el detalle del error al procesar el Comprobante. |
Ejemplo de reporte de procesamiento con validaciones parciales del lote cuando todos los Documentos usaron IDControl:
Resultados|PruebaConIdControl.txt|2019-08-19T12:18:42
Documento|1|EMITIDO|true|Comprobante|LAN8507268IA|CACX7605101P8|A|200|190819A200I|8CDADA54-9A9B-46D4-A9BD-07F776AC087C
Documento|2|EMITIDO|true|Comprobante|LAN8507268IA|LAN7008173R5|B|201|190819B201E|A4DFA715-5305-4E0D-8F96-C9ACDBA8074F
Ejemplo de reporte de procesamiento con validaciones parciales del lote cuando sólo uno de los Documentos usó IDControl:
Resultados|PruebaMix.txt|2019-09-19T22:07:11
Documento|1|ERROR|false|ErrorFormato|48|1|Error de sintáxis, se esperaba un indicador conocido(válido), pero se ha encontrado el valor 'C'.
Documento|2|EMITIDO|true|Comprobante|LAN7008173IA|CACX7605101P8|A|711|190919A711I|842812A7-13EA-4AC7-878B-3BCDEA52A159
Documento|3|EMITIDO|true|Comprobante|LAN7008173IA|LAN7008173R5|A|712| |854071FF-89B5-43BE-B179-45153CB1C510
Archivo de resultados XML
Validación completa
Reporte de procesamiento sin errores
<?xml version="1.0" encoding="utf-8"?>
<Resultados xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nombreArchivo="CFDI33_FACTURAS_SIN_ERROR.txt" xmlns="urn:schemas.reachcore.com:resultados-archivo:5.0">
<Resultado fechaDeRecepcion="2019-01-04T16:03:58" formatoValido="true">
<Comprobantes>
<Comprobante>
<Campo llave="rfcEmisor" valor="AAA010101AAA" />
<Campo llave="rfcReceptor" valor="XAXX010101000" />
<Campo llave="serie" valor="TST" />
<Campo llave="folio" valor="20190103190107" />
<Campo llave="UUID" valor="EDA1197A-8B09-4E78-AEA2-3869211B9625" />
<Campo llave="status" valor="EMITIDO" />
<Campo llave="Version" valor="3.3" />
</Comprobante>
<Comprobante>
<Campo llave="rfcEmisor" valor="AAA010101AAA" />
<Campo llave="rfcReceptor" valor="XAXX010101000" />
<Campo llave="serie" valor="TST" />
<Campo llave="folio" valor="20190103190108" />
<Campo llave="UUID" valor="4501F25F-890A-49BD-AA62-26B94150E1D9" />
<Campo llave="status" valor="EMITIDO" />
<Campo llave="Version" valor="3.3" />
</Comprobante>
<Comprobante>
<Campo llave="rfcEmisor" valor="AAA010101AAA" />
<Campo llave="rfcReceptor" valor="XAXX010101000" />
<Campo llave="serie" valor="TST" />
<Campo llave="folio" valor="20190103190109" />
<Campo llave="UUID" valor="94965F70-D27B-41F2-8594-6EDE60794F8E" />
<Campo llave="status" valor="EMITIDO" />
<Campo llave="Version" valor="3.3" />
</Comprobante>
</Comprobantes>
</Resultado>
</Resultados>
Reporte de procesamiento con errores de sintaxis
<?xml version="1.0" encoding="utf-8"?>
<Resultados xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nombreArchivo="CFDI33_FACTURAS_ERROR_PARSEO.txt" xmlns="urn:schemas.reachcore.com:resultados-archivo:5.0">
<Resultado fechaDeRecepcion="2019-01-04T19:13:04" formatoValido="false">
<ErroresFormato mensajeError="Estructura inválida">
<ErrorFormato linea="3" columna="61" descripción="Error de Validación. El campo 'SubTotal' es requerido." />
<ErrorFormato linea="3" columna="68" descripción="Error de Validación. El campo 'Total' es requerido." />
<ErrorFormato linea="3" columna="75" descripción="Error de Validación. El campo 'LugarExpedicion' es requerido." />
</ErroresFormato>
</Resultado>
</Resultados>
Validación parcial
En la validación parcial, la estructura de respuesta puede tener información de errores de sintaxis, errores de parseo errores de emisión y emisiones exitosas:
<?xml version="1.0" encoding="utf-8"?>
<ReporteProcesamiento xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nombreArchivo="CFDI33_FACTURAS_CON_ERROR.txt">
<Resultado fechaDeRecepcion="2019-01-04T15:57:10">
<Documentos>
<Documento resultado="ERROR" secuencial="1" formatoValido="false">
<ErroresFormato mensajeError="Estructura inválida">
<ErrorFormato linea="3" columna="61" descripción="Error de Validación. El campo 'SubTotal' es requerido. " />
<ErrorFormato linea="3" columna="68" descripción="Error de Validación. El campo 'Total' es requerido. " />
<ErrorFormato linea="3" columna="75" descripción="Error de Validación. El campo 'LugarExpedicion' es requerido." />
</ErroresFormato>
</Documento>
<Documento resultado="ERROR" secuencial="2" formatoValido="false">
<ErroresFormato mensajeError="Estructura inválida">
<ErrorFormato linea="11" columna="54" descripción="Error de sintáxis, se esperaba un salto de línea, pero se ha encontrado el indicador 'AQUI ESTÁ EL ERROR'" />
</ErroresFormato>
</Documento>
<Documento resultado="ERROR" secuencial="3" formatoValido="true">
<Comprobante>
<Campo llave="rfcEmisor" valor="AAA010101AAA" />
<Campo llave="rfcReceptor" valor="XAXX010101000" />
<Campo llave="serie" valor="TST" />
<Campo llave="folio" valor="20190103190105" />
<Campo llave="status" valor="ERROR" />
<Campo llave="Version" valor="3.3" />
<Errores>
<Code>203</Code>
<Message>Estructura del comprobante inválida contra anexo20.</Message>
<InnerErrors>
<Error>
<Code>203</Code>
<Message>Error en la validación contra esquemas.</Message>
<Details>The 'ClaveProdServ' attribute is invalid - The value '11111111' is invalid according to its datatype 'http://www.sat.gob.mx/sitio_internet/cfd/catalogos:c_ClaveProdServ' - The Enumeration constraint failed.
</Details>
<InnerErrors />
</Error>
<Error>
<Code>CFDI33118</Code>
<Message>El campo Total no corresponde con la suma del subtotal, menos los descuentos aplicables, más las contribuciones recibidas (impuestos trasladados - federales o locales, derechos, productos, aprovechamientos, aportaciones de seguridad social, contribuciones de mejoras) menos los impuestos retenidos.</Message>
<Target>/cfdi:Comprobante/@Total</Target>
<Details>El valor del atributo (cfdi:Comprobante:Total) es [1.00], y no es igual al valor calculado [0.00] correspondiente a la sumatoria de los atributos (cfdi:Comprobante:Subtotal)[1.00] menos(cfdi:Comprobante/Descuento)[1.00] más (cfdi:Comprobante/Impuestos/TotalImpuestosTrasladados)[] menos (cfdi:Comprobante:Impuestos/@TotalImpuestosRetenidos)[] .</Details>
<InnerErrors />
</Error>
<Error>
<Code>CFDI33142</Code>
<Message>El campo ClaveProdServ, no contiene un valor del catálogo c_ClaveProdServ.</Message>
<Target>/cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto[position()=1]/@ClaveProdServ</Target>
<Details>El valor del atributo (cfdi:Comprobante:Conceptos:Concepto[1]:ClaveProdServ)[11111111] no se encontró en el catálogo c_ClaveProdServ.</Details>
<InnerErrors />
</Error>
</InnerErrors>
</Errores>
</Comprobante>
</Documento>
<Documento resultado="EMITIDO" secuencial="4" formatoValido="true">
<Comprobante>
<Campo llave="rfcEmisor" valor="AAA010101AAA" />
<Campo llave="rfcReceptor" valor="XAXX010101000" />
<Campo llave="serie" valor="TST" />
<Campo llave="folio" valor="20190103190106" />
<Campo llave="UUID" valor="37519FBA-F6B4-4C34-9A85-39815A4347E8" />
<Campo llave="status" valor="EMITIDO" />
<Campo llave="Version" valor="3.3" />
</Comprobante>
</Documento>
</Documentos>
</Resultado>
</ReporteProcesamiento>
Cualquier duda que llegaras a tener o para tener mayor información, por favor, envía un correo a MEX-soporte@sovos.com
Regresar