Inicio Rápido
Se muestra un ejemplo completo de como consumir el servicio REST para la descarga masiva de CFDI mediante CIEC. Para este ejemplo consideramos la descarga con los siguientes parámetros:
- Todos los CFDI Emitidos (Vigentes y Cancelados)
- Fecha inicial:
2019-08-01T00:00:00
- Fecha final:
2019-08-30T00:00:00
- Contribuyente:
AAA010101AAA
- CIEC:
012345
El flujo de consumo es como se describe en los Primeros Pasos
-
Verificar Credenciales (opcional)
-
Solicitud de descarga
-
Monitorear estatus
-
Obtener Resumen
-
Obtener resultados
0. Verificar Credenciales
POST /webservices/csdescargasat/v3/auth HTTP/1.1
Content-Type: application/json
Host: csfacturacion.com
Content-Length: 51
{
"rfc": "AAA010101AAA",
"password": "CIEC"
}
Respuesta:
{
"autenticado": true
}
Tip
Se aconseja realizar al menos dos peticiones para evitar falsos negativos.
1. Solicitud de descarga
POST /webservices/csdescargasat/v3/consultar HTTP/1.1
Content-Type: application/json
Rfc: AAA010101AAA
Password: password_contratacion
Host: csfacturacion.com
Content-Length: 241
{
"servicio": "CRAPI",
"descarga": {
"rfcContribuyente": "AAA010101AAA",
"password": "API",
"fechaInicio": "2022-10-20T00:00:00",
"fechaFin": "2022-11-20T23:59:59",
"tipo": "todas",
"status": "vigentes"
}
}
Clave de Servicio
La clave de servicio hace referencia a la contratación con la cual consume
la API de descarga. CSReporter: CSRN
WebService: CRAPI
Respuesta Exitosa:
{
"data": {
"uuid": "c3278871-30bc-2c53-bdba-fa602d2cbd81",
"mensaje": "Peticion realizada con exito",
"contratacion": true,
"transacciones": 3000000,
"idContratacion": 74848
}
}
2. Monitorear estatus
Si en el paso anterior se obtiene el campo uuid
, la solicitud fue procesada con éxito y se puede monitorear su estatus.
GET /webservices/csdescargasat/v3/consultas/c3278871-30bc-2c53-bdba-fa602d2cbd81/progreso HTTP/1.1
Host: csfacturacion.com
{
"estado": "COMPLETADO",
"encontrados": 390
}
Estatus
Consulte Los primeros pasos para saber más sobre todos los posibles estatus de una consulta.
3. Obtener Resumen
El resumen de las consultas con un estatus satisfactorio puede ser obtenido mediante:
GET /webservices/csdescargasat/v3/consultas/c3278871-30bc-2c53-bdba-fa602d2cbd81/resumen HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: csfacturacion.com
Estatus con resumen
Recuerda que solo puedes obtener el resumen de una solicitud si tiene alguno de los siguientes estatus:
- COMPLETADO
- COMPLETADO_CON_FALTANTES
Respuesta exitosa:
{
"total": 60,
"paginas": 3,
"fechasMismoHorario": [],
"xmlFaltantes": false,
"cancelados": 1
}
4. Obtener Resultados
Los resultados de las solicitudes exitosas pueden ser obtenidos mediante:
ZIP: Archivos XML comprimidos en un archivo ZIP.
GET /webservices/csdescargasat/v3/consultas/c3278871-30bc-2c53-bdba-fa602d2cbd81 HTTP/1.1
Host: csfacturacion.com
JSON: Obtener Metadata individualmente en objetos JSON
.
GET /webservices/csdescargasat/v3/cfdi/c3278871-30bc-2c53-bdba-fa602d2cbd81 HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: csfacturacion.com
XML: Obtener CFDI mediante archivo XML.
GET /webservices/csdescargasat/v3/cfdi/c3278871-30bc-2c53-bdba-fa602d2cbd81 HTTP/1.1
Accept: application/xml
Content-Type: application/json
Host: csfacturacion.com
Estatus con resultados
Recuerda que solo puedes obtener el resumen de una solicitud si tiene alguno de los siguientes estatus:
- COMPLETADO
- COMPLETADO_CON_FALTANTES
Suite Insomnia
Puedes probar todos los endpoints de la API de manera rápida con la suite de Insomnia disponible en el siguiente enlace
Para más información consulte la documentación oficial de Insomnia.
FAQ
-
Consultas con estatus REPETIR
Se debe enviar la solicitud nuevamente para obtener los archivos XML
-
Tengo XML Faltantes
Es posible que hayas superado el limite del SAT.
-
Obtengo fallo de autenticación
Es posible que la resolución del captcha falle. Tambien, recomendamos verificar tus credenciales directamente en el portal del SAT
-
Consultas en espera
Si tu consulta lleva demasiado tiempo en espera, es posible que el portal del SAT presente cierto grado de degradación o nuestro servicio está bajo alta demanda.