SDK para la integración con los servicios de SimpleFactura
Project description
SimpleFacturaSDK
SDK oficial en Python para integrar tus sistemas con SimpleFactura (ChileSystems): facturación, clientes, productos, proveedores, folios, boletas de honorarios, cesión, partner y Payku.
Características
- Cliente asincrónico basado en
aiohttp. - Servicios separados por dominio (
Facturacion,Productos,Clientes, etc.). - Modelos tipados para requests/responses.
- Manejo de autenticación y renovación de token.
Requisitos
- Python
>=3.6 pip
Instalación
Desde PyPI:
pip install SimpleFacturaSDK
Para desarrollo local:
git clone https://github.com/pereacarlos/SimpleFacturaSDK-python.git
cd SimpleFacturaSDK-python
pip install -r requirements.txt
Configuración
Crea un archivo .env en la raíz de tu proyecto:
SF_USERNAME=tu_usuario
SF_PASSWORD=tu_contraseña
SF_BASE_URL=https://api.simplefactura.cl
Opcional: archivo config.py (si quieres forzar URL base por código):
import os
from dotenv import load_dotenv
load_dotenv()
BASE_URL = os.getenv("SF_BASE_URL", "https://api.simplefactura.cl")
Uso rápido
import asyncio
import os
from dotenv import load_dotenv
from SimpleFacturaSDK.client_simple_factura import ClientSimpleFactura
load_dotenv()
username = os.getenv("SF_USERNAME")
password = os.getenv("SF_PASSWORD")
async def main():
async with ClientSimpleFactura(username, password) as client:
# Servicios disponibles
facturacion = client.Facturacion
productos = client.Productos
proveedores = client.Proveedores
clientes = client.Clientes
sucursales = client.Sucursales
folios = client.Folios
configuracion = client.ConfiguracionService
bhe = client.BoletaHonorarioService
usuarios = client.Usuarios
cesion = client.CesionService
partner = client.PartnerService
payku = client.PaykuService
print("Cliente inicializado correctamente")
if __name__ == "__main__":
asyncio.run(main())
Ejemplo: obtener PDF de DTE
import asyncio
from SimpleFacturaSDK.client_simple_factura import ClientSimpleFactura
from SimpleFacturaSDK.models.GetFactura.Credenciales import Credenciales
from SimpleFacturaSDK.models.GetFactura.DteReferenciadoExterno import DteReferenciadoExterno
from SimpleFacturaSDK.models.GetFactura.SolicitudPdfDte import SolicitudPdfDte
async def main():
async with ClientSimpleFactura("usuario", "password") as client:
solicitud = SolicitudPdfDte(
credenciales=Credenciales(
rut_emisor="76269769-6",
nombre_sucursal="Casa Matriz",
),
dte_referenciado_externo=DteReferenciadoExterno(
folio=4117,
codigoTipoDte=33,
ambiente=0,
),
)
resp = await client.Facturacion.obtener_pdf(solicitud)
if resp.status == 200:
with open("factura.pdf", "wb") as f:
f.write(resp.data)
print("PDF guardado")
else:
print(f"Error {resp.status}: {resp.message}")
if __name__ == "__main__":
asyncio.run(main())
Ejecutar tests
python -m unittest discover -s SimpleFacturaSDK/tests -p "test_*.py" -v
Cobertura
Si ejecutas tests con cobertura y aparece:
ModuleNotFoundError: No module named 'coverage'
instala la dependencia en el mismo intérprete que usa VS Code:
python -m pip install coverage
Luego puedes correr, por ejemplo:
python -m coverage run -m unittest discover -s SimpleFacturaSDK/tests -p "test_*.py"
python -m coverage report -m
Problemas comunes
Credenciales incorrectas: revisaSF_USERNAMEySF_PASSWORD.SF_BASE_URLno definida: asegúrate de tener.envoconfig.pycorrectamente configurado.- VS Code usa otro Python: selecciona el intérprete correcto en
Python: Select Interpreter.
Documentación oficial
- Sitio SimpleFactura: https://www.simplefactura.cl/
- Documentación API (Postman): https://documentacion.simplefactura.cl/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file simplefacturasdk-1.2.0.tar.gz.
File metadata
- Download URL: simplefacturasdk-1.2.0.tar.gz
- Upload date:
- Size: 77.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16aa970dfb30f56b5f7d72f926ce1db576d4547f333ae68b900e2a9fa6d2203a
|
|
| MD5 |
8254381cba7f7a8261d64b087ef6190a
|
|
| BLAKE2b-256 |
bb2ab9663171355a0a8d1d2d6e2ad8a887c7fcf7bdd6a9a2843be28989b7277c
|
File details
Details for the file simplefacturasdk-1.2.0-py3-none-any.whl.
File metadata
- Download URL: simplefacturasdk-1.2.0-py3-none-any.whl
- Upload date:
- Size: 166.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4497744cca6904d7ee6a2dadfe087ea2a6edcd6841171785fa03f7fd82151b9b
|
|
| MD5 |
682691b46a98965b178edd5950323211
|
|
| BLAKE2b-256 |
06d37d44be4cbf2785d6b2ec0599fede4b5a2e523df95e4b33719f07185a9932
|