Retenciones
Timbrado y Cancelación de CFDI de Retenciones
Producto: PAC Timbrador
1 Introducción
Este manual describe el uso de los servicios del PAC Tralix para:
-
Timbrado de CFDI de Retenciones.
-
Cancelación de CFDI de Retenciones.
El servicio valida:
-
Estructura del XML
-
Certificados y sellos digitales
-
Reglas del SAT
-
Parámetros de seguridad (customer key, IP, etc.)
Todas las respuestas del servicio regresan un HTTP 200, incluso en casos de error, salvo en los casos en que el recurso que se pide no exista, entonces regresa un 404 o cuando faltan parámetros en la llamada en cuyo caso se devuelve un un 400 respectivamente.
2 Timbrado de CFDI de Retenciones
2.1 Estructura general de la petición
El servicio se invoca mediante una petición HTTP tipo POST, enviando un archivo XML de retenciones conforme a la estructura del SAT.
2.2 Parámetros requeridos
Ambientes disponibles:
Endpoint
Método | Ambiente | Ruta |
POST | Pruebas | 🔗 https://pruebastfd.tralix.com:7070/retenciones/ |
POST | Productivo | 🔗 https://timbrador.tralix.com:7070/retenciones/ |
Parámetros
Atributo | Tipo | Uso | Descripción |
---|---|---|---|
Content-Type |
Header | Requerido | text/xml; charset=UTF-8 . El valor debe de ser tal cual se muestra. |
customerKey |
Header | Requerido |
Clave única del cliente que desea timbrar el comprobante de retenciones. |
Contenido |
Body | Requerido | XML del comprobante de retenciones |
2.3 Ejemplo de la petición:
HTTP:
POST /retenciones/ HTTP/1.1
Content-Type: text/xml;charset=UTF-8
customerKey: b391655ac2242d85ddd36d37b482259b1b7dfc1a
Content-Length: 4506
Host: timbrador.tralix.com
Connection: Keep-Alive
XML Cuerpo (Body):
<retenciones:Retenciones xmlns:retenciones="http://www.sat.gob.mx/esquemas/retencionpago/2"
Version="2.0" FolioInt="1635996">
<!-- Nodo Emisor, Receptor, Totales y Complemento -->
</retenciones:Retenciones>
Ejemplo:
HTTP:
POST /retenciones/ HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
customerkey: b391655ac2242d85ddd36d37b482259b1b7dfc1a
Content-Length: 4506
Host: 10.0.4.122:9000
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
XML Cuerpo (Body):
<retenciones:Retenciones xmlns:plataformasTecnologicas="http://www.sat.gob.mx/esquemas/retencionpago/1/PlataformasTecnologicas10" xmlns:retenciones="http://www.sat.gob.mx/esquemas/retencionpago/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/2 http://www.sat.gob.mx/esquemas/retencionpago/2/retencionpagov2.xsd http://www.sat.gob.mx/esquemas/retencionpago/1/PlataformasTecnologicas10 http://www.sat.gob.mx/esquemas/retencionpago/1/PlataformasTecnologicas10/ServiciosPlataformasTecnologicas10.xsd
" Version="2.0" FolioInt="1635996" Sello="Gjlntz9bWr84DS9HVNvWIzIejCaZqnZbIKbCaQ+QNZeVsxsCj0fYesuqNiPPqDpsDTrXL551NzDIOn8HzaGhP6f1f1tORfRR9Nsz+dwtyZzRHHtnDR5jOqTcUqXhJz+7j2VQz+08xsoShL0DGhuoxfq7l4vnXxl2ixGdg0aSpn2YaLtPsCEMbsLVPApYlB697IIvqfKJ8zqVVIpqxikPhHjkIT2Wl5zE2i0Qq6015/L1AHBliquUnS94KMdBzWzTsv2goZxWh6xI46EZkDyr
SbaMLJnZquEtjbq3/gVjBqG5ik4/iO0UOmoWxR6L7TlXowRKP1UqIgHwDv7ef1JXdQ==" NoCertificado="30001000000500003430" Certificado="MIIFszCCA5ugAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MzAwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MS
gwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTI0MDI2WhcNMjcwNTE4MTI0MDI2WjCB
2jEoMCYGA1UEAxMfRVNDVUVMQSBXSUxTT04gRVNRVUlWRUwgUyBERSBDVjEoMCYGA1UEKRMfRVNDVUVMQSBXSUxTT04gRVNRVUlWRUwgUyBERSBDVjEoMCYGA1UEChMfRVNDVUVMQSBXSUxTT04gRVNRVUlWRUwgUyBERSBDVjElMCMGA1UELRMcRVdFMTcwOTA0NVUwIC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAA
OCAQ8AMIIBCgKCAQEA5V00mF+ucoj8mItceE086i12hPoyH3fK6BGQCPU1vGx3K8etHev7GASu3dYF3TA4X5ypTRAKaCzyI7v53uLZpQAWhmvTIMhYBtGDhQ7RR5GyWzaUDIhtNpO55xrmb2+O4FzkuYbOvnSOPZ6qZRySI168+N/aZCcEPaZVsFbCOnp6FHe9GhqLD1ZwsIRUdLEC7ml4WbG1+jfmCxx/c/+JtcLL9nUBIvMFu1px6ZoYRV/LhrwxtJ7D4BPss/WfBxMpId19hYfzAULYBYRWVP1l+4JTC0fHnyaflBQXH8yvCYXs
EIX++lKGTmvL4QESIUdzGLSj7pXt3cdk5mHK2FHHxQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAjTvAc61X98kmDGSfH7RfTnMb6QdDujISjPM2/rZ6Fde0NeQrshDvOffkXLq8f2n6D1m5GpHkwYvq0GUAyBmBoSLuJPPbLp87i/Dj64nqHKIVIQCTK2867MEbxe7ToAMlaIfJ6f1gR1kNANoc/i204PESIuPrUkNgK7pjsDURfsVK8XF7w2dxo2Vn5J+KSTykEjSZce7EvT
FtjYHhASq61wziommRn4BSmMl+7WYv/FFBl53pJLaJG0Hsog7s8+V9QtPhcq6Cua7D+oOnjnuhDDIXs1UhIkqMPli9jdVjhbthjIP5CDUvb8jO8VJbLWjHgcBXxrGRZzzlajQkRQ+QbgqDU56ePIFZY02BQsjjE1DYBXeM3pwz5ZWKS+HioAu1quDUt92B9skfqNHzvelZMIuEz2lg10pdJiF5TbhS4mtxF77QK0UaGWOOsVuQ6zfI9eJ9j9bZnMfxj6wLChXcY07L5ckN/1A1o0CVMo5vYcEwz9X7lESjwZgiaNQQwApBEOGHyClU
/FyNGFVgH1wFhql+z9Fe7EXnDLCPeu8t8SOENBgINVh4WLsOgY9ll/rOvwEpZ0jVMOwaz2vX4kW9hE/s1q9QuIsBRaDpwz+H6ONPBxkfENiAWWIFn4oM7kZjW3h9VMVirK+YAMjIPbcSEsYLMh9WNVcZmionA3ZHSjY=" FechaExp="2024-12-19T12:16:10" CveRetenc="26" LugarExpRetenc="03940">
<retenciones:Emisor RfcE="EWE1709045U0" NomDenRazSocE="ESCUELA WILSON ESQUIVEL" RegimenFiscalE="601"/>
<retenciones:Receptor NacionalidadR="Nacional">
<retenciones:Nacional RfcR="FAGO841020JS2" NomDenRazSocR="OSCAR RAFAEL FRANCO GONZALEZ" DomicilioFiscalR="72410"/>
</retenciones:Receptor>
<retenciones:Periodo MesIni="02" MesFin="02" Ejercicio="2024"/>
<retenciones:Totales MontoTotOperacion="3100.86" MontoTotGrav="3100.86" MontoTotExent="0.00" MontoTotRet="279.06" UtilidadBimestral="0" ISRCorrespondiente="0">
<retenciones:ImpRetenidos BaseRet="496.13" ImpuestoRet="002" MontoRet="248.06" TipoPagoRet="01"/>
<retenciones:ImpRetenidos BaseRet="3100.86" ImpuestoRet="001" MontoRet="31.00" TipoPagoRet="04"/>
</retenciones:Totales>
<retenciones:Complemento>
<plataformasTecnologicas:ServiciosPlataformasTecnologicas Version="1.0" Periodicidad="02" NumServ="1" MonTotServSIVA="3100.86" TotalIVATrasladado="496.1376" TotalIVARetenido="248.06" TotalISRRetenido="31.00" DifIVAEntregadoPrestServ="248.0776" MonTotalporUsoPlataforma="1145.18">
<plataformasTecnologicas:Servicios>
<plataformasTecnologicas:DetallesDelServicio FormaPagoServ="08" TipoDeServ="05" FechaServ="2024-02-29" PrecioServSinIVA="3100.86">
<plataformasTecnologicas:ImpuestosTrasladadosdelServicio Base="3100.86" Impuesto="02" TipoFactor="Tasa" TasaCuota="0.16" Importe="496.1376"/>
<plataformasTecnologicas:ComisionDelServicio Importe="1145.18"/>
</plataformasTecnologicas:DetallesDelServicio>
</plataformasTecnologicas:Servicios>
</plataformasTecnologicas:ServiciosPlataformasTecnologicas>
</retenciones:Complemento>
</retenciones:Retenciones>
2.4 Ejemplo de respuesta
Salida: El xml del timbre o xml con error.
Respuesta exitosa:
HTTP/1.1 200 OK
Content-Type: text/xml;charset=utf-8
Content-Length: 1111
<?xml version="1.0" encoding="utf-8"?>
<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/TimbreFiscalDigital/TimbreFiscalDigital.xsd" version="1.0" UUID="5DBA5276-EFD7-4933-9312-A93228508B49" FechaTimbrado="2015-01-02T12:15:01" selloCFD="H8Eoo93RfhyV28PlXVBXRuu4tYIVR8Qu6jcqZA8V032l0pkkrzh30mcxbyWRPzNzJc7pZdMItD1ffsS+NnpQEGgB1rJlnI7wFhvJLkk3nQQ6jWVJdMTgXvFxPcCtH4d1FYL/4NcLw1XF6PWEM/vkQp1QeUovRoWqQQpDUa3kx0RGN5Ed8mz8cBh5q38GkfyqlrYoi2cF40w3S4oclfmLTONdF4moOVS8WcXPh4S1f0NQHNF0GDUNMvQaGGI+95UYg1101x70uPEPa3vaBCUWBy7ab2zfELFy8UOpreXEVXzFsnMkY4jwDLcAaSSZjBpnYkmkkEWZNB7Mj2QCkdE1lg==" noCertificadoSAT="20001000000300003693" selloSAT="rQ4u/te+tikTs6n+deDt8uqqH1PrkeDClLjcL96b3e0gSLLwUpGJkhWnKmRuaK9bIB+TJjJboJoacRcdSk3grUhC+U9DIUlX20FwXUKQIlEBJMHevzu6nK3KMKUEkvt9dr4ufSNtwva++DsRw0v6Is1uQcjWKz9lxBazLjUVRAk=" />
Respuesta con error:
HTTP/1.1 200 OK
Content-Type: text/xml;charset=utf-8
Content-Length: 356
<?xml version="1.0" encoding="utf-8"?>
<Error codigo="301">
<descripcionError> El CFD no cumple con la estructura correcta: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 141; The element type "retenciones:Emisores" must be terminated by the matching end-tag "</retenciones:Emisores>".</descripcionError>
</Error>
2.5 Códigos de respuesta
Código | Tipo | Descripción |
---|---|---|
200 | SUCCESS | Se pudo hacer la autenticación con el SAT y se regresa el token dado por el servicio del SAT. |
400 | ERROR | Si hay un error en los parámetros de llamada, por ejemplo si la petición no es cancelación o recepción |
500 | ERROR | Si hay algún error interno en el servicio |
Código | Tipo | Descripción |
---|---|---|
200 | SUCCESS | Se pudo timbrar el comprobante y se regresa el timbre. |
301 | ERROR | El XML no está construido conforme al W3C y/o con la estructura del XSD publicado en el Anexo 20 del RMF |
302 | ERROR | El sello del emisor no está generado correctamente. |
303 | ERROR | El CSD del emisor no corresponda al RFC establecido como emisor del comprobante. |
304 | ERROR | El CSD del emisor ha sido revocado |
305 | ERROR | La fecha de emisión no se encuentre dentro de la vigencia del CSD del emisor. |
306 | ERROR | El certificado utilizado corresponde a una FIEL |
307 | ERROR | El XML ya cuenta con un nodo TimbreFiscalDigital |
308 | ERROR | El CSD del emisor no es un certificado emitido por la autoridad del SAT |
401 | ERROR | El rango de la fecha de generación es mayor a 72 horas con base en la fecha de emisión |
402 | ERROR | El RFC del emisor no está autorizado para emisión de CFDI (no se encuentra en la lista autorizada del SAT) |
901 | ERROR | El cliente con el key #CUSTOMER_KEY no es válido. |
902 | ERROR | El RFC #RFC no está registrado |
903 | ERROR | El RFC #RFC se encuentra inactivo por el momento |
904 | ERROR | No cuenta con licencia para realizar peticiones |
905 | ERROR | El RFC #RFC no pertenece al cliente con el key #KEY |
907 | ERROR | Debe invocar al servicio con el customerkey que le fue asignado |
910 | ERROR | No se puede determinar el cliente a partir del RFC #RFC, verifique que el valor de la cabecera de customerkey |
990 | ERROR | Su comprobante es válido, pero no se puede generar un timbre fiscal por el momento. |
999 | ERROR | Error interno en el servidor, por favor intente más tarde |
3 Cancelación de CFDI de Retenciones
3.1 Estructura general
El servicio permite cancelar CFDI de retenciones conforme al estándar del SAT, haciendo validaciones de estructura, firma y relación emisor-UUID. Este servicio recibe el xml de cancelación de retenciones de acuerdo al estándar del SAT, hace las validaciones necesarias de estructura, hace la petición de token de cancelación y manda a cancelar con el xml proporcionado.
Ambientes disponibles:
Endpoint
Método | Ambiente | Ruta |
POST | Producción | 🔗 https://timbrador.tralix.com:8081/retenciones/cancelaUno/ |
POST | Pruebas | 🔗 https://pruebastfd.tralix.com:8081/retenciones/cancelaUno/ |
3.2 Parámetros requeridos
Parámetro | Tipo | Uso | Descripción |
---|---|---|---|
Content-Type | Header | Requerido | text/xml; charset=UTF-8 , el valor debe de ser tal cual se muestra. |
idCustomer | Header | Requerido | Customer key del cliente que desea cancelar el comprobante de retenciones. |
ipAddress | Header | Requerido | IP con la que se está intentado cancelar. |
Contenido | Body | Requerido | XML de cancelación de acuerdo al estándar del SAT. |
3.3 Ejemplo de petición
HTTP:
POST /retenciones/cancelaUno/ HTTP/1.1
Content-Type: text/xml; charset=UTF-8
idCustomer: b391655ac2242d85ddd36d37b482259b1b7dfc1a
ipAddress: 10.0.0.88
Cuerpo (Body):
<Cancelacion xmlns="http://cancelaretencion.sat.gob.mx" Fecha="2024-12-31T13:14:53" RfcEmisor="GAVA730717AE1">
<Folios>
<UUID>0E6F67DD-6765-46EC-9447-D8CD759D2286</UUID>
</Folios>
<Signature>...</Signature>
</Cancelacion>
HTTP:
POST /retenciones/cancelaUno/ HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml; charset=UTF-8
idCustomer: b391655ac2242d85ddd36d37b482259b1b7dfc1a
ipAddress: 10.0.0.88
Content-Length: 4007
Host: 10.0.4.122:9000
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Cuerpo (Body):
<Cancelacion xmlns="http://cancelaretencion.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Fecha="2014-12-31T13:14:53" RfcEmisor="GAVA730717AE1"><Folios><UUID>0E6F67DD-6765-46EC-9447-D8CD759D2286</UUID></Folios><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod><DigestValue>WMQbS6vPsNK9Qj0ItYXpT2MORWA=</DigestValue></Reference></SignedInfo><SignatureValue>GlFeSOMtP7gHMHXF0XT2XmqsS1f2Qg6xINwmO6V6K3ft8s4O3MoSw6fxnxEFLlOeojOadSaPL+py
OJSQqIF8XChyeE2J1dAdvqmZV3jWN2jX0TyY3FwBd/QClVY3vLvIxIiroJgkGeduefYy3DC4cC6V
QwvwAkTwRi9SnYuROb5f/NAmsLnB5aTLTen0eNDS8PFTnMfkxnb5e5dP+aBxV4wo5oANez11ABYu
1OctfRcdVuJ371Hr16qUSgFGi6kCYJ1TIwj07qdXOaDK+FebNYBOQzwqd0AQRSYADUBeJRtBiaWl
h6ij/NsHBjvboz1m8uBGsUsOJOCAAG13CSIOSQ==</SignatureValue><KeyInfo><X509Data><X509IssuerSerial><X509IssuerName>OID.1.2.840.113549.1.9.2=Responsable: ACDMA, OID.2.5.4.45=SAT970701NN3, L=Coyoac[0xc3][0xa1]n, ST=Distrito Federal, C=MX, OID.2.5.4.17=06300, STREET="Av. Hidalgo 77, Col. Guerrero", EMAILADDRESS=asisnet@pruebas.sat.gob.mx, OU=Administraci[0xc3][0xb3]n de Seguridad de la Informaci[0xc3][0xb3]n, O=Servicio de Administraci[0xc3][0xb3]n Tributaria, CN=A.C. 2 de pruebas(4096)</X509IssuerName><X509SerialNumber>286524172099382162235533054548081509954831791922</X509SerialNumber></X509IssuerSerial><X509Certificate>MIIGEDCCA/igAwIBAgIUMjAwMDEwMDAwMDAzMDAwMDQ4NzIwDQYJKoZIhvcNAQELBQAwggFmMSAw
HgYDVQQDDBdBLkMuIDIgZGUgcHJ1ZWJhcyg0MDk2KTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRt
aW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1
cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMu
c2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNV
BBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UE
BwwJQ295b2Fjw6FuMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxITAfBgkqhkiG9w0BCQIMElJlc3Bv
bnNhYmxlOiBBQ0RNQTAeFw0xNDEwMDgxNTA5MzBaFw0xODEwMDcxNTA5MzBaMIHKMSAwHgYDVQQD
ExdIRUNUT1IgVkFaUVVFWiBCRUNFUlJJTDEgMB4GA1UEKRMXSEVDVE9SIFZBWlFVRVogQkVDRVJS
SUwxIDAeBgNVBAoTF0hFQ1RPUiBWQVpRVUVaIEJFQ0VSUklMMQswCQYDVQQGEwJNWDEgMB4GCSqG
SIb3DQEJARYRcHJ1ZWJhQHNhdC5nb2IubXgxFjAUBgNVBC0TDUdBVkE3MzA3MTdBRTExGzAZBgNV
BAUTEkdBVkE3MzA3MTdIREZSR1IwNTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJjn
MOxpkQkTGXmJpXf0qnBSRatOtkbi8c0iHAKYS1XASXrxkJLXt2ZkFg83EkkZxyRZ7+5qFG7qKUET
3BDmdLW8RTBuWSLzonlUAjNfSTjuNNG0ZNxpTGHHsOenRUfPwNx9yopzU6YKHAfNoeoyXsbsLg1I
yezal/vu86pa5Bonb/hTj6GMHg7Wj7oFit3ilVUu5Bc9a1djT3JJVuCXaT+Mspd3UiwtYxZihD4h
ZhuT8wqYEFfulUykofIeuexCKBdV6ugaD9Ub1/GOyhzNymYzM1WlPfgKxCed6KQ1CaJLM3jo3U79
izakxfH45ghlol7SxXHidF3tYpgknv6TgU8CAwEAAaNPME0wDAYDVR0TAQH/BAIwADALBgNVHQ8E
BAMCA9gwEQYJYIZIAYb4QgEBBAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggrBgEFBQcDAjAN
BgkqhkiG9w0BAQsFAAOCAgEAkRIj1K/mOCyd/cyxb9m9HpAWgUUwKG00gQXwiM6cJYMGhjk6e2kc
lCUPUnp2Ct8Gn4JoHA8jTI8JOv1C7sJor0eO+xAtElvYh4d7NmGZvpZ1BkCt43EAt0gq/NVH37GL
WuPC934dlLiq0m9Tv/7UqjVKQKWAKnQc008GJTY+vI8bk1rRctY6RqvhiKnDcwJeNvQfWAnFUJ2L
6+ffphvbvuuWZrAvi8CNIZ6ZFwCkGpFAoKXErPTy4lyTPfsPpg5B6BxhskJH5g5QL8KrpkCheMHg
YfQv+YxOKK8ohpcxaEK+CF/QQkfWGSfzTjKO/fN+uht18UYiuGblwXkGV+N0OLPQZUzjtwEJSLFH
LI+3BuDU96baJXmxC31RhdNnRepqoKtALKNVDadpaoCZtTICb6y1FAvI31RrPOUh1O7GbGGhqGQL
96eD3q8UvG99/FRc0Ah4xRCjOg52TLbnhx7eQFA2HIccRBdceELUSGE3YoadB6q1AE68Q6hfP8Oh
i20TvgmLZOTfncVIqszK3jn+e71nYCQdH1D6ZsLIx0L5h7CiWRvliiMulloiA9UxjJ1nwssVNHgN
BhqAOFPw0rYnHrsbcKW5yiNPAhZinqPVdxBWgeIP3ClyhhrV5jG6GxEUQcf0CWdwHLYTxcWksqqB
vkRhj++ft29e5p/lm47XThE=</X509Certificate></X509Data></KeyInfo></Signature></Cancelacion>
3.4 Ejemplo de respuesta
Salida: El XML del acuse o el ERROR dado por el SAT o por negocio.
Respuesta exitosa
Ejemplo de salida satisfactoria con código http 200 y código de status 1201:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 1501
Content-Type: application/xml; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 31 Dec 2014 19:17:53 GMT
<?xml version="1.0"?>
<Acuse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Fecha="2014-12-31T13:17:53.0816119" RfcEmisor="GAVA730717AE1" WorkProcessId="108fe0ae-0402-41ea-b603-bba3b338057e" xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1">
<Folios>
<UUID>CF93C8F6-E9EE-4AD5-9CC0-4E771CE726B6</UUID>
<EstatusUUID>1201</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>XG1pp/m3TuS2j971YCxqMa7aTi2MW/pHNElJwEzFB9So5QEjgcRXnyC4xoEJDG5yZF8yqo9aNWuDMkfwAvQKQA==</DigestValue></Reference></SignedInfo><SignatureValue>s8trd9ZLoW2axhyXXssfa4MeBrCK0T5p1JfuRGOFbj8JCF5f3+hqgx5tSyvuEWo3leDGpSs7gmYjgBCc4xF7gw==</SignatureValue><KeyInfo><KeyName>20001000000300003586</KeyName><KeyValue><RSAKeyValue><Modulus>n77fbi0dTENVn43LCUOIF/8iyQObFg/AaTRBdpf0fVuozOOy48INue46sN54AHL+I50s1U8Nh6Dq+MRvRNc8WyHPQWsnmSaicT5vAkkzqucVj004WyLcmpysY45DrCxSitPMRzop3XboPr1msWd3EuyduUtbu3QmNRin8uzpYg8=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue></KeyInfo>
</Signature>
</Acuse>
Ejemplo de salida de error con código http 200 y código de status 1XXX:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 1409
Content-Type: application/xml; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 31 Dec 2014 20:46:59 GMT
<?xml version="1.0"?>
<Acuse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" CodEstatus="1301" Fecha="2014-12-31T14:46:59.5187095" RfcEmisor="" WorkProcessId="238a0fec-8004-426d-a846-cd69103f7288" xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1">
<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>KVsuu6MBIq35WvJZ4regrxHPg9UEtiMizXsX14P6o2Dm0UbI1BHz7xUW5AqZ5HzY399PTzRSAPgmT8DEDQQjkg==</DigestValue></Reference></SignedInfo><SignatureValue>LpABcSjt+vbvRp876GcR0l1UajX5Z5P6/f4qilRyIH1Y06DWYbmy74Fnc3iyKtTqXDSPkPzg7J3Ktfyc7WbSuw==</SignatureValue><KeyInfo><KeyName>20001000000300003586</KeyName><KeyValue><RSAKeyValue><Modulus>n77fbi0dTENVn43LCUOIF/8iyQObFg/AaTRBdpf0fVuozOOy48INue46sN54AHL+I50s1U8Nh6Dq+MRvRNc8WyHPQWsnmSaicT5vAkkzqucVj004WyLcmpysY45DrCxSitPMRzop3XboPr1msWd3EuyduUtbu3QmNRin8uzpYg8=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue></KeyInfo>
</Signature>
</Acuse>
Respuesta con error
Ejemplo de salida de error con código http 400 y código de status XXX:
HTTP/1.1 400 Bad Request
Content-Type: text/plain; charset=utf-8
Content-Length: 88
{"errorCodigo":"902", "descripcionError":"El RFC 'GAVA730717AE1' no está registrado."}
Ejemplo de salida de error con código http 400 y sin código de status:
HTTP/1.1 400 Bad Request
Content-Type: text/plain; charset=utf-8
Content-Length: 23
Falta Header: ipAddress
3.5 Códigos de respuesta
Código HTTP | Código | Tipo | Descripción |
---|---|---|---|
200 | 1201 | SUCCESS | UUID Cancelado |
200 | 1202 | ERROR | Previamente cancelado |
200 | 1203 | ERROR | UUID no corresponde con el emisor |
200 | 1205 | ERROR | UUID No existe |
200 | 1300 | ERROR | Autenticación no válida |
200 | 1301 | ERROR | XML mal formado |
200 | 1302 | ERROR | Estructura de folios no válida |
200 | 1303 | ERROR | Estructura de RFC no válida |
200 | 1304 | ERROR | Estructura de fecha no válida |
200 | 1305 | ERROR | Certificado no corresponde al emisor |
200 | 1306 | ERROR | Certificado no vigente |
200 | 1307 | ERROR | Uso de FIEL no permitido |
200 | 1308 | ERROR | Certificado revocado o caduco |
200 | 1309 | ERROR | Firma mal formada o inválida |
400 | 308 | ERROR | El CSD del emisor no es un certificado emitido por la autoridad del SAT. |
400 | 401 | ERROR | El rango de la fecha de generación es mayor a 72 horas con base en la fecha de emisión |
400 | 901 | ERROR | El cliente con el CustomerKey proporcionado no es válido |
400 | 902 | ERROR | El RFC no esta registrado como cliente |
400 | 903 | ERROR | El RFC se encuentra inactivo por el momento |
400 | 904 | ERROR | No cuenta con licencia para realizar peticiones |
400 | 905 | ERROR | El RFC no pertenece al cliente con el CustomerKey que proporciono |
400 | 910 | ERROR | No se puede determinar el cliente a partir del RFC |
400 | 999 | ERROR | Error interno en el servidor |
400 | 407 | ERROR | Error en el servicio de Cancelación del SAT |
400 | ERROR | Cuando faltan parámetros requeridos en la petición |
4 Consideraciones Técnicas
-
Toda comunicación debe realizarse con codificación UTF-8.
-
Las URLs deben invocarse vía
POST
con contenido tipotext/xml
. -
El uso de certificados y estructura XML debe cumplir lo indicado por el Anexo 20 del SAT.
-
En todos los casos, incluya siempre el
CustomerKey
correcto.
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.
No Comments