{"id":19640157,"url":"https://github.com/gearplug/siigo-python","last_synced_at":"2025-07-16T12:10:39.094Z","repository":{"id":214539131,"uuid":"618449447","full_name":"GearPlug/siigo-python","owner":"GearPlug","description":"siigo-python is an API wrapper for Siigo, written in Python","archived":false,"fork":false,"pushed_at":"2023-12-28T20:17:43.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-26T22:44:37.273Z","etag":null,"topics":["accounting","accounts","api","contacts","customer","inventory","products","python","requests","siigo","taxes","wrapper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GearPlug.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-24T13:48:40.000Z","updated_at":"2023-03-24T22:16:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef485dc5-e91a-49b2-88ad-94dc4acd4d83","html_url":"https://github.com/GearPlug/siigo-python","commit_stats":{"total_commits":14,"total_committers":3,"mean_commits":4.666666666666667,"dds":0.2142857142857143,"last_synced_commit":"f59211cae8de2ceba75c56bfe2993546c36ffa6e"},"previous_names":["gearplug/siigo-python"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GearPlug/siigo-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GearPlug%2Fsiigo-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GearPlug%2Fsiigo-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GearPlug%2Fsiigo-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GearPlug%2Fsiigo-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GearPlug","download_url":"https://codeload.github.com/GearPlug/siigo-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GearPlug%2Fsiigo-python/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261782326,"owners_count":23208902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accounting","accounts","api","contacts","customer","inventory","products","python","requests","siigo","taxes","wrapper"],"created_at":"2024-11-11T14:04:50.276Z","updated_at":"2025-06-25T00:31:54.262Z","avatar_url":"https://github.com/GearPlug.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# siigo-python\n![](https://img.shields.io/badge/version-0.1.0-success) ![](https://img.shields.io/badge/Python-3.8%20|%203.9%20|%203.10%20|%203.11-4B8BBE?logo=python\u0026logoColor=white)  \n\n*siigo-python* is an API wrapper for Siigo (accounting software), written in Python\n\n## Installing\n```\npip install siigo-python\n```\n## Usage\n* If you don't have an access token:\n```python\nfrom siigo.client import Client\nclient = Client(email, access_key)\n```\n1. **Generate access token**\n```python\nresponse = client.generate_token()\n```\n2. **Set token**\n```python\nclient.set_token(access_token)\n```\n* If you already have an access token:\n```python\nfrom siigo.client import Client\nclient = Client(token=access_token)\n```\n### Users\n#### - List users\n```python\n# page_size limit = 100\nusers = client.list_users(page_size=25, page=1)\n```\n### Products\n#### - List products\n```python\n# filter options: code, created_start, created_end, updated_start, updated_end, id, page_size, page\n# date formats: 'yyyy-MM-dd' or 'yyyy-MM-ddTHH:mm:ssZ'\n# id: It is possible to filter multiple ids at the same time separated by commas.\n# page_size limit = 100\nproducts = client.list_products(created_start=\"2023-01-01\")\n```\n#### - Create product\n```python\nproduct = client.create_product(\"AAAAA111233\", \"PS6\", 1254, \"Product\")\n# code: must be a unique value\n# account_group: account group id, get list from: list_account_groups()\n# type: options are 'Product', 'Service' or 'ConsumerGood'\n# tax_classification: options are 'Taxed', 'Exempt' or 'Excluded'\n# taxes: list of dictionaries with the following structure:\n#   [{\"id\": \"1234\"}]\n# prices: list of dictionaries with the following structure:\n#   [{\"currency_code\": \"COP\", \"price_list\": [{\"position\": 1,\"value\": 12000}]}]\n# unit: check siigo measure unit codes: https://siigoapi.docs.apiary.io/#reference/productos/crear-producto/crear-producto\n# additional_fields: current options are: barcode, brand, tariff and model. Example:\n#   {\"barcode\": \"B0123\", \"brand\": \"Gef\", \"tariff\": \"151612\", \"model\": \"Loiry\"}\n```\n### Customers\n#### - List customers\n```python\n# filter options: identification, branch_office, created_start, created_end, updated_start, updated_end, page_size, page\n# date formats: 'yyyy-MM-dd' or 'yyyy-MM-ddTHH:mm:ssZ'\n# page_size limit = 100\ncustomers = client.list_customers(created_start=\"2023-01-01\")\n```\n#### - Create customer\n```python\ncustomer = client.create_customer(\n    \"Person\", \n    \"13\", \n    [\"Juan Carlos\", \"Rios\"], \n    [{\"first_name\": \"Juan\", \"last_name\": \"Rios\", \"email\": \"juan.rios@contact.com\",}],\n    [{\"indicative\": \"57\", \"number\": \"3006113345\", \"extension\": \"132\"}],\n    {\n        \"address\": \"Calle 47 Bis A 28-55\",\n        \"city\": {\"country_code\": \"co\", \"state_code\": \"19\", \"city_code\": \"19001\"},\n        \"postal_code\": \"110911\",\n    },\n    \"1019300200\",\n)\n# person_type: options are \"Person\" or \"Company\"\n# id_type: check siigo id types: https://siigoapi.docs.apiary.io/#reference/clientes/crear-cliente/crear-cliente\n# name: if person type is \"Company\" list with just one value, if person type is \"Person\" list with two values\n# contacts: list of dictionaries with the following structure:\n#   [\n#     {\n#     \"first_name\": \"Marcos\",\n#     \"last_name\": \"Castillo\",\n#     \"email\": \"marcos.castillo@contacto.com\", \n#     \"phone\": {\"indicative\": \"57\", \"number\": \"3006003345\", \"extension\": \"132\"}\n#     }\n#   ]\n# phones: list of dictionaries with the following structure:\n#   [{\"indicative\": \"57\", \"number\": \"3006003345\", \"extension\": \"132\"}]\n# address: object with the following structure:\n#   {\n#     \"address\": \"Cra. 18 #79A - 42\",\n#     \"city\": {\"country_code\": \"Co\", \"state_code\": \"19\", \"city_code\": \"19001\"},\n#     \"postal_code\": \"110911\"\n#   }\n# type: options are \"Customer\", \"Supplier\" or \"Other\"\n# fiscal_responsibilities: options are \"R-99-PN\", \"O-13\", \"O-15\", \"O-23\" or \"O-47\"\n# related_users: dictionary with two values \"seller_id\" and \"collector_id\"\n#   Example: {\"seller_id\": 629, \"collector_id\": 629}\n```\n### Invoices\n#### - List invoices\n```python\n# filter options: identification, branch_office, created_start, created_end, updated_start, updated_end, page_size, page\n# date formats: 'yyyy-MM-dd' or 'yyyy-MM-ddTHH:mm:ssZ'\n# page_size limit = 100\ninvoices = client.list_invoices(created_start=\"2023-01-01\")\n```\n#### Create Invoice\n```python\nfv = client.create_invoice(\n    {\"id\": 24446},\n    \"2023-02-02\",\n    {\"identification\": \"1040570645\", \"branch_office\": 0},\n    1018,\n    [{ \"code\": \"DEX6360\", \"description\": \"Shirt\", \"quantity\": 1, \"price\": 8000.00, \"discount\": 0}],\n    [{\"id\": 9485, \"value\": 8000.00, \"due_date\": \"2023-01-01\"}] \n)\n# document: document type id. Dict with the following structure: {\"id\": 24446} \\n\n# date: yyyy-MM-dd format \\n\n# customer: customer identification and branch_office - {\"identification\": \"13832081\", \"branch_office\": 0} \\n\n# seller: seller id \\n\n# items: list of items with the following structure: \\n\n# [\n#     {\n#         \"code\": \"Item-1\", # must be a valid code.\n#         \"description\": \"Camiseta de algodón\",\n#         \"quantity\": 1,\n#         \"price\": 1069.77,\n#         \"discount\": 0,\n#         \"taxes\": [{\"id\": 13156}]\n#     }\n# ] \\n\n# payments: list with the following structure: [{\"id\": 5636, \"value\": 1273.03, \"due_date\": \"2021-03-19\"}] \\n\n# currency: only for foreign exchange currency: {\"code\": \"USD\", \"exchange_rate\": 3825.03} \\n\n# Note: The total payments must be equal to the total invoice.\n```\n### Catalogues\n#### - List group accounts\n```python\ngroups = client.list_group_accounts()\n```\n#### - List taxes\n```python\ntaxes = client.list_taxes()\n```\n#### - List price lists\n```python\nprice_lists = client.list_price_lists()\n```\n#### - List cost centers\n```python\ncost_centers = client.list_cost_centers()\n```\n#### - List document types\n```python\n# options are \"FV\", \"NC\" or \"RC\"\ndoc_types = client.list_document_types(\"FV\")\n```\n#### - List payment types\n```python\n# options are \"FV\", \"NC\" or \"RC\"\npayments = client.list_payment_types(\"FV\")\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgearplug%2Fsiigo-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgearplug%2Fsiigo-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgearplug%2Fsiigo-python/lists"}