La création d'automatismes est l'une des clés pour gagner en productivité. Les lignes de commande de votre ordinateur permettent non seulement d'effectuer des opérations ponctuelle mais aussi de les répéter à l'infini. Elles ne sont pas réserver à votre seule machine mais sont aussi capables d'interagir avec d'autres machines à partir du moment où ces dernières les y autorisent.
L'application Altoviz met justement des API à votre disposition gratuitement. Ces API permettent d'interagir avec l'application Altoviz, de lui demander des informations autant que de lui en envoyer. Vous pouvez les utiliser pour étendre les fonctionnalités de l'application et répondre ainsi à vos besoins.
Prérequis
Clé d'API
Obtenir une clé d'API
Curl
La commande curl permet d'interagir avec un serveur en utilisant des protocoles standard de l'internet tels que le HTTP et HTTPS.
Elle est disponible sur une grande partie des machines Linux, MacOS et Windows à partir de Windows 10 version 1803.
JQ
La commande JQ permet de manipuler des données au format JSON. C'est ce format qui est utilisé par défaut par les API d'Altoviz. Vous trouverez comment installer JQ sur la page dédiée du projet JQ
Vérification des prérequis
En ligne de commande, vérifiez que les outils sont bien installés et que la clé d'API est fonctionnelle.
Si la commande curl est installée sur votre machine, sont exécution renverra un message suivant :
curl: try 'curl --help' or 'curl --manual' for more information
Si la commande jq est bien installée, elle renverra :
jq - commandline JSON processor [version x.y.z]
Pour tester votre clé d'API, exécutez la commande suivante en prenant soin de bien remplacer xxx par la clé.
curl -H X-API-KEY:xxx https://api.altoviz.com/hello
Vous obtiendrez un résultat sembleble à celui-là :
{"apiKeyName":"Documentation","companyName":"Altoviz"}
Exemple 1 : Export des clients
Voici la ligne de commande à exécuter
curl -H X-API-KEY:xxx https://api.altoviz.com/v1/customers/\?pagesize\=1000 | jq --raw-output 'map({Id:.id,CompanyName:.companyName,FirstName:.firstName,LastName:.lastName,Phone:.phone,CellPhone:.cellPhone,EMail:.email,BillingStreet:.billingAddress.street,BillingZipCode:.billingAddress.zipcode,BillingCity:.billingAddress.city,BillingCountry:.billingAddress.countryIso})|(.[0]|to_entries|map(.key)),(.[]|[.[]])|@csv' > customers.csv
Un fichier customers.csv sera généré dans le répertoire courant.
"Id","CompanyName","FirstName","LastName","Phone","CellPhone","EMail","BillingStreet","BillingZipCode","BillingCity","BillingCountry" 104916,"Auchan supermarché","Fournier","Julien","01 43 57 91 28","--","julien_fournier@intuit.com","1 Rue Abel Rabaud","75011","Paris","FR" 104917,"Auchan supermarché:Duchemol",,,"01458875584","--","julien_fournier@intuit.com","rue Bidule","--","Evreux","FR" 104918,"Auchan supermarché:Toto",,,"01 43 57 91 28","--","julien_fournier@intuit.com","1 Rue Abel Rabaud","75011","Paris","FR" 104919,"Caroline Corbeil",,,"05 55 55 01 14","05 55 55 01 15","ccorbeil@exemple.fr","56 Mont Blanc","88755","Rome","IT" 104920,"Charles Martin",,,"02 55 55 01 14","02 55 55 01 15","charles_fleuriste@exemple.fr","4 allée Jolie","75008","Paris","FR"
Exemple 2 : Export des factures
Voici la ligne de commande à exécuter
curl -H X-API-KEY:xxx https://api.altoviz.com/v1/saleinvoices\?pagesize\=1000 | jq --raw-output 'map({Number:.number,Date:.date,CustomerNumber:.customerNumber,CustomerName:.customerName,TaxExcludedAmount:.taxExcludedAmount,TaxAmount:.taxAmount,TaxIncludedAmount:.taxIncludedAmount,})|(.[0]|to_entries|map(.key)),(.[]|[.[]])|@csv' > invoices.csv
Un fichier invoice.csv sera généré dans le répertoire courant. Voici un exemple de contenu :
"Number","Date","CustomerNumber","CustomerName","TaxExcludedAmount","TaxAmount","TaxIncludedAmount" "FA001002","2023-10-17","C001001","Hey You",60.0,12.0,72.0 "FA001001","2023-10-16","C001004","Test 222",20.0,4.0,24.0 "000002","2023-10-10","C001003","M Mee Loo",30.0,6.0,36.0 "FA001000","2023-10-10","MM003","Mickey Mouse",10.0,2.0,12.0
Ce fichier sera reconnu par votre tableur.