Skip to main content

Librería que consume la API de factura.com para generar facturas fiscales en México.

Project description

Factura Com Librería

Librería Python para interactuar con la API de Factura.com. Hay que registrarse en el sitio web de factura.com para poder obtener el API_KEY y SECRET_KEY.

Más detalles en Factura.com

Instalación

Puedes instalar la librería utilizando pip:

pip install factura-com-cfdi

Uso/Ejemplos

Configuracion Inicial

from factura_com.api import FacturaComClient

api_key = "TU_API_KEY"
secret_key = "TU_SECRET_KEY"
sandbox_url = "https://sandbox.factura.com/api/v4"
live_url = "https://api.factura.com/api/v4"

client = FacturaComClient(api_key, secret_key, url=sandbox_url)

Utilizar la url sandbox para hacer pruebas ó live para producción.

Obtener una lista de facturas

from factura_com.api import FacturaComClient

api_key = "TU_API_KEY"
secret_key = "TU_SECRET_KEY"
sandbox_url = "https://sandbox.factura.com/api/v4"
live_url = "https://api.factura.com/api/v4"

client = FacturaComClient(api_key, secret_key, url=sandbox_url)

# Obtener una lista de facturas para un año y RFC específicos

invoice_list = client.get_invoice_list(year=2024, rfc='XAXX010101000')

print(invoice_list)

Obtener todas las facturas pasando como parametro el RFC o Año. Parametros:

  • month (int, opcional): El número de mes que deseas consultar (por ejemplo, 01 para enero).
  • year (int, opcional): El año que deseas consultar (por ejemplo, 2024).
  • rfc (str, opcional): El RFC para filtrar las facturas.
  • type_document (str, opcional): El tipo de CFDI para listar solo las facturas de ese tipo.
  • page (int, opcional): El número de página a consultar. Por defecto, es la página 1.
  • per_page (int, opcional): El límite de resultados por página. Por defecto, retorna 100 registros.

Obtener una factura por UID

# Obtener una factura por UID

invoice_by_uid = client.get_invoice_by_uid(uid='55c0fdc67593d')

print(invoice_by_uid)

Obtener una factura en específico pasando como parametro el uid.

  • uid (str): El UID de la factura que se desea obtener.

Crear una nueva factura versión 4.0

invoice_data = {
            "Receptor": {
                "ResidenciaFiscal": "",
                "UID": "55c0fdc67593d"
            },
            "TipoDocumento": "factura",
            "BorradorSiFalla": "1",
            "Draft": "1",
            "Conceptos": [
                {
                    "ClaveProdServ": "43232408",
                    "NoIdentificacion": "0021",
                    "Cantidad": "1.000000",
                    "ClaveUnidad": "E48",
                    "Unidad": "Unidad de servicio",
                    "Descripcion": "Desarrollo web a la medida",
                    "ValorUnitario": "15000.000000",
                    "Importe": "15000.000000",
                    "Descuento": "0",
                    "Impuestos": {
                        "Traslados": [
                            {
                                "Base": "15000.000000",
                                "Impuesto": "002",
                                "TipoFactor": "Tasa",
                                "TasaOCuota": "0.16",
                                "Importe": "2400.000000"
                            }
                        ],
                        "Retenidos": [],
                        "Locales": []
                    }
                }
            ],
            "UsoCFDI": "G01",
            "Serie": 1247,
            "FormaPago": "01",
            "MetodoPago": "PUE",
            "CondicionesDePago": "Pago en 9 meses",
            "CfdiRelacionados": {
                "TipoRelacion": "01",
                "UUID": [
                    "29c98cb2-f72a-4cbe-a297-606da335e187",
                    "a96f6b9a-70aa-4f2d-bc5e-d54fb7371236"
                ]
            },
            "Moneda": "MXN",
            "TipoCambio": "19.85",
            "NumOrder": "85abf36",
            "Fecha": "2020-03-20T12:53:23",
            "Comentarios": "El pedido aún no es entregado",
            "Cuenta": "0025",
            "EnviarCorreo": "true",
            "LugarExpedicion": "12345"
        }

created_invoice = client.create_invoice_4_0(invoice_data)

Primeramente se tiene que crear un diccionario. Parametros:

  • invoice_data (dict): Los datos de la factura a crear.

Obtener el PDF de una factura

# Obtener el PDF de una factura por su UID ó UUID
pdf_data = client.get_invoice_pdf(cfdi_uuid='55c0fdc67593d')

Obtener el XML de una factura

# Obtener el XML de una factura por su UID ó UUID
xml_data = client.get_invoice_xml(cfdi_uuid='55c0fdc67593d')

Cancelar una factura

Para tener mas detalles de los tipos de motivo, hacer clic aquí

# Cancelar una factura por su UUID
cancel_result = client.cancel_invoice(cfdi_uuid='55c0fdc67593d', motivo='01', folio_sustituto='3336cbb9-ebd4-45e8-b60b-e7bfa6f6b5e0')

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

factura_com_cfdi-0.0.2.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

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

factura_com_cfdi-0.0.2-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file factura_com_cfdi-0.0.2.tar.gz.

File metadata

  • Download URL: factura_com_cfdi-0.0.2.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.7

File hashes

Hashes for factura_com_cfdi-0.0.2.tar.gz
Algorithm Hash digest
SHA256 f6e58588577a22ae15e7cd2893822d20f044ae7d3eb61b4619773dc5d0f3e285
MD5 719bb14ded4bbbc074c916c6faea4a84
BLAKE2b-256 58f2ce5ce33280fc5244e3e808ead5872b52a1c2d2c83563cbf8f274c0ceeb16

See more details on using hashes here.

File details

Details for the file factura_com_cfdi-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for factura_com_cfdi-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eb812145a7b6d5b27d828d77fe53e759b057ea9f61ac29d646a5aaf490920014
MD5 32b9b0864811f68c0f94e47487e3ef0c
BLAKE2b-256 1c1138d71b0c8f44a3dff3f4f875e71f5a108609e8a4a0b3756f44f3679bdb54

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