factura-com-cfdi


Namefactura-com-cfdi JSON
Version 0.0.2 PyPI version JSON
download
home_pagehttps://github.com/Lexharden
SummaryLibrería que consume la API de factura.com para generar facturas fiscales en México.
upload_time2024-02-28 21:19:39
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.
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](https://factura.com/)
## Instalación

Puedes instalar la librería utilizando pip:

```bash
pip install factura-com-cfdi
```

## 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-cfdi",
    "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/58/f2/ce5ce33280fc5244e3e808ead5872b52a1c2d2c83563cbf8f274c0ceeb16/factura_com_cfdi-0.0.2.tar.gz",
    "platform": null,
    "description": "# Factura Com Librer\u00eda\r\n\r\nLibrer\u00eda Python para interactuar con la API de Factura.com.\r\nHay que registrarse en el sitio web de factura.com para poder obtener el API_KEY y SECRET_KEY.\r\n\r\nM\u00e1s detalles en [Factura.com](https://factura.com/)\r\n## Instalaci\u00f3n\r\n\r\nPuedes instalar la librer\u00eda utilizando pip:\r\n\r\n```bash\r\npip install factura-com-cfdi\r\n```\r\n\r\n## Uso/Ejemplos\r\n### Configuracion Inicial\r\n```python\r\nfrom factura_com.api import FacturaComClient\r\n\r\napi_key = \"TU_API_KEY\"\r\nsecret_key = \"TU_SECRET_KEY\"\r\nsandbox_url = \"https://sandbox.factura.com/api/v4\"\r\nlive_url = \"https://api.factura.com/api/v4\"\r\n\r\nclient = FacturaComClient(api_key, secret_key, url=sandbox_url)\r\n```\r\nUtilizar la url sandbox para hacer pruebas \u00f3 live para producci\u00f3n.\r\n\r\n### Obtener una lista de facturas\r\n```python\r\nfrom factura_com.api import FacturaComClient\r\n\r\napi_key = \"TU_API_KEY\"\r\nsecret_key = \"TU_SECRET_KEY\"\r\nsandbox_url = \"https://sandbox.factura.com/api/v4\"\r\nlive_url = \"https://api.factura.com/api/v4\"\r\n\r\nclient = FacturaComClient(api_key, secret_key, url=sandbox_url)\r\n\r\n# Obtener una lista de facturas para un a\u00f1o y RFC espec\u00edficos\r\n\r\ninvoice_list = client.get_invoice_list(year=2024, rfc='XAXX010101000')\r\n\r\nprint(invoice_list)\r\n```\r\n\r\nObtener todas las facturas pasando como parametro el RFC o A\u00f1o.\r\nParametros:\r\n-  month (int, opcional): El n\u00famero de mes que deseas consultar (por ejemplo, 01 para enero).\r\n- year (int, opcional): El a\u00f1o que deseas consultar (por ejemplo, 2024).\r\n- rfc (str, opcional): El RFC para filtrar las facturas.\r\n- type_document (str, opcional): El tipo de CFDI para listar solo las facturas de ese tipo.\r\n- page (int, opcional): El n\u00famero de p\u00e1gina a consultar. Por defecto, es la p\u00e1gina 1.\r\n- per_page (int, opcional): El l\u00edmite de resultados por p\u00e1gina. Por defecto, retorna 100 registros.\r\n\r\n### Obtener una factura por UID\r\n```python\r\n# Obtener una factura por UID\r\n\r\ninvoice_by_uid = client.get_invoice_by_uid(uid='55c0fdc67593d')\r\n\r\nprint(invoice_by_uid)\r\n```\r\n\r\nObtener una factura en espec\u00edfico pasando como parametro el uid.\r\n- uid (str): El UID de la factura que se desea obtener.\r\n\r\n### Crear una nueva factura versi\u00f3n 4.0\r\n```python\r\ninvoice_data = {\r\n            \"Receptor\": {\r\n                \"ResidenciaFiscal\": \"\",\r\n                \"UID\": \"55c0fdc67593d\"\r\n            },\r\n            \"TipoDocumento\": \"factura\",\r\n            \"BorradorSiFalla\": \"1\",\r\n            \"Draft\": \"1\",\r\n            \"Conceptos\": [\r\n                {\r\n                    \"ClaveProdServ\": \"43232408\",\r\n                    \"NoIdentificacion\": \"0021\",\r\n                    \"Cantidad\": \"1.000000\",\r\n                    \"ClaveUnidad\": \"E48\",\r\n                    \"Unidad\": \"Unidad de servicio\",\r\n                    \"Descripcion\": \"Desarrollo web a la medida\",\r\n                    \"ValorUnitario\": \"15000.000000\",\r\n                    \"Importe\": \"15000.000000\",\r\n                    \"Descuento\": \"0\",\r\n                    \"Impuestos\": {\r\n                        \"Traslados\": [\r\n                            {\r\n                                \"Base\": \"15000.000000\",\r\n                                \"Impuesto\": \"002\",\r\n                                \"TipoFactor\": \"Tasa\",\r\n                                \"TasaOCuota\": \"0.16\",\r\n                                \"Importe\": \"2400.000000\"\r\n                            }\r\n                        ],\r\n                        \"Retenidos\": [],\r\n                        \"Locales\": []\r\n                    }\r\n                }\r\n            ],\r\n            \"UsoCFDI\": \"G01\",\r\n            \"Serie\": 1247,\r\n            \"FormaPago\": \"01\",\r\n            \"MetodoPago\": \"PUE\",\r\n            \"CondicionesDePago\": \"Pago en 9 meses\",\r\n            \"CfdiRelacionados\": {\r\n                \"TipoRelacion\": \"01\",\r\n                \"UUID\": [\r\n                    \"29c98cb2-f72a-4cbe-a297-606da335e187\",\r\n                    \"a96f6b9a-70aa-4f2d-bc5e-d54fb7371236\"\r\n                ]\r\n            },\r\n            \"Moneda\": \"MXN\",\r\n            \"TipoCambio\": \"19.85\",\r\n            \"NumOrder\": \"85abf36\",\r\n            \"Fecha\": \"2020-03-20T12:53:23\",\r\n            \"Comentarios\": \"El pedido a\u00fan no es entregado\",\r\n            \"Cuenta\": \"0025\",\r\n            \"EnviarCorreo\": \"true\",\r\n            \"LugarExpedicion\": \"12345\"\r\n        }\r\n\r\ncreated_invoice = client.create_invoice_4_0(invoice_data)\r\n\r\n```\r\n\r\nPrimeramente se tiene que crear un diccionario.\r\nParametros:\r\n- invoice_data (dict): Los datos de la factura a crear.\r\n### Obtener el PDF de una factura\r\n```python\r\n# Obtener el PDF de una factura por su UID \u00f3 UUID\r\npdf_data = client.get_invoice_pdf(cfdi_uuid='55c0fdc67593d')\r\n```\r\n\r\n### Obtener el XML de una factura\r\n```python\r\n# Obtener el XML de una factura por su UID \u00f3 UUID\r\nxml_data = client.get_invoice_xml(cfdi_uuid='55c0fdc67593d')\r\n```\r\n\r\n### Cancelar una factura\r\nPara tener mas detalles de los tipos de motivo, hacer clic [aqu\u00ed](https://factura.com/apidocs/cancelar-cfdi-40.html)\r\n```python\r\n# Cancelar una factura por su UUID\r\ncancel_result = client.cancel_invoice(cfdi_uuid='55c0fdc67593d', motivo='01', folio_sustituto='3336cbb9-ebd4-45e8-b60b-e7bfa6f6b5e0')\r\n```\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Librer\u00eda que consume la API de factura.com para generar facturas fiscales en M\u00e9xico.",
    "version": "0.0.2",
    "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": "1c1138d71b0c8f44a3dff3f4f875e71f5a108609e8a4a0b3756f44f3679bdb54",
                "md5": "32b9b0864811f68c0f94e47487e3ef0c",
                "sha256": "eb812145a7b6d5b27d828d77fe53e759b057ea9f61ac29d646a5aaf490920014"
            },
            "downloads": -1,
            "filename": "factura_com_cfdi-0.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "32b9b0864811f68c0f94e47487e3ef0c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 8099,
            "upload_time": "2024-02-28T21:19:37",
            "upload_time_iso_8601": "2024-02-28T21:19:37.394965Z",
            "url": "https://files.pythonhosted.org/packages/1c/11/38d71b0c8f44a3dff3f4f875e71f5a108609e8a4a0b3756f44f3679bdb54/factura_com_cfdi-0.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "58f2ce5ce33280fc5244e3e808ead5872b52a1c2d2c83563cbf8f274c0ceeb16",
                "md5": "719bb14ded4bbbc074c916c6faea4a84",
                "sha256": "f6e58588577a22ae15e7cd2893822d20f044ae7d3eb61b4619773dc5d0f3e285"
            },
            "downloads": -1,
            "filename": "factura_com_cfdi-0.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "719bb14ded4bbbc074c916c6faea4a84",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 7784,
            "upload_time": "2024-02-28T21:19:39",
            "upload_time_iso_8601": "2024-02-28T21:19:39.183364Z",
            "url": "https://files.pythonhosted.org/packages/58/f2/ce5ce33280fc5244e3e808ead5872b52a1c2d2c83563cbf8f274c0ceeb16/factura_com_cfdi-0.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-28 21:19:39",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "factura-com-cfdi"
}
        
Elapsed time: 0.23375s