Inicio Rápido
A continuación se detalla un ejemplo con los atributos necesarios para construir una request y consumir el servicio REST para la descarga masiva de CFDI mediante e.firma.
- Rfc del contribuyente:
AAA010101AAA
- Fecha inicial:
2023-01-01T00:00:00
- Fecha final:
2023-02-01T23:59:59
- Tipo de solicitud:
Metadata
óCFDI
- Solicitar:
Emitidas
óRecibidas
El flujo para usar la descarga debe ser el siguiente:
- Dar de alta una empresa usando su e.firma.
- Solicitar descarga.
- Verificar estatus
- Descargar resultados
1. Dar de alta una empresa usado su e.firma
El siguiente endpoint es utilizado para dar servicio a una nueva empresa:
POST /descargasat-rest/empresas HTTP/1.1
Content-Type: multipart/form-data
Host: api.csfacturacion.com
Ejemplo de headers autenticación:
- rfc-contratacion = AAA010101AAA
- password-contratacion = Contraseña123
Ejemplo de petición:
- rfc = AAA010101AAA
- razon_social = Empresa de prueba
- key = archivo(.key)
- cert = archivo(.cer)
- password = Empresa de prueba
Respuesta:
{
"status": true,
"response": "La empresa se guardó con éxito"
}
2. Solicitar descarga
Este endpoint permite solicitar al SAT las facturas emitidas o recibidas dentro de un rango de fechas dado.
POST /descargasat-rest/consultas HTTP/1.1
Content-Type: multipart/form-data
Host: api.csfacturacion.com
Ejemplo de headers autenticación:
- rfc-contratacion = AAA010101AAA
- password-contratacion = Contraseña123
Ejemplo de petición:
- rfc = AAA010101AAA
- fecha_inicial = 2017-01-01
- fecha_final = 2018-01-01 12:59:59
- tipo_solicitud = Metadata
- solicitar = Recibidas
Respuesta:
{
"status": true,
"response": {
"uuid": "e299e8f1-3b78-333c-8966-b097ffdfa1e2",
"msg": "La solicitud se ha puesto en cola con éxito"
}
}
3. Verificar descarga
Una vez hecha la solicitud, es necesario esperar a que el SAT atienda la petición, este endpoint informa el estado actual de la petición.
GET /descargasat-rest/consultas/{UUID} HTTP/1.1
Host: api.csfacturacion.com
Ejemplo de headers autenticación:
- rfc-contratacion = AAA010101AAA
- password-contratacion = Contraseña123
Respuesta:
{
"status": true,
"request_status": 3,
"total_cfdis": 18314,
"response": "Descargado correctamente"
}
4. Descarga resultados
Al tener el parametro "request_status" con valor de "3" significa que ya esta listo para descargar. Este endpoint comprime todos los paquetes descargados y los sirve.
Este endpoint tiene 2 maneras de consultarlo, este para descargar un zip en base 64:
GET /consultas/descargas/{UUID}/base64
Y este para descargar un archivo zip directamente:
GET /consultas/descargas/{UUID}/
GET /descargasat-rest/descargas/{UUID} HTTP/1.1
Host: api.csfacturacion.com
Ejemplo de headers autenticación:
- rfc-contratacion = AAA010101AAA
- password-contratacion = Contraseña123
Respuesta:
{
"status": true,
"response": "UEsDBBQACAgAAOiiYk8tHbtQbXEBAG1xAQArAAAAQkVBMjJEMDAtQ....",
}