====== Web Service Validaciones ======
====== Introducción ======
Como proveedor autorizado de certificación con el número 68934, **iTimbre** realiza la validación de Comprobantes Fiscales Digitales generados por Internet (//**CFDI**//) conforme a las especificaciones requeridas por el SAT a través de su Web Service (Software como Servicio) de una manera rápida y segura. Adicionalmente el servicio se encarga de buscar el CFDI consultado en las bases de datos del [[sat|SAT]] e indicar si ya ha sido procesado por este último, así como su estado en él (vigente o cancelado).
====== Servicio ======
La característica principal de la arquitectura delos **Web Services** de iTimbre es que utiliza //JSON//+//REST// en lugar del tradicional //XML//+//SOAP//. Por lo tanto es importante tener conocimientos del formato JSON para crear los mensajes que serán enviados al Web Service. Afortunadamente JSON es mucho más fácil de entender e implementar.
====== Registro ======
El servicio de validaciones **no requiere ningún registro**. La autorización para las certificaciones se da de manera interna, autorizando a cada RFC del envío de CFDIs a validar.
====== Conexión al Web Service ======
Para realizar la conexión con el Web Service de validaciones es necesario proveerlos siguientes datos en el llamado:
* **method**: Indica el método a utilizar. Se enviará "**validaEgreso**". **Parámetro requerido**.
* **xmldata**: Contenido completo del XML que se desea validar. **Parámetro requerido**.
* **pdfBase64**: Dato opcional para enviar el contenido del PDF correspondiente al CFDI. Se adjuntará en el correo de respuesta.
* **attachmentBaseName**: Nombre que se le asignará a los archivos adjuntos del XML y PDF en el correo de respuesta de la validación.
* **notEmail**: Dirección de correo a la cual se enviará la respuesta de la validación. **Parámetro requerido**.
* **supplierEmail**: Dirección de correo a la cual se envía una segunda respuesta, esta le corresponde al proveedor de la factura.
Nota: **En caso de no utilizar algún parámetro se enviará una cadena de texto vacía**.
Al realizar el llamado, las variables se deben serializar en formato JSON y almacenarse en una variable llamada “q”, la cual se debe enviar por HTTP. Las dirección del servicio es la siguiente:
Producción: [[https://validador.itimbre.com/service.php|https://validador.itimbre.com/service.php]]
====== Llamado ======
Consistente en los siguientes datos:
El llamado corresponderá a un objeto JSON con la siguiente estructura:
{
"method":"validaEgreso",
"xmldata":"CFDI",
"pdfBase64":"",
"attachmentBaseName":"cfdi_123",
"notEmail":"micorreo@mi-empresa.com"
"supplierEmail":"correo@proveedor.com"
}
====== Respuesta ======
===== Válido =====
El procesamiento correcto de un CFDI resulta en un objeto como el siguiente:
{
"retcode":1,
"schema":"CFDI Validado",
"verificacionSAT": {
"mensajeSAT":"S - Comprobante obtenido satisfactoriamente.",
"estadoSAT":"Vigente"
}
}
Consistente en los siguientes datos:
* **retcode**: Código de respuesta recibido de acuerdo al catalogo de códigos de respuesta.
* **schema**: Mensaje que indica si el CFDI fue validado correctamente.
* **verificacionSAT**: Arreglo que incluye los datos con la respuesta obtenida por el SAT.
* **mensajeSAT**: Redacción que indica si el CFDI fue obtenido de la base de datos del SAT.
* **estadoSAT**: Estado en las bases de datos del SAT, es decir si se encuentra //Vigenete// o //Cancelado//.
===== Inválido =====
El procesamiento de un CFDI inválido resulta en un objeto como el siguiente:
{
"retcode":101,
"error":"El XML no se puede parsear."
}
Consistente en los siguientes datos:
* **retcode**: Código de respuesta recibido de acuerdo al catalogo de códigos de respuesta.
* **error**: Redacción sobre el detalle del procesamiento y el motivo de error.
====== Catálogo de Códigos de Respuesta ======
^ Retcode ^ Descripción ^
| 400 |Violación del contrato. Los datos enviados no corresponden con el formato y/o contenido esperados. |
| 401 |El receptor no se encuentra autorizado para consumir el servicio de validaciones o con servicio bloqueado.|
| 500 |Error en la comunicación con el servicio.|
| 101 |El CFDI no es válido.|
| 100 |El receptor no se encuentra autorizado para consumir el servicio de validaciones.|