CLI de FactuCat
El CLI @factucat/cli 0.2.6 opera FactuCat Cloud desde la terminal. Sirve para flujos interactivos y para scripts o agentes con salida estable (--json, --no-input).
Cuándo usar el CLI (vs el SDK)
Sección titulada «Cuándo usar el CLI (vs el SDK)»| CLI | SDK | |
|---|---|---|
| Dónde corre | Terminal, CI, agentes | Tu app Node.js / TypeScript |
| Paquete | @factucat/[email protected] |
@factucat/[email protected] |
| Ideal para | Probar, automatizar sin embeber código | Integrar timbrado dentro de tu producto |
Ambos hablan con la misma API Cloud. El CLI no es un despliegue self-host.
Instalar
Sección titulada «Instalar»factucat --helpSin instalar global:
Autenticación (empieza en sandbox)
Sección titulada «Autenticación (empieza en sandbox)»- Regístrate o entra en sandbox.factucat.com.
- Crea una llave
fc_test_...en Configuración → API keys. El secreto completo se muestra una sola vez. - Guárdala en el CLI:
factucat auth api-key set# o:factucat auth api-key set --value fc_test_...# o por entorno (tiene prioridad sobre la config local):export FACTUCAT_API_KEY=fc_test_...- Comprueba:
factucat auth statusfactucat auth status --jsonMás detalle de permisos y rotación: Autenticación y permisos.
El ambiente se elige con tu llave
Sección titulada «El ambiente se elige con tu llave»Igual que el SDK, si no fijas un origen el CLI usa el prefijo de la API key:
| API key | Origen |
|---|---|
fc_test_... |
https://sandbox.factucat.com |
fc_live_... y demás |
https://factucat.com |
No mezcles prefijo y ambiente. Para local u otro host, usa FACTUCAT_BASE_URL (origen sin /api/v1); ese valor tiene prioridad sobre el prefijo. Consulta Ambientes y pruebas.
Producción: llave fc_live_... desde Configuración → API keys en la cuenta productiva.
Flujo de un borrador
Sección titulada «Flujo de un borrador»El servidor es la fuente de verdad. El CLI solo recuerda el borrador activo en tu máquina por comodidad.
- Crear borrador
- Asignar cliente o datos de receptor
- Metadatos (uso CFDI, método/forma de pago, moneda…)
- Conceptos
- Previa (
invoice show) - Timbrar (
invoice stamp) - Descargar XML o PDF si hace falta
Comandos principales
Sección titulada «Comandos principales»auth api-key set | show | clearauth statusinvoice create | use <draftId> | current | show | listinvoice set-customer | set-receiver | set-metainvoice add-item | update-item <itemId> | remove-item <itemId> | itemsinvoice discard | stamp | get <invoiceRef>invoice download xml <invoiceRef>invoice download pdf <invoiceRef>customer list | search <query> | createNotas útiles:
invoice add-itempuede inferir Clave SAT, unidad, IVA e ISR si los omites.invoice set-meta --currency USDsin--exchange-rateconsulta el tipo de cambio oficial del DOF.invoice stampen terminal interactiva muestra previa; puede ofrecer envío a contactos del cliente.invoice getydownloadaceptan UUID o folio.- Para agentes y scripts:
--jsony, en stamp,--no-input/--draft-id.
Ejemplo rápido en sandbox
Sección titulada «Ejemplo rápido en sandbox»export FACTUCAT_API_KEY=fc_test_...
factucat invoice create --customer "Cliente de prueba"factucat invoice add-item \ --description "Servicio de consultoría" \ --unit-price 1000factucat invoice set-meta \ --cfdi-use G03 \ --payment-method PUE \ --payment-form 03factucat invoice showfactucat invoice stampFlujo HTTP equivalente (misma API): Timbrar un CFDI completo. Para agentes con skill: Desarrollo agentico.
Sin interacción (agentes / CI)
Sección titulada «Sin interacción (agentes / CI)»factucat invoice create --jsonfactucat invoice set-receiver --draft-id dft_... --json ...factucat invoice set-meta --draft-id dft_... --json ...factucat invoice add-item --draft-id dft_... --json ...factucat invoice show --draft-id dft_... --jsonfactucat invoice stamp --draft-id dft_... --no-input --jsonSi algo falla
Sección titulada «Si algo falla»| Situación | Qué hacer |
|---|---|
| Sin API key / inválida | factucat auth api-key set y auth status |
| No hay borrador activo | invoice create o invoice use <draftId> |
| Cliente ambiguo | customer search "..." o --customer-id |
plan_required en producción |
En la webapp: Configuración → Suscripción (Miau Pro / FactuCat API). No hay endpoint público de upgrade. En sandbox con fc_test_... no aplica plan. |