• Stars
    star
    287
  • Rank 144,232 (Top 3 %)
  • Language
    Python
  • License
    GNU Lesser Genera...
  • Created over 11 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Factura Electrónica AFIP y otros servicios web (proyecto software libre) — Interfases, tools and apps for Argentina's gov't. webservices (soap, com/dll simil-ocx, pdf, dbf, xml, json, etc.) #python

pyafipws

PyAfipWs contains Python modules to operate with web services regarding AFIP (Argentina's "IRS") and other government agencies, mainly related to electronic invoicing, several taxes and traceability.

Copyright 2008 - 2022 (C) Mariano Reingart [email protected] (creator and maintainter). All rights reserved.

License: LGPLv3+, with "commercial" exception available to include it and distribute with propietary programs

General Information:

Project Structure:

  • Python library (a helper class for each webservice for easy use of their methods and attributes)
  • PyAfipWs: OCX-like Windows Component-Object-Model interface compatible with legacy programming languages (VB, VFP, Delphi, PHP, VB.NET, etc.)
  • LibPyAfipWs: DLL/.so compiled shared library (exposing python methods to C/C++/C#)
  • Console (command line) tools using simplified input & ouput files (TXT, DBF, JSON)
  • PyRece GUI and FacturaLibre WEB apps as complete reference implementations
  • Examples for Java, .NET (C#, VB.NET), Visual Basic, Visual Fox Pro, Delphi, C, PHP.
  • Minor code fragment samples for SAP (ABAP), PowerBuilder, Fujitsu Net Cobol, Clarion, etc.
  • Modules for OpenERP/Odoo - Tryton

Features implemented:

  • Supported alternate interchange formats: TXT (fixed lenght COBOL), CSV, DBF (Clipper/xBase/Harbour), XML, JSON, etc.
  • Full automation to request authentication and invoice authorization (CAE, COE, etc.)
  • Advanced XML manipulation, caching and proxy support.
  • Customizable PDF generation and visual designer (CSV templates)
  • Email, barcodes (PIL), installation (NSIS), configuration (.INI), debugging and other misc utilities

Web services supported so far:

AFIP:

  • WSAA: authorization & authentication, including digital cryptographic signature
  • WSFEv1: domestic market (electronic invoice) -English-
  • WSMTXCA: domestic market (electronic invoice) -detailing articles and barcodes-
  • WSCT: tourism (electronic invoice) -"tax free" VAT refund for tourists-
  • WSBFEv1: tax bonus (electronic invoice)
  • WSFEXv1: foreign trade (electronic invoice) -English-
  • WSCTG: agriculture (grain traceability code)
  • WSLPG: agriculture (grain liquidation - invoice)
  • WSLTV: agriculture (green tobacco - invoice)
  • WSLUM: agriculture (milk - invoice)
  • WSLSP: agriculture (cattle/livestock - invoice)
  • WSCDC: invoice verification
  • Taxpayers' Registe: database to check sellers and buyers register

ARBA:

  • COT: Provincial Operation Transport Code (aka electronic Shipping note)

ANMAT/SEDRONAR/SENASA (SNT):

  • TrazaMed: National Medical Drug Traceability Program
  • TrazaRenpre: Controlled Chemical Precursors Traceability Program
  • TrazaFito: Phytosanitary Products Traceability Program

Installation Instructions:

Notes:

You could see the .github directory for detailed workflows and automated commands to build the project.

Quick-Start

These instructions are for Ubuntu/Debian. In Windows you can use PowerShell.

You can download the compressed file: https://github.com/reingart/pyafipws/archive/main.zip and unzip it.

Then install dependencies and the project itself:

pip download https://github.com/reingart/pyafipws/archive/main.zip
python -m zipfile -e main.zip  .
cd pyafipws-main
pip install -r requirements.txt --user
python setup.py install

You'll need a digital certificate (.crt) and private key (.key) to authenticate (see certificate generation for more information and instructions). Provisionally, you can use author's testing certificate/key:

wget https://www.sistemasagiles.com.ar/soft/pyafipws/reingart.zip -O reingart.zip
python -m zipfile -e reingart.zip .

You should copy and configure rece.ini to set up paths and URLs:

cp conf/*.ini .

Then, you could execute WSAA script to authenticate (getting Token and Sign) and WSFEv1 to process an electronic invoice:

python -m pyafipws.wsaa
python -m pyafipws.wsfev1 --prueba

With the last command, you should get the Electronic Autorization Code (CAE) for testing purposes (sample invoice data, do not use in production!).

Virtual environment (testing):

The following commands clone the repository, creates a virtualenv and install the packages there (including the latest versions of the dependencies) to avoid conflicts with other libraries:

git clone https://github.com/reingart/pyafipws.git
cd pyafipws
python -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt

Run python setup_win.py py2exe to build in windows and "compile" executables. See the GitHub Actions for specific steps and more details.

Just execute pytest to run automated Python tests. For Windows, see tests/powershell directory for Pester tests.

Dependency installation (development):

For SOAP webservices PySimpleSOAP is needed (spin-off of this library, inspired by the PHP SOAP extension):

git clone https://github.com/pysimplesoap/pysimplesoap.git -b stable_py3k
cd pysimplesoap
python setup.py install

Use "stable_py3k" branch reingart (see requirements.txt for more information)

For PDF generation, you will need the PyFPDF (PHP's FPDF library, python port):

git clone https://github.com/reingart/pyfpdf.git
cd pyfpdf
python setup.py install

On Windows, you can see available installers released for evaluation purposes on Download Releases

For more information see the source code installation steps in the wiki

More Repositories

1

pyfpdf

Simple PDF generation for Python (FPDF PHP port)
Python
857
star
2

gui2py

Simple and powerful GUI framework for agile development
Python
69
star
3

pyfiscalprinter

Drivers for invoice/tickets fiscal printers (Epson & Hasar) Argentina - mirror of https://code.google.com/p/pyfiscalprinter/
Python
35
star
4

vb2py

Visual Basic to Python Converter (experimental fork)
Python
32
star
5

rad2py

Rapid Aplication Development platform for python (mirror)
Python
20
star
6

py_efactura_uy

Factura Electronica para DGI (Uruguay) implementación en python
Python
15
star
7

pymotw3

Fork of Doug Hellmann's Python Module of the Week https://bitbucket.org/dhellmann/pymotw-3/
Python
13
star
8

openerp_pyafipws

OpenERP module for Argentina's Electronic Invoicing and related webservices
Python
4
star
9

web2conf

Web2py / Python application for Conference Registration and Management.
Python
4
star
10

pymotw

Python Module of the Week (Spanish Translation)
Python
4
star
11

openerp_pyfiscalprinter

OpenERP module for Argentina's Fiscal Invoicing printers
Python
3
star
12

pypy

clone of https://bitbucket.org/pypy/pypy (Python in Python Implementation)
Python
2
star
13

pyfiscalprinter_googlecode

Automatically exported from code.google.com/p/pyfiscalprinter
Python
1
star
14

erplibre

Automatically exported from code.google.com/p/erplibre
Python
1
star
15

web2conf_googlecode

Automatically exported from code.google.com/p/web2conf
Python
1
star
16

support-tools

Automatically exported from code.google.com/p/support-tools
Python
1
star
17

dbg

Queues(Pipe)-based independent remote client-server Python Debugger
Python
1
star
18

cpython

CPython internationalization proposal
Python
1
star
19

gsoc2014

wxQt proof of concept app for android
Java
1
star
20

pyhtml2pdf

Component to export xhtml2pdf (pisa) conversor for legacy languages / apps
Python
1
star
21

gestionlibre

Automatically exported from code.google.com/p/gestionlibre
Python
1
star