PAC - Documentación Cancelación
Documentación WS Cancelación 2018 en Timbrado Puro.
- Legales
- Contenido
- Cancelación CFDI
- Cancelación Retenciones
- Consulta de Estados de CFDI
- Consulta de CFDIs Relacionados
- Pendientes de Cancelación
- Aceptación o Rechazo de Cancelación de CFDI
- Flujo de Cancelación
Legales
.
Queda estrictamente prohibida la reproducción total o parcial de este documento, por cualquier medio y para cualquier fin, sin la autorización previa y por escrito de Tralix México, S. de R.L. de C.V.
Este documento y su contenido pueden incluir, entre otros, marcas registradas, nombres comerciales, logotipos, avisos comerciales, diseños industriales y demás elementos protegidos por las leyes de propiedad industrial e intelectual. Todos estos signos distintivos son propiedad exclusiva de Tralix México, S. de R.L. de C.V., y están legalmente protegidos.
El acceso, posesión o consulta de este documento no otorga, en ningún caso, licencia ni derecho alguno para usar, reproducir, distribuir, modificar o explotar, total o parcialmente, los elementos distintivos de Tralix México. Cualquier uso no autorizado constituirá una infracción a la normativa aplicable y podrá dar lugar al ejercicio de acciones legales.
Tralix México se reserva el derecho de modificar, sin previo aviso, las especificaciones, características o alcances de sus productos y servicios.
Copyright © 2025 Tralix México, S. de R.L. de C.V. Todos los derechos reservados.
Contenido
- Cancelación
- Consulta de Estados
- Consulta de CFDIs Relacionados
- Pendientes de Cancelación
- Aceptación y Rechazo
Al servicio del Timbrador se le adicionaron 4 endpoints nuevos, los cuales corresponden a los Web Services de la nueva cancelación del SAT. Se mencionan cada uno de ellos con un ejemplo de como se realizan las peticiones y sus respuestas. Al ser WS Espejos de los del SAT, la documentación de cada uno de ellos es casi la misma que la del SAT, solo adicionando el header de Autenticación a nuestro servicio.
Cancelación CFDI
Producto: PAC Tralix
1 Introducción
El Web Service de Cancelación proporcionado por Tralix tiene la misma definición que el servicio del SAT expuesto hacia los PAC’s, esto tiene como consecuencia que el cliente al hacer la petición de cancelación hacia el servicio de Tralix debe emplear obligatoriamente XMLSignature para firmar la petición.
Una vez teniendo la petición formada puede ser enviada a Tralix en donde, Tralix como PAC se encarga de añadir un Token de Autenticación proporcionado por el SAT para hacer 100% valida la petición de cancelación.
De esta manera se lleva a cabo el proceso de cancelación de CFDI mediante la llamada directa al Web Service de Tralix.
Nota: Cada solicitud de cancelación consumirá un timbre de su paquete.
2 Estructura del Servicio
2.1 Firma XML (XML Signature)
Antes de enviar la solicitud, esta debe estar firmada digitalmente. Aunque la generación de la firma no se detalla en este documento, se explican los elementos relevantes:
| Elemento | Descripción |
|---|---|
DigestValue |
Contiene el resultado de aplicar el algoritmo hash a el (o los) recurso(s) transformado(s). |
SignatureValue |
Contiene el resultado de una firma codificada en Base64 (la firma generada con los parámetros especificados en el elemento SignatureMethod del elemento SignedInfo después de aplicar el algoritmo especificado por el CanonicalizationMethod. |
X509IssuerName |
Contiene el Qualified Name del certificado con el que se firma la petición. |
X509SerialNumber |
Número de serie del certificado con el que se firma la petición. |
X509Certificate |
Es el certificado en base64 con el que firma la petición. |
Fragmento de ejemplo del nodo de firma:
<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>x4XBfF1LtX9WSj8pBp3mG96OWaE=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>cP+JbE40A8apElFcXgmv0W2FwPve3hDphTCOkpWc9JW3w2YX0V6P4E4/7y4a8SM0H2fkF3a2lZv3hyCp7R2XXsaHraurmAv0KaHs7so8/dN7d4OTVqa17584ays027zkYcUZeda3o4dcTGROnrlaEEtAEW/IDkTnKSDZwWsvpg=</SignatureValue>
Nota: este manual no explica la manera de llevar a cabo la firma mediante XML Signature ya que esta fuera del alcance, sin embargo, se definen algunos elementos que generalmente causan confusión al momento de firmar la petición.
2.2 Parámetros requeridos
Endpoint
POST http://IP_DOMAIN:8081/ HTTP/1.1
| Método | Ambiente | Ruta |
| POST | Pruebas | 🔗 https://pruebastfd.tralix.com:8081 |
| POST | Productivo | 🔗 https://timbrador.tralix.com:8081 |
Autenticación y Headers
| Header | Value |
Accept-Encoding |
gzip,deflate |
User-Agent |
Jakarta Commons-HttpClient/3.1 |
Content-Length |
4145 |
Parámetros
| Parámetro | Tipo | Uso | Descripción |
|---|---|---|---|
Content-Type |
Header | Requerido | text/xml; charset=UTF-8 |
SOAPAction |
Header | Requerido | "http://cancelacfd.sat.gob.mx/ICancelaCFDBinding/CancelaCFD" |
CustomerKey |
Header | Requerido | customer_key_id. Clave única del cliente asignada por Tralix |
Body |
Cuerpo | Requerido | XML firmado del CFDI a cancelar |
2.3 Ejemplo de petición
NOTA: El REQUEST de la petición debe estar sellada con el CSD con el que emiten.
Encabezado HTTP:
POST / HTTP/1.1
Content-Type: text/xml; charset=UTF-8
SOAPAction: "http://cancelacfd.sat.gob.mx/ICancelaCFDBinding/CancelaCFD"
CustomerKey: customer_key_id
Cuerpo (Body):
<CancelaCFD xmlns="http://cancelacfd.sat.gob.mx">
<Cancelacion Fecha="2024-05-08T10:15:04" RfcEmisor="TME960709LR2">
<Folios>
<Folio UUID="96EB0C3F-1F5F-3FAD-9AF5-42B618BC5F4D" Motivo="01" FolioSustitucion="82EB0C5F-5F6F-3FAD-9AF5-42B618BC5F4D"/>
</Folios>
<!-- Nodo de firma XML Signature aquí -->
</Cancelacion>
</CancelaCFD>
XML Original
<CancelaCFD xmlns="http://cancelacfd.sat.gob.mx">
<Cancelacion Fecha="2019-05-08T10:15:04" RfcEmisor="TME960709LR2"
xmlns="http://cancelacfd.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Folios>
<Folio UUID="96EB0C3F-1F5F-3FAD-9AF5-42B618BC5F4D" Motivo="01"
FolioSustitucion="82EB0C5F-5F6F-3FAD-9AF5-42B618BC5F4D"/>
</Folios>
Datos que se sellan
<Cancelacion Fecha="2019-05-08T10:15:04" RfcEmisor="TME960709LR2"
xmlns="http://cancelacfd.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Folios>
<Folio UUID="96EB0C3F-1F5F-3FAD-9AF5-42B618BC5F4D" Motivo="01"
FolioSustitucion="82EB0C5F-5F6F-3FAD-9AF5-42B618BC5F4D"/>
</Folios>
</Cancelacion>
Request
<CancelaCFD xmlns="http://cancelacfd.sat.gob.mx">
<Cancelacion xmlns="http://cancelacfd.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Fecha="2018-09-01T17:01:50"
RfcEmisor="TME960709LR2">
<Folios>
<Folio UUID="96EB0C3F-1F5F-3FAD-9AF5-42B618BC5F4D" Motivo="01"
FolioSustitucion="82EB0C5F-5F6F-3FAD-9AF5-42B618BC5F4D"/>
</Folios>
<Folios>
<Folio UUID="82EB0C3F-1F6F-3FAD-9AF5-42B618BC5F4D" Motivo="02"/>
</Folios>
<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>POBrgi6EjPKzezz790pnVkYJfXA=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>XYvWTI87pX/3Sgk5gXIbceMPpisykxuNudjVeQGJZYyVp3kRRZTLm5qLwr/YulfXQpjSpGkeUXPh
w0lHd9dqgDlY5rqgZkMZJWYgDacw/zl+qdK0NTTGuBbU+2hS4Kg7tWip5rKKAvy4VKryzNLmpUx7
EaeOlz6p1+Q1ksX08Xb3CBumzkpkEMX4UXESkulkYA928hOsmINK8bQAjPSCJUwRlqrq3McV4ukb
JAjfL6aaca9Rez5aOoMbg5o6ZOhvr0J0wLrp/MpDlC9QV6RzwPlCMp3b6AoQlUzs9z4UDrQkIIkc
R5j6/HCk1teAZiM0ZQhl0seABPNkPvcabQkCYA==</SignatureValue>
<KeyInfo>
<X509Data>
<X509IssuerSerial>
<X509IssuerName>OID.1.2.840.113549.1.9.2=Responsable: ACDMA,
OID.2.5.4.45=SAT970701NN3, L=Coyoac?n, ST=Distrit o Federal, C=MX,
OID.2.5.4.17=06300, STREET="Av. Hidalgo 77, Col. Guerrero",
EMAILADDRESS=asisnet@pruebas.sat.gob.mx, OU=Administraci?n de Seguridad
de la Informaci?n, O=Servicio de Administraci?n Tributa ria, CN=A.C. 2
de pruebas(4096)</X509IssuerName>
<X509SerialNumber>286524172099382162235533054548081509963388106291</X509SerialNumber>
</X509IssuerSerial>
<X509Certificate>MIIFzDCCA7SgAwIBAgIUMjAwMDEwMDAwMDA
zMDAwMjI3NjMwDQYJKoZIhvcNAQELBQAwggFmMSAw
HgYDVQQDDBdBLkMuIDIgZGUgcHJ1ZWJhcyg0MDk2KTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRt
aW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1
cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMu
c2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNV
BBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UE
BwwJQ295b2Fjw6FuMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxITAfBgkqhkiG9w0BCQIMElJlc3Bv
bnNhYmxlOiBBQ0RNQTAeFw0xNjEwMjEyMDU0MDFaFw0yMDEwMjEyMDU0MDFaMIG4MRwwGgYDVQQD
ExNJTk1PQiBFRE1BIFNBIERFIENWMRwwGgYDVQQpExNJTk1PQiBFRE1BIFNBIERFIENWMRwwGgYD
VQQKExNJTk1PQiBFRE1BIFNBIERFIENWMSUwIwYDVQQtExxUTUU5NjA3MDlMUjIgLyBIRUdUNzYx
MDAzNFMyMR4wHAYDVQQFExUgLyBIRUdUNzYxMDAzTURGUk5OMDkxFTATBgNVBAsUDFBydWViYXNf
Q0ZESTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJgqZ+ezJyeJXACMK8ehFp64ecAl
8jfYKB4xMJy0RRb+qXKRewxtLojiTFECWdCx283tEkdHUj8bLzsCfFAMnsP2G4CS2aE2/1LLCHoZ
pdImaasLX1YJL2bUzxKQKi+RlL63M49yyfvGBjEgG7f6TMwVSUSbgDFpYAFHqx4LK+p2GVHuUUzo
iIm8xRYaW1YPMa457be5W8wsjw0nGRLfo8hRIjPHedkwtcqYPj57xsPXMfxWP45vOlW7GuLkMq/E
CccHxJiPitiThcDFKlf/mAR0kaux9LTffvWilA2uQAlyVyNVjqfdpvDdq4ycTaoIMYKrv/9R31dQ
0AmdXT8cfbcCAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQEL
BQADggIBAF5kwvyBUp7Ad99DktzEhrJwnMQyhA79sVc4Ns2SpLON/cV244ZnG5hgXk2awKbHEiSj
/ke7EhgEpGS818ERsj7eW/wRgugBZraVn48GOn6qX0uV9EjwWEGK5uT6IDN25igeXxVJHP3hn40f
X2BPqsaqRP49YMxcOWD7mhWRh2E6BnoKYjgHVJbavUN6pjCBLmy4hKwfitbjqtUiiWOmBDvvmLFp
EGXG8OXn2xladBUkfC4sfgMBpVZVuEV7RqAgCSCZ2xo6UEyd4KKpTjbdp0Tj5gw+NmiovAZHwU/N
PRojN95f/ibj7268LBr2DcO5rlmr7szwJ3dtwu86N7HkUxW3vo3qGHTVK2HRBArda9VN4pEyIL0Q
t46ci5rFYXB2cCWU8XAh8gaZnxJoNTSY4A4yMJG9UfM/2rHC+YvOouIZ2kJZ2h+SwKOYGJOX749P
/QeF4Z/L/ODs3E08bV7IQna1ZHmd6ydYhZVpheMgNoNnIG6jdzfyuo8NZAIIW/JGmPTANPCwTSHq
BY1lmnp/oZNrkxGWtGhbltRfBoFQfTqCZALm6fsVeQqHQ6a7W45FJ2RD1nltPSdniMo3Iz/t4eHC
jFvM3aORvA9oJEPr5ZzzBV2fQOXkyS8QdsSVb5ZmJG+FqZKKlsiaX6xhqK6gqTLyJN+7/yr9T/ZZ
4M7VrRoL</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</Cancelacion>
</CancelaCFD>
2.4 Ejemplo de respuesta
Respuesta exitosa
<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">
<CancelaCFDResponse xmlns="http://cancelacfd.sat.gob.mx">
<CancelaCFDResult Fecha="2021-12-15T18:54:48.8228124" RfcEmisor="AXT940727FP8">
<Folios>
<UUID>682ACECE-54CF-4A07-84B9-0916DA34A18F</UUID>
<EstatusUUID>201</EstatusUUID>
</Folios>
<Folios>
<UUID>E6F9F159-B0DE-400B-8834-4B0AB4C1D4B8</UUID>
<EstatusUUID>209</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>4bvFycaQnpXVZ1R78WYEyO7tteJ5qYJD2hFEiSu/kKIt6dN6MSuS9YxS9MLyEnLtxn/vtxSaalZOZqKiPYRxiA==</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>NXhxBDAJ1OekLzhtuWeKIkpLEDobiBr6eFuErkqLZZ04Gq2r/TiC9R8ANZl5/cMnyIr6u1iKjV8DChljrQoijw==</SignatureValue>
<KeyInfo>
<KeyName>BF66E582888CC845</KeyName>
<KeyValue>
<RSAKeyValue>
<Modulus>n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
</KeyValue>
</KeyInfo>
</Signature>
</CancelaCFDResult>
</CancelaCFDResponse>
</s:Body>
</s:Envelope>
3 Motivos de Cancelación
| Código | Descripción |
|---|---|
| 01 | Comprobante emitido con errores con relación |
| 02 | Comprobante emitido con errores sin relación |
| 03 | No se llevó a cabo la operación |
| 04 | Operación nominativa relacionada en una factura global |
4 Códigos de Respuesta
Los códigos de error y la descripción de los mismos contenidos en la excepción CancellationClientException en caso de que se lance son los siguientes:
| Código | Descripción |
| 201 | Petición aceptada. |
|
202 |
Folio Fiscal Previamente Cancela |
| 203 | Folio Fiscal No Correspondiente al Emisor |
| 204 | Folio Fiscal No Aplicable a Cancelación |
| 205 | Folio Fiscal No Existente |
| 206 | UUID no corresponde a un CFDI del Sector Primario |
| 207 | No se especificó el motivo de cancelación o el motivo no es valido |
| 208 | Folio Sustitución invalido |
| 209 | Folio Sustitución no requerido |
|
210 |
La fecha de solicitud de cancelación es mayor a la fecha de declaración |
|
211 |
La fecha de solicitud de cancelación límite para factura global |
| 212 | Relación no valida o inexistente |
| 300 | Usuario No Válido |
| 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 | Certificado Inválido |
| 306 | El certificado no es de tipo CSD. |
| 307 | El CFDI contiene un timbre previo. |
| 308 | Certificado no expedido por el SAT. |
| 309 | Certificado Inválido |
| 310 | CSD Inválido |
| 314 | CFDI no cancelable con el motivo 04 (Se intenta cancelar un CFDI que no es una factura global). |
| 402 | RFC del emisor no se encuentra en el régimen de contribuyentes. |
| 407 | Error en el servicio de cancelación del SAT. |
| 901 | El cliente con el CustomerKey proporcionado no es válido. |
| 902 | El RFC no está registrado como cliente. |
| 903 | El RFC se encuentra inactivo por el momento. |
| 904 | No cuenta con licencia para realizar peticiones. |
| 905 | El RFC no pertenece al cliente con el CustomerKey que proporcionó. |
| 906 | Ha expirado su periodo de pruebas. |
| 910 | No se puede determinar el cliente a partir del RFC. |
| 998 | Error en el cliente. |
| 999 | Error en el servidor. |
5 Estados del CFDI
Estos son los estados posibles al consultar un CFDI:
- VIGENTE
- CANCELABLE_CON_ACEPTACION
- CANCELABLE_SIN_ACEPTACION
- NO_CANCELABLE
- NO_ENCONTRADO
- EN_PROCESO
- CANCELADO_PLAZO_VENCIDO
- CANCELADO_CON_ACEPTACIÓN
- CANCELADO_SIN_ACEPTACIÓN
- SOLICITUD_RECHAZADA
6 Consideraciones Técnicas
-
La firma XML debe realizarse con el CSD vigente del emisor.
-
Toda petición debe estar completamente firmada y codificada en UTF-8.
-
Se requiere un
CustomerKeyválido proporcionado por Tralix. -
El proceso consume un timbre del paquete del cliente.
7 Contacto y Soporte
Para soporte técnico, dudas sobre el uso del servicio o solicitud de su CustomerKey, puede comunicarse con su ejecutivo o con el área de soporte técnico de Tralix vía ticket.
Cancelación Retenciones
1 Introducción
El Web Service de Cancelación proporcionado por Tralix tiene la misma definición que el servicio del SAT expuesto hacia los PAC’s, esto tiene como consecuencia que el cliente al hacer la petición de cancelación hacia el servicio de Tralix debe emplear obligatoriamente XMLSignature para firmar la petición.
Una vez teniendo la petición formada puede ser enviada a Tralix en donde, Tralix como PAC se encarga de añadir un Token de Autenticación proporcionado por el SAT para hacer 100% valida la petición de cancelación.
De esta manera se lleva a cabo el proceso de cancelación de CFDI mediante la llamada directa al Web Service de Tralix.
Nota:
1) Toda petición de cancelación debe estar firmada usando XMLSignature, cumpliendo con los lineamientos definidos por el SAT.
2) Cada cancelación consume un timbre del paquete contratado por el cliente.
2 Estructura del Servicio
2.1 Firma XML (XML Signature)
Antes de enviar la solicitud, esta debe estar firmada digitalmente. Aunque la generación de la firma no se detalla en este documento, se explican los elementos relevantes:
| Elemento | Descripción |
|---|---|
DigestValue |
Contiene el resultado de aplicar el algoritmo hash a el (o los) recurso(s) transformado(s). |
SignatureValue |
Contiene el resultado de una firma codificada en Base64 (la firma generada con los parámetros especificados en el elemento SignatureMethod del elemento SignedInfo después de aplicar el algoritmo especificado por el CanonicalizationMethod. |
X509IssuerName |
Contiene el Qualified Name del certificado con el que se firma la petición. |
X509SerialNumber |
Número de serie del certificado con el que se firma la petición. |
X509Certificate |
Es el certificado en base64 con el que firma la petición. |
Fragmento de ejemplo del nodo de firma:
<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>x4XBfF1LtX9WSj8pBp3mG96OWaE=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>cP+JbE40A8apElFcXgmv0W2FwPve3hDphTCOkpWc9JW3w2YX0V6P4E4/7y4a8SM0H2fkF3a2lZv3hyCp7R2XXsaHraurmAv0KaHs7so8/dN7d4OTVqa17584ays027zkYcUZeda3o4dcTGROnrlaEEtAEW/IDkTnKSDZwWsvpg=</SignatureValue>
Nota: este manual no explica la manera de llevar a cabo la firma mediante XML Signature ya que esta fuera del alcance, sin embargo, se definen algunos elementos que generalmente causan confusión al momento de firmar la petición.
2.2 Parámetros requeridos
Endpoint
POST http://IP_DOMAIN:8081/ HTTP/1.1
| Método | Ambiente | Ruta |
|---|---|---|
| POST | Pruebas |
|
| POST | Productivo |
|
Autenticación y Headers
| Header | Value |
| Accept-Encoding | gzip,deflate |
| User-Agent | Jakarta Commons-HttpClient/3.1 |
Parámetros
| Parámetro | Tipo | Uso | Descripción |
|---|---|---|---|
Content-Type |
Header | Requerido | text/xml; charset=UTF-8 |
idCustomer |
Header | Requerido | customer_key_id. Clave única del cliente asignada por Tralix |
idCustomer: customer_key_id
Host: IP_DOMAIN:8081
ipAddress: IP_DOMAIN
2.3 Ejemplo de petición
NOTA: El REQUEST de la petición debe estar sellada con el CSD con el que emiten.
Encabezado HTTP:
Toda petición al servicio de cancelación debe incluir las siguientes cabeceras HTTP:
POST https://timbrador.tralix.com:7070/retenciones/cancelaUno/ HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
idCustomer: <CustomerKey proporcionado>
User-Agent: Jakarta Commons-HttpClient/3.1
Host: timbrador.tralix.com
ipAddress: <IP cliente>
Datos que se sellan
<CancelacionRet:Cancelacion Fecha="2021-12-15T23:27:57" RfcEmisor="B&M011127BQ0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:CancelacionRet="http://www.sat.gob.mx/esquemas/retencionpago/1"
xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/1 CancelacionRetenciones.xsd">
<Folios xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1">
<Folio UUID="0AA0A514-6997-4C1B-8A36-89BB0CB1B265" Motivo="01"
FolioSustitucion="01E53227-38EC-458D-B1D4-08F2B533F98B"/>
</Folios>
</CancelacionRet:Cancelacion>
Request
<?xml version="1.0"?>
<CancelacionRet:Cancelacion Fecha="2021-12-15T23:32:30" RfcEmisor="XIA190128J61"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:CancelacionRet="http://www.sat.gob.mx/esquemas/retencionpago/1"
xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/1 CancelacionRetenciones.xsd">
<Folios xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1">
<Folio UUID="23B8C34D-C72F-45F9-B952-01F5688D666A" Motivo="02"/>
</Folios>
<Folios xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1">
<Folio UUID="3FE57418-0CD6-4766-810C-02BF4BAE008F" Motivo="02"/>
</Folios>
<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>AAIGTZrpSeAiR2gG3C5HB+zYTGc=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>cCRO+aoBgYoelmLCxX5836fKKaa/pUPc0bQppVu5kW6KOcx/xpiQpuCv6LnhkSwVwtsdlz6qdr3XbY72jCs4+/GH4qfs+WzhTMxa/6aUUl0RJJae1o34G0WCdDs/WfKRooDcIe2oks5s2vWrSd0pmTtC5lPJVTQEgMb9h7zJnV6gNs2Ss3n1XQnJ+psf+cQIyKjjSKv7bYtX3kwjFW04GHlEHZrsQH+DrL9stGRXoZNICMTqTqHHjjnJhxQEB1okY16mS08Vj5q4psZBb5vvTA+gtrrIUYqI9//ahDZ1cGrV/RxzTxJH2Rl/nxkLaZEmi6zHDoipapp20KVXfI8ZTg==</SignatureValue>
<KeyInfo>
<X509Data>
<X509IssuerSerial>
<X509IssuerName>OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT,
OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX,
PostalCode=06370, STREET=3ra cerrada de cadiz, E=oscar.martinez@sat.gob.mx,
OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC
UAT</X509IssuerName>
<X509SerialNumber>292233162870206001759766198444326234574021605684</X509SerialNumber>
</X509IssuerSerial>
<X509Certificate>MIIFszCCA5ugAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDEyOTQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwMTA1MDAwMTEwWhcNMjMwMTA1MDAwMTEwWjCB2jElMCMGA1UEAxMcTUFOREFSSU5BIE1BUktFVElORyBTQSBERSBDVjElMCMGA1UEKRMcTUFOREFSSU5BIE1BUktFVElORyBTQSBERSBDVjElMCMGA1UEChMcTUFOREFSSU5BIE1BUktFVElORyBTQSBERSBDVjElMCMGA1UELRQcQiZNMDExMTI3QlEwIC8gRE8mRDYwMTAwOUxSQTEeMBwGA1UEBRMVIC8gQkFVTTkzMDIwMU1NQ0RHUjA1MRwwGgYDVQQLExNNQU5EQVJJTkEgTUFSS0VUSU5HMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAono09SHjdHQwOumVLCvvPPNwVabv5qxwKqO7RiuLODXopBwuGvTS7LERoCpx+KrKdP8C1tPXIFWzJ701kGPSLhUgKrft4Gj031hFLt6vRne/N8fnmYnjiIP11DN2gj6/dbLbwzNSzmpW+4quITKin+zpYegCBNXGJunNrr1y7qREfiD1TssHWfuPnKC7UFzBTXCR425dq5wjxvYQSuIPq4FieyVWFNppcRFhfzSole16wQRfLZoWcR+7DsUfxqZNbNVQpkFVMVQZ1H95MJyjf/MY7+07aXXzt+Ovc+/FVsHjQ8YtaDNMcG8lNXxSQhsvAvX9is0VCfXe4P8Nu62tYwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAkcEVnJGpXpKxeGAP/U/vH/q8866MwQlW/OUs1yAdEMJZilWu8I5uvfDmPIde7hKwXdpQYFexFWMa6RDODmprY/W6tZRuqeaXpNEXdt/hWnkbN72Bbu6u01WW+rHqVjRCmu1hjhpTkj+S/g9KSeB6gkrwtaCXjykLEIGtIITTOC/vDISEFM/bVkg0Y5Ck0eRBPVURhnUh2GyKkLPDKiQC2UD8fE0Ebe0OHiYMX5jj8v1mbn5F8sAlovlEvFMUDYZgvD/ISF43IK0lK/B6P5ocIitX/lHLMDgrvn/fY57B9y0F58CR1cjBR+JYSDmw/pRA6l/EIpJzJzjLn9TLDfSUBRvpkmrr0CBNhDbMbksXOTjyNDEkOBEgX9qg0rf5T3bAcOs99kVVTvzuEZqSxWoTPZ9NQaEFWUeVjKCJt2qcAfIcpmDfykXyhh0awQVi1ewhLMQ5I4SOcex0yejX7vlIjxFsN5MYx7vH0/NXV0kwPAuUM2vLVzrWkJD4f7+fC0pNFM50viaIBYJLpVBj3uPtmPOIPHvB1xjEbmdZ8m3oQdvkok0FMKmLMXs1C3pgLPIzysTscrPCF8pCJw5Tm+cAUu34BgS2J9r3PdOPLt0gXDxAg3yvkadi4ao5r9JqJhJVpHsUt0GnV2bQR8uZmwPnd1eX8Ojklgym6MGihm+sQ/8=</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</CancelacionRet:Cancelacion>
2.4 Ejemplo de respuesta (Acuse)
Respuesta exitosa
<?xml version="1.0"?>
<Acuse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Fecha="2021-12-15T23:28:06.4819808"
RfcEmisor="B&M011127BQ0" WorkProcessId="8e5a0254-babc-4b55-aaa1-9232dc739db0"
xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1">
<Folios>
<UUID>0AA0A514-6997-4C1B-8A36-89BB0CB1B265</UUID>
<EstatusUUID>1201</EstatusUUID>
<Motivo>01</Motivo>
<FolioSustitucion>01E53227-38EC-458D-B1D4-08F2B533F98B</FolioSustitucion>
</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>fMuB/Ee3grx4cDFX+GRpnX3ME0l9dLTLdbiYXundyMPS+GOZ1AR2XMtepTSZiD08NzAwF2nFFHWkZOIEU3a4Dw==</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>D4rC8c5ZK2eXtbJWQ2C6xOTeW3dkPIf6u2+i6DbX1FTXqPkVW1dcm4i+I9GEetpJOfS6pSxGBa152QBPimJBNg==</SignatureValue>
<KeyInfo>
<KeyName>30001000000400001215</KeyName>
<KeyValue>
<RSAKeyValue>
<Modulus>nbtVtkPquCMLdpgeClMrTmxzCjyjn8P9YrBlW9jXC/FcXozIYHvzctK1pRxRxLTKlChc9fjluht9ffDfGOWim/4AlTrCiG6om7ItkHbLGMQrABp8qGY+SPmq1xtZ7qbbgoTFCtzP3pN9Z4uSDhdnrF2655sdmDzHJYE9MirNLM4SIdSFsabA31CCAMaWpB4TO6ZmExLp+wUiUyeIFWswc5G5KvmS/lU5tbXLK7zBDDUVjN0K1r/0iaZIZzPMxQcgfgYBrfLGZ3916MkmF28iBk5l1sfNTKS9S445QHKc+6oTP4UDDnjN/K14YWX449BAMxKcelEpjZlBQs1a1eNVcQ==</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
</KeyValue>
</KeyInfo>
</Signature>
</Acuse>
3 Motivos de Cancelación
| Código | Descripción |
|---|---|
| 01 | Comprobante emitido con errores con relación |
| 02 | Comprobante emitido con errores sin relación |
| 03 | No se llevó a cabo la operación |
| 04 | Operación nominativa relacionada en una factura global |
4 Códigos de Respuesta
Los códigos de error y la descripción de los mismos contenidos en la excepción CancellationClientException en caso de que se lance son los siguientes:
| Código | Descripción |
|---|---|
| 1201 | Petición aceptada |
| 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 |
| 1310 | Motivo no válido |
| 1311 | Folio Sustitución no válido |
| 1312 | Folio Sustitución no requerido |
| 1313 | Solicitud fuera de la declaración anual |
|
1314 |
Relación no válida |
| 901 | El cliente con el CustomerKey proporcionado no es válido. |
| 902 | El RFC no está registrado como cliente. |
| 903 | El RFC se encuentra inactivo por el momento. |
| 904 | No cuenta con licencia para realizar peticiones. |
| 905 | El RFC no pertenece al cliente con el CustomerKey que proporcionó. |
| 906 | Ha expirado su periodo de pruebas. |
| 910 | No se puede determinar el cliente a partir del RFC. |
| 998 | Error en el cliente. |
| 999 | Error en el servidor. |
5 Consideraciones Técnicas
-
La solicitud debe estar firmada digitalmente mediante XMLSignature, usando un Certificado de Sello Digital (CSD) vigente y autorizado del emisor.
-
Toda petición debe estar completamente firmada y codificada en UTF-8.
-
Se requiere un
CustomerKeyválido proporcionado por Tralix. -
El proceso consume un timbre del paquete del cliente.
6 Contacto y Soporte
Para soporte técnico, dudas sobre el uso del servicio o solicitud de su CustomerKey, puede comunicarse con su ejecutivo o con el área de soporte técnico de Tralix vía ticket.
Consulta de Estados de CFDI
1 Introducción
El servicio de Consulta de Estados de CFDI permite conocer el estado actual de un Comprobante Fiscal Digital por Internet (CFDI), ya sea Vigente o Cancelado, así como información adicional sobre su cancelabilidad.
Este servicio utiliza método SOAP (POST) y es de tipo 1:1, es decir, por cada consulta realizada, se recibe información sobre un único CFDI.
Nota: Cada cancelación consume un timbre del paquete contratado por el cliente.
2 Estructura del Servicio
2.1 Estructura general de la petición
Este servicio expone una interfaz web SOAP para consultar, con base en los siguientes datos:
-
RFC del emisor
-
RFC del receptor
-
Total del comprobante
-
UUID del CFDI
Con estos datos se construye la expresión impresa que se envía como parámetro en la solicitud.
Endpoint
| Método | Ambiente | Ruta |
|---|---|---|
| POST | Pruebas |
|
| POST | Productivo |
|
Autenticación y Headers
| Header | Value |
| SOAPAction | "http://tempuri.org/IConsultaCFDIService/Consulta" |
| Content-Type | text/xml; charset=utf-8 |
| CustomerKey | Clave única del cliente asignada por Tralix |
Parámetros de Consulta
Para realizar la consulta se utiliza la expresión impresa, con la siguiente estructura:
?re=[RFC Emisor]&rr=[RFC Receptor]&tt=[Total del CFDI]&id=[UUID del CFDI]
Desglose de parámetros:
| Parámetro | Descripción | Obligatorio |
|---|---|---|
re |
RFC del Emisor | Sí |
rr |
RFC del Receptor | Sí |
tt |
Total del CFDI (en número decimal) | Sí |
id |
UUID del CFDI | Sí |
2.2 Ejemplo de petición
Las siguientes cabeceras son obligatorias para la correcta invocación del servicio:
SOAPAction: "http://tempuri.org/IConsultaCFDIService/Consulta"
Content-Type: text/xml; charset=utf-8
CustomerKey: [CUSTOMER_KEY]
-
SOAPAction: Define la acción SOAP correspondiente. -
Content-Type: Debe indicarse comotext/xmlcon codificación UTF-8. -
CustomerKey: Valor único proporcionado por Tralix al contratar el servicio.
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Body>
<tem:Consulta>
<tem:expresionImpresa><![CDATA[?re=TME960709LR2&rr=CALJ581101M37&tt=10403.20&id=33F694C6-3E44-41B5-A67E-B3767EB1EC50]]></tem:expresionImpresa>
</tem:Consulta>
</soapenv:Body>
</soapenv:Envelope>
2.3 Ejemplo de respuesta
Respuesta exitosa
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ConsultaResponse xmlns="http://tempuri.org/">
<ConsultaResult xmlns:a="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:CodigoEstatus>S - Comprobante obtenido satisfactoriamente.</a:CodigoEstatus>
<a:EsCancelable>Cancelable con aceptación</a:EsCancelable>
<a:Estado>Cancelado</a:Estado>
<a:EstatusCancelacion>Plazo vencido</a:EstatusCancelacion>
</ConsultaResult>
</ConsultaResponse>
</s:Body>
</s:Envelope>
3 Consideraciones Técnicas
-
El
CustomerKeydebe estar vigente y autorizado. -
Se debe usar la codificación UTF-8.
-
La URL cambia dependiendo del ambiente (pruebas o producción).
-
La precisión del total (
tt) debe coincidir exactamente con el CFDI original, incluyendo decimales. -
Asegúrate de que el UUID, RFCs y monto estén correctamente formateados.
4 Ejemplo Práctico
Supongamos que quieres consultar el estado del siguiente CFDI:
-
RFC Emisor:
TME960709LR2 -
RFC Receptor:
CALJ581101M37 -
Total:
10403.20 -
UUID:
33F694C6-3E44-41B5-A67E-B3767EB1EC50
Tu expresión impresa sería (Inclúyela dentro del XML):
?re=TME960709LR2&rr=CALJ581101M37&tt=10403.20&id=33F694C6-3E44-41B5-A67E-B3767EB1EC50
5 Contacto y Soporte
Para soporte técnico, dudas sobre el uso del servicio o solicitud de su CustomerKey, puede comunicarse con su ejecutivo o con el área de soporte técnico de Tralix vía ticket.
Consulta de CFDIs Relacionados
1 Introducción
El servicio de Consulta de CFDIs Relacionados está dirigido a los receptores que necesitan conocer qué comprobantes están vinculados a una factura específica (por ejemplo, pagos, sustituciones, notas, etc.). La petición debe enviarse mediante SOAP y el XML de la solicitud debe estar firmado con el Certificado de Sello Digital (CSD) del contribuyente que solicita la información.
Nota: Cada consulta consume un timbre del paquete contratado.
2 Estructura del Servicio
2.1 Estructura general de la petición
La petición se realiza mediante método POST y debe contener un sobre SOAP con el nodo ProcesarRespuesta incluyendo los atributos necesarios (RFC del PAC que envía la solicitud, RFC receptor, UUID del comprobante) y la firma digital (XML Signature) debidamente construida.
2.2 Parámetros requeridos
Endpoint
| Método | Ambiente | Ruta |
|---|---|---|
| POST | Pruebas | https://pruebastfd.tralix.com:8081/cancela/relacionadosSoap/ |
| POST | Productivo | https://timbrador.tralix.com:8081/cancela/relacionadosSoap/ |
Autenticación y Headers
| Header | Valor esperado |
|---|---|
SOAPAction |
"http://cancelacfd.sat.gob.mx/ICfdiConsultaRelacionadosService/ProcesarRespuesta" |
Content-Type |
text/xml; charset=utf-8 |
CustomerKey |
{CUSTOMER_KEY} (clave asignada al cliente) |
Parámetros (dentro del cuerpo SOAP)
| Parámetro | Descripción |
|---|---|
RfcPacEnviaSolicitud |
RFC del PAC que realiza la consulta. |
RfcReceptor |
RFC del receptor (cliente de Tralix) al que se le emitió la factura. Debe estar asociado a un CustomerKey vigente. |
Uuid |
UUID del comprobante del cual se desean obtener los CFDIs relacionados. |
Signature |
Firma digital (XML Signature) del contenido, usando el CSD del contribuyente que solicita. |
2.3 Ejemplo de petición
<soapenv:Envelope xmlns:can="http://cancelacfd.sat.gob.mx" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
<soapenv:Header/>
<soapenv:Body>
<can:ProcesarRespuesta>
<can:solicitud RfcPacEnviaSolicitud="DAL050601L35" RfcReceptor="CALJ581101M37" Uuid="BB5AA65E-45D2-4565-9FA3-E67A452CDFA2">
<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>FzlrxAxnZ59ixR9kXOXtm9K44aI=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>RUVlQGKT/LqJyteqV3dqqpbWi/LkPduFci5CNduLm3Uoe7szOn3Txc0y1T8oHYxb9jSwGuYjU+lD
ORZ1jp7gWkKZxkQweTa87bj7qkXxS8vf3uUuoeMbDZ5sJY7aDxYvtqRYwOYuiQMDlMGdG1V2L23K
sHYAmpNnGPsm94A5cAc9Cz8IJANYxdnJDt6FYFUpRk/95lqkuKKU4ceAPNB5Gxtlhi9Gnjeiz2Xi
v/bI20hhdM2Fydic2KDyioTlZ3CHo6VKVq9/vM5VXgmSb3gd4cEWxK8jt9krsTbXQWLkYW0AQ8FH
85CmwJURtbETR61wD5+MQVi8VAEYo2UUbHDZTg==</SignatureValue>
<KeyInfo>
<X509Data>
<X509IssuerSerial>
<X509IssuerName>OID.1.2.840.113549.1.9.2=Responsable: ACDMA, OID.2.5.4.45=SAT970701NN3, L=Coyoacán, ST=Distrito Federal, C=MX, OID.2.5.4.17=06300, STREET="Av. Hidalgo 77, Col. Guerrero", EMAILADDRESS=asisnet@pruebas.sat.gob.mx, OU=Administración de Seguridad de la Información, O=Servicio de Administración Tributaria, CN=A.C. 2 de pruebas(4096)</X509IssuerName>
<X509SerialNumber>286524172099382162235533054548081509963388170548</X509SerialNumber>
</X509IssuerSerial>
<X509Certificate>MIIFxTCCA62gAwIBAgIUMjAwMDEwMDAwMDAzMDAwMjI4MTQwDQYJKoZIhvcNAQELBQAwggFmMSAw
HgYDVQQDDBdBLkMuIDIgZGUgcHJ1ZWJhcyg0MDk2KTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRt
aW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1
cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMu
c2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNV
BBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UE
BwwJQ295b2Fjw6FuMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxITAfBgkqhkiG9w0BCQIMElJlc3Bv
bnNhYmxlOiBBQ0RNQTAeFw0xNjEwMjUyMTM5MzBaFw0yMDEwMjUyMTM5MzBaMIGxMSAwHgYDVQQD
ExdKVURJVEggUkFNSVJFWiBFU0NVREVSTzEgMB4GA1UEKRMXSlVESVRIIFJBTUlSRVogRVNDVURF
Uk8xIDAeBgNVBAoTF0pVRElUSCBSQU1JUkVaIEVTQ1VERVJPMRYwFAYDVQQtEw1DQUxKNTgxMTAx
TTM3MRswGQYDVQQFExJGVUFCNzcwMTE3TU1DTkxUMDQxFDASBgNVBAsUC1BydWViYV9DRkRJMIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj9dxR0263ZLEYuLxz+OzMHfCezfcn4klwY0c
/lQVkXCPOJG7vkmQpk80vImd4YiMGJN9wKjnXVdH1eN5RWNk4PtT/JnkgNvIjrjg05AkZBHbkqGp
/s5MA7K1Ez+vLt4TwHgoxRB4SpeF/477UiM0HMWiK5KakKkjatL3QLG2S3RBxRv1phr2nCsX4iiO
zan591oz19ShDwO3HRkYo/0jtq8o1ZFr5ajpxnJR+DhXakcWok10O3LrpYkInn6CZtSEwFTWbMda
g1/sNwptIxQDHoKHUpHQNWdE1sj1vdOzcs6jIkX7afgFYKfArssGucdbNzwloOFh6p4miT5oRs4m
VwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEA
pJPBXikqI0118ZA+0wMzqqQfifbhf5M3UDx+1UOUj0VPwTTi7JX6I3DwoFK2qzjGx8sOfcqUhETQ
jf5+ZLUI/ZRLqnT4lNWYXLFTf7KwBggYP89Pp3+wkfDxy+Ic8gh+Hr4MzRGPDiDU+M+t/5MGOVPL
hMLyyz+d/dl1a8M4kwAUdO1xyZemfdqcq6lLEgk5GbiA4NwGHYGjLdT/9xkZC3FVRccKy/MqesgI
SeTKmNGGNawvqJZ83rWCrMx2jlSfs6AUfjlbz+5rNnETSzImMOHIJMbMHvfbxzojOgWQmgsaiByS
3gpxUeH2sYNRLoJQ6BxVWdKgtrh4w1KKE07MxJytMyHNN1I4XlvcNDwqVDXelcedeswnjESz1OEV
2AaWXfZ6cLpNIfb6tnWxyITrKyygbjkRXsb15LGlLv2Q5fywTVjWtsQ2jDlrhRPW0bjIDohAaqNM
+6vTKjJvZmEZ6FJJsI838RYGyGkAm1fc+Hsy45PyJ1FakIdOWREJSrUQjh073Vl1qY+VY2RL7oKL
uG598YjcQrEK1zEDdAGmHoBtXuIDR6niaT6rurHhf4NHiXZAnWxyFI7UlLoQZ3ngefGniWRioqef
1K5bzTOg4mYPDAaECzlcZ6p6/Um95mOUHU44owbqZx8yUwRzZt83SbAKhzEsdwgXzF+FlS0Qxvo=</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</can:solicitud>
</can:ProcesarRespuesta>
</soapenv:Body>
</soapenv:Envelope>
RfcPacEnviaSolicitud= Es el RFC del PAC con el que esta realizando la solicitud (en este caso TLE011122SC2)
RfcReceptor= Es el RFC cliente de Tralix a quién se le emitió la factura (este RFC se debe encontrar dentro de un customer key vigente).
RfcEmisor= Es el RFC cliente de Tralix quién emitió la factura (este RFC se debe encontrar dentro de un customer key vigente).
Uuid= Este corresponde al comprobante del que se requieren conocer los comprobantes relacionados.
2.4 Ejemplo de respuesta
<?xml version="1.0" encoding="UTF-8"?>
<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">
<ProcesarRespuestaResponse xmlns="http://cancelacfd.sat.gob.mx">
<ProcesarRespuestaResult>
<UuidConsultado>[UUID_CONSULTADO]</UuidConsultado>
<Resultado>WS Consulta CFDI relacionados RfcReceptor: [RFC_RECEPTOR] - folio físcal: [UUID_CONSULTADO] - Clave: 2000 - Se encontraron CFDI relacionados</Resultado>
<UuidsRelacionadosPadres>
<UuidPadre>
<Uuid>[UUID_PADRE]</Uuid>
<RfcEmisor>[RFC_EMISOR]</RfcEmisor>
<RfcReceptor>[RFC_RECEPTOR]</RfcReceptor>
</UuidPadre>
</UuidsRelacionadosPadres>
<UuidsRelacionadosHijos/>
</ProcesarRespuestaResult>
</ProcesarRespuestaResponse>
</s:Body>
</s:Envelope>
2.5 Códigos de respuesta
-
Si la petición es correcta indica que se encontraron CFDI relacionados.
3 Consideraciones Técnicas
-
El XML de la petición debe estar firmado usando XML Signature con el CSD correspondiente.
-
RfcReceptoryRfcEmisordeben estar asociados a unCustomerKeyvigente en Tralix. -
El
Uuides el folio fiscal del comprobante principal; la respuesta devuelve padres e hijos relacionados. -
El servicio consume un timbre por cada consulta ejecutada.
-
Asegurarse de que la firma incluya correctamente los elementos
<SignedInfo>,<SignatureValue>y<KeyInfo>con el certificado en base64. -
Si se reciben errores internos (500), contactar soporte antes de reintentar.
4 Contacto y Soporte
-
Para soporte técnico o dudas sobre el uso del servicio, puede comunicarse con el área de soporte técnico de Tralix vía ticket.
Pendientes de Cancelación
Producto: PAC Services – Tralix
1 Introducción
El servicio de Pendientes de Cancelación permite a los receptores de facturas electrónicas consultar si existen comprobantes fiscales digitales por Internet (CFDIs) emitidos a su nombre que han sido solicitados para cancelación por parte del emisor y están pendientes de aceptación o rechazo.
Este servicio opera mediante una llamada SOAP con método POST. Está diseñado para clientes que desean dar seguimiento a las cancelaciones que deben ser respondidas activamente.
Nota: Cada consulta de cancelación consume un timbre del paquete contratado.
2 Estructura del Servicio
2.1 Estructura general de la petición
La solicitud se realiza con una estructura SOAP simple que incluye el RFC del receptor como parámetro dentro del nodo ObtenerPeticionesPendientes.
2.2 Parámetros requeridos
Endpoint
| Método | Entorno | URL |
|---|---|---|
| POST | Pruebas | 🔗 https://pruebastfd.tralix.com:8081/cancela/pendientesSoap/ |
| POST | Productivo | 🔗 https://timbrador.tralix.com:8081/cancela/pendientesSoap/ |
Autenticación y Headers
| Header | Valor esperado |
|---|---|
SOAPAction |
"http://cancelacfd.sat.gob.mx/IAceptacionRechazoService/ObtenerPeticionesPendientes" |
Content-Type |
text/xml; charset=utf-8 |
CustomerKey |
{CUSTOMER_KEY} (clave única asignada al cliente) |
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
rfcReceptor |
Texto | RFC del receptor que desea consultar las solicitudes pendientes de cancelación. |
2.3 Ejemplo de petición
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:can="http://cancelacfd.sat.gob.mx">
<soapenv:Body>
<can:ObtenerPeticionesPendientes>
<can:rfcReceptor>[RFC_RECEPTOR]</can:rfcReceptor>
</can:ObtenerPeticionesPendientes>
</soapenv:Body>
</soapenv:Envelope>
2.4 Ejemplo de respuesta
Caso exitoso con resultados:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<ObtenerPeticionesPendientesResponse xmlns="http://cancelacfd.sat.gob.mx">
<ObtenerPeticionesPendientesResult CodEstatus="1100">
<UUID>[UUID_EN_ESPERA]</UUID>
</ObtenerPeticionesPendientesResult>
</ObtenerPeticionesPendientesResponse>
</s:Body>
</s:Envelope>
2.5 Códigos de respuesta
| Código | Descripción | Observaciones |
|---|---|---|
| 300 | Usuario No Válido | Este código de error se regresa cuando la autenticación del usuario no fue exitosa. |
| 301 | XML Mail Formato | Este código de error se regresa cuando el request posee información invalida, ejemplo: un RFC de receptor no válido. |
| 1100 | Se recibió la respuesta de la petición de forma exitosa | |
| 1001 | No existen peticiones para el RFC Receptor | Este código se regresa cuando la consulta se realizó de manera exitosa, pero no se encontraron solicitudes de cancelación para el rfc receptor |
3 Consideraciones Técnicas
-
El RFC del receptor debe ser válido y estar registrado en la plataforma Tralix.
-
El CustomerKey debe ser vigente y tener permisos para consultar este servicio.
-
La autenticación es estricta: un error en
CustomerKey,SOAPActiono estructura XML generará una respuesta con error.
4 Contacto y Soporte
- Para soporte técnico o dudas sobre el uso del servicio, puede comunicarse con el área de soporte técnico de Tralix vía ticket.
Aceptación o Rechazo de Cancelación de CFDI
Producto: PAC Services – Tralix
1 Introducción
El servicio de Aceptación o Rechazo de Cancelación permite a los receptores de CFDI emitir una respuesta formal a las solicitudes de cancelación realizadas por los emisores.
Este proceso se basa en los lineamientos del SAT donde, a partir de ciertas versiones de CFDI, el receptor debe aprobar la cancelación del comprobante. La respuesta debe enviarse en un XML firmado digitalmente con el Certificado de Sello Digital (CSD) del receptor.
Nota: Cada consulta de cancelación consume un timbre del paquete contratado.
2 Estructura del Servicio
2.1 Estructura general de la petición
La petición se realiza por medio de una estructura SOAP con los siguientes componentes:
-
RFC del receptor
-
RFC del PAC que realiza la solicitud
-
Fecha de envío de la solicitud
-
UUID del CFDI
-
Respuesta del receptor:
AceptacionoRechazo -
Firma digital (XML Signature)
2.2 Parámetros requeridos
Endpoint
| Método | Entorno | URL |
|---|---|---|
| POST | Pruebas | 🔗 https://pruebastfd.tralix.com:8081/cancela/answerSoap/ |
| POST | Productivo | 🔗 https://timbrador.tralix.com:8081/cancela/answerSoap/ |
Autenticación y Headers
| Header | Valor esperado |
|---|---|
SOAPAction |
"http://cancelacfd.sat.gob.mx/IAceptacionRechazoService/ProcesarRespuesta" |
Content-Type |
text/xml; charset=utf-8 |
CustomerKey |
{CUSTOMER_KEY} (clave única asignada al cliente) |
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
Fecha |
datetime |
Fecha de solicitud en formato AAAA-MM-DD HH:MM:SS. |
RfcPacEnviaSolicitud |
Texto | RFC del PAC que realiza la solicitud. |
RfcReceptor |
Texto | RFC del receptor que emitirá la aceptación o rechazo. Debe tener un CustomerKey vigente. |
UUID |
Texto | Folio fiscal del comprobante que se desea cancelar. |
Respuesta |
Texto | Valor aceptado: Aceptacion o Rechazo. |
Signature |
XML | Firma digital generada con el CSD del receptor. |
2.3 Ejemplo de petición
<soapenv:Envelope xmlns:can="http://cancelacfd.sat.gob.mx" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
<soapenv:Header/>
<soapenv:Body>
<can:ProcesarRespuesta xmlns:can="http://cancelacfd.sat.gob.mx">
<can:solicitud Fecha="[FECHA_SOLICITUD]" RfcPacEnviaSolicitud="[RFC_PAC_SOLICITA]" RfcReceptor="[RFC_RECEPTOR]">
<can:Folios>
<can:UUID>[UUID]</can:UUID>
<can:Respuesta>[Aceptacion/Rechazo]</can:Respuesta>
</can:Folios>
<Signature/>
</can:solicitud>
</can:ProcesarRespuesta>
</soapenv:Body>
</soapenv:Envelope>
2.4 Ejemplo de respuesta
<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">
<ProcesarRespuestaResponse xmlns="http://cancelacfd.sat.gob.mx">
<ProcesarRespuestaResult RfcReceptor="[RFC_RECEPTOR]" RfcPac="[RFC_PAC]" CodEstatus="305" Fecha="[FECHA]">
<Folios Respuesta="[Aceptacion/Rechazo]">
<UUID>[UUID]</UUID>
<EstatusUUID>305</EstatusUUID>
</Folios>
<Signature />
</ProcesarRespuestaResult>
</ProcesarRespuestaResponse>
</s:Body>
</s:Envelope>
2.5 Códigos de respuesta
| Código | Mensaje | Observaciones |
|---|---|---|
| 300 | Usuario No Válido | Este código de error se regresa cuando la autenticación del usuario no fue exitosa. |
| 301 | XML Mail Formato | Este código de error se regresa cuando el request posee información invalida, ejemplo: un RFC de receptor no válido. |
| 302 | Sello Mal Formado | |
| 304 | Certificado Revocado o Caduco | El certificado puede ser inválido por múltiples razones como son el tipo, la vigencia, etc. |
| 305 | Certificado Inválido | El certificado puede ser inválido por múltiples razones como son el tipo, la vigencia, etc. |
| 309 | Patrón de Folio inválido | El patrón de folios para registro fiscal no coinciden. Aplicable únicamente a cancelaciones de CFDI de RIF. |
| 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 | Se recibió la respuesta de forma exitosa, sin embargo, no se encontró ninguna solicitud de cancelación pendiente |
| 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 rebaso el número máximo de solicitudes permitidas |
Se cuenta con un límite 500 solicitudes pendientes por petición. Estás 500 solicitudes deben pertenecer al mismo Receptor |
3 Consideraciones Técnicas
-
El XML debe ser firmado digitalmente con el CSD del receptor.
-
El parámetro
Respuestasolo puede tener los valoresAceptacionoRechazo. -
Asegúrate de que el
UUIDexista y tenga una solicitud de cancelación pendiente.
4 Contacto y Soporte
Para soporte técnico o dudas sobre el uso del servicio, puede comunicarse con el área de soporte técnico de Tralix vía ticket.
Flujo de Cancelación
Contenido
Cancelación
El Web Service de Cancelación proporcionado por Tralix tiene la misma definición que el servicio del SAT expuesto hacia los PAC’s, esto tiene como consecuencia que el cliente al hacer la petición de cancelación hacia el servicio de Tralix debe emplear obligatoriamente XMLSignature para firmar la petición.
Una vez teniendo la petición formada puede ser enviada a Tralix en donde se encarga de añadir un Token de Autenticación proporcionado por el SAT para hacer 100% valida la petición de cancelación.
De esta manera se lleva a cabo el proceso de cancelación de CFDI mediante la llamada directa al Web Service de Tralix.
Flujo de Cancelación
Producto: PAC Services – Tralix
1 Introducción
El presente manual tiene como propósito proporcionar una guía técnica detallada sobre el Flujo de Cancelación de CFDI a través del producto PAC Services – Tralix. Esta funcionalidad permite a emisores y receptores de comprobantes fiscales digitales realizar y gestionar cancelaciones conforme a los lineamientos establecidos por el Servicio de Administración Tributaria (SAT).
El flujo de cancelación está compuesto por distintos servicios que permiten ejecutar la cancelación de un CFDI, consultar su estatus fiscal, conocer los comprobantes pendientes por cancelación y aceptar o rechazar solicitudes cuando sea necesario. Todos estos servicios se ofrecen a través de interfaces REST que pueden consumir tanto contenido XML como JSON, dependiendo del tipo de operación.
Este documento está dirigido a desarrolladores, integradores y personal técnico responsable de la implementación del servicio en los sistemas del cliente. Cada sección describe el uso adecuado de los endpoints, la estructura de las peticiones y respuestas, los parámetros necesarios, ejemplos prácticos, así como las validaciones y consideraciones técnicas que se deben cumplir para garantizar una integración exitosa.
Además, se incluye información clave sobre autenticación, headers, formatos permitidos, cardinalidad, firma digital y tratamiento de errores, con el fin de facilitar la comprensión y uso correcto de cada componente del flujo.
Nota: Toda consulta de cancelación realizada a través de este servicio consume un timbre del paquete contratado por el cliente.
2 Servicio de Cancelación
El servicio Cancelación permite a los emisores de CFDI realizar la cancelación de uno o varios comprobantes en una sola petición. Esta operación se realiza mediante un servicio REST con contenido en XML y requiere que el XML esté firmado digitalmente con el CSD del emisor.
La cancelación debe cumplir con los lineamientos establecidos por el SAT, incluyendo la especificación del motivo de cancelación y, en su caso, el UUID del CFDI sustituto.
2.1 Estructura general de la petición
El servicio acepta contenido XML con una estructura específica que contiene los datos de cancelación por cada UUID. Se permite cancelar de 1 a 500 comprobantes en una sola petición (cardinalidad 1:500).
2.2 Parámetros requeridos
Endpoint
Esta operación se realiza mediante un servicio REST.
| Método | Entorno | URL |
|---|---|---|
| POST | Pruebas | |
| POST | Productivo | 🔗 https://timbrador.tralix.com:8081/cancelCfdi |
Autenticación y Headers
| Header | Valor esperado |
|---|---|
Content-Type |
application/xml |
ServerKey |
XSA_API (clave proporcionada por Tralix) |
Parámetros
| Campo | Descripción |
|---|---|
Fecha |
Fecha de la solicitud de cancelación, formato AAAA-MM-DDTHH:MM:SS. |
RfcEmisor |
RFC del emisor que realiza la cancelación. |
UUID |
UUID del CFDI que se desea cancelar. |
Motivo |
Clave del motivo de cancelación (por ejemplo, 01, 02, etc.). |
FolioSustitucion |
(Opcional) UUID del CFDI que sustituye al cancelado. Requerido si el motivo lo exige. |
RfcReceptor |
RFC del receptor del CFDI que se cancela. |
Total |
Monto total del CFDI. |
Signature |
Firma digital del XML, generada con el CSD del emisor. |
2.3 Ejemplo de petición
<CancelaCFD xmlns="http://cancelacfd.sat.gob.mx">
<Cancelacion Fecha="[Fecha]" RfcEmisor="[RFC_EMISOR]"
xmlns="http://cancelacfd.sat.gob.mx"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Folios>
<Folio UUID="[UUID]" Motivo="01" FolioSustitucion="[UUID]"/>
<RfcReceptor>[RFC_RECEPTOR]</RfcReceptor>
<Total>[TOTAL_FACTURA]</Total>
</Folios>
<Folios>
<Folio UUID="[UUID]" Motivo="02" />
<RfcReceptor>[RFC_RECEPTOR]</RfcReceptor>
<Total>[TOTAL_FACTURA]</Total>
</Folios>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" />
</Cancelacion>
</CancelaCFD>
2.4 Ejemplo de respuesta
<CancellationResponses>
<CancellationResponse uuid="[UUID]" estado="[ESTADO_CFDI]">
<CancelaCFDResponse
xmlns="http://cancelacfd.sat.gob.mx"
xmlns:cfdi="http://www.sat.gob.mx/cfd/3"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" />
</CancellationResponse>
<CancellationResponse uuid="[UUID]" estado="[ESTADO_CFDI]">
<Error />
</CancellationResponse>
</CancellationResponses>
2.5 Códigos de respuesta
El atributo estado dentro del nodo <CancellationResponse> indicará el resultado para cada UUID:
| Estado | Descripción |
|---|---|
Cancelado |
El CFDI fue cancelado correctamente. |
Error |
Hubo un problema en la cancelación del CFDI. |
2.6. Consideraciones Técnicas
-
Se permite cancelar hasta 500 CFDIs por solicitud.
-
El XML debe ser firmado con el CSD vigente del emisor.
3. Consulta de Estados de CFDI
El servicio Consulta de Estados permite realizar una búsqueda del estatus fiscal de uno o varios Comprobantes Fiscales Digitales por Internet (CFDIs) entregados al SAT. Este servicio responde con información sobre si el comprobante se encuentra vigente, cancelado o en proceso de cancelación, así como si es cancelable.
Este servicio está disponible en dos formatos, :
-
Consulta individual (1:1) mediante estructura XML.
-
Consulta masiva (1:500) mediante estructura JSON.
3.1 Estructura general de la petición
La petición puede realizarse de dos formas, dependiendo del tipo de consumo:
| Tipo de consulta | Formato | Cardinalidad |
|---|---|---|
| Individual | XML | 1:1 |
| Masiva | JSON | 1:500 |
3.2 Parámetros requeridos
Endpoint
Esta operación se realiza mediante un servicio REST.
| Método | Ambiente | URL |
|---|---|---|
| POST | Pruebas | 🔗 https://timbrador.tralix.com:8081/cancela/consultaSoap/ |
Autenticación y Headers
| Header | Valor esperado |
|---|---|
Content-Type |
application/xml (para XML) | application/json (para JSON) |
ServerKey |
XSA_API |
Parámetros
Para consulta individual (XML):
| Campo | Descripción |
|---|---|
re |
RFC del emisor |
rr |
RFC del receptor |
tt |
Total del CFDI (ej. 10403.20) |
id |
UUID del CFDI |
Para consulta masiva (JSON):
| Campo | Descripción |
|---|---|
rfcEmisor |
RFC del emisor |
rfcReceptor |
RFC del receptor |
total |
Total del CFDI |
uuid |
UUID del CFDI |
3.3 Ejemplo de petición
XML (1:1):
<tem:Consulta xmlns:tem="http://tempuri.org/">
<tem:expresionImpresa>
<![CDATA[?re=[RFC_EMISOR]]&rr=[RFC_RECEPTOR]&tt=[TOTAL]&id=[UUID]]]>
</tem:expresionImpresa>
</tem:Consulta>
JSON (1:500):
{
"statusVerifierList": [
{
"rfcEmisor": "[RFC_EMISOR]",
"rfcReceptor": "[RFC_RECEPTOR]",
"total": "[TOTAL]",
"uuid": "[UUID]"
},{
"rfcEmisor": "[RFC_EMISOR]",
"rfcReceptor": "[RFC_RECEPTOR]",
"total": "[TOTAL]",
"uuid": "[UUID]"
}
]
}
3.4 Ejemplo de respuesta
XML (respuesta individual):
<ConsultaResponse xmlns="http://tempuri.org/" xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<ConsultaResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:a="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio">
<a:CodigoEstatus>S - Comprobante obtenido satisfactoriamente.</a:CodigoEstatus>
<a:EsCancelable>Cancelable con aceptación</a:EsCancelable>
<a:Estado>Cancelado</a:Estado>
<a:EstatusCancelacion>Cancelado con aceptación</a:EstatusCancelacion>
</ConsultaResult>
</ConsultaResponse>
JSON (respuesta masiva):
{
"statusVerifierList": [
{
"estado": "Vigente",
"uuid": "[UUID]",
"codigoEstatus": "S - Comprobante obtenido satisfactoriamente.",
"esCancelable": "Cancelable con aceptación",
"estatusCancelacion": ""
},
{
"estado": "Vigente",
"uuid": "[UUID]",
"codigoEstatus": "S - Comprobante obtenido satisfactoriamente.",
"esCancelable": "Cancelable con aceptación",
"estatusCancelacion": ""
}
]
}
3.5 Códigos de respuesta (debe ser interpretado desde el campo codigoEstatus)
| Código | Descripción |
|---|---|
S - Comprobante obtenido satisfactoriamente. |
Consulta exitosa. El CFDI existe y se obtuvo su estado. |
| Otros mensajes | Se indicarán mensajes de error específicos si el comprobante no fue localizado o hay un problema de parámetros. |
3.6 Consideraciones Técnicas
-
Los montos (
total) deben tener exactamente dos decimales y coincidir con el total del CFDI. -
Para consultas masivas, no se puede exceder la cardinalidad de 500 registros por solicitud.
4 Consulta Pendientes por Cancelar
El servicio Pendientes por Cancelar permite a los receptores de CFDI consultar los comprobantes fiscales que se encuentran en proceso de cancelación, es decir, aquellos que requieren aceptación o rechazo por parte del receptor para completar su cancelación.
Este servicio está disponible en dos formatos de consumo:
-
Consulta individual (XML)
-
Consulta individual (JSON)
Esta operación se realiza mediante un servicio REST.
Nota: La información obtenida representa solicitudes de cancelación pendientes, no implica que el CFDI esté cancelado.
4.1 Estructura general de la petición
| Tipo de consulta | Formato | Cardinalidad |
|---|---|---|
| Individual | XML | 1:1 |
| Individual | JSON | 1:1 |
4.2 Parámetros requeridos
Endpoint
Esta operación se realiza mediante un servicio REST.
| Método | Ambiente | URL |
|---|---|---|
|
POST |
Pruebas |
|
Autenticación y Headers
| Header | Valor esperado |
|---|---|
Content-Type |
application/xml (para XML) | application/json (para JSON) |
ServerKey |
XSA_API |
Parámetros
| Campo | Uso | Descripción |
|---|---|---|
rfcReceptor |
Requerido |
RFC del receptor del CFDI |
4.3 Ejemplo de petición
XML
<can:ObtenerPeticionesPendientes xmlns:can="http://cancelacfd.sat.gob.mx">
<can:rfcReceptor>[RFC_RECEPTOR]</can:rfcReceptor>
</can:ObtenerPeticionesPendientes>
JSON
{
"rfcReceptor": "CALJ581101M37"
}
4.4 Ejemplo de respuesta
XML
<ObtenerPeticionesPendientesResponse xmlns="http://cancelacfd.sat.gob.mx"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<ObtenerPeticionesPendientesResult CodEstatus="1100">
<UUID>[UUID]</UUID>
<UUID>[UUID]</UUID>
</ObtenerPeticionesPendientesResult>
</ObtenerPeticionesPendientesResponse>
JSON
{
"codStatus": "1100",
"uuids": [
{
"uuid": "[UUID]"
},{
"uuid": "[UUID]"
}
]
}
4.5. Consideraciones Técnicas
-
Se recomienda validar previamente que el RFC receptor sea correcto y activo.
-
No se permite enviar múltiples RFCs por solicitud (cardinalidad 1:1).
-
El sistema solo devolverá UUIDs con estatus "En proceso" de cancelación.
-
Este servicio no genera cancelaciones ni acepta/rechaza solicitudes, solo consulta el estado actual.
5 Consulta de Aceptación o Rechazo de Cancelación CFDI
El servicio de Aceptación o Rechazo permite a los receptores de CFDI responder una solicitud de cancelación realizada por el emisor. Aplica únicamente para CFDIs que se encuentran con estatus "En Proceso", es decir, aquellos que requieren autorización del receptor para que su cancelación sea válida.
Mediante este servicio, el receptor puede confirmar si acepta o rechaza la cancelación del comprobante correspondiente. La respuesta se debe enviar firmada con el certificado del receptor.
Esta operación se realiza mediante un servicio REST.
5.1 Estructura general de la petición
| Tipo de consulta | Formato | Cardinalidad |
|---|---|---|
| Individual | XML | 1:1 |
5.2 Parámetros requeridos
Endpoint
Esta operación se realiza mediante un servicio REST.
| Método | Ambiente | URL |
|---|---|---|
| POST | Pruebas | 🔗 https://pruebastfd.tralix.com:8081/cancela/answerSoap/ |
Autenticación y Headers
| Header | Valor esperado |
|---|---|
Content-Type |
application/xml |
ServerKey |
XSA_API |
Parámetros
| Campo | Descripción |
|---|---|
Fecha |
Fecha y hora de solicitud en formato AAAA-MM-DD HH:MM:SS |
RfcPacEnviaSolicitud |
RFC del PAC que envía la solicitud |
RfcReceptor |
RFC del receptor del CFDI (quien responde la cancelación) |
UUID |
Folio fiscal del comprobante que se desea aceptar o rechazar |
Respuesta |
Acción del receptor: Aceptacion o Rechazo |
Signature |
Nodo con la firma digital del receptor (uso de certificado) |
5.3 Ejemplo de petición
<can:ProcesarRespuesta xmlns:can="http://cancelacfd.sat.gob.mx">
<can:solicitud Fecha="[FECHA]" RfcPacEnviaSolicitud="[RFC_PAC_SOLICITANTE]" RfcReceptor="[RFC_RECEPTOR]">
<can:Folios>
<can:UUID>[UUID]</can:UUID>
<can:Respuesta>[Rechazo/Aceptacion]</can:Respuesta>
</can:Folios>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" />
</can:solicitud>
</can:ProcesarRespuesta>
5.4 Ejemplo de respuesta
<ProcesarRespuestaResponse xmlns="http://cancelacfd.sat.gob.mx"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<ProcesarRespuestaResult Fecha="[FECHA]"
CodEstatus="[COD_ESTATUS]"
RfcPac="[RFC_PAC]"
RfcReceptor="[RFC_RECEPTOR]">
<Folios Respuesta="Rechazo">
<UUID>[UUID]</UUID>
<EstatusUUID>[ESTATUS_UUID]</EstatusUUID>
</Folios>
<Signature Id="SelloSAT" xmlns="http://www.w3.org/2000/09/xmldsig#" />
</ProcesarRespuestaResult>
</ProcesarRespuestaResponse>
5.5 Consideraciones Técnicas
-
El UUID debe haber sido previamente consultado como "En Proceso" por el receptor.
-
Solo se permite un UUID por solicitud (cardinalidad 1:1).
-
La firma digital (
Signature) debe generarse con el CSD del receptor. -
La respuesta (aceptación o rechazo) será enviada al SAT mediante el PAC y actualizará el estatus del CFDI.
-
El mismo UUID no puede ser respondido más de una vez.
6 Contacto y Soporte
Para soporte técnico o dudas sobre el uso del servicio puede comunicarse con el área de soporte técnico de Tralix vía ticket.
Respuestas de Cancelación
Respuestas posibles en el proceso de cancelación
Durante el flujo de cancelación de CFDI, el servicio de consulta de estados puede devolver diferentes tipos de respuesta según el estatus fiscal del comprobante y las reglas establecidas por el SAT, así como el tipo de relación entre emisor y receptor.
Estas respuestas indican el estatus actual del CFDI y si es posible o no cancelarlo, y si requiere aceptación por parte del receptor. A continuación, se detallan los posibles valores devueltos, junto con ejemplos de RFC utilizados comúnmente para pruebas:
|
Código de respuesta |
Descripción | Ejemplo de RFC receptor para pruebas |
|---|---|---|
CANCELABLE_C_A |
CFDI cancelable con aceptación. | DAL050601L35 |
CANCELABLE_S_A |
CFDI cancelable sin aceptación. | WATM640917J45 |
CANCELADO_C_A |
CFDI ya fue cancelado con aceptación. | EWE1709045U0 |
CANCELADO_S_A |
CFDI cancelable sin aceptación. | WERX631016S30 |
EN_PROCESO |
La solicitud de cancelación está en proceso. | XIA190128J61 |
NO_CANCELABLE |
El CFDI no cancelable. | JUFA7608212V6 |
PLAZO_VENCIDO |
Plazo vencido para cancelar. | FUNK671228PH6 |
Notas importantes:
-
Los valores anteriores se devuelven como parte de la respuesta del servicio de Consulta de Estado de CFDI.
-
Es fundamental que el integrador utilice el RFC correcto en las pruebas para obtener el escenario deseado.
-
En ambientes productivos, las respuestas estarán determinadas por la configuración real del comprobante emitido y su relación emisor-receptor.