Skip to main content

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: revisa SF_USERNAME y SF_PASSWORD.
  • SF_BASE_URL no definida: asegúrate de tener .env o config.py correctamente configurado.
  • VS Code usa otro Python: selecciona el intérprete correcto en Python: Select Interpreter.

Documentación oficial

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simplefacturasdk-1.2.1.tar.gz (79.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simplefacturasdk-1.2.1-py3-none-any.whl (173.0 kB view details)

Uploaded Python 3

File details

Details for the file simplefacturasdk-1.2.1.tar.gz.

File metadata

  • Download URL: simplefacturasdk-1.2.1.tar.gz
  • Upload date:
  • Size: 79.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for simplefacturasdk-1.2.1.tar.gz
Algorithm Hash digest
SHA256 88debd5a1a9a4e4a0faed4b0a477434ee73357af19b710e258eb5b1ca0aa6dfe
MD5 a57ed78f0c283f01c1b77048cda9cf74
BLAKE2b-256 460062f361b7e29f4ec08f439119555cf6967c26d85fa9e41486830884e91da6

See more details on using hashes here.

File details

Details for the file simplefacturasdk-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for simplefacturasdk-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 18c116ce5fb4718384bfd14e81259b0192af59545a60264dfd470204da4d8370
MD5 617e4191747ec1d0093e0aebded2af6f
BLAKE2b-256 3c2d235e60bc6e4af2cb2fd4254683a46ad3fe4e241901b0789ae3b298af1404

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page