FisKit for Python
Official client of the FisKit API: Argentine electronic invoices with ARCA (formerly AFIP) in a single request. No dependencies, Python 3.10 or later.
pip install fiskit
from fiskit import Fiskit, verify_webhook
fiskit = Fiskit() # reads FISKIT_API_KEY
# Your sale id as the key: a retry never issues a second invoice
invoice = fiskit.invoices.create(
{"voucher_type": "invoice_c", "amounts": {"total": 1500}},
idempotency_key="sale-8812",
)
fiskit.invoices.pdf(invoice["id"]) # PDF with ARCA's QR code, as bytes
fiskit.invoices.email(invoice["id"], "customer@example.com")
fiskit.taxpayers.retrieve(30712345671) # name, address and VAT condition of a CUIT
sk_test_... keys issue against ARCA's homologation environment (no fiscal value); sk_live_... keys issue real invoices. Outages and dropped connections are retried with the same idempotency key, generated when you do not pass one. Errors are FiskitError instances with status, type, code, message, param and request_id. verify_webhook(raw_body, headers, secret) checks Standard Webhooks signatures.
Full documentation: https://fiskit.com.ar/developers
Coding with an AI agent? Point it to https://fiskit.com.ar/llms.txt: the API rules, errors and examples in plain text.
Español
Cliente oficial de la API de FisKit: facturas electrónicas de ARCA (ex AFIP) con un solo pedido. Sin dependencias, para Python 3.10 o superior.
pip install fiskit
Tu primera factura
from fiskit import Fiskit
fiskit = Fiskit() # lee FISKIT_API_KEY
# Con el id de tu venta como clave, un reintento nunca duplica la factura
invoice = fiskit.invoices.create(
{"voucher_type": "invoice_c", "amounts": {"total": 1500}},
idempotency_key="venta-8812",
)
print(invoice["number"], invoice["cae"])
Las claves sk_test_... emiten en la homologación de ARCA, sin validez fiscal. Las sk_live_... emiten facturas reales. Las dos se crean en el panel.
Qué podés hacer
fiskit.invoices.retrieve(invoice_id) # estado actual
pdf = fiskit.invoices.pdf(invoice_id) # bytes del PDF con el QR de ARCA
fiskit.invoices.email(invoice_id, "cliente@example.com")
fiskit.taxpayers.retrieve(30712345671) # nombre, domicilio y condición frente al IVA
Si ARCA no responde o se corta la conexión, el cliente reintenta solo con la misma Idempotency-Key. Si no pasás una, se genera automáticamente. Los errores llegan como FiskitError, con status, type, code, message, param y request_id.
Webhooks
from fiskit import verify_webhook
# Flask: usá el cuerpo crudo, antes de parsearlo
@app.post("/webhooks/fiskit")
def webhook():
event = verify_webhook(request.get_data(), request.headers, os.environ["FISKIT_WEBHOOK_SECRET"])
if event["type"] == "invoice.authorized":
... # event["data"]["object"] es la factura
return "", 200
Documentación completa: https://fiskit.com.ar/developers
¿Programás con un agente de IA? Pasale https://fiskit.com.ar/llms.txt: las reglas, errores y ejemplos de la API en texto plano.
Metadata
Release files for fiskit 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| fiskit-0.1.4.tar.gz | 6.9 kB | With provenance | Details for fiskit-0.1.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fiskit-0.1.4-py3-none-any.whl | Python 3 | none | any | Details for fiskit-0.1.4-py3-none-any.whl |
Total release size: 13.0 kB
Release files / fiskit-0.1.4.tar.gz
| Download URL | fiskit-0.1.4.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
68140e05d3a1529531e639031d9e9eb026f9f13900bff55bb0e34f8d075e42ae
|
|
BLAKE2b-256 checksum How to use checksums |
278e257220efcac22a311ba411aff43c09eceb56ee74bf7d09cb17c488550c61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / fiskit-0.1.4-py3-none-any.whl
| Download URL | fiskit-0.1.4-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
004b751334b3017201f0798a4a231408c155d24b4c550627c096aea3afd87e9f
|
|
BLAKE2b-256 checksum How to use checksums |
ef958a8192d6241e55042d434ccb937633ee5356ad16ab409e20d7911e3a5bf3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logSecurity for fiskit 0.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for fiskit-0.1.4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.