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.0.tar.gz (77.6 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.0-py3-none-any.whl (166.3 kB view details)

Uploaded Python 3

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

Hashes for simplefacturasdk-1.2.0.tar.gz
Algorithm Hash digest
SHA256 16aa970dfb30f56b5f7d72f926ce1db576d4547f333ae68b900e2a9fa6d2203a
MD5 8254381cba7f7a8261d64b087ef6190a
BLAKE2b-256 bb2ab9663171355a0a8d1d2d6e2ad8a887c7fcf7bdd6a9a2843be28989b7277c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simplefacturasdk-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4497744cca6904d7ee6a2dadfe087ea2a6edcd6841171785fa03f7fd82151b9b
MD5 682691b46a98965b178edd5950323211
BLAKE2b-256 06d37d44be4cbf2785d6b2ec0599fede4b5a2e523df95e4b33719f07185a9932

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