Skip to main content

Read and verify CFDI bills via SAT's web service

Project description

cfdibills

PyPI Latest Release codecov

Utility to parse CFDI (Mexican invoice) versions 3.3 and 4.0 and validate their status against the SAT.

Features

  • Load a CFDI in XML format into a pydantic object
    • CFDIs are validated against the XSD schema, but a thorough check (i.e. conditional values) is not performed.
  • Query the status of a CFDI via SAT's web service
  • DOESN'T REQUIRE additional dependencies to read the XML like libxml2-dev, libxslt-dev

Installation

Run:

pip install cfdibills

Examples

You can load and verify a bill directly from its XML:

import cfdibills

cfdi = cfdibills.read_xml("path/to/bill.xml")
status = cfdibills.verify(cfdi)

Or you can verify it manually:

import cfdibills

status = cfdibills.verify(uuid="folio fiscal", rfc_emisor="re", rfc_receptor="rr", total_facturado=150.00)

In both cases, status would look something like this:

SATConsultaResponse(
    codigo_estatus='S - Comprobante obtenido satisfactoriamente.',
    es_cancelable='Cancelable con aceptación',
    estado='Vigente',
    estatus_cancelacion=None,
    validacion_efos='200',
)

Contributing

This repository uses pre-commit to help developers perform almost the same validations as in the CI pipeline but before having to wait for a Pull-Request. You can set it up using:

pip install -r requirements_dev.txt
pre-commit install

License

Licensed under the GNU LGPLv3 License.

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

cfdibills-0.3.0.tar.gz (25.4 kB view details)

Uploaded Source

File details

Details for the file cfdibills-0.3.0.tar.gz.

File metadata

  • Download URL: cfdibills-0.3.0.tar.gz
  • Upload date:
  • Size: 25.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for cfdibills-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e94a0f95e09e5ed7fe8ef5bb9173fa748436531c2b3cd4a3f7002914b3baeceb
MD5 807cbfc0ca819c427cb3ceedd7bcc473
BLAKE2b-256 81e8f77cc8cb8807f5f0bb76544d9a4a06a28a6c2c471faa17632649eb7a4d48

See more details on using hashes here.

Supported by

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