PAC - Documentación Cancelación

Documentación WS Cancelación 2018 en Timbrado Puro.

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.

Contenido

  1. Cancelación
  2. Consulta de Estados
  3. Consulta de CFDIs Relacionados
  4. Pendientes de Cancelación
  5. 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 CustomerKey vá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
🔗 https://pruebastfd.tralix.com:7070/retenciones/cancelaUno/
POST Productivo
🔗 https://timbrador.tralix.com:7070/retenciones/cancelaUno/

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&amp;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&amp;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 CustomerKey vá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
🔗 https://pruebastfd.tralix.com:8081/cancela/consultaSoap/
POST Productivo
🔗 https://timbrador.tralix.com:8081/cancela/consultaSoap/

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
rr RFC del Receptor
tt Total del CFDI (en número decimal)
id UUID del CFDI
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 como text/xml con 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 CustomerKey debe 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=&quot;Av. Hidalgo 77, Col. Guerrero&quot;, 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>

RfcPacEnviaSolicitudEs el RFC del PAC con el que esta realizando la solicitud (en este caso TLE011122SC2)

RfcReceptorEs el RFC cliente de Tralix a quién se le emitió la factura (este RFC se debe encontrar dentro de un customer key vigente).

RfcEmisorEs el RFC cliente de Tralix quién emitió la factura (este RFC se debe encontrar dentro de un customer key vigente).

UuidEste 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.

  • RfcReceptor y RfcEmisor deben estar asociados a un CustomerKey vigente en Tralix.

  • El Uuid es 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, SOAPAction o 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: Aceptacion o Rechazo

  • 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 Respuesta solo puede tener los valores Aceptacion o Rechazo.

  • Asegúrate de que el UUID exista 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

Flujo de Cancelación

Contenido

Este es el endpoint con el flujo mas extenso, en el conlleva la verificación de los estados de los comprobantes para saber cual es el proceso a seguir para cada uno.  Siguiendo con el diagrama de flujos:
 FlujosCancelacion.jpg
Flujo de Cancelación

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

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

🔗 https://pruebastfd.tralix.com:8081/cancelCfdi

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.

Esta operación se realiza mediante un servicio REST.
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

🔗 https://pruebastfd.tralix.com:8081/cancela/pendientesSoap/

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.


 

 

Flujo de Cancelación

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.