1. Home
  2. Servicios
  3. Cancelaciones
  4. Consulta CFDI relacionados antes de cancelar

Consulta CFDI relacionados antes de cancelar

En el esquema vigente de cancelación CFDI establecido por la autoridad, un comprobante no puede ser cancelado si existen CFDI relacionados vigentes asociados a él. En estos casos, el CFDI se mantiene con estatus de NO CANCELABLE hasta que todos los comprobantes relacionados hayan sido previamente cancelados.

Este servicio es una herramienta puesta a disposición del emisor para identificar dichos CFDI relacionados antes de iniciar el proceso de cancelación, permitiendo validar dependencias y evitar rechazos en el proceso.

La consulta puede realizarse mediante distintos métodos de autenticación, dependiendo del tipo de integración y del origen de los comprobantes.

URL´s

🛠️ Pruebas:
🚀 Productivo:

Relacionados por CSD

Este método permite consultar los CFDI relacionados autenticándose mediante el Certificado de Sello Digital (CSD) del emisor. Está orientado a contribuyentes que requieren validar sus propios CFDI, independientemente del PAC con el que fueron timbrados, antes de ejecutar una cancelación.

🔗 Endpoint

MétodoRuta
POST/relations/csd

🔐 Autenticación y Headers

HeaderValue
AuthorizationBearer Token
Content-Typeapplication/json

🧾 Parámetros JSON

PropiedadUsoDescripción
uuidRequeridoUUID del comprobante.
passwordRequeridoContraseña del certificado.
rfcRequeridoRFC del emisor.
b64CerRequeridoCertificado del emisor en Base64.
b64KeyRequeridoKey del emisor en Base64

Ejemplo Request

curl --request POST \
  --url https://services.test.sw.com.mx/relations/csd \
  --header 'Authorization: Bearer $token' \
  --header 'Content-Type: application/json' \
  --data '{
"uuid": "d59fd3f1-2082-4759-a237-571ac15ccec2",
"password": "12345678a",
"rfc": "JUFA7608212V6",
"b64Cer": "MIIFmjCCA4KgAwIB....",
"b64Key": "MIIFDjBABgkqhkiG...."'

Ejemplo Response

{
    "codStatus": "2000",
    "data": {
        "uuidConsultado": "d59fd3f1-2082-4759-a237-571ac15ccec2",
        "resultado": "WS Consulta CFDI relacionados RfcEmisor: EKU9003173C9 - folio físcal: d59fd3f1-2082-4759-a237-571ac15ccec2 - Clave: 2000 - Se encontraron CFDI relacionados",
        "uuidsRelacionadosPadres": [
            {
                "uuidsRelacionadosPadres": null,
                "uuid": "D59FD3F1-2082-4759-A237-571AC15CCEC2",
                "rfcEmisor": "EKU9003173C9",
                "rfcReceptor": "CACX7605101P8"
            }
        ],
        "uuidsRelacionadosHijos": [
            {
                "uuid": "5A407B0B-ABF6-4222-BBB6-5176AE6EA67D",
                "rfcEmisor": "EKU9003173C9",
                "rfcReceptor": "URE180429TM6"
            }
        ]
    },
    "message": "Se encontraron CFDI relacionados. ",
    "status": "success"
}
{
    "message": "CACFDI33 - Error no controlado",
    "messageDetail": "Value cannot be null.\r\nParameter name: s",
    "data": null,
    "status": "error"
}
AtributoTipoDescripción
messageStringCódigo regresado cuando existe un error.
messageDetailStringMensaje más descriptivo del error cuando existe uno.
dataobject/nullContiene información detallada del CFDI consultado y sus relaciones. Incluye nodos con UUIDs relacionados, emisores y receptores.
statusString“success” o “error”
codStatusStringCódigo del resultado general de la operación (presente solo en respuesta exitosa).

Relacionados por PFX

Este método permite realizar la consulta utilizando un archivo PFX del contribuyente. Funciona como una alternativa equivalente al CSD, facilitando la autenticación del emisor para identificar CFDI relacionados dentro del proceso previo a la cancelación.

💡Visita nuestra herramienta: Generador de Certificado PFX

🔗 Endpoint

MetodoRuta
POST/relations/pfx

🔐 Autenticación y Headers

HeaderValue
AuthorizationBearer Token
Content-Typeapplication/json

🧾 Parámetros JSON

PropiedadUsoDescripción
uuidRequeridoUUID del comprobante.
rfcRequeridoRFC del emisor.
b64PfxRequeridoArchivo PFX en Base64.
passwordRequeridoContraseña del certificado PFX

Ejemplo Request

curl --request POST \
  --url https://services.test.sw.com.mx/relations/pfx \
  --header 'Authorization: Bearer $token' \
  --header 'Content-Type: application/json' \
  --data '{
"uuid": "77e5ee7e-518e-48d1-b719-2562eaf9cb1f",
"password": "12345678a",
"rfc": "LAN7008173R5",
"b64Pfx":"MIIMCQIBAzC....",'

Ejemplo Response

{
    "codStatus": "2000",
    "data": {
        "uuidConsultado": "d59fd3f1-2082-4759-a237-571ac15ccec2",
        "resultado": "WS Consulta CFDI relacionados RfcEmisor: EKU9003173C9 - folio físcal: d59fd3f1-2082-4759-a237-571ac15ccec2 - Clave: 2000 - Se encontraron CFDI relacionados",
        "uuidsRelacionadosPadres": [
            {
                "uuidsRelacionadosPadres": null,
                "uuid": "D59FD3F1-2082-4759-A237-571AC15CCEC2",
                "rfcEmisor": "EKU9003173C9",
                "rfcReceptor": "CACX7605101P8"
            }
        ],
        "uuidsRelacionadosHijos": [
            {
                "uuid": "5A407B0B-ABF6-4222-BBB6-5176AE6EA67D",
                "rfcEmisor": "EKU9003173C9",
                "rfcReceptor": "URE180429TM6"
            }
        ]
    },
    "message": "Se encontraron CFDI relacionados. ",
    "status": "success"
}
{
    "message": "CACFDI33 - Error no controlado",
    "messageDetail": "Value cannot be null.\r\nParameter name: s",
    "data": null,
    "status": "error"
}
AtributoTipoDescripción
messageStringCódigo regresado cuando existe un error.
messageDetailStringMensaje más descriptivo del error cuando existe uno.
dataobject/nullContiene información detallada del CFDI consultado y sus relaciones. Incluye nodos con UUIDs relacionados, emisores y receptores.
statusString“success” o “error”
codStatusStringCódigo del resultado general de la operación (presente solo en respuesta exitosa).

Relacionados por UUID

Este método está diseñado para emisores que ya han registrado previamente sus CSD en el portal ADT y cuyos CFDI fueron timbrados con nosotros. Permite consultar CFDI relacionados directamente a partir del UUID del comprobante, así como el RFC, simplificando la validación previa a la cancelación dentro del ecosistema del PAC.

🔗 Endpoint

MétodoRuta
POST/relations/{rfc}/{uuid}

🔐 Autenticación y Headers

HeaderValue
AuthorizationBearer Token

📍 Parámetros Path

PropiedadUsoDescripción
rfcrequeridorfc del emisor
uuidrequeridoUUID del comprobante

Ejemplo Request

curl --location --globoff --request POST '{{url_services}}/relations/EKU9003173C9/d59fd3f1-2082-4759-a237-571ac15ccec2' \
--header 'Authorization: bearer {{token}}'

Ejemplo Response

{
    "codStatus": "2000",
    "data": {
        "uuidConsultado": "d59fd3f1-2082-4759-a237-571ac15ccec2",
        "resultado": "WS Consulta CFDI relacionados RfcEmisor: EKU9003173C9 - folio físcal: d59fd3f1-2082-4759-a237-571ac15ccec2 - Clave: 2000 - Se encontraron CFDI relacionados",
        "uuidsRelacionadosPadres": [
            {
                "uuidsRelacionadosPadres": null,
                "uuid": "D59FD3F1-2082-4759-A237-571AC15CCEC2",
                "rfcEmisor": "EKU9003173C9",
                "rfcReceptor": "CACX7605101P8"
            }
        ],
        "uuidsRelacionadosHijos": [
            {
                "uuid": "5A407B0B-ABF6-4222-BBB6-5176AE6EA67D",
                "rfcEmisor": "EKU9003173C9",
                "rfcReceptor": "URE180429TM6"
            }
        ]
    },
    "message": "Se encontraron CFDI relacionados. ",
    "status": "success"
}
{
    "message": "CACFDI33 - Error no controlado",
    "messageDetail": "El UUID proporcionado inválido. Favor de verificar.",
    "data": null,
    "status": "error"
}
AtributoTipoDescripción
messageStringCódigo regresado cuando existe un error.
messageDetailStringMensaje más descriptivo del error cuando existe uno.
dataobject/nullContiene información detallada del CFDI consultado y sus relaciones. Incluye nodos con UUIDs relacionados, emisores y receptores.
statusString“success” o “error”
codStatusStringCódigo del resultado general de la operación (presente solo en respuesta exitosa).

Relacionados por XML

Este método permite consultar los CFDI relacionados enviando una petición XML (PeticionConsultaRelacionados) previamente firmada con el CSD del emisor, bajo el estándar XML-DSig. Esta opción es ideal cuando se prefiere enviar la petición firmada, sin compartir el certificado ni la contraseña.

💡Nota Importante: 👉 Este método requiere un XML ya firmado bajo el estándar XML-DSig. Puedes usar la herramienta Firmar XML para generarlo a partir de tu PFX. Se recomienda validar primero contra el ambiente de pruebas (https://services.test.sw.com.mx) usando el CSD de pruebas del SAT antes de integrarlo en producción.

🔗 Endpoint

MétodoRuta
POST/relations/xml

🔐 Autenticación y Headers

HeaderValue
AuthorizationBearer Token
Content-Typemultipart/form-data

🧾 Parámetros Form

PropiedadUsoDescripción
xmlRequeridoArchivo XML firmado (PeticionConsultaRelacionados)

📐 Estructura y firma del XML

💡 Visita nuestra herramienta: Firmar XML — permite generar y agregar el Signature a tu XML a partir de un archivo PFX. El XML base antes de firmar debe tener la siguiente forma:

💡Nota Importante: 👉 Ten en cuenta lo siguiente al construir el XML:
  • Si se consulta por emisor, usar RfcEmisor y no incluir el atributo RfcReceptor.
  • Si se consulta por receptor, usar RfcReceptor y no incluir RfcEmisor.
  • Nunca enviar ambos atributos con valor al mismo tiempo.
  • RfcPacEnviaSolicitud puede ir vacío ("").
<PeticionConsultaRelacionados
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  Uuid="{UUID}"
  RfcEmisor="{RFC_EMISOR}"
  RfcPacEnviaSolicitud=""
  xmlns="http://cancelacfd.sat.gob.mx">
</PeticionConsultaRelacionados>

Ejemplo de XML

<?xml version="1.0" encoding="utf-8"?>
<PeticionConsultaRelacionados xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://cancelacfd.sat.gob.mx" Uuid="d003a391-8dc7-4a7d-a299-b3a6ed454959" RfcEmisor="EKU9003173C9" RfcPacEnviaSolicitud="">
<Signature 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/2000/09/xmldsig#rsa-sha1"/>
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>8k0KaHNKbuehoDgp/3PpoD2Pjx4=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>N+SZvazfOxk47CMPmQ0iVYkKEJU/hubpmdW71IJH8y6t/8U0YNPFOE+ioxKBu3cwX1NaRWOSTevbtauRybEFA7u9LxuXPLm/1WZIIpq2FRv686WYkKZ8Ay/NHyHpn7OnfvcHXMrwPD+wWJHJU/y3d67fQNJE984UdAKussbcQihCRenB7VYoo0uIZsmVyU03qeaJ7/dLX+gB8WQ7+IiSpZamXRSqeyK5N/V+1sp9keQkSZLkR4OnE+sFyHGJlQTd2+gNiBerEme1br4S2U5o64cUXiLKPbeMf1HGsqnpn75aQgtLs5arzpVwv3llrGRxTuUQuKXkq4bkgoNMaOtLYQ==</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE=</X509Certificate>
<X509IssuerSerial>
<X509IssuerName>CN=AC UAT, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, OU=SAT-IES Authority, E=oscar.martinez@sat.gob.mx, STREET=3ra cerrada de caliz, PostalCode=06370, C=MX, ST=CIUDAD DE MEXICO, L=COYOACAN, OID.2.5.4.45=2.5.4.45, OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT</X509IssuerName>
<X509SerialNumber>3330303031303030303030353030303033343136</X509SerialNumber>
</X509IssuerSerial>
</X509Data>
</KeyInfo>
</Signature>
</PeticionConsultaRelacionados>

Ejemplo Request

curl --location 'https://services.test.sw.com.mx/relations/xml' \
--header 'Authorization: bearer {{token}}' \
--form 'xml=@"/path/to/file"'

Ejemplo Response

{
    "codStatus": "2001",
    "data": null,
    "message": "No se encontraron CFDI relacionados.",
    "status": "success"
}
{
    "codStatus": "2000",
    "data": {
        "uuidConsultado": "e68a87c6-038e-4ec1-a071-0c042160a57f",
        "uuidsRelacionadosPadres": [ ... ],
        "uuidsRelacionadosHijos": [ ... ]
    },
    "status": "success"
}
{
    "codStatus": "301",
    "message": "301 - Error no controlado",
    "status": "error"
}


Atributo
TipoDescripcion
codStatusStringCódigo del resultado de la operación.
dataobject/nullContiene el UUID consultado y sus relaciones (padres/hijos) cuando existen.
messageStringMensaje descriptivo del resultado o del error.
statusString“success” o “error”

How useful was this post?

Click on a star to rate it!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Updated on julio 17, 2026

Article Attachments

Related Articles