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
Back to top