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