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 3.7
- 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='sandbox')
The environment argument is either sandbox 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.new_session()
session = session.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)
Account Validation API
Validating Account in MX
result = client.account_validation.validate(
account_number="999000000000000014",
country_code="MX"
)
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 implemented 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 prometeopackage 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file prometeo-2.0.10.tar.gz.
File metadata
- Download URL: prometeo-2.0.10.tar.gz
- Upload date:
- Size: 49.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ba1413fd315833833bb9bc5d16d7736f6f849f042c27897dbda1259647848cb
|
|
| MD5 |
0834821cc295a8f43bc10ea991899be7
|
|
| BLAKE2b-256 |
fe400be7425a654e4a8e1bb6197871613ae5e20307091e6a137e270d28ae9f44
|
File details
Details for the file prometeo-2.0.10-py3-none-any.whl.
File metadata
- Download URL: prometeo-2.0.10-py3-none-any.whl
- Upload date:
- Size: 64.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c38818714774e8bad32de04b37a53a172a2dc8684e234e3a72746dd4763be17
|
|
| MD5 |
77845e1d79fbf46311b9fd6e3f8257e9
|
|
| BLAKE2b-256 |
2553e431fbb338c1f05bbcad77f5bd4ace9db2e8e9206acbddc1a45326a9d67a
|