Metadata-Version: 2.5
Name: fiscalisto
Version: 0.1.8
Summary: SDK de la API de facturación electrónica (CFDI 4.0) de Fiscalisto, para Python.
Project-URL: Homepage, https://fiscalisto.com/docs/api/sdk/python
Project-URL: Documentation, https://fiscalisto.com/docs/api
Project-URL: Source, https://github.com/fiscalisto/fiscalisto-python
License-Expression: MIT
License-File: LICENSE
Keywords: cfdi,factura,facturacion,fiscalisto,mexico,sat,timbrado
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# fiscalisto

El SDK de la [API de facturación de Fiscalisto](https://fiscalisto.com/docs/api): timbre CFDI 4.0 (facturas, pagos, notas de crédito, nómina, retenciones y lotes) desde Python.

- Tipos (`TypedDict`) para cada campo, con su descripción y su nombre en el XML del SAT; `mypy` y su editor los revisan.
- `Idempotency-Key` automática en cada `POST`: un reintento nunca timbra, crea ni manda nada dos veces.
- Reintentos solo de lo que es seguro repetir.
- Listas que se recorren solas con `for`.
- Webhooks verificados en una línea.
- Sin dependencias: Python 3.10 o más reciente.

```bash
pip install fiscalisto
```

```python
from fiscalisto import Fiscalisto

fiscalisto = Fiscalisto()  # la llave viene de FISCALISTO_API_KEY

invoice = fiscalisto.invoices.create(
    {
        "customer": {"tax_id": "ICV060329BY0", "legal_name": "INMOBILIARIA CVA", "tax_system": "601", "zip": "33826"},
        "payment_form": "03",
        "items": [{"description": "Mensualidad", "product_key": "86121700", "quantity": 2, "unit_price": 2500}],
    },
    idempotency_key="pedido-A-1042",
)

print(invoice["uuid"], invoice["total"])
```

La guía completa está en [fiscalisto.com/docs/api/sdk](https://fiscalisto.com/docs/api/sdk) y cada página de la [referencia](https://fiscalisto.com/docs/api) trae su ejemplo con el SDK.

## Con agentes de IA

Para que Claude Code, Cursor, Codex u otro agente integre Fiscalisto, conecte el servidor MCP de la documentación (sin llave) y pídale que empiece con `get_started`:

```bash
claude mcp add --transport http fiscalisto-docs https://fiscalisto.com/docs/api/mcp
```

La guía de integración en una página está en [fiscalisto.com/docs/api/SKILL.md](https://fiscalisto.com/docs/api/SKILL.md) y el índice de la documentación para agentes en [llms.txt](https://fiscalisto.com/docs/api/llms.txt). Otros clientes y más: [fiscalisto.com/docs/api/agentes](https://fiscalisto.com/docs/api/agentes).

## Desarrollo

`src/fiscalisto/types.py` y `src/fiscalisto/_resources.py` se generan desde la especificación OpenAPI con `bun run openapi` en la raíz del repositorio; no los edite. Lo demás se escribe a mano.

```bash
PYTHONPATH=src python3 -m unittest discover -s tests
mypy --strict src && ruff check src tests
```
