Skip to main content

Démarrage rapide

Il y a deux systèmes d'authentification :

Authentification de l'environnement de votre organisation#

Couple de valeur environment-identifier et environment-secret que vous devez mettre dans le Header de toutes vos requêtes

curl "https://api.dunia.app/categories" \
-X GET \
-H 'environment-identifier: ENVIRONMENT_IDENTIFIER' \
-H 'environment-secret: ENVIRONMENT_SECRET'

Authentification d'un user#

Bearer token à mettre dans le Authorization Header pour les requêtes qui concerne l'accès à la ressource User et à celles qui en dependent.

curl "https://api.dunia.app/users/{userId}" \
-X GET \
-H 'environment-identifier: ENVIRONMENT_IDENTIFIER' \
-H 'environment-secret: ENVIRONMENT_SECRET' \
-H 'Authorization: Bearer USER_ACCESS_TOKEN'

Ressources exposées#

users#

Les Users sont les utilisateurs finaux de votre application, ils sont définis par leur uuid et doivent être lié dans votre backend à votre entité User/Client.

transactions#

Les transactions appartiennent à un User. Elle représente une dépense de votre User.

categories#

Les catégories sont la méthode de classification des transactions de Dunia. Elles sont organisées en "arbre", chaque catégorie peut avoir un parent et/ou des enfants.

carbon-statistics#

Ce sont les statistique d'un User. Elles se basent sur les transactions de celui-ci.

Utiliser l'API#

Création d'un User#

Créer un utilisateur ne requiert pas de champs particulier (l'email est optionnel).

Le mot de passe de l'utilisateur est généré aléatoirement et vous sera communiqué en réponse de la requête.

Prenez soin de conserver l'id et le mot de passe, une fois perdu vous ne pourrez plus générer de token d'authentification et n'aurez donc plus accès à la ressource.

Un user est connecté automatiquement à sa création, vous pouvez donc utilisez le token directement pour faire appel aux autres ressources.

curl "https://api.dunia.app/users" \
-X POST \
-H 'environment-identifier: ENVIRONMENT_IDENTIFIER' \
-H 'environment-secret: ENVIRONMENT_SECRET' \
-d $'{
"email": "[email protected]"
}'

Authentification d'un user#

Pour s'authentifier en tant qu'utilisateur, vous devez fournir l'id et le mot de passe. S'il n'y a pas d'erreur, la réponse contiendra le token

Pour effectuer des requêtes en étant authentifié, vous devez ajouter le Bearer d'authentification dans le Authorization Header de la requête.

Un token d'utilisateur est valable 2 heures. Si le token est expiré, l'API vous retournera une erreur 401.

curl "https://api.dunia.app/users" \
-X POST \
-H 'environment-identifier: ENVIRONMENT_IDENTIFIER' \
-H 'environment-secret: ENVIRONMENT_SECRET' \
-d $'{
"id": "USER_ID"
"password": "USER_PASSWORD"
}'

Ajout d'une transaction#

Une transaction requiert au minimum un externalId, un montant et une description (le label bancaire de la transaction), qui va être utilisé pour catégoriser la transaction.

L'id externe est utilisé pour que vous puissiez vous assurez de l'identité de la transaction (Par exemple vérifier qu'elle est bien présente chez vous, qu'elle a été bien créé chez nous, etc)

Vous pouvez forcer la catégorie d'une transaction en précisant le champs 'categoryId' (C'est également possible de mettre à jour la catégorie d'une transaction par la suite)

Par défaut la transaction est en Euro.

curl "https://api.dunia.app/users/{userId}/transactions" \
-X POST \
-H 'environment-identifier: ENVIRONMENT_IDENTIFIER' \
-H 'environment-secret: ENVIRONMENT_SECRET' \
-H 'Authorization: Bearer USER_ACCESS_TOKEN' \
-d $'{
"externalId": "string",
"amount": 0,
"description": "string",
"date": "string",
"categoryId": "string",
"currency": "string"
}'

Ajout d'un batch de transaction#

Les règles sont les mêmes que pour une transaction seule sauf qu'on ne nécessite pas de token par utilisateur.

Pensez bien par contre à créer tous les utilisateurs en premier lieu avant d'ajouter leur transaction en batch.

Il vous sera retourné le nombre de transactions insérées ainsi qu'un mapping des ids internes à Dunia et des ids externes afin que vous puissez savoir lesquelles ont été inséré avec succès.

Taille maximum de la partie data (-d) : 950KB

curl "https://api.dunia.app/transactions" \
-X POST \
-H 'environment-identifier: ENVIRONMENT_IDENTIFIER' \
-H 'environment-secret: ENVIRONMENT_SECRET' \
-d $'[{
"externalId": "string",
"amount": 0,
"description": "string",
"date": "string",
"categoryId": "string",
"currency": "string"
"userId": "string"
}]'