Integration file result process request (6.0)
Sovos offers to know your process results through a web service.
Content
- General Features
-
Method [
ReporteProcesamientoDeArchivo
]: Consultation of the process results through integration file- ReporteProcesamientoDeArchivo Request
- ReporteProcesamientoDeArchivo Response
General Features
You can tell the results of the integration files you issued to Sovos to be processed through a Web Service taking the name of the file as a parameter. If you sent several files with the same name, you would get a response for all the related registers, you can identify them by the time they were received to be processed in Sovos.
What do I need?
Para poder hacer uso del servicio se necesita lo siguiente:
- To generate an API key on your Sovos account, this is an identifier that authenticates the user on the platform web services. To generate an API key, check this article: Generating an API Key for web services.
- To use a Web Service published on the internet through a safe connection (SSL).
- To issue a CFDI per integration file.
- To know the name of the integration file.
Service location
The URLs for each of the environments are:
Environment | URL |
---|---|
UAT | https://oat.reachcore.com/api/ws/6.0/pacservices/Emision.svc/basic?wsdl |
Production | https://go.reachcore.com/api/ws/6.0/pacservices/Emision.svc/basic?wsdl |
Method [ReporteProcesamientoDeArchivo
]: Report of the integration file process results
If you issue CFDIs through an integration file and want to know the result of the process, you will use this method. You must take as a consultation value the name of the file you sent.
ReporteProcesamientoDeArchivo Request
Here is the necessary data to obtain the result of an integration file process in Sovos:
Element | Use | Description |
---|---|---|
ApiKey | Required | Authentication secret key generated in Sovos. |
NombreArchivo | Required | Name of the integration file (including the extension). |
Example of a request to consult the integration file result with the name Mi archivo facturacion.txt
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:urn="urn:reachcore.com:services:api:ws:pacservices:6.0">
<soapenv:Header>
<cus:ApiKey>51e9d1.......03391008</cus:ApiKey>
</soapenv:Header>
<soapenv:Body>
<urn:ReporteProcesamientoDeArchivoRequest>
<urn:NombreArchivo>Mi archivo facturacion.txt</urn:NombreArchivo>
</urn:ReporteProcesamientoDeArchivoRequest>
</soapenv:Body>
</soapenv:Envelope>
ReporteProcesamientoDeArchivo Response
There are 2 ways of processing the integration file: full validation or individual validation; it depends on the configuration of your account to validate the integration file.
Transaction was successful
Response - Full validation of the integration file.
Sovos can perform the full validation of the integration file. Sovos will process the integration file when all data is correct.
As a response, you will obtain the following elements:
Element | Attribute | Description |
---|---|---|
ReporteProcesamiento | nombreArchivo | Name of the consulted integration file. |
Resultado | --- | This element can be repeated as many times as integration files were processed. |
Resultado | fechaDeRecepcion | File process date. |
Resultado | formatoValido | Indicates if the structure of the integration file is correct (true /false ) |
If the value of formatoValido is false
, you will see the following for the element ErroresFormato:
Element | Attribute | Description |
---|---|---|
ErroresFormato | mensajeError | Describes the error |
ErrorFormato | --- | This element can be repeated as many times as there are errors in the format. |
ErrorFormato | linea | Indicates the file line where the error was found. |
ErrorFormato | columna | Indicates the column line where the error was found. |
ErrorFormato | descripcion | Shows the error description. |
Example of a response for the integration file with the name Mi archivo facturacion.txt which was processed on November 14 of 2017 at 18:31:11 hrs., the formatoValido is false
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ReporteProcesamientoDeArchivoResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
<ReporteProcesamiento nombreArchivo="Mi archivo facturacion.txt">
<Resultado fechaDeRecepcion="2017-11-14T18:31:11" formatoValido="false">
<ErroresFormato mensajeError="Estructura inválida">
<ErrorFormato linea="4" columna="8" descripción="El valor 'AAA010101AA' no cumple con la especificación del campo 'Rfc'. Por favor consulte la guía de integración. [regex '^[Ñ&A-Z]{3,4}\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])[A-Z0-9]{3}$']"/>
<ErrorFormato linea="11" columna="47" descripción="Error de Validación, el campo: 'UsoCFDI' es requerido"/>
</ErroresFormato>
</Resultado>
</ReporteProcesamiento>
</ReporteProcesamientoDeArchivoResponse>
</s:Body>
</s:Envelope>
If formatoValido is true
, you will see the following in the response for the ones processed correctly:
Element | Attribute | Description |
---|---|---|
Comprobantes | --- | This allows you to group the receipts processed through the integration file. |
Comprobante | --- | This shows the detail of a receipt inside the integration file. |
Campo | llave | This describes the field. |
Campo | valor | This holds the value of the key. |
Errores | --- | In case there are no errors in the validations related to Anexo 20 and the complements. |
Code | --- | This will always have the value 203 . |
Message | --- | This contains the message: "Estructura del comprobante inválida contra anexo20" |
InnerErrors | --- | This will show the validation rules that didn’t process the file. |
Code | --- | Indicates the code specified by the SAT. |
Message | --- | Shows the description of the error. |
Target | --- | After converted to XML, indicates the element/attribute of the XML with an error. |
Details | --- | Gives detail of the error related to the validated rule. |
Next, a response example for an integration file with the name Mi archivo.txt processes on November 14th of 2017 at 18:44:55 hrs. where the value of formatoValido is true
, but one of the receipts has errors about the SAT validation rules.
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ReporteProcesamientoDeArchivoResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
<ReporteProcesamiento nombreArchivo="Mi archivo.txt">
<Resultado fechaDeRecepcion="2017-11-14T18:44:55" formatoValido="true">
<Comprobantes>
<Comprobante>
<Campo llave="rfcEmisor" valor="AAA010101AAA"/>
<Campo llave="rfcReceptor" valor="XAXX010101000"/>
<Campo llave="serie" valor="FADQ"/>
<Campo llave="folio" valor="0000086334-001"/>
<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>CFDI33181</Code>
<Message>El valor del campo TotalImpuestosRetenidos debe ser igual a la suma de los importes registrados en el elemento hijo Retencion.</Message>
<Target>/cfdi:Comprobante/cfdi:Impuestos/@TotalImpuestosRetenidos</Target>
<Details>El valor del atributo (cfdi:Comprobante:Impuestos:TotalImpuestosRetenidos) es [54000.00]. La sumatoria de los atributos (cfdi:Comprobante:Impuestos:Retenciones:Retencion: Importe) es [4000.00].</Details>
<InnerErrors/>
</Error>
<Error>
<Code>CFDI33189</Code>
<Message>El campo Importe correspondiente a Retención no es igual a la suma de los importes de los impuestos retenidos registrados en los conceptos donde el impuesto sea igual al campo impuesto de este elemento.</Message>
<Target>/cfdi:Comprobante/cfdi:Impuestos/cfdi:Retenciones/cfdi:Retencion[@impuesto='001']</Target>
<Details>El valor del atributo (cfdi:Comprobante:Impuestos:Retenciones:Retencion:Impuesto)[001] Importe es [4000.00]. La sumatoria de los atributos (cfdi:Comprobante:Conceptos:Concepto:Impuestos:Retenciones:Retencion:Importe) es [54000.00] donde es igual el atributo (cfdi:Comprobante:Conceptos:Concepto:Impuestos:Retenciones:Retencion:Impuesto) es [001]. Valor esperado[54000.00].</Details>
<InnerErrors/>
</Error>
</InnerErrors>
</Errores>
</Comprobante>
<Comprobante>
<Campo llave="rfcEmisor" valor="AAA010101AAA"/>
<Campo llave="rfcReceptor" valor="XAXX010101000"/>
<Campo llave="serie" valor="FADQ"/>
<Campo llave="folio" valor="0000086334-001"/>
<Campo llave="UUID" valor="FFFE3335-E638-4C6C-B7C9-E28E4DEB6E94"/>
<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="FADQ"/>
<Campo llave="folio" valor="0000086334-001"/>
<Campo llave="UUID" valor="971AED66-F739-48B6-8E0D-EB36A4E857D9"/>
<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="FADQ"/>
<Campo llave="folio" valor="0000086334-001"/>
<Campo llave="UUID" valor="D8AABA53-7ABE-4508-8174-DEE55414203E"/>
<Campo llave="status" valor="EMITIDO"/>
<Campo llave="Version" valor="3.3"/>
</Comprobante>
</Comprobantes>
</Resultado>
</ReporteProcesamiento>
</ReporteProcesamientoDeArchivoResponse>
</s:Body>
</s:Envelope>
The attributes key-value can have one of the following values:
Response - individual validation of the integration file
If the integration file has more than one receipt to issue, you can set it up to perform a validation per receipt.
Element | Attribute | Description |
---|---|---|
Documentos | --- | This allows you to group the receipts processed through the integration file. |
Documento | --- | This shows the detail of a receipt inside the integration file. |
Documento | formatoValido | Indicates if the document has the correct structure and data. The possible values are true and false . |
Documento | resultado | Indicates the result of the procedure. |
Documento | secuencial | This is the sequential number of the receipt to issue through the integration file. |
Campo | --- | This will show several elements. |
Campo | llave | Description of the field. |
Campo | valor | Holds the value of the key. |
If the value of formatoValido is false
, you will see the following for ErroresFormato:
Element | Attribute | Description |
---|---|---|
ErroresFormato | mensajeError | This describes the error. |
ErrorFormato | --- | This element will be present according to the number of errors found in the file format. |
ErrorFormato | linea | Indicates the file line where the error was found. |
ErrorFormato | columna | Indicates the column of the line where the error was found. |
ErrorFormato | descripción | This shows the description of the error. |
If the value of formatoValido is false
, you will see the following in the response:
Element | Attribute | Description |
---|---|---|
Comprobante | --- | This shows the detail of a receipt inside an integration file. |
Campo | llave | This describes the field. |
Campo | valor | This holds the key value. |
The attributes key-value can have some of the following values:
Key Value | Value Description |
---|---|
rfcEmisor | This has the RFC of the issuer of the receipt. |
rfcReceptor | This has the RFC of the receiver of the receipt. |
serie | This has the value of the receipt series, if available. |
folio | This has the value of the receipt folio, if available. |
UUID | This has the fiscal folio of the receipt. |
status | Indicates if the receipt status is Emitido (issued) or Cancelado (canceled). |
Version | Indicates the version of the issued receipt. |
detalleError | Describes the reason why the receipt was not processed. |
Example of response for an integration file with the name Mi archivo.txt which was sent twice in the following dates:
- November 14 of 2017 at 18:43:23 hrs. – error in the file structure and request not processed.
- November 14 of 2017 at 18:44:55 hrs. – no error in structure, but the result of the process was that the receipt had 1 mistake on the validations of Anexo 20 and the receipts from 2 to 4 were issued.
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ReporteProcesamientoDeArchivoResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
<ReporteProcesamiento nombreArchivo="Mi archivo.txt">
<Resultado fechaDeRecepcion="2017-11-14T18:43:23" formatoValido="false">
<ErroresFormato mensajeError="Estructura inválida">
<ErrorFormato linea="4" columna="8" descripción="El valor 'AAA010101AA' no cumple con la especificación del campo 'Rfc'. Por favor consulte la guía de integración. [regex '^[Ñ&A-Z]{3,4}\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])[A-Z0-9]{3}$']"/>
<ErrorFormato linea="11" columna="47" descripción="Error de Validación, el campo: 'UsoCFDI' es requerido"/>
<ErrorFormato linea="18" columna="26" descripción="El valor 'C62' no cumple con la especificación del campo 'Cantidad'. Por favor consulte la guía de integración. [regex '^\d+(\.\d{0,6})?$']"/>
<ErrorFormato linea="18" columna="36" descripción="El valor 'Descripción del concepto' no cumple con la especificación del campo 'Unidad'. Por favor consulte la guía de integración. [regex '^.{1,20}$']"/>
<ErrorFormato linea="18" columna="81" descripción="Error de Validación. El campo 'Importe' es requerido."/>
<ErrorFormato linea="18" columna="82" descripción="El valor 'C_IMP_RETENCIONES' no cumple con la especificación del campo 'Descuento'. Por favor consulte la guía de integración. [regex '^\d+(\.\d{0,6})?$']"/>
<ErrorFormato linea="18" columna="100" descripción="Error de sintáxis, se esperaba un salto de línea, pero se ha encontrado el valor 'IMP_RETENIDO'"/>
</ErroresFormato>
</Resultado>
<Resultado fechaDeRecepcion="2017-11-14T18:44:55">
<Documentos>
<Documento resultado="ERROR" secuencial="1" formatoValido="true">
<Comprobante>
<Campo llave="rfcEmisor" valor="AAA010101AAA"/>
<Campo llave="rfcReceptor" valor="XAXX010101000"/>
<Campo llave="serie" valor="FADQ"/>
<Campo llave="folio" valor="0000086334-001"/>
<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>CFDI33181</Code>
<Message>El valor del campo TotalImpuestosRetenidos debe ser igual a la suma de los importes registrados en el elemento hijo Retencion.</Message>
<Target>/cfdi:Comprobante/cfdi:Impuestos/@TotalImpuestosRetenidos</Target>
<Details>El valor del atributo (cfdi:Comprobante:Impuestos:TotalImpuestosRetenidos) es [54000.00]. La sumatoria de los atributos (cfdi:Comprobante:Impuestos:Retenciones:Retencion: Importe) es [4000.00].</Details>
<InnerErrors/>
</Error>
<Error>
<Code>CFDI33189</Code>
<Message>El campo Importe correspondiente a Retención no es igual a la suma de los importes de los impuestos retenidos registrados en los conceptos donde el impuesto sea igual al campo impuesto de este elemento.</Message>
<Target>/cfdi:Comprobante/cfdi:Impuestos/cfdi:Retenciones/cfdi:Retencion[@impuesto='001']</Target>
<Details>El valor del atributo (cfdi:Comprobante:Impuestos:Retenciones:Retencion:Impuesto)[001] Importe es [4000.00]. La sumatoria de los atributos (cfdi:Comprobante:Conceptos:Concepto:Impuestos:Retenciones:Retencion:Importe) es [54000.00] donde es igual el atributo (cfdi:Comprobante:Conceptos:Concepto:Impuestos:Retenciones:Retencion:Impuesto) es [001]. Valor esperado[54000.00].</Details>
<InnerErrors/>
</Error>
</InnerErrors>
</Errores>
</Comprobante>
</Documento>
<Documento resultado="EMITIDO" secuencial="2" formatoValido="true">
<Comprobante>
<Campo llave="rfcEmisor" valor="AAA010101AAA"/>
<Campo llave="rfcReceptor" valor="XAXX010101000"/>
<Campo llave="serie" valor="FADQ"/>
<Campo llave="folio" valor="0000086334-001"/>
<Campo llave="UUID" valor="FFFE3335-E638-4C6C-B7C9-E28E4DEB6E94"/>
<Campo llave="status" valor="EMITIDO"/>
<Campo llave="Version" valor="3.3"/>
</Comprobante>
</Documento>
<Documento resultado="EMITIDO" secuencial="3" formatoValido="true">
<Comprobante>
<Campo llave="rfcEmisor" valor="AAA010101AAA"/>
<Campo llave="rfcReceptor" valor="XAXX010101000"/>
<Campo llave="serie" valor="FADQ"/>
<Campo llave="folio" valor="0000086334-001"/>
<Campo llave="UUID" valor="971AED66-F739-48B6-8E0D-EB36A4E857D9"/>
<Campo llave="status" valor="EMITIDO"/>
<Campo llave="Version" valor="3.3"/>
</Comprobante>
</Documento>
<Documento resultado="EMITIDO" secuencial="4" formatoValido="true">
<Comprobante>
<Campo llave="rfcEmisor" valor="AAA010101AAA"/>
<Campo llave="rfcReceptor" valor="XAXX010101000"/>
<Campo llave="serie" valor="FADQ"/>
<Campo llave="folio" valor="0000086334-001"/>
<Campo llave="UUID" valor="D8AABA53-7ABE-4508-8174-DEE55414203E"/>
<Campo llave="status" valor="EMITIDO"/>
<Campo llave="Version" valor="3.3"/>
</Comprobante>
</Documento>
</Documentos>
</Resultado>
</ReporteProcesamiento>
</ReporteProcesamientoDeArchivoResponse>
</s:Body>
</s:Envelope>
Errors in transaction
Element | Description |
---|---|
TransactionId | Transaction Id: if you require diagnosis and/or support you need to have it. |
Error | An object for error description. |
Code | A chain that identifies the specific error. |
Message | The description of an error code, to enable the diagnosis in the client apps. Its value will always be the same for a specific error. |
Target | An optional element that in some errors will indicate the closest location of the error. If, for example, the request includes a receipt with more than one fiscal concept, and the error is about validation of the concept data, this field will show which one of the concepts is the one causing the rejection by not complying with the validation rule. |
Details | A detailed description of the specific error for diagnosis purposes and to be interpreted by a developer. |
InnerErrors | A list of the error type objects with the same structure described in this table showing root errors or the different errors that cause them. Each of the errors on this list can have InnerErrors, if there’s more detailed information on the errors causing them. |
Example of the response when the API Key (authentication) is not valid.
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ReporteProcesamientoDeArchivoResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
<Error>
<Code>AuthenticationFailed</Code>
<Message>Credenciales inválidas.</Message>
<InnerErrors>
<Error>
<Code>101</Code>
<Message>API Key no válida.</Message>
<Target>Reporte de procesamiento de archivo</Target>
</Error>
</InnerErrors>
</Error>
</ReporteProcesamientoDeArchivoResponse>
</s:Body>
</s:Envelope>
For more information or if you have any doubt related with this guide, please send an email to MEX-soporte@sovos.com
Regresar