factura-com-library


Namefactura-com-library JSON
Version 0.0.4 PyPI version JSON
download
home_pagehttps://github.com/Lexharden
SummaryLibrería para consumir la API de factura.com para generar facturas fiscales en México.
upload_time2024-02-28 04:39:54
maintainer
docs_urlNone
authorAlexis Yafel Garcia
requires_python
licenseMIT
keywords factura factura.com api facturación electrónica méxico cfdi timbrado
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Factura Com Librería

Librería Python para interactuar con la API de Factura.com.
Mas detalles en [Factura.com](https://factura.com/)
## Instalación

Puedes instalar la librería utilizando pip:

```bash
pip install factura-com-library
```

## Uso/Ejemplos
### Configuracion Inicial
```python
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
```python
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
```python
# 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
```python
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
```python
# 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
```python
# 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í](https://factura.com/apidocs/cancelar-cfdi-40.html)
```python
# Cancelar una factura por su UUID
cancel_result = client.cancel_invoice(cfdi_uuid='55c0fdc67593d', motivo='01', folio_sustituto='3336cbb9-ebd4-45e8-b60b-e7bfa6f6b5e0')
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Lexharden",
    "name": "factura-com-library",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "factura,factura.com,API,facturaci\u00f3n electr\u00f3nica,M\u00e9xico,CFDI,Timbrado",
    "author": "Alexis Yafel Garcia",
    "author_email": "a.yafel10@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/86/39/2613e0d6d943f65800d0853caa8bd1b8a1ddcd3fd9c8e669c2a25aa2f233/factura_com_library-0.0.4.tar.gz",
    "platform": null,
    "description": "# Factura Com Librer\u00eda\n\nLibrer\u00eda Python para interactuar con la API de Factura.com.\nMas detalles en [Factura.com](https://factura.com/)\n## Instalaci\u00f3n\n\nPuedes instalar la librer\u00eda utilizando pip:\n\n```bash\npip install factura-com-library\n```\n\n## Uso/Ejemplos\n### Configuracion Inicial\n```python\nfrom factura_com.api import FacturaComClient\n\napi_key = \"TU_API_KEY\"\nsecret_key = \"TU_SECRET_KEY\"\nsandbox_url = \"https://sandbox.factura.com/api/v4\"\nlive_url = \"https://api.factura.com/api/v4\"\n\nclient = FacturaComClient(api_key, secret_key, url=sandbox_url)\n```\n\nUtilizar la url sandbox para hacer pruebas \u00f3 live para producci\u00f3n.\n\n### Obtener una lista de facturas\n```python\nfrom factura_com.api import FacturaComClient\n\napi_key = \"TU_API_KEY\"\nsecret_key = \"TU_SECRET_KEY\"\nsandbox_url = \"https://sandbox.factura.com/api/v4\"\nlive_url = \"https://api.factura.com/api/v4\"\n\nclient = FacturaComClient(api_key, secret_key, url=sandbox_url)\n\n# Obtener una lista de facturas para un a\u00f1o y RFC espec\u00edficos\n\ninvoice_list = client.get_invoice_list(year=2024, rfc='XAXX010101000')\n\nprint(invoice_list)\n```\n\nObtener todas las facturas pasando como parametro el RFC o A\u00f1o.\nParametros:\n-  month (int, opcional): El n\u00famero de mes que deseas consultar (por ejemplo, 01 para enero).\n- year (int, opcional): El a\u00f1o que deseas consultar (por ejemplo, 2024).\n- rfc (str, opcional): El RFC para filtrar las facturas.\n- type_document (str, opcional): El tipo de CFDI para listar solo las facturas de ese tipo.\n- page (int, opcional): El n\u00famero de p\u00e1gina a consultar. Por defecto, es la p\u00e1gina 1.\n- per_page (int, opcional): El l\u00edmite de resultados por p\u00e1gina. Por defecto, retorna 100 registros.\n\n### Obtener una factura por UID\n```python\n# Obtener una factura por UID\n\ninvoice_by_uid = client.get_invoice_by_uid(uid='55c0fdc67593d')\n\nprint(invoice_by_uid)\n```\n\nObtener una factura en espec\u00edfico pasando como parametro el uid.\n- uid (str): El UID de la factura que se desea obtener.\n\n### Crear una nueva factura versi\u00f3n 4.0\n```python\ninvoice_data = {\n            \"Receptor\": {\n                \"ResidenciaFiscal\": \"\",\n                \"UID\": \"55c0fdc67593d\"\n            },\n            \"TipoDocumento\": \"factura\",\n            \"BorradorSiFalla\": \"1\",\n            \"Draft\": \"1\",\n            \"Conceptos\": [\n                {\n                    \"ClaveProdServ\": \"43232408\",\n                    \"NoIdentificacion\": \"0021\",\n                    \"Cantidad\": \"1.000000\",\n                    \"ClaveUnidad\": \"E48\",\n                    \"Unidad\": \"Unidad de servicio\",\n                    \"Descripcion\": \"Desarrollo web a la medida\",\n                    \"ValorUnitario\": \"15000.000000\",\n                    \"Importe\": \"15000.000000\",\n                    \"Descuento\": \"0\",\n                    \"Impuestos\": {\n                        \"Traslados\": [\n                            {\n                                \"Base\": \"15000.000000\",\n                                \"Impuesto\": \"002\",\n                                \"TipoFactor\": \"Tasa\",\n                                \"TasaOCuota\": \"0.16\",\n                                \"Importe\": \"2400.000000\"\n                            }\n                        ],\n                        \"Retenidos\": [],\n                        \"Locales\": []\n                    }\n                }\n            ],\n            \"UsoCFDI\": \"G01\",\n            \"Serie\": 1247,\n            \"FormaPago\": \"01\",\n            \"MetodoPago\": \"PUE\",\n            \"CondicionesDePago\": \"Pago en 9 meses\",\n            \"CfdiRelacionados\": {\n                \"TipoRelacion\": \"01\",\n                \"UUID\": [\n                    \"29c98cb2-f72a-4cbe-a297-606da335e187\",\n                    \"a96f6b9a-70aa-4f2d-bc5e-d54fb7371236\"\n                ]\n            },\n            \"Moneda\": \"MXN\",\n            \"TipoCambio\": \"19.85\",\n            \"NumOrder\": \"85abf36\",\n            \"Fecha\": \"2020-03-20T12:53:23\",\n            \"Comentarios\": \"El pedido a\u00fan no es entregado\",\n            \"Cuenta\": \"0025\",\n            \"EnviarCorreo\": \"true\",\n            \"LugarExpedicion\": \"12345\"\n        }\n\ncreated_invoice = client.create_invoice_4_0(invoice_data)\n\n```\n\nPrimeramente se tiene que crear un diccionario.\nParametros:\n- invoice_data (dict): Los datos de la factura a crear.\n### Obtener el PDF de una factura\n```python\n# Obtener el PDF de una factura por su UID \u00f3 UUID\npdf_data = client.get_invoice_pdf(cfdi_uuid='55c0fdc67593d')\n```\n\n### Obtener el XML de una factura\n```python\n# Obtener el XML de una factura por su UID \u00f3 UUID\nxml_data = client.get_invoice_xml(cfdi_uuid='55c0fdc67593d')\n```\n\n### Cancelar una factura\nPara tener mas detalles de los tipos de motivo, hacer clic [aqu\u00ed](https://factura.com/apidocs/cancelar-cfdi-40.html)\n```python\n# Cancelar una factura por su UUID\ncancel_result = client.cancel_invoice(cfdi_uuid='55c0fdc67593d', motivo='01', folio_sustituto='3336cbb9-ebd4-45e8-b60b-e7bfa6f6b5e0')\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Librer\u00eda para consumir la API de factura.com para generar facturas fiscales en M\u00e9xico.",
    "version": "0.0.4",
    "project_urls": {
        "Homepage": "https://github.com/Lexharden"
    },
    "split_keywords": [
        "factura",
        "factura.com",
        "api",
        "facturaci\u00f3n electr\u00f3nica",
        "m\u00e9xico",
        "cfdi",
        "timbrado"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "832803e2869a4a99c158461e41ec795af79da92cc7c4533afbf2cd9d36f77a73",
                "md5": "84a9143f13511acc74a91b15a6c297b2",
                "sha256": "de086c15ae56f411a802017bc76d055c840a53a20f23002feda37f9a6ec93b4d"
            },
            "downloads": -1,
            "filename": "factura_com_library-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "84a9143f13511acc74a91b15a6c297b2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 8034,
            "upload_time": "2024-02-28T04:39:52",
            "upload_time_iso_8601": "2024-02-28T04:39:52.643225Z",
            "url": "https://files.pythonhosted.org/packages/83/28/03e2869a4a99c158461e41ec795af79da92cc7c4533afbf2cd9d36f77a73/factura_com_library-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "86392613e0d6d943f65800d0853caa8bd1b8a1ddcd3fd9c8e669c2a25aa2f233",
                "md5": "34942ae834b7adde8e73939d012be577",
                "sha256": "70cfe46efea9bd078a2ef8c3758b63434f9818c143b953123a3f08f0552ce0e9"
            },
            "downloads": -1,
            "filename": "factura_com_library-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "34942ae834b7adde8e73939d012be577",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 7536,
            "upload_time": "2024-02-28T04:39:54",
            "upload_time_iso_8601": "2024-02-28T04:39:54.411133Z",
            "url": "https://files.pythonhosted.org/packages/86/39/2613e0d6d943f65800d0853caa8bd1b8a1ddcd3fd9c8e669c2a25aa2f233/factura_com_library-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-28 04:39:54",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "factura-com-library"
}
        
Elapsed time: 0.21040s