# Comandos del CLI

> Todos los comandos del CLI de FacturaDirecta con sus opciones: facturas, presupuestos, gastos, contactos, productos, contabilidad, webhooks y más.


Referencia completa de los comandos del CLI, generada a partir de la ayuda de la última versión publicada. En la terminal tienes la misma información con `facturadirecta <comando> --help`.


Versión 0.17.0 · instalación: `curl -fsSL https://raw.githubusercontent.com/facturadirecta/cli/main/install.sh | sh`

## `facturadirecta accounting balance-sheet` — Balance de situación a una fecha (módulo de Contabilidad)

Activo, patrimonio neto y pasivo a --date (por defecto, el 31 de diciembre del año en curso), con los epígrafes del Plan General Contable. --compare añade el saldo al final del periodo anterior o en la misma fecha del año anterior; --breakdown, el saldo al final de cada mes, trimestre o año desde --start-date. Si no cuadra aparece la fila 'imbalance' y un aviso en diagnostics.

Contrato completo: facturadirecta describe get_balance_sheet

```
facturadirecta accounting balance-sheet [flags]
```

| Opción | Descripción |
|---|---|
| `--all-these-tags strings` | Solo los apuntes de documentos que tienen todas estas etiquetas |
| `--breakdown string` | Saldos al final de cada mes. Valores: none, month, quarter, year |
| `--company string` | ID de la empresa |
| `--compare string` | Añade una columna con el saldo en una fecha de referencia. Valores: none, previousPeriod, previousYear |
| `--date string` | Fecha del saldo en formato YYYY-MM-DD |
| `--detail string` | Nivel de detalle, el mismo que en la web. Valores: summary, accounts, full |
| `--difference` | Con compare, añade la columna difference: periodo menos referencia |
| `--include-closure` | Incluye los asientos de regularización y de cierre fechados el último día del periodo |
| `--start-date string` | Primer día del periodo en formato YYYY-MM-DD, para breakdown y compare=previousPeriod |
| `--variance` | Con compare, añade la columna variance: variación sobre la referencia, como fracción (0.2 es un 20 %) |

## `facturadirecta accounting profit-loss` — Cuenta de pérdidas y ganancias oficial (módulo de Contabilidad)

Epígrafes del Plan General Contable con las cifras y opciones del informe de la web. --detail summary|accounts|full; --breakdown y --compare como en `accounting results`; --revenue-share añade el porcentaje sobre la cifra de negocios. Sin el módulo de Contabilidad la API responde que el plan no lo incluye.

Contrato completo: facturadirecta describe get_profit_loss

```
facturadirecta accounting profit-loss [flags]
```

| Opción | Descripción |
|---|---|
| `--all-these-tags strings` | Solo los apuntes de documentos que tienen todas estas etiquetas |
| `--breakdown string` | Divide el periodo en meses. Valores: none, month, quarter, year |
| `--company string` | ID de la empresa |
| `--compare string` | Añade una columna con un periodo de referencia. Valores: none, previousPeriod, previousYear |
| `--detail string` | Nivel de detalle, el mismo que en la web. Valores: summary, accounts, full |
| `--difference` | Con compare, añade la columna difference: periodo menos referencia |
| `--end-date string` | Último día del periodo en formato YYYY-MM-DD, incluido |
| `--exclude-revenue-clearing` | Excluye el asiento de regularización de ingresos y gastos en todo el periodo, aunque se incluya el cierre |
| `--include-closure` | Incluye los asientos de regularización y de cierre fechados el último día del periodo |
| `--revenue-share` | Añade, tras cada columna de periodo, otra con el peso de cada fila sobre el importe neto de la cifra de negocios, como fracción |
| `--start-date string` | Primer día del periodo en formato YYYY-MM-DD |
| `--total` | Con breakdown, añade la columna total con el periodo completo |
| `--variance` | Con compare, añade la columna variance: variación sobre la referencia, como fracción (0.2 es un 20 %) |

## `facturadirecta accounting results` — Ingresos, gastos y beneficio por origen, con desglose o comparativa (todos los planes)

Ventas facturadas, compras y gastos, nóminas, amortizaciones, diferencias de cambio y otros ingresos o gastos del periodo, con los totales y el beneficio: las cifras del panel de inicio y del informe «Resumen de resultados» de la web. --breakdown reparte el periodo en meses, trimestres o años (--total añade el periodo completo); --compare añade el periodo anterior o el mismo del año anterior (--difference, --variance). Como máximo 5 años.

Contrato completo: facturadirecta describe get_results_summary

```
facturadirecta accounting results [flags]
```

| Opción | Descripción |
|---|---|
| `--breakdown string` | Divide el periodo en meses. Valores: none, month, quarter, year |
| `--company string` | ID de la empresa |
| `--compare string` | Añade una columna con un periodo de referencia. Valores: none, previousPeriod, previousYear |
| `--difference` | Con compare, añade la columna difference: periodo menos referencia |
| `--end-date string` | Último día del periodo en formato YYYY-MM-DD, incluido |
| `--start-date string` | Primer día del periodo en formato YYYY-MM-DD |
| `--total` | Con breakdown, añade la columna total con el periodo completo |
| `--variance` | Con compare, añade la columna variance: variación sobre la referencia, como fracción (0.2 es un 20 %) |

## `facturadirecta accounting results-documents` — Documentos que forman una cifra del resumen de resultados (todos los planes)

Facturas, gastos, nóminas y movimientos de una categoría del resumen en el periodo, con su tipo, fecha e importe. Con la categoría y las fechas de una columna de `accounting results`, la suma es la cifra de esa celda.

Contrato completo: facturadirecta describe list_results_detail

```
facturadirecta accounting results-documents [flags]
```

| Opción | Descripción |
|---|---|
| `--category string` | Obligatorio. Valores: invoices, currencyGains, otherIncome, bills, payrolls, depreciation, currencyLosses, otherExpenses |
| `--company string` | ID de la empresa |
| `--end-date string` | Último día del periodo en formato YYYY-MM-DD, incluido |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--offset string` | Posición de inicio de los resultados |
| `--start-date string` | Primer día del periodo en formato YYYY-MM-DD |

## `facturadirecta accounting trial-balance` — Balance de sumas y saldos por cuenta (módulo de Contabilidad)

Saldo anterior, debe, haber y saldo final de cada cuenta en el periodo. --account filtra por prefijo ('6' = gastos, '430' = clientes); --third-party con el id de un contacto, producto o banco da solo sus apuntes (--third-party-detail añade su fila bajo cada cuenta); --groups 1,3 añade subtotales. Pagina con --limit y --offset; totals son los del periodo completo.

Contrato completo: facturadirecta describe list_trial_balance

```
facturadirecta accounting trial-balance [flags]
```

| Opción | Descripción |
|---|---|
| `--account string` | Cuenta contable completa o prefijo de cuenta: 43 incluye todas las cuentas de clientes y 430000 solo esa cuenta |
| `--all-these-tags strings` | Solo los apuntes de documentos que tienen todas estas etiquetas |
| `--company string` | ID de la empresa |
| `--end-date string` | Último día del periodo en formato YYYY-MM-DD, incluido |
| `--exclude-balance0` | Omite las filas con saldo final cero |
| `--exclude-revenue-clearing` | Excluye el asiento de regularización de ingresos y gastos en todo el periodo, aunque se incluya el cierre |
| `--groups strings` | Añade filas de subtotal por los primeros 1. Valores: 1, 2, 3 |
| `--include-closure` | Incluye los asientos de regularización y de cierre fechados el último día del periodo |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--offset string` | Posición de inicio de los resultados |
| `--show-currency` | Separa cada cuenta por moneda y añade currencyAmounts con los importes en la moneda original |
| `--start-date string` | Primer día del periodo en formato YYYY-MM-DD |
| `--third-party string` | Solo los apuntes de este tercero (contacto, producto o banco), con el criterio del balance y de pérdidas y ganancias: sus propios… |
| `--third-party-detail` | Añade bajo cada cuenta una fila por tercero |

## `facturadirecta api` — Llamar a cualquier operación de la API por su nombre (el de describe)

Llama a cualquier operación de la API, también las que no tienen comando propio, por su nombre de acción (list_client_orders, el mismo que usa el servidor MCP) o su operationId (getClientOrders). `facturadirecta describe <acción>` muestra sus parámetros, cuerpo y ejemplos.

Los ids de la ruta van como argumentos, en orden; la empresa, con --company (o la del perfil). Los parámetros de query, con -p nombre=valor (nombres del contrato). El cuerpo, con --data '<json>', --data @fichero.json o por stdin. La respuesta sale tal cual en JSON. Las escrituras necesitan 'login --scope full' y los borrados irreversibles, confirmación (--yes en scripts y agentes). --dry-run imprime la petición sin enviarla.

```
facturadirecta api <operación> [ids...] [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Cuerpo JSON en línea o @fichero; sin --data, stdin si la operación exige cuerpo |
| `--dry-run` | Imprimir la petición (sin credenciales) sin enviarla |
| `--idempotency-key string` | Clave de idempotencia (UUID recomendado): un reintento con la misma clave no repite la operación |
| `--output string` | Guardar el cuerpo de la respuesta en este fichero |
| `-p, --param strings` | Parámetro de query (o de ruta) con el nombre del contrato: nombre=valor; repetible |
| `--yes` | Confirmar un borrado irreversible sin preguntar |

## `facturadirecta api-keys create` — Crear una API key (JSON por stdin o --data)

Crear una API key (JSON por stdin o --data)

Cuerpo (--data o stdin): {"name" (obligatorio), "scopes" (obligatorio)}
Contrato completo: facturadirecta describe create_public_api_key

```
facturadirecta api-keys create [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta api-keys delete` — Eliminar una API key

Eliminar una API key

Contrato completo: facturadirecta describe delete_public_api_key

```
facturadirecta api-keys delete <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta api-keys get` — Obtener una API key por UUID

Obtener una API key por UUID

Contrato completo: facturadirecta describe get_public_api_key

```
facturadirecta api-keys get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta api-keys list` — Listar API keys

Listar API keys

Contrato completo: facturadirecta describe list_public_api_keys

```
facturadirecta api-keys list [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta auth login` — Iniciar sesión en FacturaDirecta

```
facturadirecta auth login [flags]
```

| Opción | Descripción |
|---|---|
| `--api-key string` | Usar API Key en lugar de OAuth |
| `--company string` | ID de la empresa (obligatorio con --api-key) |
| `--device` | Iniciar sesión por dispositivo (RFC 8628): sin navegador en esta máquina, muestra un código para autorizar desde cualquier dispositivo |
| `--no-browser` | No abrir el navegador; solo imprimir la URL (o el código) para hacerlo a mano |
| `--no-connection` | No elegir empresas ni permisos: acceso a todas tus empresas con los permisos de tu rol (inicia sesión con el cliente OAuth facturadirecta-api) |
| `--port int` | Puerto local para el callback OAuth (0 = uno libre elegido por el sistema) |
| `--profile string` | Nombre del perfil (por defecto: default) |
| `--scope string` | Modo de acceso: 'readonly' (por defecto) o 'full' (por defecto: readonly) |

## `facturadirecta auth logout` — Cerrar sesión

Cierra la sesión del perfil y borra sus credenciales. Si el perfil tiene conexión con FacturaDirecta (empresas y permisos elegidos al iniciar sesión), la revoca antes; si no se puede revocar, avisa y cierra la sesión igualmente.

```
facturadirecta auth logout [flags]
```

| Opción | Descripción |
|---|---|
| `--profile string` | Nombre del perfil a eliminar (por defecto: default) |

## `facturadirecta auth permissions` — Gestionar a qué empresas accede el CLI y con qué permisos

Abre en el navegador la página de FacturaDirecta donde se eligen las empresas a las que accede el CLI con el perfil activo y sus permisos por área. Los cambios se aplican al momento, sin volver a iniciar sesión. Con --no-browser solo imprime la URL; con --json, un objeto con la conexión.

```
facturadirecta auth permissions [flags]
```

| Opción | Descripción |
|---|---|
| `--no-browser` | No abrir el navegador; solo imprimir la URL |

## `facturadirecta auth profile` — Ver perfil de usuario y empresas disponibles

Ver perfil de usuario y empresas disponibles

Contrato completo: facturadirecta describe get_profile

```
facturadirecta auth profile
```

## `facturadirecta auth status` — Ver el estado de la sesión actual

```
facturadirecta auth status
```

## `facturadirecta auth use-company` — Seleccionar la empresa activa

```
facturadirecta auth use-company [companyId]
```

## `facturadirecta banks get` — Obtener un banco por UUID, con sus saldos si se piden con --related

Obtiene un banco o cuenta de tesorería, con la misma forma que cada elemento del listado.

Con --related se añaden bajo related el saldo contable (balance: el de la pantalla de bancos, el que sirve para la contabilidad), el saldo según la entidad (linkedBalance: el último que informó el banco, con su fecha; informativo), el estado de la conexión automática (link, sin credenciales) y los movimientos pendientes de conciliar (statements). --related admite varios valores, repetido o separado por comas. --balance-date da el saldo contable al cierre de ese día (y pide balance por sí sola).

El id de cada banco (ban_…) está en content.uuid.

Contrato completo: facturadirecta describe get_bank

```
facturadirecta banks get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--balance-date string` | Saldo contable al cierre de esta fecha (AAAA-MM-DD); implica --related balance |
| `--company string` | ID de la empresa |
| `--related strings` | Datos adicionales en related: balance (saldo contable), linkedBalance (saldo según la entidad), link (estado del enlace) y statements (movimientos pendientes); repetible o separado por comas |
| `--url` | Imprimir solo la URL del elemento en la web de FacturaDirecta |

## `facturadirecta banks list` — Listar cuentas bancarias, con sus saldos si se piden con --related

Lista los bancos y cuentas de tesorería activos de la empresa.

Con --related se añaden bajo related el saldo contable (balance: el de la pantalla de bancos, el que sirve para la contabilidad), el saldo según la entidad (linkedBalance: el último que informó el banco, con su fecha; informativo), el estado de la conexión automática (link, sin credenciales) y los movimientos pendientes de conciliar (statements). --related admite varios valores, repetido o separado por comas. --balance-date da el saldo contable al cierre de ese día (y pide balance por sí sola).

El id de cada banco (ban_…) está en content.uuid.

Contrato completo: facturadirecta describe list_banks

```
facturadirecta banks list [flags]
```

| Opción | Descripción |
|---|---|
| `--balance-date string` | Saldo contable al cierre de esta fecha (AAAA-MM-DD); implica --related balance |
| `--company string` | ID de la empresa |
| `--currency string` | Moneda del banco (Formato ISO 4217) |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--offset string` | Posición de inicio de los resultados |
| `--related strings` | Datos adicionales en related: balance (saldo contable), linkedBalance (saldo según la entidad), link (estado del enlace) y statements (movimientos pendientes); repetible o separado por comas |
| `--sort-by strings` | Orden de los resultados. Opciones: title, currency, creationDate, modificationDate (prefijo - = descendente) |

## `facturadirecta bills attachments add` — Vincular uploads existentes al documento

Vincular uploads existentes al documento

Contrato completo: facturadirecta describe add_bill_attachments

```
facturadirecta bills attachments add <id> <uploadId>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta bills attachments delete` — Eliminar un adjunto por su índice

Eliminar un adjunto por su índice

Contrato completo: facturadirecta describe delete_bill_attachment

```
facturadirecta bills attachments delete <id> <attachmentIndex> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta bills attachments list` — Listar adjuntos del documento

Listar adjuntos del documento

Contrato completo: facturadirecta describe get_bill_attachments

```
facturadirecta bills attachments list <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta bills attachments upload` — Subir y vincular archivos locales al documento

Subir y vincular archivos locales al documento

Operaciones de la API: create_upload, commit_upload, add_bill_attachments.
Contrato de cada una: facturadirecta describe <acción>

```
facturadirecta bills attachments upload <id> <archivo>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta bills create` — Crear un gasto (JSON por stdin o --data)

Crear un gasto (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "tags", "fromInbox"}
Contrato completo: facturadirecta describe create_bill

```
facturadirecta bills create [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta bills delete` — Eliminar un gasto

Eliminar un gasto

Contrato completo: facturadirecta describe delete_bill

```
facturadirecta bills delete <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta bills get` — Obtener un gasto por UUID

Obtener un gasto por UUID

Contrato completo: facturadirecta describe get_bill

```
facturadirecta bills get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--related strings` | Permite obtener datos adicionales relacionados con la factura de compra o ticket. Valores: taxIds, balance, state, journal |
| `--summary` | Resumen compacto por elemento en las salidas JSON: id, número, fecha, contacto, totales, estado, saldo pendiente, número de adjuntos y url (en facturas y gastos pide related=state,balance) |
| `--url` | Imprimir solo la URL del elemento en la web de FacturaDirecta |

## `facturadirecta bills list` — Listar gastos

Listar gastos

Contrato completo: facturadirecta describe list_bills

```
facturadirecta bills list [flags]
```

| Opción | Descripción |
|---|---|
| `--all-these-tags strings` | Listado de todas las etiquetas que debe contener la factura de compra o ticket para ser incluido en los resultados |
| `--any-of-these-tags strings` | Listado de cualquiera de las etiquetas que debe contener la factura de compra o ticket para ser incluido en los resultados |
| `--company string` | ID de la empresa |
| `--contact strings` | Proveedor de la factura |
| `--country string` | País de la dirección fiscal del proveedor (Formato ISO 3166-1 Alpha-2) |
| `--currency string` | Moneda de la factura de compra o ticket (Formato ISO 4217) |
| `--draft string` | Comportamiento de las facturas provisionales. Valores: only, all |
| `--has-contact` | Factura de compra con contacto, utiliza el valor 'false' para obtener las facturas de compra o tickets sin proveedor asociado |
| `--has-tags` | Solo con etiquetas (true) o solo sin etiquetas (false) |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-date string` | Fecha máxima de registro de la factura de compra o ticket en formato YYYY-MM-DD |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-total string` | Importe total máximo de la factura de compra o ticket |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-date string` | Fecha mínima de registro de la factura de compra o ticket en formato YYYY-MM-DD |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-total string` | Importe total mínimo de la factura de compra o ticket |
| `--offset string` | Posición de inicio de los resultados |
| `--related strings` | Permite obtener datos adicionales relacionados con la factura de compra o ticket. Valores: taxIds, balance, state, journal |
| `--search string` | Búsqueda aproximada en el texto del documento (título, líneas, notas) y en el nombre de su contacto: todas las palabras, sin… |
| `--sort-by strings` | Orden de los resultados. Opciones: date, total, currency, country, creationDate, modificationDate (prefijo - = descendente) |
| `--state strings` | Estados de factura de compra o ticket a incluir. Valores: draft, pending, overdue, paid, overpaid, voided |
| `--summary` | Resumen compacto por elemento en las salidas JSON: id, número, fecha, contacto, totales, estado, saldo pendiente, número de adjuntos y url (en facturas y gastos pide related=state,balance) |
| `--totals` | Añade totals: recuento y suma de base, impuestos, total y pendiente de TODO lo que cumple los filtros (no solo la página), por moneda. En la terminal sale bajo la tabla; en JSON, con -j o --jq .totals (-q solo da los elementos) |

## `facturadirecta bills pay` — Registrar pagos de un gasto (JSON por stdin o --data)

Registra uno o varios pagos del gasto (JSON por stdin o --data: {"payments": [{"bank": "ban_…", "amount": …, "date": "AAAA-MM-DD"}]}).

Si el cobro o pago corresponde a un movimiento del extracto bancario, o la cuenta está en una moneda distinta de la de la empresa y de la del documento, no lo registres aquí: concilia el movimiento con "facturadirecta statements reconcile-new <movimiento> --data '{"document":"<id>"}'". El movimiento queda conciliado y la API calcula la diferencia de cambio.

Cuerpo (--data o stdin): {"payments" (obligatorio), "related"}
Contrato completo: facturadirecta describe create_bill_payments

```
facturadirecta bills pay <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta bills tags` — Actualizar etiquetas de un gasto (JSON por stdin o --data)

Actualizar etiquetas de un gasto (JSON por stdin o --data)

Cuerpo (--data o stdin): {"tags" (obligatorio), "tagsOperation" (obligatorio)}
Contrato completo: facturadirecta describe update_bill_tags

```
facturadirecta bills tags <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta bills update` — Actualizar un gasto (JSON por stdin o --data)

Actualizar un gasto (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "tags", "tagsOperation"}
Contrato completo: facturadirecta describe update_bill

```
facturadirecta bills update <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta contacts create` — Crear un contacto (datos en JSON por stdin o --data)

Crear un contacto (datos en JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "tags"}
Contrato completo: facturadirecta describe create_contact

```
facturadirecta contacts create [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos del contacto en JSON |

## `facturadirecta contacts delete` — Eliminar un contacto

Eliminar un contacto

Contrato completo: facturadirecta describe delete_contact

```
facturadirecta contacts delete <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta contacts get` — Obtener un contacto por UUID

Obtener un contacto por UUID

Contrato completo: facturadirecta describe get_contact

```
facturadirecta contacts get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--related strings` | Permite obtener datos adicionales relacionados con el contacto. Valores: receivePaymentMethod, sendPaymentMethod, paymentMethods |
| `--summary` | Resumen compacto por elemento en las salidas JSON: id, número, fecha, contacto, totales, estado, saldo pendiente, número de adjuntos y url (en facturas y gastos pide related=state,balance) |
| `--url` | Imprimir solo la URL del elemento en la web de FacturaDirecta |

## `facturadirecta contacts list` — Listar contactos

Listar contactos

Contrato completo: facturadirecta describe list_contacts

```
facturadirecta contacts list [flags]
```

| Opción | Descripción |
|---|---|
| `--all-these-tags strings` | Listado de todas las etiquetas que debe contener el contacto para ser incluido en los resultados |
| `--any-of-these-tags strings` | Listado de cualquiera de las etiquetas que debe contener el contacto para ser incluido en los resultados |
| `--company string` | ID de la empresa |
| `--country string` | País de la dirección fiscal del contacto (Formato ISO 3166-1 Alpha-2) |
| `--external-id string` | ID externo del contacto |
| `--fiscal-id string` | NIF o identificador fiscal del contacto |
| `--has-tags` | Solo con etiquetas (true) o solo sin etiquetas (false) |
| `--is-client` | Contacto con rol de cliente |
| `--is-employee` | Contacto con rol de empleado |
| `--is-provider` | Contacto con rol de proveedor |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--offset string` | Posición de inicio de los resultados |
| `--phone string` | Teléfono del contacto |
| `--related strings` | Permite obtener datos adicionales relacionados con el contacto. Valores: receivePaymentMethod, sendPaymentMethod, paymentMethods |
| `--search string` | Búsqueda aproximada por nombre (incluyendo apellidos y "mostrar cómo"/"nombre comercial"), email y NIF |
| `--sort-by strings` | Orden de los resultados. Opciones: title, country, creationDate, modificationDate (prefijo - = descendente) |
| `--summary` | Resumen compacto por elemento en las salidas JSON: id, número, fecha, contacto, totales, estado, saldo pendiente, número de adjuntos y url (en facturas y gastos pide related=state,balance) |

## `facturadirecta contacts tags` — Actualizar etiquetas de un contacto (JSON por stdin o --data)

Actualizar etiquetas de un contacto (JSON por stdin o --data)

Cuerpo (--data o stdin): {"tags" (obligatorio), "tagsOperation" (obligatorio)}
Contrato completo: facturadirecta describe update_contact_tags

```
facturadirecta contacts tags <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta contacts update` — Actualizar un contacto (datos en JSON por stdin o --data)

Actualizar un contacto (datos en JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "tags", "tagsOperation"}
Contrato completo: facturadirecta describe update_contact

```
facturadirecta contacts update <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos del contacto en JSON |

## `facturadirecta delivery-notes attachments add` — Vincular uploads existentes al documento

Vincular uploads existentes al documento

Contrato completo: facturadirecta describe add_delivery_note_attachments

```
facturadirecta delivery-notes attachments add <id> <uploadId>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta delivery-notes attachments delete` — Eliminar un adjunto por su índice

Eliminar un adjunto por su índice

Contrato completo: facturadirecta describe delete_delivery_note_attachment

```
facturadirecta delivery-notes attachments delete <id> <attachmentIndex> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta delivery-notes attachments list` — Listar adjuntos del documento

Listar adjuntos del documento

Contrato completo: facturadirecta describe get_delivery_note_attachments

```
facturadirecta delivery-notes attachments list <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta delivery-notes attachments upload` — Subir y vincular archivos locales al documento

Subir y vincular archivos locales al documento

Operaciones de la API: create_upload, commit_upload, add_delivery_note_attachments.
Contrato de cada una: facturadirecta describe <acción>

```
facturadirecta delivery-notes attachments upload <id> <archivo>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta delivery-notes create` — Crear un albarán (JSON por stdin o --data)

Crear un albarán (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "tags"}
Contrato completo: facturadirecta describe create_delivery_note

```
facturadirecta delivery-notes create [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta delivery-notes delete` — Eliminar un albarán

Eliminar un albarán

Contrato completo: facturadirecta describe delete_delivery_note

```
facturadirecta delivery-notes delete <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta delivery-notes get` — Obtener un albarán por UUID

Obtener un albarán por UUID

Contrato completo: facturadirecta describe get_delivery_note

```
facturadirecta delivery-notes get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--related strings` | Permite obtener datos adicionales relacionados con el albarán. Valores: taxIds |

## `facturadirecta delivery-notes list` — Listar albaranes

Listar albaranes

Contrato completo: facturadirecta describe list_delivery_notes

```
facturadirecta delivery-notes list [flags]
```

| Opción | Descripción |
|---|---|
| `--all-these-tags strings` | Listado de todas las etiquetas que debe contener el albarán para ser incluido en los resultados |
| `--any-of-these-tags strings` | Listado de cualquiera de las etiquetas que debe contener el albarán para ser incluido en los resultados |
| `--company string` | ID de la empresa |
| `--contact strings` | Cliente del albarán |
| `--country string` | País de la dirección de facturación (Formato ISO 3166-1 Alpha-2) |
| `--currency string` | Moneda del albarán (Formato ISO 4217) |
| `--emails string` | Búsqueda parcial en los emails del documento (campo main.emails) |
| `--formatted-series string` | Serie del albarán |
| `--has-contact` | Albarán con contacto, utiliza el valor 'false' para obtener albaranes sin contacto asociado |
| `--has-tags` | Solo con etiquetas (true) o solo sin etiquetas (false) |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-date string` | Fecha máxima del albarán en formato YYYY-MM-DD |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-number string` | Número secuencial máximo del albarán |
| `--max-total string` | Importe total máximo del albarán |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-date string` | Fecha mínima del albarán en formato YYYY-MM-DD |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-number string` | Número secuencial mínimo del albarán |
| `--min-total string` | Importe total mínimo del albarán |
| `--offset string` | Posición de inicio de los resultados |
| `--related strings` | Permite obtener datos adicionales relacionados con el albarán. Valores: taxIds |
| `--search string` | Búsqueda aproximada en el texto del documento (título, líneas, notas) y en el nombre de su contacto: todas las palabras, sin… |
| `--series string` | Serie del albarán sin aplicar posibles formatos de año (## ó ####) |
| `--sort-by strings` | Orden de los resultados. Opciones: date, series, formattedSeries, number, total, currency, country, creationDate, modificationDate (prefijo - = descendente) |

## `facturadirecta delivery-notes pdf` — Generar PDF de un albarán

Generar PDF de un albarán

Contrato completo: facturadirecta describe create_delivery_note_pdf

```
facturadirecta delivery-notes pdf <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--mode string` | Modo de renderizado del PDF (inline, attachment, print) (por defecto: inline) |

## `facturadirecta delivery-notes send` — Enviar un albarán por email (JSON por stdin o --data)

Enviar un albarán por email (JSON por stdin o --data)

Cuerpo (--data o stdin): {"from", "to", "cc", "bcc", "subject", "html"}
Contrato completo: facturadirecta describe send_delivery_note

```
facturadirecta delivery-notes send <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta delivery-notes tags` — Actualizar etiquetas (JSON por stdin o --data)

Actualizar etiquetas (JSON por stdin o --data)

Cuerpo (--data o stdin): {"tags" (obligatorio), "tagsOperation" (obligatorio)}
Contrato completo: facturadirecta describe update_delivery_note_tags

```
facturadirecta delivery-notes tags <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta delivery-notes update` — Actualizar un albarán (JSON por stdin o --data)

Actualizar un albarán (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "syncContactData", "tags", "tagsOperation"}
Contrato completo: facturadirecta describe update_delivery_note

```
facturadirecta delivery-notes update <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta describe` — Contrato de una operación de la API: parámetros, cuerpo, respuesta, ejemplos y notas

Muestra el contrato de una operación de la API sin llamarla: parámetros, forma y esquema del cuerpo, esquema de la respuesta, ejemplos de la documentación, notas de uso y los comandos del CLI que la llaman. Usa los mismos nombres de acción que el servidor MCP.

El objetivo puede ser una acción (list_invoices) o su operationId (getInvoices), la ruta de un comando (invoices list) o una sección (invoices, delivery-notes). Sin objetivo, lista las secciones. Con -j, -q o --agent la salida es JSON.

```
facturadirecta describe [objetivo...] [flags]
```

| Opción | Descripción |
|---|---|
| `--example int` | Solo el cuerpo de ejemplo n de la documentación (1 por defecto), listo para --data |
| `--schema string` | Solo el esquema JSON completo del cuerpo (body) o de la respuesta (response) |

## `facturadirecta estimates attachments add` — Vincular uploads existentes al documento

Vincular uploads existentes al documento

Contrato completo: facturadirecta describe add_estimate_attachments

```
facturadirecta estimates attachments add <id> <uploadId>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta estimates attachments delete` — Eliminar un adjunto por su índice

Eliminar un adjunto por su índice

Contrato completo: facturadirecta describe delete_estimate_attachment

```
facturadirecta estimates attachments delete <id> <attachmentIndex> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta estimates attachments list` — Listar adjuntos del documento

Listar adjuntos del documento

Contrato completo: facturadirecta describe get_estimate_attachments

```
facturadirecta estimates attachments list <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta estimates attachments upload` — Subir y vincular archivos locales al documento

Subir y vincular archivos locales al documento

Operaciones de la API: create_upload, commit_upload, add_estimate_attachments.
Contrato de cada una: facturadirecta describe <acción>

```
facturadirecta estimates attachments upload <id> <archivo>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta estimates create` — Crear un presupuesto (JSON por stdin o --data)

Crear un presupuesto (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "tags"}
Contrato completo: facturadirecta describe create_estimate

```
facturadirecta estimates create [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta estimates delete` — Eliminar un presupuesto

Eliminar un presupuesto

Contrato completo: facturadirecta describe delete_estimate

```
facturadirecta estimates delete <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta estimates get` — Obtener un presupuesto por UUID

Obtener un presupuesto por UUID

Contrato completo: facturadirecta describe get_estimate

```
facturadirecta estimates get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--related strings` | Permite obtener datos adicionales relacionados con el presupuesto. Valores: taxIds |
| `--summary` | Resumen compacto por elemento en las salidas JSON: id, número, fecha, contacto, totales, estado, saldo pendiente, número de adjuntos y url (en facturas y gastos pide related=state,balance) |
| `--url` | Imprimir solo la URL del elemento en la web de FacturaDirecta |

## `facturadirecta estimates list` — Listar presupuestos

Listar presupuestos

Contrato completo: facturadirecta describe list_estimates

```
facturadirecta estimates list [flags]
```

| Opción | Descripción |
|---|---|
| `--all-these-tags strings` | Listado de todas las etiquetas que debe contener el presupuesto para ser incluido en los resultados |
| `--any-of-these-tags strings` | Listado de cualquiera de las etiquetas que debe contener el presupuesto para ser incluido en los resultados |
| `--company string` | ID de la empresa |
| `--contact strings` | Cliente del presupuesto |
| `--country string` | País de la dirección de facturación (Formato ISO 3166-1 Alpha-2) |
| `--currency string` | Moneda del presupuesto (Formato ISO 4217) |
| `--emails string` | Búsqueda parcial en los emails del documento (campo main.emails) |
| `--formatted-series string` | Serie del presupuesto |
| `--has-contact` | Presupuesto con contacto, utiliza el valor 'false' para obtener presupuestos sin contacto asociado |
| `--has-tags` | Solo con etiquetas (true) o solo sin etiquetas (false) |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-date string` | Fecha máxima del presupuesto en formato YYYY-MM-DD |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-number string` | Número secuencial máximo del presupuesto |
| `--max-total string` | Importe total máximo del presupuesto |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-date string` | Fecha mínima del presupuesto en formato YYYY-MM-DD |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-number string` | Número secuencial mínimo del presupuesto |
| `--min-total string` | Importe total mínimo del presupuesto |
| `--offset string` | Posición de inicio de los resultados |
| `--related strings` | Permite obtener datos adicionales relacionados con el presupuesto. Valores: taxIds |
| `--search string` | Búsqueda aproximada en el texto del documento (título, líneas, notas) y en el nombre de su contacto: todas las palabras, sin… |
| `--series string` | Serie del presupuesto sin aplicar posibles formatos de año (## ó ####) |
| `--sort-by strings` | Orden de los resultados. Opciones: date, series, formattedSeries, number, total, currency, country, creationDate, modificationDate (prefijo - = descendente) |
| `--summary` | Resumen compacto por elemento en las salidas JSON: id, número, fecha, contacto, totales, estado, saldo pendiente, número de adjuntos y url (en facturas y gastos pide related=state,balance) |

## `facturadirecta estimates pdf` — Generar PDF de un presupuesto

Generar PDF de un presupuesto

Contrato completo: facturadirecta describe create_estimate_pdf

```
facturadirecta estimates pdf <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--mode string` | Modo de renderizado del PDF (inline, attachment, print) (por defecto: inline) |

## `facturadirecta estimates send` — Enviar un presupuesto por email (JSON por stdin o --data)

Enviar un presupuesto por email (JSON por stdin o --data)

Cuerpo (--data o stdin): {"from", "to", "cc", "bcc", "subject", "html"}
Contrato completo: facturadirecta describe send_estimate

```
facturadirecta estimates send <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta estimates tags` — Actualizar etiquetas (JSON por stdin o --data)

Actualizar etiquetas (JSON por stdin o --data)

Cuerpo (--data o stdin): {"tags" (obligatorio), "tagsOperation" (obligatorio)}
Contrato completo: facturadirecta describe update_estimate_tags

```
facturadirecta estimates tags <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta estimates update` — Actualizar un presupuesto (JSON por stdin o --data)

Actualizar un presupuesto (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "syncContactData", "tags", "tagsOperation"}
Contrato completo: facturadirecta describe update_estimate

```
facturadirecta estimates update <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta fetch` — Detalle legible de un resultado de search (id tipo:empresa:id)

Devuelve el elemento como texto legible (título, contacto, estado, líneas, totales…) más metadatos y URL. Con --json o --quiet devuelve el objeto completo; en terminal imprime el texto.

Operaciones de la API: get_invoice, get_estimate, get_bill, get_contact, get_product.
Contrato de cada una: facturadirecta describe <acción>

```
facturadirecta fetch <id>
```

## `facturadirecta inbox add` — Subir un archivo a la bandeja (upload + create)

Subir un archivo a la bandeja (upload + create)

Operaciones de la API: create_upload, commit_upload, create_inbox_item.
Contrato de cada una: facturadirecta describe <acción>

```
facturadirecta inbox add <ruta> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--idempotency-key string` | Clave de idempotencia (opcional) |
| `--title string` | Título del item (opcional) |

## `facturadirecta inbox archive` — Archivar un item de la bandeja

Archivar un item de la bandeja

Contrato completo: facturadirecta describe delete_inbox_item

```
facturadirecta inbox archive <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta inbox get` — Obtener un item de la bandeja por UUID

Obtener un item de la bandeja por UUID

Contrato completo: facturadirecta describe get_inbox_item

```
facturadirecta inbox get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta inbox list` — Listar items de la bandeja de entrada

Listar items de la bandeja de entrada

Contrato completo: facturadirecta describe list_inbox_items

```
facturadirecta inbox list [flags]
```

| Opción | Descripción |
|---|---|
| `--archived string` | Filtrar por estado de archivado: false. Valores: false, true, all |
| `--company string` | ID de la empresa |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-date string` | Fecha y hora máxima de creación del item (createdAt), incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-date string` | Fecha y hora mínima de creación del item (createdAt), incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--offset string` | Posición de inicio de los resultados |
| `--source string` | Filtrar por origen del item. Valores: upload, inbox, googleDrive, scanner |
| `--status string` | Filtrar por estado del escaneo. Valores: pending, scanned, scan_failed |

## `facturadirecta inbox propose-bill` — Generar propuesta de factura de compra a partir de un item de la bandeja

Generar propuesta de factura de compra a partir de un item de la bandeja

Contrato completo: facturadirecta describe propose_bill

```
facturadirecta inbox propose-bill <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--contact-id string` | UUID del contacto (omite el matching automático) |

## `facturadirecta inbox propose-payroll` — Generar propuesta de nómina a partir de un item de la bandeja

Generar propuesta de nómina a partir de un item de la bandeja

Contrato completo: facturadirecta describe propose_payroll

```
facturadirecta inbox propose-payroll <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--contact-id string` | UUID del contacto (omite el matching automático) |

## `facturadirecta inbox propose-ticket` — Generar propuesta de ticket de compra a partir de un item de la bandeja

Generar propuesta de ticket de compra a partir de un item de la bandeja

Contrato completo: facturadirecta describe propose_ticket

```
facturadirecta inbox propose-ticket <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--contact-id string` | UUID del contacto (omite el matching automático) |

## `facturadirecta invoices attachments add` — Vincular uploads existentes al documento

Vincular uploads existentes al documento

Contrato completo: facturadirecta describe add_invoice_attachments

```
facturadirecta invoices attachments add <id> <uploadId>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta invoices attachments delete` — Eliminar un adjunto por su índice

Eliminar un adjunto por su índice

Contrato completo: facturadirecta describe delete_invoice_attachment

```
facturadirecta invoices attachments delete <id> <attachmentIndex> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta invoices attachments list` — Listar adjuntos del documento

Listar adjuntos del documento

Contrato completo: facturadirecta describe get_invoice_attachments

```
facturadirecta invoices attachments list <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta invoices attachments upload` — Subir y vincular archivos locales al documento

Subir y vincular archivos locales al documento

Operaciones de la API: create_upload, commit_upload, add_invoice_attachments.
Contrato de cada una: facturadirecta describe <acción>

```
facturadirecta invoices attachments upload <id> <archivo>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta invoices create` — Crear una factura (JSON por stdin o --data)

Crear una factura (JSON por stdin o --data).

main.draft decide si nace borrador (true) o emitida (false). Emitirla le asigna número y, si la empresa tiene VeriFactu o TicketBAI activos, genera el registro de facturación y lo envía a la AEAT o a la Diputación Foral en ese momento: ya no vuelve a ser borrador y solo se puede anular, rectificar o subsanar. Si se omite, se aplica sales.newInvoiceMode de la empresa, que puede ser final: envíalo siempre.

Cuerpo (--data o stdin): {"content" (obligatorio), "tags", "payments"}
Contrato completo: facturadirecta describe create_invoice

```
facturadirecta invoices create [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta invoices delete` — Eliminar una factura

Eliminar una factura

Contrato completo: facturadirecta describe delete_invoice

```
facturadirecta invoices delete <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta invoices facturae` — Generar Facturae XML de una factura

Generar Facturae XML de una factura

Contrato completo: facturadirecta describe create_invoice_facturae

```
facturadirecta invoices facturae <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta invoices get` — Obtener una factura por UUID

Obtener una factura por UUID

Contrato completo: facturadirecta describe get_invoice

```
facturadirecta invoices get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--related strings` | Permite obtener datos adicionales relacionados con la factura. Valores: taxIds, balance, state, journal |
| `--summary` | Resumen compacto por elemento en las salidas JSON: id, número, fecha, contacto, totales, estado, saldo pendiente, número de adjuntos y url (en facturas y gastos pide related=state,balance) |
| `--url` | Imprimir solo la URL del elemento en la web de FacturaDirecta |

## `facturadirecta invoices list` — Listar facturas

Listar facturas

Contrato completo: facturadirecta describe list_invoices

```
facturadirecta invoices list [flags]
```

| Opción | Descripción |
|---|---|
| `--all-these-tags strings` | Listado de todas las etiquetas que debe contener la factura para ser incluida en los resultados |
| `--any-of-these-tags strings` | Listado de cualquiera de las etiquetas que debe contener la factura para ser incluida en los resultados |
| `--company string` | ID de la empresa |
| `--contact strings` | Cliente de la factura |
| `--country string` | País de la dirección de facturación (Formato ISO 3166-1 Alpha-2) |
| `--currency string` | Moneda de la factura (Formato ISO 4217) |
| `--draft string` | Comportamiento de las facturas provisionales. Valores: only, all |
| `--emails string` | Búsqueda parcial en los emails del documento (campo main.emails) |
| `--formatted-series string` | Serie de la factura |
| `--has-contact` | Factura con contacto, utiliza el valor 'false' para obtener las facturas simplificadas |
| `--has-tags` | Solo con etiquetas (true) o solo sin etiquetas (false) |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-date string` | Fecha máxima de la factura en formato YYYY-MM-DD |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-number string` | Número secuencial máximo de la factura |
| `--max-total string` | Importe total máximo de la factura |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-date string` | Fecha mínima de la factura en formato YYYY-MM-DD |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-number string` | Número secuencial mínimo de la factura |
| `--min-total string` | Importe total mínimo de la factura |
| `--offset string` | Posición de inicio de los resultados |
| `--related strings` | Permite obtener datos adicionales relacionados con la factura. Valores: taxIds, balance, state, journal |
| `--search string` | Búsqueda aproximada en el texto del documento (título, líneas, notas) y en el nombre de su contacto: todas las palabras, sin… |
| `--series string` | Serie de la factura sin aplicar posibles formatos de año (## ó ####) |
| `--sort-by strings` | Orden de los resultados. Opciones: date, series, formattedSeries, number, total, currency, country, creationDate, modificationDate (prefijo - = descendente) |
| `--state strings` | Estados de factura a incluir. Valores: draft, pending, overdue, paid, overpaid, voided |
| `--summary` | Resumen compacto por elemento en las salidas JSON: id, número, fecha, contacto, totales, estado, saldo pendiente, número de adjuntos y url (en facturas y gastos pide related=state,balance) |
| `--totals` | Añade totals: recuento y suma de base, impuestos, total y pendiente de TODO lo que cumple los filtros (no solo la página), por moneda. En la terminal sale bajo la tabla; en JSON, con -j o --jq .totals (-q solo da los elementos) |

## `facturadirecta invoices pay` — Registrar pagos de una factura (JSON por stdin o --data)

Registra uno o varios cobros de la factura (JSON por stdin o --data: {"payments": [{"bank": "ban_…", "amount": …, "date": "AAAA-MM-DD"}]}).

Si el cobro o pago corresponde a un movimiento del extracto bancario, o la cuenta está en una moneda distinta de la de la empresa y de la del documento, no lo registres aquí: concilia el movimiento con "facturadirecta statements reconcile-new <movimiento> --data '{"document":"<id>"}'". El movimiento queda conciliado y la API calcula la diferencia de cambio.

Cuerpo (--data o stdin): {"payments" (obligatorio), "related"}
Contrato completo: facturadirecta describe create_invoice_payments

```
facturadirecta invoices pay <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta invoices pdf` — Generar PDF de una factura

Generar PDF de una factura

Contrato completo: facturadirecta describe create_invoice_pdf

```
facturadirecta invoices pdf <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--mode string` | Modo: attachment, inline, print (por defecto: inline) |

## `facturadirecta invoices send` — Enviar una factura por email (JSON por stdin o --data)

Enviar una factura por email (JSON por stdin o --data)

Cuerpo (--data o stdin): {"from", "to", "cc", "bcc", "subject", "html", "sendFacturae", "continueWithoutFacturae"}
Contrato completo: facturadirecta describe send_invoice

```
facturadirecta invoices send <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta invoices substitution` — Crear factura sustitutiva (JSON por stdin o --data)

Crear factura sustitutiva (JSON por stdin o --data)

Cuerpo (--data o stdin): {"contact" (obligatorio), "substitutedInvoices" (obligatorio), "docNumber", "date", "notes", "internalNotes", "tags"}
Contrato completo: facturadirecta describe create_substitution_invoice

```
facturadirecta invoices substitution [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta invoices tags` — Actualizar etiquetas de una factura (JSON por stdin o --data)

Actualizar etiquetas de una factura (JSON por stdin o --data)

Cuerpo (--data o stdin): {"tags" (obligatorio), "tagsOperation" (obligatorio)}
Contrato completo: facturadirecta describe update_invoice_tags

```
facturadirecta invoices tags <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta invoices update` — Actualizar una factura (JSON por stdin o --data)

Actualizar una factura (JSON por stdin o --data). Sustituye el contenido: parte de la lectura, cambia lo necesario y reenvía el content completo.

Pasar main.draft a false emite la factura y pasar main.voided a true la anula; con VeriFactu o TicketBAI activos, las dos operaciones generan registros que se envían a Hacienda y no se pueden revertir. Una factura ya emitida con VeriFactu solo admite cambios subsanables (verifactuOperation.subsanacion) y con TicketBAI no admite cambios en su contenido.

Cuerpo (--data o stdin): {"content" (obligatorio), "syncContactData", "verifactuOperation", "tags", "tagsOperation"}
Contrato completo: facturadirecta describe update_invoice

```
facturadirecta invoices update <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta journal` — Diario contable (apuntes uno a uno; para totales, `accounting results`)

Diario contable (apuntes uno a uno; para totales, `accounting results`)

Contrato completo: facturadirecta describe list_journal

```
facturadirecta journal [flags]
```

| Opción | Descripción |
|---|---|
| `--account string` | Prefijo o cuenta completa (1-6 dígitos; ej.: 6 = gastos, 64 = personal, 700000 = ventas) |
| `--all-these-tags strings` | Listado de todas las etiquetas que debe contener el documento que contiene al apunte para ser incluido en los resultados |
| `--any-of-these-tags strings` | Listado de cualquiera de las etiquetas que debe contener el documento que contiene al apunte para ser incluido en los resultados |
| `--company string` | ID de la empresa |
| `--document string` | ID del documento al que se IMPUTAN los apuntes (contacto, producto o banco, como subcuenta) |
| `--has-tags` | Solo con etiquetas (true) o solo sin etiquetas (false) |
| `--id string` | ID del documento que ORIGINA los apuntes (asiento, factura, gasto, nómina o remesa): su asiento completo |
| `--journal-priority string` | Indica un valor para obtener solo asientos del diario según su tipo |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-date string` | Fecha máxima del apunte en formato YYYY-MM-DD |
| `--min-date string` | Fecha mínima del apunte en formato YYYY-MM-DD |
| `--offset string` | Posición de inicio de los resultados |
| `--related strings` | Permite obtener datos adicionales relacionados con el registro del diario. Valores: tags, currency, idAccounting |
| `--sort-by strings` | Orden de los resultados. Opciones: date (prefijo - = descendente) |

## `facturadirecta payment-methods create` — Crear un método de pago (JSON por stdin o --data)

Crear un método de pago (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio)}
Contrato completo: facturadirecta describe create_payment_method

```
facturadirecta payment-methods create [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta payment-methods delete` — Eliminar un método de pago

Eliminar un método de pago

Contrato completo: facturadirecta describe delete_payment_method

```
facturadirecta payment-methods delete <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta payment-methods get` — Obtener un método de pago por UUID

Obtener un método de pago por UUID

Contrato completo: facturadirecta describe get_payment_method

```
facturadirecta payment-methods get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta payment-methods list` — Listar métodos de pago

Listar métodos de pago

Contrato completo: facturadirecta describe list_payment_methods

```
facturadirecta payment-methods list [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--contact string` | Id del contacto para el que se obtendrán los métodos de pago |
| `--include-global` | Indica si quieres incluir en los resultados los métodos de pago globales (asignables a todos los clientes) |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--offset string` | Posición de inicio de los resultados |
| `--sort-by strings` | Orden de los resultados. Opciones: title, creationDate, modificationDate (prefijo - = descendente) |

## `facturadirecta payment-methods update` — Actualizar un método de pago (JSON por stdin o --data)

Actualizar un método de pago (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio)}
Contrato completo: facturadirecta describe update_payment_method

```
facturadirecta payment-methods update <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta payrolls attachments add` — Vincular uploads existentes al documento

Vincular uploads existentes al documento

Contrato completo: facturadirecta describe add_payroll_attachments

```
facturadirecta payrolls attachments add <id> <uploadId>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta payrolls attachments delete` — Eliminar un adjunto por su índice

Eliminar un adjunto por su índice

Contrato completo: facturadirecta describe delete_payroll_attachment

```
facturadirecta payrolls attachments delete <id> <attachmentIndex> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta payrolls attachments list` — Listar adjuntos del documento

Listar adjuntos del documento

Contrato completo: facturadirecta describe get_payroll_attachments

```
facturadirecta payrolls attachments list <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta payrolls attachments upload` — Subir y vincular archivos locales al documento

Subir y vincular archivos locales al documento

Operaciones de la API: create_upload, commit_upload, add_payroll_attachments.
Contrato de cada una: facturadirecta describe <acción>

```
facturadirecta payrolls attachments upload <id> <archivo>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta payrolls create` — Crear una nómina (JSON por stdin o --data)

Crear una nómina (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "tags", "payments", "fromInbox"}
Contrato completo: facturadirecta describe create_payroll

```
facturadirecta payrolls create [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta payrolls delete` — Eliminar una nómina

Eliminar una nómina

Contrato completo: facturadirecta describe delete_payroll

```
facturadirecta payrolls delete <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta payrolls get` — Obtener una nómina por UUID

Obtener una nómina por UUID

Contrato completo: facturadirecta describe get_payroll

```
facturadirecta payrolls get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--related strings` | Permite obtener datos adicionales relacionados con la nómina. Valores: balance, state, journal |

## `facturadirecta payrolls list` — Listar nóminas

Listar nóminas

Contrato completo: facturadirecta describe list_payrolls

```
facturadirecta payrolls list [flags]
```

| Opción | Descripción |
|---|---|
| `--all-these-tags strings` | Listado de todas las etiquetas que debe contener la nómina para ser incluido en los resultados |
| `--any-of-these-tags strings` | Listado de cualquiera de las etiquetas que debe contener la nómina para ser incluido en los resultados |
| `--company string` | ID de la empresa |
| `--contact strings` | Empleado |
| `--has-tags` | Solo con etiquetas (true) o solo sin etiquetas (false) |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-date string` | Fecha máxima de la nómina en formato YYYY-MM-DD |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-total string` | Importe total máximo de la nómina |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-date string` | Fecha mínima de la nómina en formato YYYY-MM-DD |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-total string` | Importe total mínimo de la nómina |
| `--offset string` | Posición de inicio de los resultados |
| `--related strings` | Permite obtener datos adicionales relacionados con la nómina. Valores: balance, state, journal |
| `--search string` | Búsqueda aproximada en el texto del documento (título, líneas, notas) y en el nombre de su contacto: todas las palabras, sin… |
| `--sort-by strings` | Orden de los resultados. Opciones: date, total, creationDate, modificationDate (prefijo - = descendente) |
| `--state strings` | Estado de la nómina. Valores: pending, overdue, paid, overpaid |

## `facturadirecta payrolls pay` — Registrar pagos de una nómina (JSON por stdin o --data)

Registra uno o varios pagos de la nómina (JSON por stdin o --data: {"payments": [{"bank": "ban_…", "amount": …, "date": "AAAA-MM-DD"}]}).

Si el cobro o pago corresponde a un movimiento del extracto bancario, o la cuenta está en una moneda distinta de la de la empresa y de la del documento, no lo registres aquí: concilia el movimiento con "facturadirecta statements reconcile-new <movimiento> --data '{"document":"<id>"}'". El movimiento queda conciliado y la API calcula la diferencia de cambio.

Cuerpo (--data o stdin): {"payments" (obligatorio), "related"}
Contrato completo: facturadirecta describe create_payroll_payments

```
facturadirecta payrolls pay <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta payrolls tags` — Actualizar etiquetas de una nómina (JSON por stdin o --data)

Actualizar etiquetas de una nómina (JSON por stdin o --data)

Cuerpo (--data o stdin): {"tags" (obligatorio), "tagsOperation" (obligatorio)}
Contrato completo: facturadirecta describe update_payroll_tags

```
facturadirecta payrolls tags <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta payrolls update` — Actualizar una nómina (JSON por stdin o --data)

Actualizar una nómina (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "tags", "tagsOperation"}
Contrato completo: facturadirecta describe update_payroll

```
facturadirecta payrolls update <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta products create` — Crear un producto (datos en JSON por stdin o --data)

Crear un producto (datos en JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio)}
Contrato completo: facturadirecta describe create_product

```
facturadirecta products create [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos del producto en JSON |

## `facturadirecta products delete` — Eliminar un producto

Eliminar un producto

Contrato completo: facturadirecta describe delete_product

```
facturadirecta products delete <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta products get` — Obtener un producto por UUID

Obtener un producto por UUID

Contrato completo: facturadirecta describe get_product

```
facturadirecta products get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--summary` | Resumen compacto por elemento en las salidas JSON: id, número, fecha, contacto, totales, estado, saldo pendiente, número de adjuntos y url (en facturas y gastos pide related=state,balance) |
| `--url` | Imprimir solo la URL del elemento en la web de FacturaDirecta |

## `facturadirecta products list` — Listar productos

Listar productos

Contrato completo: facturadirecta describe list_products

```
facturadirecta products list [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--external-id string` | ID externo del producto |
| `--is-depreciable` | Bien de inversión |
| `--is-purchases` | Producto de compra |
| `--is-sales` | Producto de venta |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--offset string` | Posición de inicio de los resultados |
| `--purchases-description string` | Búsqueda aproximada por descripción de compra |
| `--sales-description string` | Búsqueda aproximada por descripción de venta |
| `--search string` | Búsqueda aproximada en el título, la referencia y las descripciones del producto: todas las palabras, sin distinguir acentos ni… |
| `--sku string` | Código de producto (SKU) |
| `--sort-by strings` | Orden de los resultados. Opciones: title, sku, salesDescription, purchasesDescription, creationDate, modificationDate (prefijo - = descendente) |
| `--summary` | Resumen compacto por elemento en las salidas JSON: id, número, fecha, contacto, totales, estado, saldo pendiente, número de adjuntos y url (en facturas y gastos pide related=state,balance) |
| `--title string` | Búsqueda aproximada por nombre |

## `facturadirecta products update` — Actualizar un producto (JSON por stdin o --data)

Actualizar un producto (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio)}
Contrato completo: facturadirecta describe update_product

```
facturadirecta products update <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta query` — Consulta analítica: suma, cuenta y clasifica facturas, compras, contactos o apuntes en una llamada

La consulta analítica de la API: una fuente (--from invoices, invoiceLines, bills, billLines, contacts o journal), medidas (--measures), hasta dos dimensiones por las que agrupar (--by), un periodo (--period) con comparativa (--compare) o desglose (--breakdown), filtros (--filter), orden (--order), límite (--limit) y, con dos dimensiones, límite por grupo (--limit-per-group). Responde los grupos ordenados y los totales del conjunto filtrado: en la terminal, una tabla; con -j o -q, el JSON de la API (columns, rows, totals, other, truncated). Sustituye a listar y sumar: «mis cinco mejores clientes», «¿qué producto vendo más?», «¿cuánto suman las facturas vencidas?», «gastos de septiembre por proveedor», «provincias con más facturación frente al periodo anterior». El vocabulario de cada fuente (medidas, dimensiones y filtros) está en `facturadirecta describe query`; un nombre fuera del vocabulario responde 400 con el más parecido. Las cifras de invoices y bills son las de los documentos (base, impuestos, total y pendiente), y las de invoiceLines y billLines, las de sus líneas (producto, cantidad e importe sin impuestos); las de journal, las del diario, y exigen el módulo de Contabilidad. Con varias monedas, --amounts company da los importes en la moneda de la empresa en vez de separarlos por moneda.

--period: un año (2026), un trimestre (2026-Q3), un mes (2026-09) o dos fechas (2026-01-01..2026-06-30; una de las dos puede faltar); --start y --end fijan cada extremo. Sin periodo, el año natural en curso.
--filter (repetible): campo=valor (eq), 'campo in a,b' (in), campo>=valor y campo<=valor (gte, lte), 'campo between a,b' y campo^=prefijo (startsWith). true y false son booleanos; en gte, lte y between los números son números.
--order (repetible): medida o dimensión, con :asc o :desc (por defecto, desc).
--data: la petición completa en JSON ('{…}', @fichero o stdin) en vez de las flags.

Cuerpo (--data o stdin): {"from" (obligatorio), "measures", "dimensions", "period", "compare", "breakdown", "filters", "orderBy", "limit", "limitPerGroup", "includeOther", "amounts"}
Contrato completo: facturadirecta describe query

```
facturadirecta query [flags]
```

| Opción | Descripción |
|---|---|
| `--amounts string` | Moneda de los importes en invoices, bills y sus líneas: document (por defecto, la de cada documento, separados por moneda) o company (la de la empresa, en un solo grupo) |
| `--breakdown string` | Desglose por tramos naturales: month, quarter o year (añade la dimensión period) |
| `--by strings` | Dimensiones por las que agrupar, hasta dos (contact, fiscalId, contact.region, country, series, state, month…; en journal, account, thirdParty, category…) |
| `--company string` | ID de la empresa |
| `--compare string` | Comparativa: previousPeriod o previousYear (añade _reference, _difference y _variance a cada medida) |
| `--data string` | Petición completa en JSON ('{…}' o @fichero), en vez de las flags; sin --data ni --from, se lee de stdin |
| `--end string` | Último día del periodo, incluido (AAAA-MM-DD) |
| `--filter strings` | Filtro, repetible: campo=valor, 'campo in a,b', campo>=valor, campo<=valor, 'campo between a,b', campo^=prefijo |
| `--from string` | Fuente: invoices, invoiceLines, bills, billLines, contacts o journal |
| `--limit int` | Filas como máximo, entre 1 y 500 (por defecto, 10) |
| `--limit-per-group int` | Con dos dimensiones (--by), filas como máximo de la segunda dentro de cada valor de la primera («los tres productos más vendidos a cada cliente»); no se combina con --compare, --breakdown ni --other |
| `--measures strings` | Medidas, separadas por comas (count, contacts, totalBeforeTaxes, total, pending, average, daysToPayment.median…; en journal, net, income, expenses, result…). Sin indicar, la medida por defecto de la fuente |
| `--order strings` | Orden, repetible: medida o dimensión, con :asc o :desc (por defecto, desc) |
| `--other` | Añade other: cuántos grupos quedan fuera de --limit y la suma de sus medidas |
| `--period string` | Periodo: 2026, 2026-Q3, 2026-09 o 2026-01-01..2026-06-30 (por defecto, el año natural en curso) |
| `--start string` | Primer día del periodo, incluido (AAAA-MM-DD) |

## `facturadirecta recurring attachments add` — Vincular uploads existentes al documento

Vincular uploads existentes al documento

Contrato completo: facturadirecta describe add_recurring_invoice_attachments

```
facturadirecta recurring attachments add <id> <uploadId>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta recurring attachments delete` — Eliminar un adjunto por su índice

Eliminar un adjunto por su índice

Contrato completo: facturadirecta describe delete_recurring_invoice_attachment

```
facturadirecta recurring attachments delete <id> <attachmentIndex> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta recurring attachments list` — Listar adjuntos del documento

Listar adjuntos del documento

Contrato completo: facturadirecta describe get_recurring_invoice_attachments

```
facturadirecta recurring attachments list <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta recurring attachments upload` — Subir y vincular archivos locales al documento

Subir y vincular archivos locales al documento

Operaciones de la API: create_upload, commit_upload, add_recurring_invoice_attachments.
Contrato de cada una: facturadirecta describe <acción>

```
facturadirecta recurring attachments upload <id> <archivo>... [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta recurring create` — Crear una factura recurrente (JSON por stdin o --data)

Crear una factura recurrente (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "tags"}
Contrato completo: facturadirecta describe create_recurring_invoice

```
facturadirecta recurring create [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta recurring delete` — Eliminar una factura recurrente

Eliminar una factura recurrente

Contrato completo: facturadirecta describe delete_recurring_invoice

```
facturadirecta recurring delete <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta recurring get` — Obtener una factura recurrente por UUID

Obtener una factura recurrente por UUID

Contrato completo: facturadirecta describe get_recurring_invoice

```
facturadirecta recurring get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--related strings` | Permite obtener datos adicionales relacionados con la factura recurrente. Valores: taxIds, nextScheduledTime, upcomingSceheduledTimes |

## `facturadirecta recurring list` — Listar facturas recurrentes

Listar facturas recurrentes

Contrato completo: facturadirecta describe list_recurring_invoices

```
facturadirecta recurring list [flags]
```

| Opción | Descripción |
|---|---|
| `--all-these-tags strings` | Listado de todas las etiquetas que debe contener la factura recurrente para ser incluida en los resultados |
| `--any-of-these-tags strings` | Listado de cualquiera de las etiquetas que debe contener la factura recurrente para ser incluida en los resultados |
| `--company string` | ID de la empresa |
| `--contact strings` | Cliente de la factura recurrente |
| `--country string` | País de la dirección de facturación (Formato ISO 3166-1 Alpha-2) |
| `--currency string` | Moneda de la factura recurrente (Formato ISO 4217) |
| `--enabled` | Indica si la factura recurrente está activa |
| `--freq string` | Unidad de la frecuencia de ejecución. Valores: yearly, monthly, weekly, daily |
| `--has-contact` | Factura recurrente con contacto, utiliza el valor 'false' para obtener facturas recurrentes sin contacto asociado |
| `--has-tags` | Solo con etiquetas (true) o solo sin etiquetas (false) |
| `--interval string` | Número de días/semanas/meses/años entre ejecuciones |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-next-scheduled-date string` | Fecha y hora máxima de la próxima ejecución de la factura (nextScheduledTime), incluida, en formato ISO 8601… |
| `--max-total string` | Importe total máximo de la factura recurrente |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-next-scheduled-date string` | Fecha y hora mínima de la próxima ejecución de la factura (nextScheduledTime), incluida, en formato ISO 8601… |
| `--min-total string` | Importe total mínimo de la factura recurrente |
| `--offset string` | Posición de inicio de los resultados |
| `--related strings` | Permite obtener datos adicionales relacionados con la factura recurrente. Valores: taxIds, nextScheduledTime, upcomingSceheduledTimes |
| `--search string` | Búsqueda aproximada en el texto de la factura recurrente (título, líneas, notas) y en el nombre de su contacto: todas las… |
| `--series string` | Serie de la factura recurrente sin aplicar posibles formatos de año (## ó ####) |
| `--sort-by strings` | Orden de los resultados. Opciones: nextScheduledTime, series, total, currency, country, creationDate, modificationDate (prefijo - = descendente) |

## `facturadirecta recurring pdf` — Generar PDF de una factura recurrente

Generar PDF de una factura recurrente

Contrato completo: facturadirecta describe create_recurring_invoice_pdf

```
facturadirecta recurring pdf <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--mode string` | Modo de renderizado del PDF (inline, attachment, print) (por defecto: inline) |

## `facturadirecta recurring tags` — Actualizar etiquetas (JSON por stdin o --data)

Actualizar etiquetas (JSON por stdin o --data)

Cuerpo (--data o stdin): {"tags" (obligatorio), "tagsOperation" (obligatorio)}
Contrato completo: facturadirecta describe update_recurring_invoice_tags

```
facturadirecta recurring tags <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta recurring update` — Actualizar una factura recurrente (JSON por stdin o --data)

Actualizar una factura recurrente (JSON por stdin o --data)

Cuerpo (--data o stdin): {"content" (obligatorio), "syncContactData", "tags", "tagsOperation"}
Contrato completo: facturadirecta describe update_recurring_invoice

```
facturadirecta recurring update <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta search` — Buscar contactos, productos, facturas, presupuestos y gastos por texto o número

Busca en una sola llamada: contactos por nombre, NIF o email; productos por nombre; facturas y presupuestos por número ("FAC-2026-12", "F 12", "12"); y los últimos documentos de los contactos encontrados. Cada resultado lleva un id `tipo:empresa:id` para `fetch` y la URL en la web. Sin empresa fijada y con varias empresas, busca en hasta 5. Acota con --type para reducir las llamadas a la API.

Operaciones de la API: list_contacts, list_products, list_invoices, list_estimates, list_bills.
Contrato de cada una: facturadirecta describe <acción>

```
facturadirecta search <texto> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa (sin ella, la resuelta como en cualquier comando; con varias sin fijar, hasta 5) |
| `--type strings` | Tipos a buscar: invoice, estimate, bill, contact, product (por defecto todos) |

## `facturadirecta settings company` — Ver la ficha de la empresa y su forma de trabajar

Datos fiscales y de contacto, moneda, idioma y zona horaria, modo borrador o definitivo de facturas y gastos, impuestos, numeración, fechas de inicio y bloqueo contable, VeriFactu y TicketBAI, remitentes de email, stock, portal de clientes, canales de entrada de la bandeja (buzón por correo y Google Drive) y módulos del plan. Cambia muy poco: consúltala al empezar a trabajar con una empresa.

inbox.email.address es el buzón de la bandeja: todo correo que llegue a esa dirección entra en la bandeja sin verificar el remitente, así que no la publiques. Es solo lectura; la configuración se cambia en la web (content.webUrl, también con --url).

Contrato completo: facturadirecta describe get_company_settings

```
facturadirecta settings company [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--url` | Imprimir solo la URL de los ajustes de la empresa en la web de FacturaDirecta |

## `facturadirecta settings series` — Ver series configuradas para un tipo de documento (invoice, estimate, deliveryNote, clientOrder, purchaseOrder)

Ver series configuradas para un tipo de documento (invoice, estimate, deliveryNote, clientOrder, purchaseOrder)

Contrato completo: facturadirecta describe get_series

```
facturadirecta settings series <documentType> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta settings taxes-purchases` — Ver impuestos de compras configurados

Ver impuestos de compras configurados

Contrato completo: facturadirecta describe get_purchases_taxes

```
facturadirecta settings taxes-purchases [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--tax-group strings` | Grupo de impuestos. Valores: IVA, IVA_RE, IGIC, IPSI, IRPF |

## `facturadirecta settings taxes-sales` — Ver impuestos de ventas configurados

Ver impuestos de ventas configurados

Contrato completo: facturadirecta describe get_sales_taxes

```
facturadirecta settings taxes-sales [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--tax-group strings` | Grupo de impuestos. Valores: IVA, IVA_RE, IGIC, IPSI, IRPF, VATEU |

## `facturadirecta settings themes` — Ver temas de diseño disponibles

Ver temas de diseño disponibles

Contrato completo: facturadirecta describe get_themes

```
facturadirecta settings themes [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta setup` — Configuración inicial guiada

Asistente de configuración inicial: autenticación y selección de empresa.

```
facturadirecta setup
```

## `facturadirecta statements get` — Obtener un extracto bancario por UUID

Obtener un extracto bancario por UUID

Contrato completo: facturadirecta describe get_statement

```
facturadirecta statements get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta statements list` — Listar extractos bancarios

Listar extractos bancarios

Contrato completo: facturadirecta describe list_statements

```
facturadirecta statements list [flags]
```

| Opción | Descripción |
|---|---|
| `--bank string` | Identificador del banco para filtrar los extractos |
| `--company string` | ID de la empresa |
| `--currency string` | Moneda del extracto bancario (Formato ISO 4217) |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--matched-document string` | Identificador del asiento contable con el que está conciliado el extracto |
| `--max-amount string` | Importe máximo del movimiento |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-date string` | Fecha máxima de la operación en formato YYYY-MM-DD |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-amount string` | Importe mínimo del movimiento |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-date string` | Fecha mínima de la operación en formato YYYY-MM-DD |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--offset string` | Posición de inicio de los resultados |
| `--sort-by strings` | Orden de los resultados. Opciones: date, amount, currency, state, creationDate, modificationDate (prefijo - = descendente) |
| `--state string` | Estado de conciliación del extracto. Valores: pending, reconciled, ignored |

## `facturadirecta statements reconcile` — Conciliar un extracto bancario (JSON por stdin o --data)

Conciliar un extracto bancario (JSON por stdin o --data)

Cuerpo (--data o stdin): {"transactionId" (obligatorio)}
Contrato completo: facturadirecta describe reconcile_statement

```
facturadirecta statements reconcile <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta statements reconcile-new` — Conciliar un extracto creando un nuevo asiento (JSON por stdin o --data)

Crea un asiento contable y lo concilia con el movimiento del extracto en una sola llamada.

Para cobrar o pagar una factura de venta, un gasto o una nómina con este movimiento, envía solo {"document": "<id>"} (inv_, bil_ o par_): la API construye el asiento, también cuando el banco o el documento están en otra moneda (apunte del banco en su moneda con su contravalor, documento saldado a su tipo de cambio y diferencia de cambio en su cuenta). Añade amount (en la moneda del documento) solo para un cobro o pago parcial con documento y banco en monedas distintas. Usa lines (excluyente con document) solo para movimientos sin documento, como comisiones o traspasos. Si el cobro o pago ya está registrado, usa "statements reconcile" con su transactionId.

Cuerpo (--data o stdin): {"document", "amount", "lines", "title"}
Contrato completo: facturadirecta describe reconcile_statement_with_new_transaction

```
facturadirecta statements reconcile-new <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta statements unreconcile` — Desconciliar un extracto bancario

Desconciliar un extracto bancario

Contrato completo: facturadirecta describe unreconcile_statement

```
facturadirecta statements unreconcile <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--delete-transaction` | Si es true, además de desconciliar se archiva el asiento contable asociado |

## `facturadirecta tax-declarations aeat-file` — Devolver el fichero de presentación de la AEAT del modelo (url y filename)

El fichero con el diseño de registro BOE del modelo guardado, el mismo que descarga el botón «Descargar fichero AEAT» de la web; se genera una vez y se reutiliza mientras el modelo no cambie. La presentación sigue haciéndose desde la Sede de la AEAT. El 390 no tiene fichero y responde 404.

Contrato completo: facturadirecta describe create_tax_declaration_aeat_file

```
facturadirecta tax-declarations aeat-file <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta tax-declarations attachments list` — Listar adjuntos del documento

Listar adjuntos del documento

Contrato completo: facturadirecta describe get_tax_declaration_attachments

```
facturadirecta tax-declarations attachments list <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta tax-declarations get` — Obtener un modelo con sus casillas (y sus registros por tercero con --related records)

Devuelve el modelo con sus casillas (boxes) tal como se escriben en el fichero de la AEAT: key es el número oficial de la casilla o la clave de control, title el texto del formulario y value el importe, código o texto. --related records añade, en las informativas, los registros por tercero (datos personales de terceros); --related journal, el asiento contable. El IBAN sale enmascarado salvo con el scope banks:readIban.

Contrato completo: facturadirecta describe get_tax_declaration

```
facturadirecta tax-declarations get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--related strings` | Información adicional: records (registros por tercero de las informativas) y journal (el asiento contable); repetible o separado por comas |
| `--url` | Imprimir solo la URL del elemento en la web de FacturaDirecta |

## `facturadirecta tax-declarations list` — Listar modelos de impuestos (del más reciente al más antiguo)

Lista los modelos guardados con su sobre: modelo, ejercicio, periodo, resultado (positivo a ingresar, negativo a compensar o devolver; vacío en las informativas), si tiene fichero AEAT y cuántos adjuntos. Las casillas solo salen con --related boxes (un 303 trae unas sesenta: pide pocas filas) y el asiento contable con --related journal. La fecha de un modelo es el último día de su periodo.

Contrato completo: facturadirecta describe list_tax_declarations

```
facturadirecta tax-declarations list [flags]
```

| Opción | Descripción |
|---|---|
| `--all-these-tags strings` | Listado de todas las etiquetas que debe contener el modelo de impuestos para ser incluido en los resultados |
| `--any-of-these-tags strings` | Listado de cualquiera de las etiquetas que debe contener el modelo de impuestos para ser incluido en los resultados |
| `--company string` | ID de la empresa |
| `--fiscal-period strings` | Periodo: trimestre (1T…4T). Valores: 1T, 2T, 3T, 4T, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 1P, 2P, 3P |
| `--fiscal-year string` | Ejercicio |
| `--form strings` | Número de modelo. Valores: 111, 115, 130, 180, 190, 202, 303, 347, 349, 390 |
| `--has-tags` | Solo con etiquetas (true) o solo sin etiquetas (false) |
| `--kind strings` | Tipo de modelo: autoliquidaciones (selfAssessment) o declaraciones informativas (informative). Valores: selfAssessment, informative |
| `--limit string` | Número máximo de resultados, valores permitidos entre 1 y 500 (por defecto: 25) |
| `--max-creation-date string` | Fecha y hora máxima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--max-date string` | Fecha máxima del modelo (el último día de su periodo) en formato YYYY-MM-DD |
| `--max-modification-date string` | Fecha y hora máxima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-creation-date string` | Fecha y hora mínima de creación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--min-date string` | Fecha mínima del modelo (el último día de su periodo) en formato YYYY-MM-DD |
| `--min-modification-date string` | Fecha y hora mínima de modificación del documento, incluida, en formato ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ); el + de un desfase… |
| `--offset string` | Posición de inicio de los resultados |
| `--related strings` | Información adicional por modelo: boxes (las casillas) y journal (el asiento contable); repetible o separado por comas |
| `--sort-by strings` | Orden de los resultados. Opciones: date, total, fiscalYear, creationDate, modificationDate (prefijo - = descendente) |
| `--status strings` | Estado del modelo. Valores: generated |

## `facturadirecta tax-declarations pdf` — Generar el PDF resumen del modelo (casillas y valores) y devolver su URL temporal

El PDF que imprime la web, generado una vez y reutilizado mientras el modelo no cambie. No es el fichero de presentación de la AEAT (`aeat-file`) ni los adjuntos del modelo (`attachments list`).

Contrato completo: facturadirecta describe create_tax_declaration_pdf

```
facturadirecta tax-declarations pdf <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--mode string` | Modo: attachment, inline, print (por defecto: inline) |

## `facturadirecta update` — Actualizar facturadirecta a la última versión

```
facturadirecta update [flags]
```

| Opción | Descripción |
|---|---|
| `--force` | Actualizar sin pedir confirmación |
| `--version string` | Actualizar a una versión específica (ej: v0.5.0) |

## `facturadirecta uploads commit` — Sellar un upload presigned tras el PUT a S3

Sellar un upload presigned tras el PUT a S3

Contrato completo: facturadirecta describe commit_upload

```
facturadirecta uploads commit <uploadId> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta uploads create` — Solicitar un slot de upload (devuelve URL presigned + uploadId)

Solicitar un slot de upload (devuelve URL presigned + uploadId)

Contrato completo: facturadirecta describe create_upload

```
facturadirecta uploads create <filename> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--content-type string` | MIME type (opcional) |

## `facturadirecta uploads file` — Subir un archivo local (create + PUT S3 + commit) y mostrar el uploadId

Subir un archivo local (create + PUT S3 + commit) y mostrar el uploadId

Operaciones de la API: create_upload, commit_upload.
Contrato de cada una: facturadirecta describe <acción>

```
facturadirecta uploads file <ruta> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta webhooks endpoints create` — Crear un endpoint (JSON por stdin o --data)

Crear un endpoint (JSON por stdin o --data)

Cuerpo (--data o stdin): {"name" (obligatorio), "url" (obligatorio), "events" (obligatorio)}
Contrato completo: facturadirecta describe create_public_webhook_endpoint

```
facturadirecta webhooks endpoints create [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta webhooks endpoints delete` — Eliminar un endpoint

Eliminar un endpoint

Contrato completo: facturadirecta describe delete_public_webhook_endpoint

```
facturadirecta webhooks endpoints delete <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--yes` | Confirmar el borrado sin preguntar (es irreversible) |

## `facturadirecta webhooks endpoints disable` — Desactivar un endpoint

Desactivar un endpoint

Contrato completo: facturadirecta describe disable_public_webhook_endpoint

```
facturadirecta webhooks endpoints disable <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta webhooks endpoints enable` — Activar un endpoint

Activar un endpoint

Contrato completo: facturadirecta describe enable_public_webhook_endpoint

```
facturadirecta webhooks endpoints enable <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta webhooks endpoints get` — Obtener un endpoint

Obtener un endpoint

Contrato completo: facturadirecta describe get_public_webhook_endpoint

```
facturadirecta webhooks endpoints get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta webhooks endpoints list` — Listar endpoints

Listar endpoints

Contrato completo: facturadirecta describe list_public_webhook_endpoints

```
facturadirecta webhooks endpoints list [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta webhooks endpoints rotate-secret` — Rotar el secreto de un endpoint

Rotar el secreto de un endpoint

Contrato completo: facturadirecta describe rotate_public_webhook_endpoint_secret

```
facturadirecta webhooks endpoints rotate-secret <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta webhooks endpoints update` — Actualizar un endpoint (JSON por stdin o --data)

Actualizar un endpoint (JSON por stdin o --data)

Cuerpo (--data o stdin): {"name", "url", "events"}
Contrato completo: facturadirecta describe update_public_webhook_endpoint

```
facturadirecta webhooks endpoints update <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--data string` | Datos en JSON |

## `facturadirecta webhooks events get` — Obtener un evento

Obtener un evento

Contrato completo: facturadirecta describe get_public_webhook_event

```
facturadirecta webhooks events get <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta webhooks events list` — Listar eventos

Listar eventos

Contrato completo: facturadirecta describe list_public_webhook_events

```
facturadirecta webhooks events list [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |
| `--cursor string` | Cursor de paginación: el nextCursor de la página anterior, tal cual se recibió |
| `--endpoint-id string` | Filtrar por endpoint |
| `--limit string` | Número máximo de resultados (máx. 100) |
| `--status string` | Filtrar por estado (pending, delivered, failed) |
| `--type string` | Filtrar por tipo de evento |

## `facturadirecta webhooks events retry` — Reintentar envío de un evento

Reintentar envío de un evento

Contrato completo: facturadirecta describe retry_public_webhook_event

```
facturadirecta webhooks events retry <id> [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | ID de la empresa |

## `facturadirecta whoami` — Quién soy: usuario, acceso, empresa que usarán los comandos y empresas disponibles

Muestra el perfil activo, el usuario autenticado, el modo de acceso, la conexión con FacturaDirecta (empresas y permisos elegidos para el CLI), la empresa que usaría cualquier comando (--company > FACTURADIRECTA_COMPANY > perfil > única empresa) y todas las empresas disponibles, con los permisos de la conexión en cada una. Con --json o --quiet devuelve un objeto compacto.

Operaciones de la API: get_profile, get_public_api_key_info.
Contrato de cada una: facturadirecta describe <acción>

```
facturadirecta whoami [flags]
```

| Opción | Descripción |
|---|---|
| `--company string` | Empresa a comprobar (como la usaría cualquier comando con --company) |


## Opciones globales

| Opción | Descripción |
|---|---|
| `--agent` | Modo agente (equivale a --quiet) |
| `--count` | Solo el número de resultados |
| `--ids-only` | Solo IDs, uno por línea |
| `--jq string` | Filtro jq integrado (implica --json) |
| `-j, --json` | Salida en formato JSON |
| `--profile string` | Perfil de autenticación a usar |
| `-q, --quiet` | Solo datos JSON, sin metadatos |

