Postman
Postman
  • Documentación

    • Información general
    • Entornos
    • Primeros pasos
    • Listar CFDI's
    • Buscar CFDI
    • Crear CFDI 4.0
    • Crear CFDI Global 4.0
    • Borradores CFDI 4.0
    • Descargar CFDI
    • Cancelar CFDI 4.0
    • Descargar acuse CFDI 4.0
    • Enviar CFDI
    • Consultar estatus de cancelación de un CFDI
    • Grupos de empleados
    • Empleados
    • Nóminas
    • Complementos
    • Retenciones
    • Complementos de retenciones
    • Carta porte v3.1
    • Catálogos
    • Clientes
    • Empresas
    • Migraciones
    • Series
    • Productos
    • Addendas
    • Fundamentos legales del SAT

Consultar estatus de cancelación de un CFDI

A continuación se explica como consultar el estatus de la cancelación de un CFDI con un ejemplo de como hacerlo.

Podemos consultar el estatus CFDI haciendo uso del siguiente parámetro:

ParámetroTipoRequeridoDetalles
cfdi_uidstringRequerido Indica el UID o UUID del CFDI que deseas consultar.
Ejemplo:
55c0fdc67593d

Construcción de la URL

Host: https://facturaonline.com.mx/api (producción) / https://sandbox.facturaonline.com.mx/api (sandbox)

Endpoint: /v4/cfdi40/uid/cancel_status

Ejemplo: https://facturaonline.com.mx/api/v4/cfdi40/c55df8b4-37b3-47cf-9e35-efdb4c3261b4/cancel_status Ejemplo: https://facturaonline.com.mx/api/v4/cfdi40/c55df8b4/cancel_status

Tip

Para probar el código de ejemplo es necesario que reemplaces el texto Tu API key por el API KEY de tu cuenta, e Tu Secret key por el SECRET KEY correspondiente. Además de reemplazar uid por el UID o UUID del CFDI que deseas consultar.

Ejemplo de estatus de CFDI

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{{ HOST }}/v4/cfdi40/uid/cancel_status");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v4/cfdi40/616d946410050/cancel_status',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v4/cfdi40/616d946410050/cancel_status"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v4/cfdi40/616d946410050/cancel_status")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta

Importante

El mensaje de respuesta puede variar dependiendo de el estatus en el que se encuentre el CFDI. Es importante mencionar que, a pesar de que el nuevo método de cancelación entró en vigor el día 1 de enero de 2022, el SAT continúa presentando problemas con el servicio de consulta. Debido a esto, es posible que al consultar un CFDI cancelado, su estatus aparezca como vigente por un tiempo.

Estatus vigente cancelable

{
    "response": "success",
    "data": {
        "CodigoEstatus": "S - Comprobante obtenido satisfactoriamente.",
        "Estado": "Vigente",
        "EsCancelable": "Cancelable sin aceptación",
        "EstatusCancelacion": []
    }
}

Estatus cancelado

{
    "response": "success",
    "data": {
        "CodigoEstatus": "S - Comprobante obtenido satisfactoriamente.",
        "Estado": "Cancelado",
        "EsCancelable": "Cancelable sin aceptación",
        "EstatusCancelacion": "Cancelado sin aceptación"
    }
}

Estatus vigente no cancelable

{
    "response": "success",
    "data": {
        "CodigoEstatus": "S - Comprobante obtenido satisfactoriamente.",
        "Estado": "Vigente",
        "EsCancelable": "No Cancelable",
        "EstatusCancelacion": []
    }
}

Last Updated:
Prev
Enviar CFDI
Next
Grupos de empleados