Timbrado PAC
Servicio de Timbrado
1.- Introducción
Como parte de los servicios de Tralix como Proveedor Autorizado de Certificación (PAC) para poder obtener un timbre fiscal digital y tener un CFDI completamente válido, el presente documento describe el mecanismo de invocación del servicio web de timbrado así como los posibles errores que se pudieran presentar al momento de la validación y la forma de manejarlos.
1.1.- A quien va dirigido
El presente documento está dirigido a desarrolladores que requiera consumir el servicio de timbrado de Tralix y supone que el lector cuenta con conocimientos y entendimiento de XML, SOAP, HTTP Headers y WSDL, por lo que cualquier explicación sobre los mismos esta fuera del alcance del presente documento.
2.- Ubicaciones del servicio
2.1.- WSDL
El contrato del servicio puede ser descargado de la siguiente URL:
CFDI v4.0
https://pac.tralix.com/TimbradoCFD4_0.wsdl
2.2.- Ambiente de pre-producción.
Para poder empezar a trabajar con los servicios de timbrado, es necesario que primero se realicen pruebas en el ambiente de pre-producción:
https://pruebastfd.tralix.com:7070
En este ambiente usted puede enviar comprobantes firmados con los certificados de prueba del SAT publicados en la siguiente dirección:
http://omawww.sat.gob.mx/tramitesyservicios/Paginas/certificado_sello_digital.htm
Y también puede enviar comprobantes firmados su certificado real si así lo desea.
2.3.- Ambiente de Producción
La dirección del ambiente de producción se te será proporcionada una vez terminadas las pruebas.
3.- Namespaces Namespace
Namespace | URL |
soap | http://schemas.xmlsoap.org/wsdl/soap/ |
soapenc | http://schemas.xmlsoap.org/soap/encoding/ |
wsdl | http://schemas.xmlsoap.org/wsdl/ |
xsd | http://www.w3.org/2001/XMLSchema |
xsi | http://www.w3.org/2001/XMLSchema-instance |
cfdi | http://www.sat.gob.mx/cfd/3 |
tfd | http://www.sat.gob.mx/TimbreFiscalDigital |
4.- Codificación de Caracteres
La codificación de todos los campos deberá der estar en UTF-8.
Por lo que se deberá de limitar la información y los caracteres disponibles de este tipo de codificación.
5.- Estructura de la petición
La petición que se manda al timbrador es el comprobante fiscal digital que se desea timbrar, el cual está especificado dentro del WSDL del servicio y se debe mandar dentro del elemento Body.
Ejemplo:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.sat.gob.mx/cfd/3">
<soapenv:Header/>
<soapenv:Body>
</soapenv:Body>
</soapenv:Envelope>
5.1.- Consideraciones en la Definición del WSDL del Servicio
El WSDL del servicio de timbrado definido por el SAT solo permite mandar CFDI a timbrar con los siguientes complementos.
-
- Complemento para las Facturas Electrónicas emitidas por medio de un Proveedor Autorizado de Comprobantes Fiscales Digitales (PACFD).
- Complemento para el Estado de Cuenta de Combustibles para Monederos Electrónicos Autorizados por el SAT.
- Datos Requeridos para la Emisión de Facturas Electrónicas por Donativos “Donatarias”.
- Complemento para Facturas Electrónicas que amparen la compra - venta de “Divisas”.
- Complemento para la Emisión de Estados de Cuenta Bancario “ECB”.
- Complemento para Incluir Impuestos Locales en la Factura Electrónica.
- Complemento para Facturas Electrónicas del Sector de Ventas al Detalle “Detallista”.
Es importante hacer notar que el Complemento “Addenda” no debe ser incluido en el CFDI al momento de mandar timbrar.
6.- Estructura de las respuestas
El servicio puede regresar dos tipos de respuestas:
1.- Un timbre fiscal digital, el cual representa un timbrado correcto y debe ser incluido dentro del nodo complemento del CFDI generado.
Ejemplo:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cfdi="http://www.sat.gob.mx/cfd/3">
<soapenv:Body>
<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital"
FechaTimbrado="2022-01-10T09:47:32" UUID="694F4707-842C-49A9-A0D2-BC459CB97FE4"
NoCertificadoSAT="20001000000300022323"
SelloCFD="L8Ovst91fu+RjYKN0M8QNg2oE26gCsa4TQ/TrfMiDYnu5rwV/D/4NUpUpNlSFjh72ik6kD6lP4+XphGww9gyUEoPzMa9RBrSHbdhi4guQ3Fo1j0aAvz1FkI0AaQTy5A07CHD+E1NABJT/0MUMESN41vZ4YDVgzBZjOM1PW6XS6tJZBeKDGWF4Ko3GKAmng2mwj0kiPxOQYQHEw05OebChss18Waj1MtaHm6GO8JcuqOxiQSXWy1AAulFxd/oiSh4wkQxIBDB3POUzxWmaaSH9TfEpY4RasREQofQIDW6eYSIEolbXvkSOt9yroCAQ+vm0lhaH0xGsuB/SGArEVQeBQ=="
SelloSAT="FSc0uZrF50eJmf5K/pavIVKDo5ald44eIHau5IIVbOUyFnz7gzWrnEbRaBt9k6ECNwnbo3peThJXsS0PcjN/oD1i3GuTN95zuEdMYSX6PxTm/zpSSmDBuJfm/GLwGcEg3c4j4b3le7J+ff61cG2hGdG7I2xunkrpbjw1t5E4wIgsBdN4ghyERj02tBnaSGajUEbLqA1F8u7TBpNBvbf9EzsBx5sLOo130vBKr5WnQlwEv0lEAcfIQdHJCiTX/rxrqTr5Xei/uq1hV5aEnXyWlW4jATuhINn3b+iJEv7qQEf3goTw1fxre2MMgGPWi6GpstzR7mGpvvhyJmrQjgIN2g=="
Version="1.1" RfcProvCertif="TLE011122SC2" Leyenda="PRUEBA_LEYENDA_PRUEBA_LEYENDA"
xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</soapenv:Body>
</soapenv:Envelope>
2.- Un fault, el cual representa un error al momento de timbrar debido a que el comprobante no cumple con todos los requisitos necesarios para ser timbrado. Este mensaje contiene el código y la descripción del error que se presentado.
Ejemplo:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cfdi="http://www.sat.gob.mx/cfd/3">
<soapenv:Body>
<soapenv:Fault>
<detail>
<cfdi:Error codigo="SAT301">
<cfdi:descripcionError>XML Mal formado</cfdi:descripcionError>
</cfdi:Error>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
7.- Cabecera “CustomerKey”
Para poder timbrar en los ambientes de pre-producción y producción de Tralix, es necesario agregar dentro de las cabeceras HTTP con las que viaja la petición una nueva cabecera con el nombre de "CustomerKey", la cual contiene el identificador del cliente que realiza la petición.
El valor de esta cabecera le será proporcionado al momento de contratar algún paquete de timbrado y tiene que ser enviado en cada petición de timbrado que realice.
Ejemplo:
POST https://urltimbrado.com/ HTTP/1.1
Content-Type: text/xml;charset=UTF-8
SOAPAction: "http://urltimbrado.com/"
CustomerKey: 62281858fae703d19999995de49befb180a17a23
Host: urltimbrado Content-Length: 205
8.- Listado de códigos de error y descripciones
Código | Descripción |
301 |
El XML no está construido conforme al W3C y/o con la estructura del XSD publicado en el Anexo 20 del RMF |
302 | El sello del emisor no está generado correctamente. |
303 | El CSD del emisor no corresponda al RFC establecido como emisor del comprobante. |
304 | El CSD del emisor ha sido revocado |
305 | La fecha de emisión no se encuentre dentro de la vigencia del CSD del emisor. |
306 | El certificado utilizado corresponde a una FIEL |
307 | El XML ya cuenta con un nodo TimbreFiscalDigital |
308 | El CSD del emisor no es un certificado emitido por la autoridad del SAT |
401 | El rango de la fecha de generación es mayor a 72 horas con base en la fecha de emisión |
402 | El RFC del emisor no está autorizado para emisión de CFDI (no se encuentra en la lista autorizada del SAT) |
403 | La fecha de emisión es anterior al 1ero de Enero 2011. |
901 | El cliente con el key #CUSTOMER_KEY no es válido. |
902 | El RFC #RFC no está registrado. |
903 | El RFC #RFC se encuentra inactivo por el momento. |
904 | No cuenta con licencia para realizar peticiones. |
905 | El RFC #RFC no pertenece al cliente con el key #KEY |
906 | Ha expirado su periodo de pruebas. |
907 | Debe invocar al servicio con el customerkey que le fue asignado. |
908 | El hash ya existe en la base de datos. |
909 | Petición incorrecta, el nodo cfdi:Comprobante debe estar dentro del cuerpo del mensaje (soapenv:Body). |
910 | No se puede determinar el cliente a partir del RFC #RFC, verifique que el valor de la cabecera de customerkey. |
998 | Error en el cliente. |
999 | Error interno en el servidor, por favor intente más tarde. |
Nota: Las palabras que contiene el carácter # al principio son reemplazadas con su valor correspondiente.
No Comments