Releve de compte augmente
​​
​
​
Tags: #qonto #bank #statement #naas_drivers #notification #emailbuilder #asset #scheduler #naas
Author: Florent Ravenel​
Recevez un relevé de compte augmenté par email gratuitement, chaque semaine, grùce à un template Naas.ai (moteur de données opensource, 100 crédits offert par mois). -Durée de l'installation = 5 minutes -Support d'installation = Guide vidéo -Niveau = Facile

Input

Dans cette section, vous trouverez les informations à configurer pour que ce notebook puisse accéder à vos données via l'API Qonto.

Import des librairies

Les libraries sont des outils créé dans le language Python qui permettent le fonctionnement du notebook. Aucune action nécessaire.
1
from naas_drivers import qonto
2
from datetime import datetime, timedelta
3
import pandas as pd
4
import naas
Copied!

Configuration des accĂšs API

👇 Veuillez saisir ci-dessous, entre les guillemets, votre identifiant et votre clĂ© secrĂšte rĂ©cupĂ©rĂ©s sur la plateforme Qonto. Comment rĂ©cupĂ©rer ces accĂšs API ?​
1
QONTO_USER_ID = 'YOUR_USER_ID'
2
QONTO_SECRET_KEY = 'YOUR_SECRET_KEY'
Copied!
1
import naas
2
QONTO_USER_ID = naas.secret.get("QONTO_USER_ID")
3
QONTO_SECRET_KEY = naas.secret.get("QONTO_API_KEY")
Copied!

Configuration de l'email

👇 Veuillez saisir ci-dessous, entre les guillemets, le destinataire de l'email (si vous avez plusieurs destinataires, separez d'une virgule les emails en conservants les guillemets) Vous pouvez aussi changer l'objet de l'email (configuration avancĂ©e)
1
# Destinataire
2
EMAIL_TO = ["[email protected]"]
3
​
4
# Objet de l'email
5
EMAIL_SUBJECT = f"đŸ›ïž Qonto - Votre relevĂ© de compte augmentĂ© du {datetime.now().strftime('%d/%m/%Y')}"
Copied!

Configuration de la période de l'analyse

👇 Veuillez saisir ci-dessous, entre les guillemets, la date de dĂ©but (et la date de fin de votre analyse.
1
# Date de début au format AAAA-MM-JJ
2
DATE_FROM = "2021-01-01"
3
​
4
# Date de fin au format AAAA-MM-JJ (par defaut, c'est la date d'aujoud'hui qui est selectionnée)
5
DATE_TO = datetime.now().strftime("%Y-%m-%d")
6
​
7
# Nombre de jours de rĂ©cupĂ©ration des derniĂšres transactions (doit ĂȘtre un chiffre nĂ©gatif)
8
LAST_TRANSACTIONS = -7
Copied!

Configuration de l'automatisation

Grùce à la formule ci-dessous, le notebook se lancera tous les lundis à 8h. Si vous souhaitez modifier la fréquence d'envoi, vous devez modifier la synthaxe entre guillemets en suivant la documentation officielle CRON (standard internationnal pour la programmation de tùches automatisées)
1
naas.scheduler.add(cron="0 8 * * 1")
Copied!
Configuration des noms de fichiers (avancé)
1
GRAPH_FILE = "graph_account_statement.html"
2
GRAPH_IMG = "graph_account_statement.jpeg"
3
TABLE_FILE = "account_statement.xlsx"
Copied!

Model

Récupération du relevé de compte consolidé

1
# Colonne to consolidate (DATE already included), if empty return only DATE, AMOUNT, POSITION
2
to_group = ["TRANSACTION_ID",
3
"LABEL",
4
"OPERATION_TYPE"]
5
​
6
df_statement = qonto.connect(QONTO_USER_ID, QONTO_SECRET_KEY).statements.get(to_group=to_group,
7
date_from=DATE_FROM,
8
date_to=DATE_TO)
9
df_statement
Copied!

Création du graphique "Evolution de la Trésorerie"

1
barline = qonto.connect(QONTO_USER_ID, QONTO_SECRET_KEY).statements.barline(date_from=DATE_FROM,
2
date_to=DATE_TO)
3
barline
Copied!

Récupération des opérations par type

1
cash_summary = qonto.connect(QONTO_USER_ID, QONTO_SECRET_KEY).statements.summary(summary_type="OPERATION_TYPE",
2
language="FR",
3
date_from=DATE_FROM,
4
date_to=DATE_TO)
5
cash_summary
Copied!

Récupération des derniÚres transactions

1
df_last = qonto.connect(QONTO_USER_ID, QONTO_SECRET_KEY).statements.transactions(date_from=LAST_TRANSACTIONS,
2
date_to=DATE_TO)
3
df_last
Copied!

Calcule du solde courant

1
current_position = round(df_statement['POSITION'].tolist()[-1], 2)
2
current_position
Copied!

Output

Sauvegarde du relevé de compte et partage du fichier Excel

1
df_statement.to_excel(TABLE_FILE)
2
statement_link = naas.asset.add(TABLE_FILE)
Copied!

Sauvegarde et partage du graphique en tant qu'image et page html

1
# Image
2
barline.write_image(GRAPH_IMG)
3
graph_img = naas.asset.add(GRAPH_IMG)
4
​
5
# HTML
6
barline.write_html(GRAPH_FILE)
7
params = {"inline": True}
8
graph_link = naas.asset.add(GRAPH_FILE, params=params)
Copied!

Creation de l'email

1
email_content = qonto.connect(QONTO_USER_ID, QONTO_SECRET_KEY).statements.email(DATE_FROM,
2
DATE_TO,
3
current_position,
4
graph_img,
5
graph_link,
6
cash_summary,
7
LAST_TRANSACTIONS,
8
df_last,
9
statement_link)
Copied!

Envoi de l'email

1
naas.notification.send(EMAIL_TO,
2
EMAIL_SUBJECT,
3
email_content)
Copied!
Copy link
Edit on GitHub