timbre refid.
El servicio de Timbre Fiscal® ofrece un mecanismo para que puedas identificar un comprobante de entre cualquier otro, permitiéndote realizar reintentos o recuperación del timbre, sin que dupliques el folio fiscal (timbre) del comprobante en cada petición.
De esta manera diverza® se asegura que este valor sea único para ese RFC en todas sus instancias de base de datos. Con este mecanismo, en caso de enviar múltiples peticiones, las cuales tengan el mismo RefId en Timbre Fiscal®, solo generará un solo folio fiscal (el proceso de certificación solo se realizará la primera vez, el resto de las peticiones obtendrán el mismo complemento de timbre generado la primera vez).
A cada CFDi timbrado le corresponde un folio fiscal único UUID
, en términos simples lo veremos así. Pero, ¿qué pasa si por accidente vuelves a enviar exactamente el mismo comprobante a timbrar con mi PAC? Por cada petición correcta de timbrado, se generará la misma cantidad CFDis timbrados (cada un folio fiscal distinto) y entregados al SAT, y por lo tanto todos serán reconocidos fiscalmente.
El servicio de Timbre Fiscal® incluye el atributo llamado RefID, que te permite identificar cada documento que envíes a procesar con nosotros. Por cada RefID único que utilices obtendrás el mismo complemento de timbre (y folio fiscal), así podrás implementar mecanismos de recuperación como reintentos sin que estés generando nuevos timbres por el mismo comprobante.
¿cómo funciona?
No es extraño que tus sistemas internos coloquen un identificador único a cada comprobante, incluso antes de enviarlo a timbrar, digamos que el CFDi que envías tiene como identificador: SGFR98322-20140815T09:40
, y envías ese dato como parte del request.
Entonces, si la petición es correcta timbraremos y certificaremos el comprobante respondiéndote los datos del complemento <tfd:TimbreFiscalDigital>
digamos que con el UUID=5e881398-b62a-42c1-bf17-5d44a2f54a84
y adicionalmente registramos en nuestro sistema que el RefID=SGFR98322-20140815T09:40
corresponde al CFDi generado con UUID 5e881398-b62a-42c1-bf17-5d44a2f54a84
.
Por lo tanto, la siguiente ocasión en que envíes una petición de timbrado con el mismo RefID
(aunque el CFDi sea diferente) nosotros te responderemos con el mismo timbre que se había generado en la primera ocasión que usaste dicho RefID, con esto, aseguramos que aunque envíes varias veces el mismo CFDi (respetando el valor del RefID), no estarás duplicando los comprobantes.
escenario de ejemplo
1. Primer timbrado de un comprobante
El ejemplo inicia timbrado un CFDi de pruebas con la siguiente información:
Servidor de prueba: https://staging.diverza.com/api/v1/timbrar
Token de prueba: ABCD1234
**RefID: SGFR98322-20140815T09:40**
Metodo HTTP: POST
Header HTTP: x-auth-token
Header HTTP: x-refid
Header HTTP: Content-Type
Header HTTP: Content-MD5
Petición
cURL https://staging.diverza.com/stamp -X POST --data @cfdi.xml -H "Content-Type: application/vnd.sat.cfdi+xml; charset=UTF-8" -H "x-auth-token: ABCD1234" -H "Content-MD5: kso376aw88wkdms1723o21mdasl213u2" -H "x-refid: SGFR98322-20140815T09:40" -i
* El archivo cfdi enviado es igual a cualquier otro, no se ve afectado por el RefID
Respuesta
Status Code: 200 OK
Cache-Control: max-age=0, private, must-revalidate
Connection: keep-alive
Content-Length: 730
Date: Fri, 15 Aug 2014 14:43:39 GMT
Server: nginx/1.0.15
<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigital.xsd" selloSAT="rInX4E+pRgkuIxJGRlJp49rTN9kMCjMYQz4t3m+IXjkHsFxbIuEeHTXPdUms7NvcX0ayS3NO1GzpVFQyJLCf6lLcJrao4ngkTVcNSwxWi77U1fjHEGtzU+FFhQUHZ63NX6GCEeb0xsXBN03xzxwBmTLYZ8FdCAFIqUMKX5YN640=" noCertificadoSAT="20001000000100005761" selloCFD="ElqnU5BgK66ZWCvJU6NMqA6bzAHpJZ1Va2Ilcp+eIit0BtGjHpzPp2UjpRYttpMc01YBQtbHo4ErG/WDJ3jHKsYZ455NJgRirYgHVGvcMV3UdQ0gSILGcubcjLgBIGYozKuipRcYqOtk3wwkzxQa3sEMZpLczNxirVLtbaX/vpU=" FechaTimbrado="2014-08-15T09:43:39" UUID="5e881398-b62a-42c1-bf17-5d44a2f54a84" version="1.0"/>
2. Reenvío del mismo comprobante con el mismo RefID
Si enviamos nuevamente la misma petición, utilizando el mismo RefID, obtendremos exactamente la misma respuesta:
Misma petición
cURL https://staging.diverza.com/stamp -X POST --data @cfdi.xml -H "Content-Type: application/vnd.sat.cfdi+xml; charset=UTF-8" -H "x-auth-token: ABCD1234" "Content-MD5: kso376aw88wkdms1723o21mdasl213u2" -H "x-refid: SGFR98322-20140815T09:40" -i
Misma respuesta
Status Code: 200 OK
Cache-Control: max-age=0, private, must-revalidate
Connection: keep-alive
Content-Length: 730
Date: Fri, 15 Aug 2014 14:50:19 GMT
Server: nginx/1.0.15
<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigital.xsd" selloSAT="rInX4E+pRgkuIxJGRlJp49rTN9kMCjMYQz4t3m+IXjkHsFxbIuEeHTXPdUms7NvcX0ayS3NO1GzpVFQyJLCf6lLcJrao4ngkTVcNSwxWi77U1fjHEGtzU+FFhQUHZ63NX6GCEeb0xsXBN03xzxwBmTLYZ8FdCAFIqUMKX5YN640=" noCertificadoSAT="20001000000100005761" selloCFD="ElqnU5BgK66ZWCvJU6NMqA6bzAHpJZ1Va2Ilcp+eIit0BtGjHpzPp2UjpRYttpMc01YBQtbHo4ErG/WDJ3jHKsYZ455NJgRirYgHVGvcMV3UdQ0gSILGcubcjLgBIGYozKuipRcYqOtk3wwkzxQa3sEMZpLczNxirVLtbaX/vpU=" FechaTimbrado="2014-08-15T09:43:39" UUID="5e881398-b62a-42c1-bf17-5d44a2f54a84" version="1.0"/>
No importa cuántas veces se envíe la petición, el resultado será el mismo.
3. Reenvío de un comprobante diferente, pero con el mismo RefID
Ten cuidado: Si hacemos nuevamente la misma petición, utilizando el mismo RefID, pero con un comprobante distinto obtendremos exactamente la misma respuesta:
Misma petición, otro documento
cURL https://staging.diverza.com/stamp -X POST --data @otro_cfdi.xml -H "x-auth-token: ABCD1234" -H "x-refid: SGFR98322-20140815T09:40" -i
Misma respuesta
Status Code: 200 OK
Cache-Control: max-age=0, private, must-revalidate
Connection: keep-alive
Content-Length: 730
Date: Fri, 15 Aug 2014 13:03:12 GMT
Server: nginx/1.0.15
<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigital.xsd" selloSAT="rInX4E+pRgkuIxJGRlJp49rTN9kMCjMYQz4t3m+IXjkHsFxbIuEeHTXPdUms7NvcX0ayS3NO1GzpVFQyJLCf6lLcJrao4ngkTVcNSwxWi77U1fjHEGtzU+FFhQUHZ63NX6GCEeb0xsXBN03xzxwBmTLYZ8FdCAFIqUMKX5YN640=" noCertificadoSAT="20001000000100005761" selloCFD="ElqnU5BgK66ZWCvJU6NMqA6bzAHpJZ1Va2Ilcp+eIit0BtGjHpzPp2UjpRYttpMc01YBQtbHo4ErG/WDJ3jHKsYZ455NJgRirYgHVGvcMV3UdQ0gSILGcubcjLgBIGYozKuipRcYqOtk3wwkzxQa3sEMZpLczNxirVLtbaX/vpU=" FechaTimbrado="2014-08-15T09:43:39" UUID="5e881398-b62a-42c1-bf17-5d44a2f54a84" version="1.0"/>
La facilidad de utilizar tu propio identificador interno es uno de los beneficios de control que te ofrece Timbre Fiscal®, utilízalo adecuadamente. Recuerda que puedes realizar todas las pruebas que necesites antes de tu salida a producción.
Si tienes dudas llámanos o escríbenos.