PHPackages                             phpcfdi/sat-ws-descarga-masiva-cli - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. phpcfdi/sat-ws-descarga-masiva-cli

ActiveLibrary[API Development](/categories/api)

phpcfdi/sat-ws-descarga-masiva-cli
==================================

Consumo del web service de descarga masiva del SAT por línea de comandos

v0.0.5(6mo ago)101145MITPHPPHP ^8.2CI failing

Since Oct 18Pushed 6mo ago3 watchersCompare

[ Source](https://github.com/phpcfdi/sat-ws-descarga-masiva-cli)[ Packagist](https://packagist.org/packages/phpcfdi/sat-ws-descarga-masiva-cli)[ Docs](https://github.com/phpcfdi/sat-ws-descarga-masiva-cli)[ RSS](/packages/phpcfdi-sat-ws-descarga-masiva-cli/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (9)Versions (6)Used By (0)

phpcfdi/sat-ws-descarga-masiva-cli
==================================

[](#phpcfdisat-ws-descarga-masiva-cli)

[![Source Code](https://camo.githubusercontent.com/db2b88cac1f8baeaa003c29bb09f4f19ccc3b0a9aac87cf3710c6f1e4fc28b73/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f736f757263652d706870636664692f7361742d2d77732d2d64657363617267612d2d6d61736976612d2d636c692d626c75653f6c6f676f3d676974687562)](https://github.com/phpcfdi/sat-ws-descarga-masiva-cli)[![Packagist PHP Version Support](https://camo.githubusercontent.com/2e28dcd04cac7862ee46ed3e3514d5511213ce573a857e658d3dfc4abcc9c788/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f706870636664692f7361742d77732d64657363617267612d6d61736976612d636c693f6c6f676f3d706870)](https://packagist.org/packages/phpcfdi/sat-ws-descarga-masiva-cli)[![Discord](https://camo.githubusercontent.com/e7d280832b4bb781e0e83dc7b04440636ea6a67d076133da0938b79caab9d6dd/68747470733a2f2f696d672e736869656c64732e696f2f646973636f72642f3435393836303535343039303238333031393f6c6f676f3d646973636f7264)](https://discord.gg/aFGYXvX)[![Latest Version](https://camo.githubusercontent.com/45f832960a8911c4c50c4a07b73ef06d9be3e89d62728b5325fbc82cfdc02a52/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f706870636664692f7361742d77732d64657363617267612d6d61736976612d636c693f6c6f676f3d676974)](https://github.com/phpcfdi/sat-ws-descarga-masiva-cli/releases)[![Software License](https://camo.githubusercontent.com/a6c93c344cf63661f60e4a41c591adc5d37dd1e566810d4395ab99f9cd9bb1e4/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f706870636664692f7361742d77732d64657363617267612d6d61736976612d636c693f6c6f676f3d6f70656e2d736f757263652d696e6974696174697665)](https://github.com/phpcfdi/sat-ws-descarga-masiva-cli/blob/main/LICENSE)[![Build Status](https://camo.githubusercontent.com/5c35d10ab42c2bbcdaf53108502b304e287d36783c785ffa507d80bd18f760fa/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f706870636664692f7361742d77732d64657363617267612d6d61736976612d636c692f6275696c642e796d6c3f6272616e63683d6d61696e266c6f676f3d6769746875622d616374696f6e73)](https://github.com/phpcfdi/sat-ws-descarga-masiva-cli/actions/workflows/build.yml?query=branch:main)[![Reliability](https://camo.githubusercontent.com/caaf216c55c6a839f855bbb294fad5eb75a253f88454cf8980e23d1bdd516672/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d706870636664695f7361742d77732d64657363617267612d6d61736976612d636c69266d65747269633d72656c696162696c6974795f726174696e67)](https://sonarcloud.io/component_measures?id=phpcfdi_sat-ws-descarga-masiva-cli&metric=Reliability)[![Maintainability](https://camo.githubusercontent.com/b409163f0c6fb48e7e97885e90a090257a11b4267dc1c1d00e5edc33c8303f4a/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d706870636664695f7361742d77732d64657363617267612d6d61736976612d636c69266d65747269633d7371616c655f726174696e67)](https://sonarcloud.io/component_measures?id=phpcfdi_sat-ws-descarga-masiva-cli&metric=Maintainability)[![Code Coverage](https://camo.githubusercontent.com/ae9a2cad6014874af00205dc604897b003db0d0800eb05a81be9ddf861f7e3aa/68747470733a2f2f696d672e736869656c64732e696f2f736f6e61722f636f7665726167652f706870636664695f7361742d77732d64657363617267612d6d61736976612d636c692f6d61696e3f6c6f676f3d736f6e617271756265636c6f7564267365727665723d6874747073253341253246253246736f6e6172636c6f75642e696f)](https://sonarcloud.io/component_measures?id=phpcfdi_sat-ws-descarga-masiva-cli&metric=Coverage)[![Violations](https://camo.githubusercontent.com/736b9fa55903b589541f527b574a7fb94af83b47832132111961e99c5056e9d5/68747470733a2f2f696d672e736869656c64732e696f2f736f6e61722f76696f6c6174696f6e732f706870636664695f7361742d77732d64657363617267612d6d61736976612d636c692f6d61696e3f666f726d61743d6c6f6e67266c6f676f3d736f6e617271756265636c6f7564267365727665723d6874747073253341253246253246736f6e6172636c6f75642e696f)](https://sonarcloud.io/project/issues?id=phpcfdi_sat-ws-descarga-masiva-cli&resolved=false)[![Total Downloads](https://camo.githubusercontent.com/37c97224e31c9808d82d7d2e8c8489fa00c74aae5f95169515e1b1ee7389998c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f706870636664692f7361742d77732d64657363617267612d6d61736976612d636c693f6c6f676f3d7061636b6167697374)](https://packagist.org/packages/phpcfdi/sat-ws-descarga-masiva-cli)[![Docker Downloads](https://camo.githubusercontent.com/0527530a57bfa0a9a5ea12c89ee6d73f705d73aa6a558c4dd6bc87a915cef7a4/68747470733a2f2f696d672e736869656c64732e696f2f646f636b65722f70756c6c732f706870636664692f64657363617267612d6d61736976613f6c6f676f3d646f636b6572)](https://hub.docker.com/repository/docker/phpcfdi/descarga-masiva)

> Consumo del web service de descarga masiva del SAT por línea de comandos

🇺🇸 The documentation of this project is in spanish as this is the natural language for intented audience.

🇲🇽 La documentación del proyecto está en español porque ese es el lenguaje principal de los usuarios. También te esperamos en [el canal #phpcfdi de discord](https://discord.gg/aFGYXvX)

Esta librería contiene un cliente (consumidor) del servicio del SAT de **Servicio Web de Descarga Masiva de CFDI y Retenciones**.

Requerimientos
--------------

[](#requerimientos)

Esta herramienta usa **PHP versión 8.2** o superior con las extensiones `xml`, `openssl`, `zip`, `curl`, `intl` y `bcmath`.

Instalación
-----------

[](#instalación)

### Ejecutable

[](#ejecutable)

Puedes descargar el archivo PHAR desde la dirección .

```
wget https://github.com/phpcfdi/sat-ws-descarga-masiva-cli/releases/latest/download/descarga-masiva.phar -O descarga-masiva.phar
php descarga-masiva.phar --version
```

### Phive

[](#phive)

Pendiente.

### Docker

[](#docker)

```
docker pull phpcfdi/descarga-masiva
docker run --rm -it phpcfdi/descarga-masiva --version
```

### Composer

[](#composer)

Puedes instalar el proyecto en una carpeta especial y usar la herramienta o como dependencia de tu proyecto. Personalmente, no recomiendo instalarla como una dependencia de algún proyecto, dado que se trata de una herramienta y no de un componente o libería.

```
# instalar la herramienta
composer require phpcfdi/sat-ws-descarga-masiva-cli
# ejecutar el script
php vendor/bin/descarga-masiva.php --version
```

Suponiendo que la herramienta se instaló en `~/projects/sat-ws-descarga-masiva-cli`, entonces podrías poner después un script de ejecución como el siguiente en `/usr/local/bin/descarga-masiva` o en `~/.local/bin/descarga-masiva`:

```
!#/usr/bin/env bash -e
php ~/projects/sat-ws-descarga-masiva-cli/vendor/bin/descarga-masiva.php "${@}"
```

### Instalación desde el repositorio Git

[](#instalación-desde-el-repositorio-git)

Puedes decargar el proyecto de github y ejecutar el archivo `bin/descarga-masiva.php`. Esta opción la recomiendo aún menos, dado que no es fácil mantener la herramienta desde Git.

```
# descargar el proyecto
git clone https://github.com/phpcfdi/sat-ws-descarga-masiva-cli /opt/descarga-masiva
# instalar dependencias
composer --working-dir=/opt/descarga-masiva update --no-dev
# ejecución del proyecto
php /opt/descarga-masiva/bin/descarga-masiva.php --version
```

Ejemplos de uso
---------------

[](#ejemplos-de-uso)

Para entender plenamente el uso del servicio web y los códigos de respuesta consulta la documentación de la librería [`phpcfdi/sat-ws-descarga-masiva`](https://github.com/phpcfdi/sat-ws-descarga-masiva).

La aplicación cuenta con dos tipos de comandos: `ws` para trabajar con el servicio y `zip` para trabajar con los paquetes.

Para obtener la lista de comandos disponibles usa el comando `list`.

Para obtener ayuda de la aplicación o cualquier comando agrega el parámetro `--help`.

### Comando `ws:consulta`

[](#comando-wsconsulta)

El comando `ws:consulta` presenta una consulta con los parámetros establecidos.

El siguiente comando presenta una consulta de CFDI de metadata de comprobantes emitidos en el periodo `2023-01-01 00:00:00` al `2023-12-31 23:59:59` con los datos de la FIEL del RFC `EKU9003173C9`.

```
php bin/descarga-masiva ws:consulta \
    --certificado fiel/EKU9003173C9.cer --llave fiel/EKU9003173C9.key --password=12345679a \
    --desde "2023-01-01 00:00:00" --hasta "2023-12-31 23:59:59"
```

Con lo que puede entregar el siguiente resultado:

```
Consulta:
  Servicio: cfdi
  Paquete: Metadata
  RFC: EKU9003173C9
  Desde: 2024-01-01T00:00:00.000UTC
  Hasta: 2024-12-31T23:59:59.000UTC
  Tipo: Emitidos
  RFC de/para: (cualquiera)
  Documentos: (cualquiera)
  Complemento: (cualquiera)
  Estado: (cualquiera)
  Tercero: (cualquiera)
Resultado:
  Consulta: 5000 - Solicitud Aceptada
  Identificador de solicitud: ba31f7fa-3713-4395-8e1f-39a79f02f5cc

```

Los parámetros `--efirma`, `--certificado`, `--llave`, `--password`, `--token` son de autenticación y se documentan más adelante.

Adicionalmente, se pueden especificar los siguientes parámetros:

- `--servicio`: Si se consultarán los CFDI regulares (`cfdi`) o CFDI de Retención e información de pagos (`retenciones`). Por omisión: `cfdi`.
- `--tipo`: Si se consultarán los comprobantes emitidos (`emitidos`) o recibidos (`recibidos`). Por omisión: `emitidos`.
- `--paquete`: Si se solicita un paquete de Metadatos (`metadata`) o de XML (`xml`). Por omisión: `metadata`.

Y los siguientes filtros, que son opcionales:

- `--estado`: Filtra por el estado se encuentra el comprobante: Vigentes `vigentes` o canceladas `canceladas`.
- `--rfc`: Filtra la información por RFC, si se solicitan emitidos entonces es el RFC receptor, si se solicitan recibidos entonces es el RFC emisor.
- `--documento`: Filtra por el tipo de documento: Ingreso (`ingreso`), egreso (`egreso`), traslado (`traslado`), pago (`pago`) o nómina (`nomina`).
- `--complemento`: Filtra por el tipo de complemento, ver el comando `info:complementos`.
- `--tercero`: Filtra por el RFC a cuenta de terceros.

También se pueden hacer consultas por UUID con el paámetro `--uuid`. En caso de usar el filtro de UUID entonces no se toman en cuenta los parámetros `--desde`, `--hasta` o cualquiera de los filtros antes mencionados.

En la respuesta, entrega el resultado de la operación y el identificador de la solicitud, que puede ser usado después en el comando `ws:verifica`.

### Comando `ws:verifica`

[](#comando-wsverifica)

El comando `ws:verifica` verifica una consulta previamente presentada con los parámetros establecidos.

El siguiente comando verifica una consulta de CFDI con el identificador `ba31f7fa-3713-4395-8e1f-39a79f02f5cc`.

```
php bin/descarga-masiva ws:verifica \
    --certificado fiel/EKU9003173C9.cer --llave fiel/EKU9003173C9.key --password=12345679a \
    ba31f7fa-3713-4395-8e1f-39a79f02f5cc
```

En la respuesta, entrega el resultado de la operación y el identificador de uno o más paquetes para descarga, que pueden ser usados después en el comando `ws:descarga`.

```
Verificación:
  RFC: EKU9003173C9
  Identificador de la solicitud: ba31f7fa-3713-4395-8e1f-39a79f02f5cc
Resultado:
  Verificación: 5000 - Solicitud Aceptada
  Estado de la solicitud: 3 - Terminada
  Estado de la descarga: 5000 - Solicitud recibida con éxito
  Número de CFDI: 572
  Paquetes: BA31F7FA-3713-4395-8E1F-39A79F02F5CC_01

```

Los parámetros `--efirma`, `--certificado`, `--llave`, `--password`, `--token` son de autenticación y se documentan más adelante.

Adicionalmente, se pueden especificar los siguientes parámetros:

- `--servicio`: Si se verificará la consulta en el servicio web de CFDI regulares (`cfdi`) o de CFDI de Retención e información de pagos (`retenciones`). Por omisión: `cfdi`.

### Comando `ws:descarga`

[](#comando-wsdescarga)

El comando `ws:descarga` descarga un paquete de una consulta previamente verificada.

El siguiente comando descarga un paquete de CFDI con el identificador `BA31F7FA-3713-4395-8E1F-39A79F02F5CC_01`en el directorio de destino `storage/paquetes`.

```
php bin/descarga-masiva ws:descarga \
    --certificado fiel/EKU9003173C9.cer --llave fiel/EKU9003173C9.key --password=12345679a \
    --destino storage/paquetes BA31F7FA-3713-4395-8E1F-39A79F02F5CC_01
```

En la respuesta, entrega el resultado de la operación y el identificador de uno o más paquetes para descarga, que pueden ser usados después en el comando `ws:descarga`.

```
Descarga:
  RFC: DIM8701081LA
  Identificador del paquete: BA31F7FA-3713-4395-8E1F-39A79F02F5CC_01
  Destino: storage/paquetes/ba31f7fa-3713-4395-8e1f-39a79f02f5cc_01.zip
Resultado:
  Descarga: 5000 - Solicitud Aceptada
  Tamaño: 216126

```

Los parámetros `--efirma`, `--certificado`, `--llave`, `--password`, `--token` son de autenticación y se documentan más adelante.

Adicionalmente, se pueden especificar los siguientes parámetros:

- `--servicio`: Si se descargará el paquete en el servicio web de CFDI regulares (`cfdi`) o de CFDI de Retención e información de pagos (`retenciones`). Por omisión: `cfdi`.
- `--destino`: Si se establece, determina en qué carpeta se descargará el paquete, en caso de no usarse se utiliza el directorio actual.

### Parámetros de autenticación

[](#parámetros-de-autenticación)

Los parámetros `--efirma`, `--certificado`, `--llave`, `--password` y `--token` son de autenticación y se utilizan en los comandos `ws:consulta`, `ws:descarga` y `ws:verifica`.

- `--efirma`: Ruta absoluta o relativa al archivo de especificación de eFirma.
- `--certificado`: Ruta absoluta o relativa al archivo de certificado.
- `--llave`: Ruta absoluta o relativa al archivo de llave privada.
- `--password`: Contraseña de la llave privada, si no se especifica entonces usa el valor de la variable de entorno `EFIRMA_PASSPHRASE`.
- `--token`: Ruta absoluta o relativa a un archivo *Token* (que genera esta aplicación).

Es recomendado establecer la ruta del *token*, es en donde se almacena la autenticación con el servicio web del SAT y se intenta reutilizar para no realizar más peticiones de autenticación de las necesarias.

#### Archivos de eFirma

[](#archivos-de-efirma)

Para no tener que especificar los parámetros `--certificado`, `--llave`, `--password` y `--token`, se puede especificar el parámetro `--efirma` que espera la ubicación a un archivo JSON con la siguiente estructura:

- `certificateFile`: Ruta absoluta o relativa al archivo de certificado CER.
- `privateKeyFile`: Ruta absoluta o relativa al archivo de llave privada KEY.
- `passPhrase`: Contraseña de la llave privada.
- `tokenFile`: Ruta absoluta o relativa a un archivo *Token* (que genera esta aplicación).

### Comando `info:complementos`

[](#comando-infocomplementos)

El comando `info:complementos` muestra la información de los complementos registrados para usarse en una consulta.

Adicionalmente, se pueden especificar los siguientes parámetros:

- `--servicio`: Si se mostrarán los complementos del servicio web de CFDI regulares (`cfdi`) o de CFDI de Retención e información de pagos (`retenciones`). Por omisión: `cfdi`.

### Comando `zip:metadata`

[](#comando-zipmetadata)

El comando `zip:metadata` lee un paquete de metadatos desde `paquetes/ba31f7fa-3713-4395-8e1f-39a79f02f5cc_01.zip`y exporta su información a un archivo de Excel en `archivos/listado.xlsx`.

```
php bin/descarga-masiva zip:metadata paquetes/ba31f7fa-3713-4395-8e1f-39a79f02f5cc_01.zip archivos/listado.xlsx
```

### Comando `zip:xml`

[](#comando-zipxml)

El comando `zip:xml` lee un paquete de XML y exporta los comprobantes a un directorio, el nombre de cada comprobante es el UUID con la extensión `.xml`.

El siguiente comando lee un paquete de XML desde `paquetes/ba31f7fa-3713-4395-8e1f-39a79f02f5cc_01.zip`y exporta todos los archivos de comprobantes en el directorio `archivos/xml/`.

```
php bin/descarga-masiva zip:metadata paquetes/ba31f7fa-3713-4395-8e1f-39a79f02f5cc_01.zip archivos/xml/
```

Compatibilidad
--------------

[](#compatibilidad)

Esta librería se mantendrá compatible con al menos la versión con [soporte activo de PHP](https://www.php.net/supported-versions.php) más reciente.

También utilizamos [Versionado Semántico 2.0.0](https://semver.org/lang/es/)por lo que puedes usar esta librería sin temor a romper tu aplicación.

Contribuciones
--------------

[](#contribuciones)

Las contribuciones con bienvenidas. Por favor lee [CONTRIBUTING](https://github.com/phpcfdi/sat-ws-descarga-masiva-cli/blob/main/CONTRIBUTING.md) para más detalles y recuerda revisar el archivo de tareas pendientes [TODO](https://github.com/phpcfdi/sat-ws-descarga-masiva-cli/blob/main/docs/TODO.md) y el archivo [CHANGELOG](https://github.com/phpcfdi/sat-ws-descarga-masiva-cli/blob/main/docs/CHANGELOG.md).

Copyright and License
---------------------

[](#copyright-and-license)

The `phpcfdi/sat-ws-descarga-masiva-cli` project is copyright © [PhpCfdi](https://www.phpcfdi.com)and licensed for use under the MIT License (MIT). Please see [LICENSE](https://github.com/phpcfdi/sat-ws-descarga-masiva-cli/blob/main/LICENSE) for more information.

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance68

Regular maintenance activity

Popularity20

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~96 days

Total

5

Last Release

188d ago

PHP version history (3 changes)v0.0.1PHP ^8.2

v0.0.3PHP ^8.2,&lt; 8.4

v0.0.4PHP ^8.2 &lt; 8.4

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/66964609?v=4)[eclipxe](/maintainers/eclipxe)[@Eclipxe](https://github.com/Eclipxe)

---

Top Contributors

[![eclipxe13](https://avatars.githubusercontent.com/u/1266852?v=4)](https://github.com/eclipxe13 "eclipxe13 (40 commits)")

---

Tags

cfdidescarga-masivamexicosatwebservicedownloadwebservicesatcfdidescarga

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/phpcfdi-sat-ws-descarga-masiva-cli/health.svg)

```
[![Health](https://phpackages.com/badges/phpcfdi-sat-ws-descarga-masiva-cli/health.svg)](https://phpackages.com/packages/phpcfdi-sat-ws-descarga-masiva-cli)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.6k509.9M17.0k](/packages/laravel-framework)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[phpcfdi/sat-ws-descarga-masiva

Librería para usar el servicio web del SAT de Descarga Masiva

16663.6k3](/packages/phpcfdi-sat-ws-descarga-masiva)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

19462.3M1.3k](/packages/drupal-core)[wheelpros/fitment-platform-api

Magento 2 (Open Source)

12.1k1.2k](/packages/wheelpros-fitment-platform-api)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
