Grâce à l'API, le logiciel de facturation en ligne est facilement intégrable avec d'autres applications externes (ex: site internet) pour une création automatique de factures et autres documents de facturation - qui peuvent même être envoyées directement par email.
Ci-dessous, nous illustrons des demandes faites avec CURL, qui peut être remplacé par tout autre langage informatique.
Les demandes sont compatibles avec JSON (en changeant le suffixe xml en json) et SSL (en changeant HTTP en HTTPS).
La documentation complète est disponible sur Github: https://github.com/vosfactures/API
Le code API (API_TOKEN) de votre compte VosFactures (YOUR_DOMAIN) est affiché dans les paramètres du compte (Paramètres -> Paramètres du compte -> Intégration -> Code d'autorisation API)
Sélectionner les factures du mois en cours:
XML curl https://YOUR_DOMAIN.vosfactures.fr/invoices.xml?period=this_month&api_token=API_TOKEN"
JSON curl https://YOUR_DOMAIN.vosfactures.fr/invoices.json?period=this_month&api_token=API_TOKEN"
Des paramètres additionnels peuvent être transmis aux appels, ex: page=, period= etc... (Vous pouvez utiliser les mêmes filtres que ceux du moteur de recherche utilisé pour afficher la liste des documents dans le logiciel).
XML curl "https://YOUR_DOMAIN.vosfactures.fr/invoices/100.xml?api_token=API_TOKEN"
JSON curl https://YOUR_DOMAIN.vosfactures.fr/invoices/100.json?api_token=API_TOKEN"
XML curl "https://YOUR_DOMAIN.vosfactures.fr/invoices.xml?oid=nr_zam&api_token=API_TOKEN"
JSON curl "https://YOUR_DOMAIN.vosfactures.fr/invoices.json?oid=nr_zam&api_token=API_TOKEN"
JSON (recommandé)
curl https://YOUR_DOMAIN.vosfactures.fr/invoices.json -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{ "api_token": "API_TOKEN", "invoice": { "kind":"vat", "number": null, "sell_date": "2013-01-16", "issue_date": "2013-01-16", "payment_to": "2013-01-23", "seller_name": "Société Chose", "seller_tax_no": "FR5252445767", "buyer_name": "Client Intel", "buyer_tax_no": "FR45362780010", "positions":[ {"name":"Produit A1", "tax":23, "total_price_gross":10.23, "quantity":1}, {"name":"Produit A2", "tax":0, "total_price_gross":50, "quantity":3} ] } }'
endpoint = 'http://YOUR_DOMAIN.vosfactures.fr/invoices.json' uri = URI.parse(endpoint) json_params = { "api_token" => "API_TOKEN", "invoice" => { "kind" =>"vat", "number" => nil, "sell_date" => "2013-02-07", "issue_date" => "2013-02-07", "payment_to" => "2013-02-14", "seller_name" => "Société Chose", "seller_tax_no" => "FR5252445767", "buyer_name" => "Client Intel", "buyer_tax_no" => "FR45362780010", "positions" =>[ {"name" =>"Produit A1", "tax" =>23, "total_price_gross" =>10.23, "quantity" =>1}, {"name" =>"Produit A2", "tax" =>0, "total_price_gross" =>50, "quantity" =>3} ] }} request = Net::HTTP::Post.new(uri.path) request.body = JSON.generate(json_params) request["Content-Type"] = "application/json" http = Net::HTTP.new(uri.host, uri.port) response = http.start {|h| h.request(request)} if response.code == '201' ret = JSON.parse(response.body) else ret = response.body end puts ret.to_json
Selon un certain client (client_id) et un département vendeur(department_id):
curl http://YOUR_DOMAIN.vosfactures.fr/invoices.json -u 'login:YOUR_PASSWORD -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"api_token": "API_TOKEN", "invoice": { "kind":"vat", "number": null, "sell_date": "2013-02-07", "issue_date": "2013-02-07", "payment_to": "2013-02-14", "department_id": 1, "client_id": 2, "buyer_name": "Client Intel", "buyer_tax_no": "FR45362780010", "positions":[ {"name":"Produit A&", "tax":23, "total_price_gross":10.23, "quantity":1}, {"name":"Produit A2", "tax":0, "total_price_gross":50, "quantity":3} ] }}'
curl http://YOUR_DOMAIN.vosfactures.fr/invoices.xml -u 'login:YOUR_PASSWORD -H 'Accept: application/xml' -H 'Content-Type: application/xml' -d ' vat 2013-02-07 2013-02-07 2013-02-14 Société Chose FR45362780010 Client Intel FR45362780010 Produit A1 23 20 1 Produit A2 0 10 3 '
XML curl -X DELETE "https://YOUR_DOMAIN.vosfactures.fr/invoices/100.xml?api_token=API_TOKEN"
JSON curl -X DELETE "curl -X DELETE "https://YOUR_DOMAIN.vosfactures.fr/invoices/100.json?api_token=API_TOKEN"
curl "https://YOUR_DOMAIN.vosfactures.fr/products.xml?api_token=API_TOKEN&page=1"
curl "https://YOUR_DOMAIN.vosfactures.fr/products/100.xml?api_token=API_TOKEN"
Pour télécharger le formulaire de paiements (sous la forme JS), appeler l'URL:
http://app.vosfactures.fr/a/YOUR_DOMAIN/p/{{token}}.js
où {{token}} est le code d'identification du produit
curl "https://YOUR_DOMAIN.vosfactures.fr/clients.xml?api_token=API_TOKEN&page=1"
curl "https://YOUR_DOMAIN.vosfactures.fr/clients/100.xml?api_token=API_TOKEN"
XML curl "https://YOUR_DOMAIN.vosfactures.fr/payments.xml?api_token=API_TOKEN"
JSON curl "https://YOUR_DOMAIN.vosfactures.fr/payments.json?api_token=API_TOKEN"
XML curl "https://YOUR_DOMAIN.vosfactures.fr/payments/100.xml?api_token=API_TOKEN"
JSON curl "https://YOUR_DOMAIN.vosfactures.fr/payments/100.json?api_token=API_TOKEN"
JSON (recommandé) curl https://YOUR_DOMAIN.vosfactures.fr/payments.json -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{ "api_token": "API_TOKEN", "payment": { "city": null, "client_id":null, "comment":null, "country":null, "currency":"EUR", "deleted":false, "department_id":null, "description":"abonnement", "email":"email@email.fr", "first_name":"Jean", "generate_invoice":true, "invoice_city":"France", "invoice_comment":"", "invoice_country":null, "invoice_id":null, "invoice_name":"Compagnie intel", "invoice_post_code":"06000", "invoice_street":"52 rue des Oranges", "invoice_tax_no":"FR52524457", "last_name":"Valjean", "name":"Paiement pour le produit A1", "oid":"", "paid":true, "paid_date":null, "phone":null, "post_code":null, "price":"100.00", "product_id":1, "promocode":"", "provider":"transfer", "provider_response":null, "provider_status":null, "provider_title":null, "quantity":1, "street":null, "kind": "api" }}'
Plus d'exemples sur https://github.com/vosfactures/api