Python client library for Prometeo
Project description
Prometeo Python API Client
This is the official python library for the Prometeo API
Documentation
Complete client documentation is available at Read the docs
Installation
Prerequisites
- Python version 2.7 and 3.5+
- An API Key (contact us to get one!)
Install package
$ pip install prometeo
Quick Start
Get your key
Go to your dashboard, there you'll find your API key. Use it to instantiate the client:
from prometeo import Client
client = Client('<YOUR_API_KEY>', environment='testing')
The environment
argument is either testing
for the sandbox or production
for the production environment.
Listing movements
The following example logs in to the sandboxed bank and retrieves a list of movements
from datetime import datetime
session = client.banking.login(provider='test', username='12345', password='gfdsa')
accounts = session.get_accounts()
account = accounts[0]
print(account.number, ' - ', account.name)
movements = account.get_movements(datetime(2019, 2, 1), datetime(2019, 2, 2))
for movement in movements:
print(movement.detail, movement.debit, movement.credit)
Listing credit card movements
cards = session.get_credit_cards()
card = cards[0]
print(card.number, ' - ', card.name)
movements = card.get_movements('USD', datetime(2019, 2, 1), datetime(2019, 2, 2))
for movement in movements:
print(movement.detail, movement.debit, movement.credit)
Listing all available banks
providers = client.banking.get_providers()
for provider in providers:
print(provider.name, provider.country)
CURP API
Checking the existence of a curp
from prometeo.curp import exceptions
curp = 'ABCD12345EFGH'
try:
result = client.curp.query(curp)
except exceptions.CurpError as e:
print("CURP does not exist:", e.message)
Looking for a CURP by person
from datetime import datetime
from prometeo.curp import exceptions, Gender, State
curp = 'ABCD12345EFGH'
state = State.SINALOA
birthdate = datetime(1988, 3, 4)
name = 'JOHN'
first_surname = 'DOE'
last_surname = 'PONCE'
gender = Gender.MALE
try:
result = client.curp.reverse_query(
state, birthdate, name, first_surname, last_surname, gender
)
except exceptions.CurpError as e:
print("CURP does not exist:", e.message)
DIAN API
Log in
Supply the NIT to log in as a company:
from prometeo.dian import DocumentType
session = client.dian.login(
nit='098765',
document_type=DocumentType.CEDULA_CIUDADANIA,
document='12345',
password='test_password',
)
Or omit it to log in as a person:
from prometeo.dian import DocumentType
session = client.dian.login(
document_type=DocumentType.CEDULA_CIUDADANIA,
document='12345',
password='test_password',
)
Get the data
Company info:
session.get_company_info()
Balances:
session.get_balances()
Rent declaration:
session.get_rent_declaration(2018)
VAT declaration:
from prometeo.dian import Periodicity, QuartlerlyPeriod
session.get_vat_declaration(2019, Periodicity.QUARTERLY, QuartlerlyPeriod.JANUARY_APRIL)
Numeration:
from datetime import datetime
from prometeo.dian import NumerationType
session.get_numeration(NumerationType.Authorization, datetime(2019, 1, 1), datetime(2019, 5, 1))
Retentions:
from prometeo.dian import MonthlyPeriod
session.get_retentions(2019, MonthlyPeriod.NOVEMBER)
SAT API
Login in
from prometeo.sat import LoginScope
session = client.sat.login(
rfc='ABCD1234EFGH',
password='password',
scope=LoginScope.CFDI,
)
Work with CFDI bills
List emitted and received bills
from prometeo.sat import BillStatus
emitted_bills = session.get_emitted_bills(
date_start=datetime(2020, 1, 1),
date_end=datetime(2020, 2, 1),
status=BillStatus.ANY,
)
received_bills = session.get_received_bills(
year=2020,
month=1,
status=BillStatus.ANY,
Bulk download of bills
from prometeo.sat import BillStatus
download_requests = session.download_emitted_bills(
date_start=datetime(2020, 1, 1),
date_end=datetime(2020, 2, 1),
status=BillStatus.ANY,
)
for request in download_requests:
download = request.get_download()
content = download.get_file().read()
Download acknowledgements
from prometeo.sat import Motive, DocumentType, Status, SendType
acks = session.get_acknowledgement(
year=2020,
month_start=1,
month_end=2,
motive=Motive.ALL,
document_type=DocumentType.ALL,
status=Status.ALL,
send_type=SendType.ALL,
)
for ack in acks:
download = ack.download().get_file()
How to run tests
We are using the tox
testing library tox
To run the tests imlpemented inside the tests
folder simply run the following command inside your project:
tox
This will run tests for both python 2 and 3. To restrict the result to only python3 use:
tox -e py3
How to generate HTML documentation
Inside your terminal, move to the /docs
folder (there should be a file named Makefile
), run the following command:
make html
This will generate the HTML files inside the docs/_build
folder.
Notes
-
Do not install
pip install prometeo
package inside the same virtual enviroment where this project is running as it may cause conflicts while running unittest. -
To use the local files insted of the production source code, install it with
pip install prometeo --no-index --find-links file:///srv/pkg/mypackage
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file prometeo-1.2.4.tar.gz
.
File metadata
- Download URL: prometeo-1.2.4.tar.gz
- Upload date:
- Size: 25.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5b622cf78786737e0cf1690219645ea7846170e00d5c0b64cbbbf0b8e819e87 |
|
MD5 | abd6ccf5bac80b1b32a3c1332d6ffe01 |
|
BLAKE2b-256 | d4da245039e4a4175dee4c043bee95ce90e7f86dd0624093b1a5170e4e1fddf8 |
File details
Details for the file prometeo-1.2.4-py3-none-any.whl
.
File metadata
- Download URL: prometeo-1.2.4-py3-none-any.whl
- Upload date:
- Size: 36.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f77ba2926b33ef7734666f5b1e2d2251bb4bcf6e7e3b68409e0ac5eaef5c886 |
|
MD5 | f71e7fcd50e548eaf9040cf4ceb87ca4 |
|
BLAKE2b-256 | 5e84e24bf5d4a5088ad3282b262de9399b841513cd77417b9b918c179bf1539f |