El presente documento describe el uso del Web Service IEngine – Descarga SAT, utilizado para solicitar la descarga de comprobantes fiscales digitales (CFDI) desde el SAT mediante los parámetros proporcionados.
El servicio permite consultar y descargar los XML asociados a un RFC emisor dentro de un rango de fechas determinado. Una vez obtenidos los comprobantes, el sistema envía cada XML descargado hacia un endpoint webhook configurado por el usuario.
URL del Web Service:
https://pruebas-ifactura.itimbre.com/plugins/IEngine/IEngine.php
El servicio recibe parámetros mediante una solicitud HTTP GET.
Ejemplo de estructura:
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| engine | String | Sí | Nombre del motor a ejecutar. Para descarga SAT debe enviarse descagaSAT. |
| RfcEmisor | String | Sí | RFC del emisor del cual se desean descargar comprobantes. |
| TipoComprobante | String | Sí | Tipo de comprobante a consultar. Ejemplo: N para nómina. Ver catálogo al final. |
| callback | URL/String | Sí | Endpoint donde serán enviados los XML descargados. |
| fechaInicial | Date | Sí | Fecha inicial del rango de búsqueda. Formato: YYYY-MM-DD |
| fechaFinal | Date | Sí | Fecha final del rango de búsqueda. Formato: YYYY-MM-DD |
El flujo de operación es el siguiente:
Descripción: El webhook es un endpoint proporcionado por el usuario consumidor del servicio. Este endpoint será invocado N veces, donde N corresponds al número de XML descargados.
Nota: Si SAT devuelve 100 XML, el webhook será llamado 100 veces de forma individual y cada llamada contendrá un XML diferente.
El webhook recibe un parámetro vía POST:
| Parámetro | Tipo | Descripción |
|---|---|---|
| xml | String/XML | Contenido completo del CFDI descargado. |
Ejemplo de payload recibido:
[
'xml' => 'contenido_xml_del_cfdi'
]
Ejemplo en PHP:
<?php
$xml = $_POST['xml'] ?? null;
if ($xml) {
// Procesar XML recibido
file_put_contents('cfdi.xml', $xml);
echo "XML recibido correctamente";
} else {
http_response_code(400);
echo "XML no recibido";
}
?>
Respuesta recomendada: HTTP 200 OK (Cuerpo: OK)
Cliente | | Solicitud descarga SAT (GET) v IEngine Web Service | | Consulta CFDI SAT v XML encontrado | | POST webhook (N veces) v Sistema consumidor (Procesa y almacena)
Solicitud:
Resultado si existen 25 CFDI:
[
'xml' => '<cfdi:Comprobante ... > ... </cfdi:Comprobante>'
]
El parámetro TipoComprobante permite indicar el tipo de CFDI que se desea consultar durante la descarga desde SAT. Los valores posibles corresponden al atributo oficial definido por la autoridad:
| Valor | Tipo de comprobante | Descripción |
|---|---|---|
| I | Ingreso | Comprobantes emitidos por la prestación de servicios, venta de productos, arrendamientos u operaciones donde existe un ingreso. |
| E | Egreso | Comprobantes utilizados para devoluciones, descuentos, bonificaciones o ajustes relacionados con ingresos previamente registrados. |
| T | Traslado | Comprobantes utilizados para acreditar el transporte o traslado de mercancías. |
| N | Nómina | Comprobantes fiscales digitales utilizados para registrar pagos de salarios y prestaciones a trabajadores. |
| P | Pago | Comprobantes utilizados para registrar la recepción de pagos relacionados con operaciones previamente facturadas. |
Ejemplos de uso rápidos:
Consideraciones adicionales: