Saltar a contenido

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:

  1. Dar de alta una empresa usando su e.firma.
  2. Solicitar descarga.
  3. Verificar estatus
  4. 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....",
}