Contenido
1. Generalidades 1
1.1 Introducción 1
1.2 Objetivo 1
1.3 Alcance 1
2. Descripción General de SIFEI Web Service Cancelación 2
3. Métodos de SIFEI Web Service Cancelación 2
3.1 cancelaCFDI 2
3.1.1 Objetivo 2
3.1.2 Llamada 2
3.1.3 Parámetros 2
3.1.4 Petición SOAP 3
3.1.5 Respuesta SOAP 3
3.1.6 Respuesta 3
3.2 cfdiRelacionado 4
3.2.1 Objetivo 4
3.2.2 Llamada 4
3.2.3 Parámetros 4
3.2.4 Petición SOAP 4
3.2.5 Respuesta SOAP 5
3.2.6 Respuesta 5
3.3 consultaSATCFDI 5
3.3.1 Objetivo 5
3.3.2 Llamada 5
3.3.3 Parámetros 6
3.3.4 Petición SOAP 6
3.3.5 Respuesta SOAP 6
3.3.6 Respuesta 6
3.4 peticionesPendientes 7
3.4.1 Objetivo 7
3.4.2 Llamada 7
3.4.3 Parámetros 7
3.4.4 Petición SOAP 7
3.4.5 Respuesta SOAP 8
3.4.6 Respuesta 8
3.5 procesarRespuesta 8
3.5.1 Objetivo 8
3.5.2 Llamada 8
3.5.3 Parámetros 8
3.5.4 Petición SOAP 9
3.5.5 Respuesta SOAP 9
3.5.6 Respuesta 9
4. Listas de códigos de error 10
4.1 Códigos de error definidos por el SAT específicamente para cancelación 10
4.2 Códigos de error definidos por el SAT para peticiones pendientes (método peticionesPendientes) 10
4.3 Códigos de error definidos por el SAT para procesar respuesta (método procesarRespuesta) 10
4.4 Códigos de error definidos por el SAT para CFDI relacionados (método cfdiRelacionado) 11
4.5 Códigos de error para retenciones 11
5. Anexo 1 - WSDL 13
6. Glosario de términos y acrónimos 15
7. Referencias 15
8. Información de contacto con SIFEI 16
1. Generalidades
1.1 Introducción
Web Service Cancelación es un servicio Web diseñado para ofrecerle al usuario el servicio de cancelación de CFDI, el cual cumple con las especificaciones técnicas establecidas por el SAT, las cuales fueron evaluadas y aprobadas, por consiguiente a través de SIFEI puede cancelarse un CFDI directamente con el SAT.
SIFEI es un Proveedor Autorizado de Certificación de CFDI (PCCFDI antes PAC), con número de autorización 58355 y cumple con los requerimientos funcionales, servicios generales y niveles de servicio (SLA) exigidos por el SAT.
1.2 Objetivo
Proporcionar la descripción de los métodos para realizar el proceso de cancelación de un CFDI, así como también informar sobre los posibles acuses de respuesta para conocer el estado en que se encuentra una solicitud (solicitud pendiente de aceptar o rechazar) o en su caso el mismo CFDI (cancelado, vigente, no cancelable, cancelado con aprobación, cancelado sin aceptación, cancelable por aceptación)
1.3 Alcance
El presente documento contempla lo siguiente:
* Incluye las validaciones de cumplimiento para la cancelación de un CFDI.
* Cancelar un CFDI, dicha cancelación dependerá de las características de este mismo, para más información se puede consultar esta sesión por parte del SAT:
https://www.youtube.com/watch?v=tSUYB_jjs-Y
* Esta nueva versión de cancelación es obligatoria a partir del 1 de septiembre.
* Entrega de acuse con respecto al método solicitado.
* Realizar consulta de CFDI relacionado.
* Realizar consulta del estatus de un CFDI ante el SAT.
* Consultar las solicitudes de cancelación pendientes de aprobar, esta consulta es por parte del receptor.
* Procesar una respuesta para la aceptación o rechazo según corresponda por parte del receptor.
* Consultar la cantidad de peticiones realizadas (método de cancelación, CFDI relacionado, peticiones pendientes y procesar respuesta ) ya que está establecido un máximo de peticiones anuales de acuerdo a la política de SIFEI.
2. Descripción General de SIFEI Web Service Cancelación
SIFEI Web Service Cancelación es un servicio Web que permite cancelar un CFDI con o sin aprobación dependiendo de las características de este. De igual forma, el servicio Web permite consultar un CFDI relacionado, consultar el estatus del CFDI en el SAT, consultar peticiones pendientes por aceptar o rechazar, procesar una respuesta (la cual puede ser “Aceptación” o “Rechazo”), y consultar la cantidad total de peticiones realizadas a nuestros servicio.
El Web Service (WS) se encuentra disponible para ser consumido mediante cualquier lenguaje de programación, a través de peticiones con XML (Extensible Markup Language). Algunas de las pruebas realizadas para consumir el WS contemplaron el uso de los siguientes lenguajes de programación: VB .NET, C#, Java y PHP, todos con resultados satisfactorios.
Ruta de acceso al WS de Pruebas
http://devcfdi.sifei.com.mx:8888/CancelacionSIFEI/Cancelacion?wsdl
Tecnología
JAX-WS
Versión de JAX-WS
2.2
3. Métodos de SIFEI Web Service Cancelación
3.1 cancelaCFDI
3.1.1 Objetivo
Solicitar cancelación, ya sea que el CFDI se encuentre en el SAT con estatus “Cancelable con aprobación” o “Cancelable sin aceptación”.
Una vez realizada esta solicitud y si el comprobante se encuentra ante el SAT como “Cancelable sin aceptación” el comprobante será cancelado en ese mismo momento, sin embargo, si el comprobante se encuentra con estatus “Cancelable con aprobación”, la solicitud de este CFDI deberá ser aceptada o rechazada por el receptor; ambas respuestas al solicitar la cancelación tienen el código 201 esto si no tuvieron algún error, por consiguiente para verificar si el comprobante ya fue cancelado se deberá consultar el método consultaSATCFDI (este método se consume directamente por un servicio expuesto por el SAT si así lo desea ).
3.1.2 Llamada
Nombre del método
Modificador de acceso
Tipo de dato de retorno
cancelaCFDI
Público
String
3.1.3 Parámetros
Nombre
Tipo de dato
Descripción
usuarioSIFEI
String
Usuario con el que se realizará la autenticación
passwordSifei
String
Contraseña con la que se realizará la autenticación
rfcEmisor
String
RFC del emisor
pfx
Byte[]
Bytes del archivo PFX del emisor
passwordPfx
String
Contraseña del PFX
uuids
String[]
UUID o lista de UUID a cancelar
3.1.4 Petición SOAP
3.1.5 Respuesta SOAP
3.1.6 Respuesta
* El SAT regresa el código de respuesta 201 si la solicitud de cancelación se realizó exitosamente ya sea para aprobación por parte del receptor o si el comprobante se canceló sin autorización, por consiguiente habrá que verificar el estado del CFDI a través del método consultaSATCFDI
* Si hay algún error durante el proceso del servicio de SIFEI, este devolverá una excepción con un Código de Error y un mensaje con la descripción de dicho código.
* Si hay un error en el servicio del SAT, se devolverá un acuse con dicho código de error.
3.2 cfdiRelacionado
3.2.1 Objetivo
Obtener el (los) UUID relacionado(s) para cancelar primero estos comprobantes.
Nota: Un CFDI relacionado con estatus “NO CANCELABLE” únicamente podrá cambiar su estatus a “CANCELABLE” si se cancelan primero todos los CFDI’s que tenga relacionados.
Se puede verificar si un CFDI se encuentra en estatus “NO CANCELABLE” a través del método consultaSATCFDI.
3.2.2 Llamada
Nombre del método
Modificador de acceso
Tipo de dato de retorno
cfdiRelacionado
Público
String
3.2.3 Parámetros
Nombre
Tipo de dato
Descripción
usuarioSIFEI
String
Usuario con el que se realizará la autenticación
passwordSIFEI
String
Contraseña con la que se realizará la autenticación
rfcReceptor
String
RFC del receptor perteneciente al UUID a consultar, puede llegar a ser el mismo que usuarioSIFEI.
uuid
String
UUID que se consulta
pfx
Byte[]
Bytes del archivo PFX del emisor
passwordPfx
String
Contraseña del PFX
3.2.4 Petición SOAP
3.2.5 Respuesta SOAP
3.2.6 Respuesta
* Si el CFDI, tiene CFDI relacionados retornará el código 2000 mostrando los UUID relacionados
Ejemplo:
<return><![CDATA[<ProcesarRespuestaResult><UuidConsultado>6C04C881-240A-41B8-B5A0-B18270C4438F</UuidConsultado><Resultado>WS Consulta CFDI relacionados RfcReceptor: URU070122S28 - folio físcal: 6C04C881-240A-41B8-B5A0-B18270C4438F - Clave: 2000 - Se encontraron CFDI relacionados</Resultado><UuidsRelacionadosPadres><UuidPadre><Uuid>4E5AF780-3E31-4876-9410-856DB9D92121</Uuid><RfcEmisor>MSE061107IA8</RfcEmisor><RfcReceptor>URU070122S28</RfcReceptor></UuidPadre></UuidsRelacionadosPadres><UuidsRelacionadosHijos/></ProcesarRespuestaResult>]]></return>
Nota: Este acuse de respuesta es directamente de SAT
* En caso de no existir CFDI relacionado, el código de respuesta será el 2001.
* Si hay algún error durante el proceso del servicio de SIFEI, este devolverá una excepción con un código de error y un mensaje con la descripción de dicho código.
* Si hay un error en el servicio del SAT, se devolverá un acuse con dicho código de error.
3.3 consultaSATCFDI
3.3.1 Objetivo
Consulta el estatus de un CFDI para saber si ya fue cancelado, o en su caso si es No cancelable, o si se encuentra vigente, la información que se proporciona en este método debe ser la generada en el qr.
Este método en particular se consume directamente con el SAT ya que es el único que se encuentra público para los contribuyentes y no es necesario que sea a través de un PCCFDI.
3.3.2 Llamada
Nombre del método
Modificador de acceso
Tipo de dato de retorno
consultaSATCFDI
Público
String
3.3.3 Parámetros
Nombre
Tipo de dato
Descripción
usuarioSIFEI
String
Usuario con el que se realizará la autenticación
passwordSIFEI
String
Contraseña con la que se realizará la autenticación
id
String
UUID del CFDI que se consulta
re
String
RFC del emisor del CFDI
rr
String
RFC del receptor del CFDI
tt
String
Total del CFDI, este debe cumplir con lo reglamentado para la generación del qr (18 dígitos a la izquierda del punto y 6 a la derecha del punto)
Ejemplo
total = 34.00, para este parámetro se deben colocar ceros a la izquierda y derecha, dando lo siguiente: 000000000000000043.000000
fe
String
Debe ser los últimos 8 caracteres del Atributo Sello del CFDI
3.3.4 Petición SOAP
3.3.5 Respuesta SOAP
3.3.6 Respuesta
Ejemplo de acuse recibido del SAT:
<ConsultaResult><ns1:CodigoEstatus xmlns:ns1="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio">S - Comprobante obtenido satisfactoriamente.</ns1:CodigoEstatus><ns1:EsCancelable xmlns:ns1="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio">Cancelable con aceptación</ns1:EsCancelable><ns1:Estado xmlns:ns1="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio">Cancelado</ns1:Estado><ns1:EstatusCancelacion xmlns:ns1="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio">Cancelado sin aceptación</ns1:EstatusCancelacion></ConsultaResult>
En caso de que haya algún error durante el proceso, el servicio devolverá una excepción con un Código de Error y un mensaje con la descripción de dicho código.
3.4 peticionesPendientes
3.4.1 Objetivo
Obtener peticiones pendientes de aprobar o rechazar para un receptor en particular, una vez consultado esto, se puede hacer uso del método procesarRespuesta
Cuando se solicita la cancelación de un CFDI y este debe ser cancelado por aprobación del receptor, es posible verificar las solicitudes realizadas y así poder aceptar o rechazar un CFDI.
3.4.2 Llamada
Nombre del método
Modificador de acceso
Tipo de dato de retorno
peticionesPendientes
Público
String
3.4.3 Parámetros
Nombre
Tipo de dato
Descripción
usuarioSIFEI
String
Usuario con el que se realizará la autenticación
passwordSIFEI
String
Contraseña con la que se realizará la autenticación
rfcReceptor
String
RFC del receptor del que se consultarán las peticiones pendientes, puede ser el mismo que usuarioSIFEI
3.4.4 Petición SOAP
3.4.5 Respuesta SOAP
3.4.6 Respuesta
En caso de que haya algún error durante el proceso, el servicio devolverá una excepción con un código de error y un mensaje con la descripción de dicho código.
3.5 procesarRespuesta
3.5.1 Objetivo
Procesar respuesta para un CFDI pendiente de aprobar, la respuesta del Web Service será “Aceptacion” (sin acento) o “Rechazo”.
3.5.2 Llamada
Nombre del método
Modificador de acceso
Tipo de dato de retorno
procesarRespuesta
Público
String
3.5.3 Parámetros
Nombre
Tipo de dato
Descripción
usuarioSIFEI
String
Usuario con el que se realizará la autenticación
passwordSIFEI
String
Contraseña con la que se realizará la autenticación
rfcReceptor
String
RFC del receptor que procesa la respuesta puede ser el mismo que usuarioSIFEI
folios
String[]
Lista de folios que contiene el UUID y respuesta
respuesta
String
Respuesta de aprobación que contiene alguno de estos dos valores:
* Aceptacion
* Rechazo
uuid
String
UUID del CFDI al que será relacionada la respuesta enviada
pfx
Byte[]
Bytes del pfx generado a partir de CSD del receptor
passwordPfx
String
Contraseña del pfx
3.5.4 Petición SOAP
3.5.5 Respuesta SOAP
3.5.6 Respuesta
Ejemplo de acuse por parte del SAT:
<ProcesarRespuestaResult RfcReceptor="URU070122S28" RfcPac="DAL050601L35" CodEstatus="1000" Fecha="2018-07-11T13:02:49.0295544"><Folios Respuesta="Rechazo"><UUID>A9CC98B1-39CE-465C-AEC0-51CA3335280A</UUID><EstatusUUID>1000</EstatusUUID></Folios><Signature Id="SelloSAT" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha512"/><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath>not(ancestor-or-self::*[local-name()='Signature'])</XPath></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/><DigestValue>cdF3z+We05qXt0yrb0VnAjrjXu8QgQpKLPTHvDu+NOCPS97XeFwVFkHiUDroq7fXGA1+g4KcPuQEY2w7YTC6Iw==</DigestValue></Reference></SignedInfo><SignatureValue>La3KB5IUi3Wr+wEZVeWV0nQkWtmPrMFwypQyYKB7HTH+qRNtJs8+nOVF2KznAX5Jo0fk9QrqTB3ltfZtEhMsJA==</SignatureValue><KeyInfo><KeyName>BF66E582888CC845</KeyName><KeyValue><RSAKeyValue><Modulus>n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue></KeyInfo></Signature></ProcesarRespuestaResult>
En caso de que haya algún error durante el proceso, el servicio devolverá una excepción con un código de error y un mensaje con la descripción de dicho código.
4. Listas de códigos de error
4.1 Códigos de error definidos por el SAT específicamente para cancelación
Código
Error
201
UUID Cancelado
202
UUID Previamente cancelado
203
UUID No corresponde al emisor
204
UUID No aplicable para cancelación
205
UUID No exise
301
XML mal formado
302
Sello mal formado o inválido
303
Sello no corresponde a emisor o caduco
304
Certificado revocado o caduco
305
La fecha de emisión no está dentro de la vigencia del CSD del Emisor
306
El certificado no es de tipo CSD
307
El CFDI contiene un timbre previo
308
Certificado no expedido por el SAT
4.2 Códigos de error definidos por el SAT para peticiones pendientes (método peticionesPendientes)
Código
Error
300
Usuario no valido
301
XML mal formado
1100
Se obtuvo petición del RFC receptor de forma exitosa
1101
No existen peticiones para el RFC del receptor
4.3 Códigos de error definidos por el SAT para procesar respuesta (método procesarRespuesta)
Código
Error
300
Usuario no válido
301
XML mal formado
302
Sello mal formado
304
Certificado revocado o caduco
305
Certificado inválido
309
Patrón de folio inválido
310
CSD inválido
1000
Se recibió la respuesta de la petición de forma exitosa
1001
No existen peticiones de cancelación en espera de respuesta para el UUID
1002
Ya se recibió una respuesta para la petición de cancelación del UUID
1003
Sello no corresponde al RFC receptor
1004
Existen más de una petición de cancelación para el mismo UUID
1005
El UUID es nulo no posee el formato correcto
1006
Se rebasó el número máximo de solicitudes permitidas
4.4 Códigos de error definidos por el SAT para CFDI relacionados (método cfdiRelacionado)
Código
Error
2000
Existen CFDI relacionados al folio fiscal
2001
No existen CFDI relacionados al folio fiscal
2002
El folio fiscal no pertenece al receptor
1101
No existen peticiones pendientes para el RFC Receptor
4.5 Códigos de error para retenciones
Código
Error
1201
UUID cancelado
1202
UUID previamente cancelado
1203
UUID no corresponde con el emisor
1205
UUID no existe
1300
Autenticación no válida
1301
XML mal formado
1302
Estructura de folios no válida
1303
Estructura de RFC no válida
1304
Estructura de fecha no válida
1305
Certificado no corresponde al emisor
1306
Certificado no vigente
1307
Uso de FIEL no permitido
1308
Certificado revocado o caduco
1309
Firma mal formada o inválida
5. Anexo 1 - WSDL
6.
Glosario de términos y acrónimos
XML. Extensible Markup Language. Es el lenguaje de programación utilizado para crear facturas electrónicas y en realdad se utiliza para distintos tipos de documentos informáticos.
UUID. Identificador único universal. En factura electrónica se utiliza como folio para poder identificar de manera única a un comprobante.
COMPROBANTES FISCALES. Documentos que amparan transacciones comerciales, que pueden estar generados en forma electrónica o en papel.
CFDI. Comprobantes Fiscales Digitales a través de Internet. Éste es el nuevo mecanismo de comprobación fiscal, actualmente en su versión 3.3. Añade un timbrado a los XML generados por los emisores que sellan los PAC para asegurar su estructura principal y brindar legitimidad al comprobante.
PFX. Un archivo de Personal Information Exchange (.pfx, Intercambio de Información Personal) se utiliza para almacenar las claves privadas y públicas de un Software Publisher Certificate (SPC, Certificado de Editor de Software) para liberar una firma.
SIFEI. Solución Integral de Facturación Electrónica e Informática SIFEI S. A. de C. V.
SOAP. Simple Object Access Protocol, es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML.
XSD. XML (Definition) Schema es un lenguaje de esquema utilizado para describir la estructura y las restricciones de los contenidos de los documentos XML de una forma muy precisa.
WSDL. Web Services Description Language, es un formato XML que se utiliza para describir servicios Web
7. Referencias
Conferencia del SAT. Recuperado de: https://www.youtube.com/watch?v=tSUYB_jjs-Y
Portal SAT, nuevo esquema de cancelación
https://www.sat.gob.mx/consultas/91447/nuevo-esquema-de-cancelacion
8. Información de contacto con SIFEI
CENTRO DE SOPORTE TÉCNICO SIFEI
Acceso a recursos de Soporte Técnico de los productos y servicios de SIFEI, Preguntas Frecuentes, Manuales de Usuario, Manuales Técnicos, Notas Técnicas, entre otros.
Dirección electrónica
Centro de Soporte Técnico SIFEI
TELÉFONOS DE CONTACTO
Orizaba, Ver.
01 (272) 726 6999
CDMX
(55) 4624 0146
Puebla, Pue.
01 (222) 211 6156
con 10 líneas
ATENCIÓN A INCIDENTES
La atención a incidentes se realizará mediante una herramienta de gestión de incidentes y la comunicación se realizará mediante correo electrónico.
Correo Electrónico
soporte@sifei.com.mx
HORARIO DE ATENCIÓN
El horario de atención a clientes y de Soporte Técnico para para preguntas, dudas o problemas de la aplicación es:
Lunes a viernes
De 09:00 a 19:00 hrs.
PÁGINAS OFICIALES DE SIFEI
Sitio web
http://www.sifei.com.mx/
Facebook
http://www.facebook.com/sifeimexico
Twitter
http://twitter.com/#!/SIFEIMexico
YouTube
https://www.youtube.com/channel/UCDSLHrFOg2tGvG3AruHNmaw
LinkedIn
https://www.linkedin.com/company/18265037/
UBICACIÓN DE OFICINA MATRIZ
Primera Privada de Oriente 17 No. 32
Col. Centro, Orizaba, Veracruz, México
CP 94300
MANUAL TÉCNICO DE SIFEI WEB SERVICE - CANCELACIÓN
Página iii de iii Agosto 2018
MANUAL TÉCNICO DE SIFEI WEB SERVICE - CANCELACIÓN CANCELACIÓN
Página 16 de 16 Agosto 2018