Utils - cfdi

Verificación de comprobantes fiscales digitales


Microservicio encargado de verificar el estado de un CFDI (México). Este microservicio recibe los parámetros necesarios para consultar el estado de un CFDI en el WebService del SAT, el cual, al ser procesado, retornar una respuesta de tipo JSON con la información de dicha consulta.

Funcionamiento


Para hacer uso de este microservicio es necesario acceder mediante una petición POST a la siguiente URL:

        
            https://utils.productlivedemo.com.mx/api/cfdi/verificar/{versión}
        
        
Donde la versión puede ser una de estas opciones:
  • 3.2
  • 3.3
Los parámetros necesarios para obtener la respuesta de verificación de un CFDI son los siguientes:
  • re: RFC del emisor
  • rr: RFC del receptor
  • tt: Total en dinero del CFDI
  • id: UUID del CFDI
  • fe: Cadena del sello digital. Es necesario enviar los últimos 8 caracteres del sello, incluyendo los simbolos ==
Ejemplo de una petición mediante AJAX para obtener una respuesta de la verificación de un CFDI haciendo uso de la versión 3.3:
        
        $.ajax({
            url: "https://utils.productlivedemo.com.mx/api/cfdi/verificar/3.3",
            type: "POST",
            dataType: "JSON"
            data: {
                re: "AAA010101AAA",
                rc: "COSC8001137NA",
                tt: "1,234.5678",
                id: "CEE4BE01-ADFA-4DEB-8421-ADD60F0BEDAC",
                fe: "... abcfe/1234=="
            },
            success:function(resp){
                console.log(resp);
            },
            error:function(error){
                console.log(error);
            }
        });
        
        

Respuesta del microservicio


La respuesta a este microservicio se presenta como en el siguiente ejemplo:

        
        {
            "codigo": "S - Comprobante obtenido satisfactoriamente.",
            "estatus": "Vigente",
            "cancelacion": "Cancelable sin aceptación",
            "estatusCancelacion": ""
        }

Código de la respuesta

El código de la respuesta está relacionado a la solicitud del WebService del SAT, no al CFDI. Las posibles respuestas se presentan a continuación:
  • S - Comprobante obtenido satisfactoriamente: Mensaje aceptado
  • N - 601: La expresión impresa proporcionada no es válida: El formato no es el definido por el WebService
  • N - 602: Comprobante no encontrado: El UUID no se encuentra registrado en el SAT

Estado de la respuesta

El estado de la respuesta está relacionado con el estado general del CFDI según el SAT, las posibles respuestas se presentan a continuación:
  • Vigente: El CFDI está vigente
  • Cancelado: El CFDI está cancelado
  • No encontrado: El CFDI no está registrado en el SAD
Cabe mencionar que la respuesta del estado se muestra con respecto a la situación que tiene cada CFDI ante el SAT en el momento que se realiza la consulta.

Estado de cancelación

El estado de cancelación está relacionado con la función de poder cancelar el CFDI en el momento en que se realiza la consulta, las posibles respuestas se presentan a continuación:
  • No cancelable: No se puede cancelar
  • Cancelable sin aceptación: Se puede cancelar inmediatamente
  • Cancelable con aceptación: Se puede cancelar pero se debe evaluar

Estado de cancelación

El Estado de cancelación está relacionado a la situación que tiene cada CFDI ante el SAT en el proceso de cancelación, las posibles respuestas se presentan a continuación:
  • (ninguno): No se solicitó cancelación
  • Cancelado sin aceptación: Cancelada sin necesidad de autorización
  • En proceso: En espera de que el receptor autorice
  • Plazo vencido: Cancelada por vencimiento
  • Cancelado con aceptación: Cancelada con autorización del receptor
  • Solicitud rechazada: No cancelada

Estados mutuamente excluyentes


A continuación, se presenta una tabla con los estado mutuamente excluyentes con su correspondiente explicación según el SAT:
CodigoEstatus Estado EsCancelable EstatusCancelacion Explicación
N - ... * * * El SAT no sabe del CFDI con los datos ofrecidos
S - ... Cancelado * Plazo vencido Cancelado por plazo vencido
S - ... Cancelado * Cancelado con aceptación Cancelado con aceptación del receptor
S - ... Cancelado * Cancelado sin aceptación No fue requerido preguntarle al receptor y se canceló
S - ... Vigente No cancelable * No se puede cancelar
S - ... Vigente Cancelable sin aceptación * Se puede cancelar pero no se ha realizado solicitud
S - ... Vigente Cancelable con aceptación (ninguno) Se puede cancelar pero no se ha realizado solicitud
S - ... Vigente Cancelable con aceptación En proceso Se hizo la solicitud y se está en espera
S - ... Vigente Cancelable con aceptación Solicitud rechazada Se hizo la solicitud y fue rechazada