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.


No Comments
Back to top