├── README.md
├── example.curl
├── example1.php
└── example1.rb
/README.md:
--------------------------------------------------------------------------------
1 | # API du Logiciel de Facturation en ligne VosFactures
2 |
3 |
4 | Intégrer votre site internet ou une application externe avec le logiciel de facturation en ligne [VosFactures](https://vosfactures.fr)
5 |
6 |
7 |
8 | Grâce à l'API de VosFactures, vous pouvez créer automatiquement des factures et autres documents (devis, bon de commande, bon de livraison ...), produits, contacts, ou paiements depuis des applications externes.Par exemple, si vous avez un E-commerce et que vous vendez en ligne depuis votre site internet, vous pouvez via l'API faire en sorte qu'à chaque vente réalisée sur votre site, la facture correspondante soit automatiquement générée sur votre compte VosFactures, et même envoyée directement par email à votre client.
9 | Vous pouvez créer un compte gratuitement sur et tester notre API. Des exemples pratiques de requêtes API sont également disponibles depuis votre compte VosFactures (onglet Paramètres > API) et sur .Les exemples sont basés sur l'interface CURL mais vous pouvez utiliser n'importe quel autre outil. Les requêtes peuvent être envoyées sous format JSON ou XML (il suffit de changer l'extension json par xml). Toutes les requêtes fonctionnent avec SSL. Il est donc conseillé de remplacer http par https en production.
10 |
11 | ## Menu
12 | + [Code API](#token)
13 | + [Documents de facturation - Actions et Champs](#invoices)
14 | + [Paramètres additionnels disponibles pour les téléchargements](#list_params)
15 | + [Documents de facturation - Appels API](#examples)
16 | + [Téléchargement et Envoi](#load)
17 | + [Télécharger la liste de factures du mois en cours](#download)
18 | + [Télécharger la liste de factures d'une période donnée](#downloadmore)
19 | + [Télécharger les dernières factures modifiées](#downloadmore2)
20 | + [Télécharger la liste de factures avec les produits listés](#downloadpdt)
21 | + [Télécharger les factures d'un client](#downloadclient)
22 | + [Télécharger un document (ex: facture) par son numéro d'ID](#downloadid)
23 | + [Télécharger un document par son numéro](#downloadnr)
24 | + [Télécharger les documents liés à un document donné](#download_id)
25 | + [Télécharger les documents créés à partir d'un document donné](#download_from)
26 | + [Télécharger sous format PDF](#downloadpdf)
27 | + [Télécharger sous format PDF avec codes-barres](#downloadpdfean)
28 | + [Télécharger les pièces jointes d'une facture dans un fichier ZIP](#filezip)
29 | + [Remarques : Paiement en ligne. Marge d'un document](#notedoc)
30 | + [Envoyer une facture par email](#send)
31 | + [Liens vers l'aperçu de la facture et le téléchargement en PDF](#view_url)
32 | + [Création](#issue)
33 | + [Créer un nouveau document](#create)
34 | + [Créer une nouvelle facture (version rapide)](#create2)
35 | + [Créer une facture avec réduction](#create3a)
36 | + [Créer une facture avec sous-total](#create3b)
37 | + [Créer une facture avec ligne de texte](#create3c)
38 | + [Créer une facture avec une prime CEE](#create3cee)
39 | + [Créer une facture en autoliquidation](#create3d)
40 | + [Créer une facture pour une vente OSS](#create3e)
41 | + [Créer un document similaire (ex: devis -> facture , facture -> facture)](#create4)
42 | + [Créer une facture d'acompte](#create5)
43 | + [Créer une facture de solde](#create6)
44 | + [Créer une facture d'avoir (partielle)](#credit)
45 | + [Créer une facture d'avoir (totale)](#credittotal)
46 | + [Créer une facture à compléter](#completed)
47 | + [Créer une facture d'achat (dépense)](#expense)
48 | + [Modification et Suppression](#edit)
49 | + [Modifier une facture](#update)
50 | + [Modifier un produit listé sur une facture](#update2)
51 | + [Supprimer un produit listé sur une facture](#update3)
52 | + [Ajouter un produit sur une facture](#update4)
53 | + [Changer l'état d'une facture](#status)
54 | + [Ajouter une pièce jointe à une facture](#file)
55 | + [Supprimer une facture](#deleteinvoice)
56 | + [Annuler une facture](#cancelinvoice)
57 | + [Récurrences](#recurrences)
58 | + [Télécharger la liste des récurrences](#downloadrecurring)
59 | + [Créer une nouvelle récurrence](#createrecurring)
60 | + [Modifier une récurrence existante](#updaterecurring)
61 | + [Relances](#reminders)
62 | + [Télécharger la liste des relances d'une facture donnée](#downloadreminders)
63 | + [Télécharger la liste des relances pour une période donnée](#downloadreminders2)
64 | + [Département vendeur](#department)
65 | + [Créer un département](#departadd)
66 | + [Modifier un département](#departupdate)
67 | + [Télécharger la liste des départements](#departlist)
68 | + [Obtenir un département selon ID](#departID)
69 | + [Supprimer un département selon ID](#departdelete)
70 | + [Ajouter un logo à un département](#departlogo)
71 | + [Remarque : Champs](#departnote)
72 | + [Contacts](#clients)
73 | + [Champs](#noteclient)
74 | + [Télécharger la liste des contacts](#client)
75 | + [Télécharger les derniers contacts modifiés](#client2)
76 | + [Obtenir un contact selon son ID](#clientID)
77 | + [Obtenir un contact selon le "Réf/code client"](#externalclientID)
78 | + [Obtenir un contact selon son N° d'identification fiscale](#clienttax)
79 | + [Obtenir un contact selon son nom](#clientname)
80 | + [Obtenir un contact selon son nom d'usage](#clientshortname)
81 | + [Obtenir un contact selon son adresse email](#clientemail)
82 | + [Remarque](#noteclient1)
83 | + [Créer un contact](#addclient)
84 | + [Modifier un contact](#updateclient)
85 | + [Supprimer un contact](#deleteclient)
86 | + [Fusionner des contacts](#mergeclient)
87 | + [Produits](#products)
88 | + [Télécharger les produits](#productlist)
89 | + [Télécharger les produits et quantités par entrepôt](#warehouse)
90 | + [Obtenir un produit par son ID](#productID)
91 | + [Obtenir un produit et quantité par son ID par entrepôt](#warehouseID)
92 | + [Créer un produit](#productadd)
93 | + [Créer un produit lot](#productaddlot)
94 | + [Modifier un produit](#productupdate)
95 | + [Remarque: Champs](#noteproduct)
96 | + [Multi-Tarifs](#tarifs)
97 | + [Télécharger la liste des Tarifs](#tarifs1)
98 | + [Créer un Tarif](#tarifs2)
99 | + [Modifier un Tarif](#tarifs3)
100 | + [Supprimer un Tarif](#tarifs4)
101 | + [Facturer avec un Tarif](#tarifs5)
102 | + [Catégories](#categorie)
103 | + [Télécharger la liste des catégories](#categorielist)
104 | + [Obtenir une catégorie selon son ID](#categorieID)
105 | + [Créer une catégorie](#categorienew)
106 | + [Modifier une catégorie](#categorieupdate)
107 | + [Supprimer une catégorie avec l'ID donné](#categoriedelete)
108 | + [Gestion de Stock](#stock)
109 | + [Documents de stock](#warehouse_documents)
110 | + [Télécharger les documents de stock](#wd1)
111 | + [Télécharger les documents de stock d'une période donnée](#wd1bis)
112 | + [Obtenir un document de stock par son ID](#wd2)
113 | + [Créer un bon d'entrée (BE)](#wd3)
114 | + [Créer un bon de livraison (BL)](#wd4)
115 | + [Créer un bon de transfert (BT)](#wd4t)
116 | + [Créer un bon d'entrée (BE) pour un contact, département, ou produit existant](#wd5)
117 | + [Modifier un document de stock](#wd6)
118 | + [Supprimer un document de stock](#wd7)
119 | + [Entrepôts](#warehouse)
120 | + [Liste des entrepôts](#warehouselist)
121 | + [Téléchargement de l'entrepôt sélectionné par son ID](#warehouseID)
122 | + [Créer un entrepôt](#warehousenew)
123 | + [Modifier un entrepôt](#warehouseupdate)
124 | + [Supprimer un entrepôt sélectionné par son ID](#warehousedelete)
125 | + [Opérations des stocks](#warehouseaction)
126 | + [Télécharger la liste des opérations](#warehouseactionlist)
127 | + [Paramètres additionnels de téléchargement](#warehouseactionpara)
128 | + [Paiements](#paiements)
129 | + [Champs disponibles](#paiementschamps)
130 | + [Télécharger la liste des Paiements](#paiementslist)
131 | + [Télécharger la liste des Paiements avec les factures liées](#paiementsinvoices)
132 | + [Télécharger la liste des Paiements d'une facture donnée](#paiementsinvoice)
133 | + [Obtenir un paiement par son ID](#paiementsid)
134 | + [Ajouter un nouveau paiement](#paiementsadd)
135 | + [Ajouter un nouveau paiement à plusieurs factures](#paiementsadd2)
136 | + [Modifier un paiement](#updatepayment)
137 | + [Supprimer un paiement](#deletepayment)
138 | + [Gestion des Comptes](#accountsystem)
139 | + [Créer un compte](#accountsystem1)
140 | + [Télécharger les informations d'un compte](#accountsystem2)
141 | + [Supprimer un compte](#accountsystem3)
142 | + [Créer un utilisateur](#usersystem)
143 | + [Connexion via API](#connect)
144 | + [Webhooks](#webhooks)
145 | + [Exemples : CURL, PHP, Ruby](#exemples)
146 |
147 |
148 |
149 |
150 |
151 |
152 | # Code API
153 |
154 | Le code API (`API_TOKEN`) de votre compte VosFactures est affiché dans les paramètres de votre compte:
155 | "Paramètres -> Paramètres du compte -> Intégration -> Code d'autorisation API".
156 | Le code API est du type "qCedKxkTgQhGJpiI2SU".
157 | Dans tous les exemples suivants, l'url votrecompte.vosfactures.fr est à remplacer avec l'url de votre propre compte.
158 |
159 |
160 |
161 | # Documents de facturation : Actions et Champs
162 |
163 | ## Actions
164 |
165 | * `GET /invoices/1.json` télécharge le document
166 | * `POST /invoices.json` ajoute un nouveau document
167 | * `PUT /invoices/1.json` met à jour le document
168 | * `DELETE /invoices/1.json` supprime le document
169 |
170 |
171 | Exemple - Vous pouvez ajouter une nouvelle facture (ou autre) en complétant seulement les champs obligatoires (version minimale): si seuls les ID du produit (`product_id`), de l'acheteur (`buyer_id`) et du vendeur (`department_id`) sont indiqués, la facture créée sera datée du jour et aura une date limite de règlement de 5 jours. Le champ `department_id` représente l'ID du département vendeur (depuis Paramètres > Compagnies/Départments, cliquez sur le nom de la compagnie/département pour visualiser l'ID dans l'url affiché). Si aucun "department_id" n'est renseigné, le département principal sera choisi.
172 | ```shell
173 | curl https://votrecompte.vosfactures.fr/invoices.json
174 | -H 'Accept: application/json'
175 | -H 'Content-Type: application/json'
176 | -d '{"api_token": "API_TOKEN",
177 | "invoice": {
178 | "payment_to_kind": 5,
179 | "department_id": 1,
180 | "client_id": 1,
181 | "positions":[
182 | {"product_id": 1, "quantity":2}
183 | ]
184 | }}'
185 | ```
186 |
187 | ## Champs des documents de facturation
188 |
189 | ```shell
190 | "number" : "13/2012" - numéro du document (généré automatiquement si non indiqué)
191 | "kind" : "vat" - type du document : "vat" pour facture, "correction" pour avoir, "receipt" pour reçu, "advance" pour facture d'acompte, "final" pour facture de solde, "invoice_other" pour autre type de document comptable, "estimate" pour devis, "proforma" pour facture proforma, "client_order" pour bon de commande client, "maintenance_request" pour bon d'intervention, "payment_receipt" pour reçu de paiment, "kw" pour versements en espèces, "kp" pour reçus en espèces.
192 | "income" : "1" - revenu (1) ou dépense (0)
193 | "user_id" : "" - numéro ID de l'utilisateur ayant créé le document (en cas de compte Multi-utilisateurs : https://aide.vosfactures.fr/2703898-Multi-utilisateurs-cr-ation-fonctions-et-restrictions)
194 | "issue_date" : "2013-01-16" - date de création
195 | "place" : "Paris" - lieu de création
196 | "sell_date" : "2013-01-16" - date additionnelle (ex: date de vente) : date complète ou juste mois et année:YYYY-MM. Pour ne pas faire apparaître cette date, indiquez "off" (ou décochez l'option "Afficher la Date additionnelle" depuis vos paramètres du compte).
197 | "test" : "true" ou "false" - document test ou non (en savoir plus ici: https://aide.vosfactures.fr/15399051-Cr-er-un-Document-ou-Paiement-Test)
198 | "category_id" : "" - ID ou Nom de la catégorie : le système va d'abord regarder si la valeur renseignée correspond à un n° ID d'une catégorie existante, et ensuite à un Nom d'une catégorie existante. Si aucune valeur ne correspond, le système va créer une nouvelle catégorie.
199 | "department_id" : "1" - ID du département vendeur (depuis Paramètres > Compagnies/Départments, cliquer sur le nom de la compagnie/département pour visualiser l'ID dans l'url affiché). Le système affichera alors automatiquement les coordonnées du département vendeur (nom, adresse...) sur le document (les autres champs "seller_" ne sont plus nécessaires).
200 | "seller_name" : "Ma Société" - Nom du département vendeur. Si ce champ n'est pas renseigné, le département principal est sélectionné par défaut. Préférez plutôt "department_id". Si vous utilisez toutefois "seller_name", le système tentera d'identifier le département portant ce nom, sinon il créera un nouveau département.
201 | "seller_tax_no" : "FR5252445767" - numéro d'identification fiscale du vendeur (ex: n° TVA)
202 | "seller_tax_no_kind" : "", - initulé du numéro d'identification du vendeur : si non renseigné, il s'agit de "Numéro TVA", sinon il faut spécifier l'intitulé préalablement listé dans vos paramètres du compte, comme par exemple "SIREN" ou "CIF" (en savoir plus ici: https://aide.vosfactures.fr/1802938-Num-ro-d-identification-fiscale-de-votre-entreprise-TVA-SIREN-IDE-CIF-)
203 | "seller_bank_account" : "24 1140 1977 0000 5921 7200 1001" - coordonnées bancaires du vendeur
204 | "seller_bank" : "CREDIT AGRICOLE" - domiciliation bancaire
205 | "seller_bank_swift" : "" - code bancaire BIC. Attention, en json vous devez envoyer ce paramètre comme ceci: "additional_fields": {"seller_bank_swift":"BIC"} lors de la création d'un document de facturation.
206 | "seller_post_code" : "75007" - code postal du vendeur
207 | "seller_city" : "Paris" - ville du vendeur
208 | "seller_street" : "21 Rue des Mimosas" - numéro et nom de rue du vendeur
209 | "seller_country" : "" - pays du vendeur (ISO 3166)
210 | "seller_email" : "contact@chose.com" - email du vendeur
211 | "seller_www" : "" - site internet du vendeur
212 | "seller_fax" : "" - numéro de fax du vendeur
213 | "seller_phone" : "" - numéro de tel du vendeur
214 | "seller_person" : "" - Nom du vendeur (figurant en bas de page des documents)
215 | "client_id" : "-1" - ID du contact (si la valeur est -1 alors le contact sera créé et ajouté à la liste des contacts)
216 | "buyer_name" : "Client Untel" - nom du contact (acheteur en cas de vente ou fournisseur en cas d'achat)
217 | "buyer_first_name" : "Prénom" du contact
218 | "buyer_last_name" : "Nom" du contact
219 | "buyer_company": "1" - si le contact est un professionnel, "0" si c'est un particulier
220 | "buyer_title" : Civilité du contact. Attention, en json vous devez envoyer ce paramètre comme ceci: "additional_fields": {"buyer_title"":"Mme"} lors de la création d'un document de facturation.
221 | "buyer_tax_no" : "FR45362780010" - numéro d'identification fiscale du contact (ex: n° TVA)
222 | "buyer_tax_no_kind" : "", - intitulé du numéro d'identification du contact : si non renseigné, il s'agit de "Numéro TVA", sinon il faut spécifier l'intitulé préalablement listé dans vos paramètres du compte, comme par exemple "SIREN" ou "CIF" (en savoir plus ici: https://aide.vosfactures.fr/19032497-Num-ro-d-identification-fiscale-des-contacts)
223 | "disable_tax_no_validation" : ""
224 | "use_oss" (précédemment "use_moss"): "" - document à identifier comme une vente "OSS" (true) ou non (false) car les conditions s'appliquent (= vente B2C avec la TVA du pays d'un acheteur européen non assujetti). En savoir plus ici: https://aide.vosfactures.fr/96973539-E-Commerce-TVA-OSS
225 | "identify_oss" : "true" - document automatiquement identifié par le logiciel comme une vente "OSS" si les conditions s'appliquent.
226 | "force_tax_oss" : "true" - document identifié par le logiciel comme une vente "OSS" peu importe les taux de taxe envoyés si la condition d'un acheteur européen non assujetti s'applique.
227 | "reverse_charge" : "true" - document identifié comme soumis à autoliquidation ("true") ou non ("false") : correspond à l'option "Autoliquidation" qui, si cochée sur un document, supprime la colonne taxe (montant HT uniquement) et affiche la mention d'autoliquidation. En savoir plus ici : https://aide.vosfactures.fr/11598606-Facturer-en-Autoliquidation-de-TVA
228 | "buyer_post_code" : "06000" - code postal du contact
229 | "buyer_city" : "Nice" - ville du contact
230 | "buyer_street" : "44 Rue des Plans" - numéro et nom de rue du contact
231 | "buyer_country" : "" - pays du contact (ISO 3166)
232 | "buyer_note" : "", description additionnelle du contact
233 | "delivery_address" : "" - contenu du champ "Adresse supplémentaire" du contact
234 | "use_delivery_address": "true" ou "false" - afficher ou non le champ "Adresse supplémentaire" du contact sur le document
235 | "buyer_email" : "" - email(s) du contact
236 | "email_for_reminders": "" - email(s) de relance du contact
237 | "buyer_phone" : "" - numéro de tel du contact
238 | "buyer_mobile_phone" : "" - numéro de portable du contact
239 | "additional_info" : "0" - afficher (1) ou non (0) la colonne aditionnelle sur le document de facturation (dont l'intitulé est à définir dans Paramètres du compte > Options par défaut)
240 | "additional_info_desc" : "" - contenu de la colonne aditionnelle (contenu que vous retrouvez sur la fiche du produit correspondant)
241 | "additional_invoice_field" : "" - contenu du champ additionnel (dont l'intitulé est à définir dans Paramètres du compte > Options par défaut). Attention, en json vous devez envoyer ce paramètre comme ceci: "additional_fields": {"additional_invoice_field":"contenu"} lors de la création d'un document de facturation.
242 | "show_discount" : "0" - afficher (1) ou non (0) la colonne réduction
243 | "discount_kind": "" - type de réduction: "amount" (pour un montant ttc), "percent_unit" (pour un % sur le prix unitaire ht), "percent_unit_gross" (pour un % sur le prix unitaire ttc)ou "percent_total" (pour un % calculé sur le prix total)
244 | "payment_type" : "card" - mode de règlement. Les valeurs par défaut disponibles sont listées plus bas dans le paragraphe "Valeurs des Champs".
245 | "payment_to_kind" : "5" - date limite de règlement (parmi les options proposées). Si vous indiquez "5", la date d'échéance est de 5 jours. Si l'option est "Autre" ("other_date"), vous pouvez définir une date spécifique grâce au champ "payment_to". Pour ne pas afficher ce champ, indiquez "off".
246 | "payment_to" : "2013-01-16" - date limite de règlement
247 | "sum_recovery" : "client_particulier" - afficher (client_professionnel) ou non (client_particulier) la mention "Indemnité forfaitaire de recouvrement". Attention, en json vous devez envoyer ce paramètre comme ceci: "additional_fields": {"sum_recovery":"client_professionnel"} lors de la création d'un document de facturation.
248 | "interest_rate" : "10%" - Taux de pénalité en cas de retard de paiement (attention, en json vous devez envoyer ce paramètre comme ceci: "additional_fields": {"interest_rate":"10%"} lors de la création d'un document de facturation.
249 | "advanced_payment_discount": "" - Escompte en % (attention, en json vous devez envoyer ce paramètre comme ceci: "additional_fields": {"advanced_payment_discount":"10"} lors de la création d'un document de facturation)
250 | "status" : "Créé" - état du document
251 | "paid" : "0,00" - montant payé
252 | "paid_from" et "paid_to" - "Payé à partir du" et "Payé jusqu'au" : paramètres renvoyés lors du téléchargement d'une facture
253 | "oid" : "10021" - numéro de commande (ex: numéro généré par une application externe)
254 | "oid_unique": si la valeur est "yes", alors il ne sera pas permis au système de créer 2 factures avec le même OID (cela peut être utile en cas de synchronisation avec une boutique en ligne)
255 | "warehouse_id" : "1090" - numéro d'identification de l'entrepôt
256 | "paid_date" : "" - Date du paiement ("Paiement reçu le")
257 | "currency" : "EUR" - devise
258 | "lang" : "fr" - langue du document
259 | "exchange_currency" : "USD" - convertir en (la conversion en une autre devise du montant total et du montant de la taxe selon taux de change du jour)
260 | "exchange_kind" : "" - Source du taux de change utilisé en cas de conversion ("ecb" pour la Banque Centrale Européenne, "nbp" pour la Banque Nationale de Pologne, "cbr" pour la Banque Centrale de Russie, "nbu" pour la Banque Nationale d'Ukraine, "nbg" pour la Banque Nationale de Géorgie, "nbt" Banque Nationale Tchèque, "own" pour un taux propre)
261 | "exchange_currency_rate" : "" - Taux de change personnalisé (à utiliser uniquement si le paramètre "exchange_kind" est égal à "own")
262 | "title" : "" - Objet (attention, en json vous devez envoyer ce paramètre comme ceci: "additional_fields": {"title":"contenu de l'objet"} lors de la création d'un document de facturation).
263 | "description":"" - Informations spécifiques
264 | "conditional_notes" : "" - Mentions spécifiques (ajoutées automatiquement selon les critères définis dans les Paramètres du compte (https://aide.vosfactures.fr/109954556-Ventes-en-ligne-Mentions-sp-cifiques)
265 | "description_long" : "" - Texte additionnel (imprimé sur la page suivante)
266 | "prevent_default_description_long" : true - ne pas faire apparaître le texte additionnel
267 | "internal_note" : "" - Notes privées
268 | "invoice_template_id" : "1" - format d'impression
269 | "from_invoice_id" : "" - ID du document à partir duquel le document a été généré (utile par ex quand une facture est générée depuis un devis)
270 | "invoice_id" : "" - ID du document de référence ayant un lien fonctionnel avec le document (ex: le devis de référence pour un acompte).
271 | "positions":
272 | "product_id" : "1" - ID du produit
273 | "name" : "Produit A" - nom du produit
274 | "description" : "" - description du produit
275 | "code" : "" - Référence du produit
276 | "additional_info" : "" - contenu de la colonne additionnelle
277 | "discount_percent" : "" - % de la réduction
278 | "discount" : "" - montant ttc de la réduction
279 | "quantity" : "1" - quantité
280 | "quantity_unit" : "kg" - unité
281 | "price_net" : "59,00", - prix unitaire HT (calculé automatiquement si non indiqué)
282 | "tax" : "23" - % de taxe (les valeurs "disabled" ou "np" rendent la taxe inactive)
283 | "price_gross" : "72,57" - prix unitaire TTC (calculé automatiquement si non indiqué)
284 | "total_price_net" : "59,00" - total HT (calculé automatiquement si non indiqué)
285 | "total_price_gross" : "72,57" - total TTC
286 | "kind":"text_separator" - pour insérer une ligne de texte (voir exemple plus bas)
287 | "kind":"subtotal" - pour insérer un sous-total (voir exemple plus bas)
288 | "hide_tax" : "1" - Montant TTC uniquement (ne pas afficher de montant HT ni de taxe) (attention, en json vous devez envoyer ce paramètre comme ceci: "additional_fields": {"hide_tax":"1"} lors de la création d'un document de facturation)
289 | "tax_split": "" - résumé des différents taux de taxe : paramètres renvoyés lors du téléchargement d'une facture
290 | "calculating_strategy" :
291 | {
292 | "position": "default" ou "keep_gross" - Comment se calcule le total de chaque ligne
293 | "sum": "sum" ou "keep_gross" ou "keep_net" - Comment se calcule le total des colonnes
294 | "invoice_form_price_kind": "net" ou "gross" - prix unitaire (HT ou TTC)
295 | }
296 | "split_payment": "1" - 1 ou 0 selon que la facture fait ou non l'objet d'un paiement partiel
297 | "corrected_content_before": "" - contenu à corriger (champ disponible lors de la création de facture d'avoir)
298 | "corrected_content_after": "" - contenu corrigé (champ disponible lors de la création de facture d'avoir)
299 | ```
300 | Remarque: Le paramètre "calculating_strategy" correspond aux options de méthode de calcul, paramétrables par défaut depuis Paramètres > Paramètres du compte > Options par défaut > Section Montants, et également depuis le formulaire de création de chaque document de facturation. Si vous souhaitez utiliser le paramètre "calculating_strategy", il faut obligatoirement envoyer les 3 valeurs: "position", "sum" et "invoice_form_price_kind".
301 |
302 | Valeurs des Champs
303 |
304 | Champ: `kind`- Type du document
305 | ```shell
306 | "vat" - facture
307 | "advance" - facture d'acompte
308 | "final" - facture de solde
309 | "correction" - facture d'avoir
310 | "receipt" - reçu
311 | "invoice_other" - Autre type de facture
312 | "estimate" - devis
313 | "client_order" - bon de commande
314 | "maintenance_request" - bon d'intervention
315 | "proforma" - facture Proforma
316 | "payment_receipt" - reçu de paiement
317 | "kp" - bon d'entrée de caisse
318 | "kw" - bon de sortie de caisse
319 | ```
320 |
321 | Champ: `test` - Document Test
322 | ```shell
323 | "true" - document test
324 | "false" - document non test
325 |
326 | ```
327 |
328 | Champ: `lang`
329 | ```shell
330 | "en" - Anglais
331 | "de" - Allemand
332 | "fr" - Français
333 | "el" - Grec
334 | "es" - Espagnol
335 | "it" - Italien
336 | "nl" - Hollandais
337 | "cz" - Tchèque
338 | "hr" - Croate
339 | "pl" - Polonais
340 | "hu" - Hongrois
341 | "sk" - Slovaque
342 | "sl" - Slovène
343 | "et" - Estonien
344 | "ru" - Russe
345 | "cn" - Chinois
346 | "ar" - Arabe
347 | "tr" - Turc
348 | "fa" - Persan
349 |
350 | Vous pouvez créer des documents en bilingue en combinant deux langues séparées par un slash, par exemple:
351 | "en / fr" - en anglais et en français
352 | ```
353 |
354 |
355 | Champ: `income`- facture de vente ou d'achat
356 | ```shell
357 | "1" - revenu (vente)
358 | "0" - dépense (achat)
359 | ```
360 |
361 | Champ: `payment_type`- Mode de règlement
362 | ```shell
363 | "transfer" - virement bancaire
364 | "card" - carte bancaire
365 | "cash" - espèce
366 | "cheque" - chèque
367 | "paypal" - PayPal
368 | "lcr" - LCR Lettre de Change Relevé
369 | "off" - aucun (ne pas afficher)
370 | "any_other_text_entry" - autre
371 | ```
372 |
373 | Champ: `status`- Etat
374 | ```shell
375 | "issued" - Créé
376 | "sent" - Envoyé
377 | "paid" - Payé
378 | "partial" - Payé en partie
379 | "rejected" - Refusé
380 | "accepted" - Accepté
381 | ```
382 |
383 | Champ: `discount_kind` - Type de réduction
384 | ```shell
385 | "percent_unit" - % calculé sur le prix unitaire ht
386 | "percent_unit_gross" - % sur le prix unitaire ttc
387 | "percent_total" - % calculé sur le montant total
388 | "amount" - montant
389 | ```
390 |
391 |
392 |
393 | # Paramètres additionnels des téléchargements (filtres)
394 |
395 | Des paramètres additionnels peuvent être transmis aux appels, ex: `page=`, `period=` etc... En effet vous pouvez utiliser les mêmes filtres que ceux du module de recherche proposé par le logiciel pour affiner les listes des documents/contacts/produits/paiements.
396 |
397 | Le paramètre `page =` vous permet de parcourir des enregistrements paginés.
398 | Par défaut, il prend la valeur `1` et affiche les N premiers enregistrements - N étant défini par le paramètre `per_page =` (valeur maximale 100) qui correspond à nombre maximal d’enregistrements retournés par page. Pour obtenir N autres enregistrements, appelez l’action avec le paramètre `page = 2`, etc.
399 |
400 | Le paramètre `period=` vous permet de limiter les recherches à une période donnée. Voici les valeurs possibles :
401 | ```shell
402 | - last_12_months (12 derniers mois) qui est l'option par défaut
403 | - this_month (mois en cours)
404 | - last_30_days (30 derniers jours)
405 | - last_month (mois dernier)
406 | - this_year (année en cours)
407 | - last_year (année dernière)
408 | - all (tous)
409 | - more (autre : dans ce cas, il faut spécifier les paramètres additionels `date_from (date de début) et `date_to` (date de fin))
410 | ```
411 |
412 | En utilisant le paramètre `search_date_type` vous pouvez spécifier le type de date à prendre en compte pour une recherche par période. Pour les documents de facturation, vous pouvez rechercher par date de création (`issue_date`), date additionnelle (`sell_date`), ou date de paiement (`paid_date`). Vous pouvez aussi trier les factures par date de la dernière modification (`order=updated_at`)
413 | Pour les documents de stock, vous pouvez rechercher par date de création (`issue_date`) ou date de vente (`transaction_date`).
414 |
415 | Le paramètre `income =` vous permet d'obtenir soit la liste des documents de vente (avec la valeur `1`) soit la liste des dépenses (avec la valeur `0`).
416 |
417 | Le paramètre `invoice_ids =` permet d'obtenir des documents de facturation via leur numéro ID. Par exemple : `invoice_ids=123,456,789`
418 |
419 | Le paramètre `include_positions =` (avec la valeur `true`) vous permet d'obtenir la liste des documents avec les produits listés sur ces documents.
420 |
421 | Le paramètre `number =` permet de télécharger un document de facturation via son numéro.
422 |
423 | Le paramètre `kind =` permet de rechercher un seul type de document (exemple : `kind=vat`).
424 |
425 | Le paramètre `kinds =` permet de rechercher plusieurs types de documents (exemple : `&kinds[]=vat&kinds[]=estimate`).
426 |
427 | Le paramètre `order =` permet de choisir comment les factures appelées seront triées. Voici les valeurs possibles pour un tri ascendant :
428 |
429 | ```shell
430 | `number` - par numéro de facture
431 | `updated_at` - par date de dernière modificationi
432 | `price_net` - par total HT
433 | `price_gross` - par total TTC
434 | `price_tax` - par total de Taxe
435 | `issue_date` - par date d'envoi
436 | `payment_to` - par date limite de règlement
437 | `paid_date` - par date de paiement effectif
438 | `transaction_date` - par date additionnelle
439 | `buyer_name` - par nom de l'acheteur
440 | `buyer_tax_no` - par n° fiscal de l'acheteur
441 | `seller_name` - par nom du vendeur
442 | `oid` - par n° de commande
443 | ```
444 | Pour un tri déscendant, il suffit d'ajouter le suffixe .desc - par exemple `updated_at.desc`.
445 |
446 |
447 |
448 | # Documents de Facturation - Appels API
449 |
450 |
451 | ## Téléchargement et Envoi
452 |
453 |
454 | Télécharger la liste des factures du mois en cours
455 |
456 | ```shell
457 | curl https://votrecompte.vosfactures.fr/invoices.json?period=this_month&api_token=API_TOKEN&page=1
458 | ```
459 |
460 |
461 | Télécharger la liste des factures d'une période donnée
462 |
463 | ```shell
464 | curl https://votrecompte.vosfactures.fr/invoices.json?period=more&date_from=2018-01-01&date_to=2018-04-30&search_date_type=issue_date&api_token=API_TOKEN&page=1
465 | ```
466 |
467 | Remarque: Si aucun paramètre additionnel n'est indiqué, seules les factures de la première page de la liste seront téléchargées (et donc les 25 premières factures). Pour télécharger plus de 25 factures, utilisez le paramètre additionnel `per_page=`, qui définit combien de documents chaque page contient (25, 50 ou 100).
468 |
469 | Exemple: Pour obtenir les 50 premiers documents:
470 |
471 | ```shell
472 | curl "https://votrecompte.vosfactures/invoices.json?api_token=API_TOKEN&per_page=50"
473 | ```
474 |
475 | Exemple: Pour obtenir les documents 51 à 100 :
476 |
477 | ```shell
478 | curl "https://votrecompte.vosfactures/invoices.json?api_token=API_TOKEN&per_page=50&page=2"
479 | ```
480 |
481 | Télécharger les dernières factures modifiées
482 |
483 | ```shell
484 | curl "https://votrecompte.vosfactures.fr/invoices.json?order=updated_at&api_token=API_TOKEN&per_page=50"
485 | ```
486 |
487 |
488 | Télécharger les factures d'un client
489 |
490 | ```shell
491 | curl https://votrecompte.vosfactures.fr/invoices.json?client_id=ID_CLIENTA&api_token=API_TOKEN
492 | ```
493 |
494 |
495 | Télécharger la liste des factures avec les produits listés
496 |
497 | ```shell
498 | curl https://votrecompte.vosfactures.fr/invoices.json?include_positions=true&api_token=API_TOKEN&page=1
499 | ```
500 |
501 |
502 | Télécharger une facture par numéro d'ID
503 |
504 | ```shell
505 | curl https://votrecompte.vosfactures.fr/invoices/100.json?api_token=API_TOKEN
506 | ```
507 | Remarque : paramètres additionnels
508 | Vous pouvez aussi obtenir l'IBAN et le BIC du contact d'une facture donnée en ajoutant les paramètres additionnels correspondants :
509 | ```shell
510 | curl https://votrecompte.vosfactures.fr/invoices/100.json?api_token=API_TOKEN&additional_fields[invoice]=client_bank_account,buyer_swift
511 | ```
512 | En cas de facture d'avoir, vous pouvez obtenir également les deux champs "Contenu à corriger" et "Contenu corrigé" en envoyant les paramètres additionnels correspondants :
513 | ```shell
514 | curl https://votrecompte.vosfactures.fr/invoices/100.json?api_token=API_TOKEN&additional_fields[invoice]=corrected_content_before,corrected_content_after
515 | ```
516 |
517 |
518 | Télécharger une facture par son numéro
519 |
520 |
521 | ```shell
522 | curl https://votrecompte.vosfactures.fr/invoices.json?number=25&api_token=API_TOKEN
523 | ```
524 |
525 |
526 | Télécharger les documents liés à un document donné
527 |
528 | Les documents "liés" sont les documents qui ont un lien fonctionnel avec un autre document. Il s'agit des acomptes liés aux factures de solde et aux devis, et des avoirs liés aux factures.
529 |
530 | ```shell
531 | curl "https://votrecompte.vosfactures.fr/invoices.xml?invoice_id=ID&api_token=API_TOKEN"
532 | ```
533 |
534 |
535 | Télécharger les documents créés à partir d'un document donné
536 |
537 | Les documents "créés à partir" d'un autre document sont les documents qui ont été créés en utilisant la fonction "Créer un doc. similaire", les factures créés à partir d'une proforma/devis/bon de commande, ainsi que les documents récurrents.
538 |
539 | ```shell
540 | curl "https://votrecompte.vosfactures.fr/invoices.xml?from_invoice_id=ID&api_token=API_TOKEN"
541 | ```
542 |
543 |
544 | Télécharger une facture sous format PDF
545 |
546 | ```shell
547 | curl https://votrecompte.vosfactures.fr/invoices/100.pdf?api_token=API_TOKEN
548 | ```
549 |
550 | Autres options PDF:
551 | * print_option=original - Original
552 | * print_option=copy - Copie
553 | * print_option=original_and_copy - Original et copie
554 | * print_option=duplicate - Duplicata
555 |
556 |
557 | Télécharger sous format PDF avec codes-barres
558 | Si vous utilisez les codes EAN pour vos produits, vous pouvez générer vos documents de facturation en y faisant apparaître les codes-barres correspondants. Par API, envoyez le paramètre additionnel `print_ean_codes` avec l'ID du document concerné.
559 |
560 | ```shell
561 | curl -X GET --location "https://votrecompte.vosfactures.fr/invoices/100.pdf?api_token=API_TOKEN&print_ean_codes=true"
562 | ```
563 |
564 |
565 | Télécharger les pièces jointes d'une facture dans un fichier ZIP
566 |
567 | ```shell
568 | curl -o attachments.zip https://votrecompte.vosfactures.fr/invoices/INVOICE_ID/attachments_zip.json?api_token=API_TOKEN
569 | ```
570 |
571 |
572 | Remarques :
573 | Le paramètre `payment_url` vous permet d'obtenir l'url du paiement en ligne d'une facture (dans le cadre de la fonction Paiement en ligne).
574 | La variable `products-margin` est retournée lors de l'appel API d'une facture. Cette variable correspond au montant de la marge brute totale de la facture de vente.
575 |
576 |
577 | Envoyer une facture par email
578 |
579 | Par défaut :
580 |
581 | -> A l'adresse email indiquée sur la facture ou à défaut sur la fiche contact :
582 | ```shell
583 | curl -X POST https://votrecompte.vosfactures.fr/invoices/100/send_by_email.json?api_token=API_TOKEN
584 | ```
585 |
586 | -> lorsqu'aucune adresse email n'a été précédemment renseignée sur la facture ou la fiche contact : utilisez le paramètre ``email_to``, qui peut contenir jusqu'à 5 adresses email.
587 | ```shell
588 | curl -X POST https://votrecompte.vosfactures.fr/invoices/100/send_by_email.json?email_to=emailA@exemple.com,emailB@exemple.com&api_token=API_TOKEN
589 | ```
590 |
591 | -> A une adresse email différente de celle indiquée sur la facture ou fiche contact : rajoutez le paramètre ``update_buyer_email``.
592 | ```shell
593 | curl -X POST https://votrecompte.vosfactures.fr/invoices/100/send_by_email.json?email_to=emailautre@exemple.com&update_buyer_email=yes&api_token=API_TOKEN
594 | ```
595 |
596 | -> A une adresse email en copie : utilisez le paramètre ``email_cc`` (5 adresses email max) :
597 | ```shell
598 | curl -X POST https://votrecompte.vosfactures.fr/invoices/100/send_by_email.json?email_cc=emailencopie@exemple.com&api_token=API_TOKEN
599 | ```
600 | -> En joignant le PDF du document envoyé : utilisez le paramètre ``email_pdf``.
601 | ```shell
602 | curl -X POST https://votrecompte.vosfactures.fr/invoices/100/send_by_email.json?email_pdf=true&api_token=API_TOKEN
603 | ```
604 |
605 | Remarque : Afin d'éviter le risque de spams, le système n'autorise pas l'envoi répété d'un même document avant un délai de 3 jours, à moins d'utiliser le paramètre ``force : true``. Par exemple, écrivez:
606 | ```shell
607 | curl -X POST https://votrecompte.vosfactures.fr/invoices/100/send_by_email.json?api_token=API_TOKEN&force=true
608 | ```
609 |
610 | Pour une requête XML sans envoyer de code API (méthode d'autentification différente) :
611 | ```shell
612 | curl -X POST -u 'username:password' https://votrecompte.vosfactures.fr/invoices/100/send_by_email.xml
613 | ```
614 |
615 |
616 |
617 | Lien vers l'aperçu de la facture et le téléchargement en PDF
618 |
619 | Après le téléchargement des données de la facture, par exemple :
620 |
621 | ```shell
622 | curl https://votrecompte.vosfactures.fr/invoices/100.json?api_token=API_TOKEN
623 | ```
624 |
625 | L'API renvoie le champ `token`, grâce auquel il est possible de recevoir les liens vers l'aperçu de la facture et de son téléchargement en pdf. Ces liens vous permettent de faire référence à la facture sélectionnée sans avoir à vous connecter - vous pouvez, par exemple, envoyer ces liens à votre client qui aura accès à l'aperçu et au PDF des factures.
626 |
627 | Les liens sont sous la forme:
628 |
629 | vers l'aperçu : `https://votrecompte.vosfactures.fr/invoice/{{token}}`
630 |
631 | vers le pdf : `https://votrecompte.vosfactures.fr/invoice/{{token}}.pdf` ou pour plus directement `https://votrecompte.vosfactures.fr/invoice/{{token}}.pdf?inline=yes`
632 |
633 | Par exemple, pour un token égal à `HBO3Npx2OzSW79RQL7XV2`, le PDF sera accessible à l'url suivant: `https://votrecompte.vosfactures.fr/invoice/HBO3Npx2OzSW79RQL7XV2.pdf`
634 |
635 |
636 | ## Création
637 |
638 |
639 |
640 | Créer un nouveau document (ex : facture)
641 |
642 | Ci-dessous un exemple d'appel API pour la création d'une facture de vente avec un nouveau département vendeur, un nouveau client, et deux nouveaux produits.
643 |
644 | ```shell
645 | curl https://votrecompte.vosfactures.fr/invoices.json \
646 | -H 'Accept: application/json' \
647 | -H 'Content-Type: application/json' \
648 | -d '{
649 | "api_token": "API_TOKEN",
650 | "invoice": {
651 | "kind":"vat",
652 | "number": null,
653 | "sell_date": "2013-01-16",
654 | "issue_date": "2013-01-16",
655 | "payment_to": "2013-01-23",
656 | "seller_name": "Société Chose",
657 | "seller_tax_no": "FR5252445767",
658 | "buyer_name": "Client Untel",
659 | "buyer_tax_no": "FR45362780010",
660 | "positions":[
661 | {"name":"Produit A1", "tax":23, "total_price_gross":10.23, "quantity":1},
662 | {"name":"Produit A2", "tax":0, "total_price_gross":50, "quantity":3}
663 | ]
664 | }}'
665 | ```
666 |
667 | Remarques importantes
668 | Coordonnées vendeur
669 | Si votre département (fiche entreprise) a déjà été créé, envoyez le paramètre ```department_id```(et non ```seller_name```).
670 | Documents Tests
671 | Si vous faites des essais, pensez à utiliser le paramètre ```test``` (dont la valeur peut être "true" ou "false") afin de créer des documents de facturation qui seront distingués en tant que documents "test" (au niveau du numéro et de la présentation).
672 | Contact : nouveau ou existant
673 | Lors de la création d'un nouveau document, le système effectue une reconnaissance automatique du contact envoyé en se basant sur le nom (```buyer_name``` et pour le client particulier ```buyer_first_name``` et ```buyer_last_name```), l'adresse email (```buyer_email```) et/ou le n° fiscal (```buyer_tax_no```): si aucun contact ne correspond, le système crée un nouveau contact. Si un contact correspond, le système le sélectionne. Ainsi :- il est recommandé d'envoyer l'ID (``client_id``) d'un client existant plutôt que son nom seul, sachant que des particuliers peuvent avoir le même nom.- le système affiche sur la facture les coordonnées du contact existant telles qu'indiquées dans la fiche du contact. Si vous envoyez d'autres coordonnées (ex: adresse), ajouter le paramètre `"buyer_override": true` pour afficher et mettre à jour les nouvelles coordonnées du contact existant. Exemple :
674 | ```shell
675 | curl https://votrecompte.vosfactures.fr/invoices.json \
676 | -H 'Accept: application/json' \
677 | -H 'Content-Type: application/json' \
678 | -d '{"api_token": "API_TOKEN",
679 | "invoice": {
680 | "kind":"vat",
681 | "number": null,
682 | "sell_date": "2013-01-16",
683 | "issue_date": "2013-01-16",
684 | "payment_to": "2013-01-23",
685 | "seller_name": "Société Chose",
686 | "seller_tax_no": "FR5252445767",
687 | "client_id": 1,
688 | "buyer_post_code": "06000",
689 | "buyer_city": "Nice",
690 | "buyer_street": "11 Rue de la Joie",
691 | "buyer_country": "FR",
692 | "buyer_override": true,
693 | "positions":[
694 | {"name":"Produit A1", "tax":23, "total_price_gross":10.23, "quantity":1},
695 | {"name":"Produit A2", "tax":0, "total_price_gross":50, "quantity":3}
696 | ]
697 | }}'
698 | ```
699 |
700 | Nouveaux produits
701 | Vous pouvez créer un document de facturation en renseignant un nouveau produit (avec au minimum les nom, quantité et prix unitaire TTC), comme dans l'exemple précédent.
702 | Tout nouveau produit sera ajouté par défaut à votre catalogue (à moins que vous ayez opté pour l'option contraire - voir https://aide.vosfactures.fr/271837-D-sactiver-l-ajout-automatique-des-nouveaux-Produits-Services), avec les attributs indiqués (nom, taux de taxe, prix unitaire, code ean, comptes comptables ...).
703 | Produits existants
704 | Pour facturer un produit existant, vous devez envoyez l'ID du produit (```product_id```) avec la quantité facturée
705 | Si certains attributs du produit à facturer diffèrent de la fiche produit (ex: prix, description...), vous pouvez les spécifiez également (cela ne modfiera pas la fiche produit).
706 | SAUF pour les comptes comptables (`accounting_id1` et `accounting_id2`) : vous pouvez renseigner ou modifier les comptes comptables d'un produit existant directement lors de la facturation.
707 | Si vous souhaitez modifier le nom du produit existant sur le document créé, vous pouvez le faire directement en ajoutant le paramètre ```update_product_name``` :
708 |
709 | ```shell
710 | curl https://votrecompte.vosfactures.fr/invoices.json \
711 | -H 'Accept: application/json' \
712 | -H 'Content-Type: application/json' \
713 | -d '{"api_token": "API_TOKEN",
714 | "invoice": {
715 | "kind":"vat",
716 | "number": null,
717 | "sell_date": "2013-01-16",
718 | "issue_date": "2013-01-16",
719 | "payment_to": "2013-01-23",
720 | "department_id": 1,
721 | "client_id": 1,
722 | "update_product_name" : true,
723 | "positions":[
724 | {"product_id": 1, name: "Autre Nom de Produit", "quantity":2}
725 | ]
726 | }}'
727 | ```
728 |
729 | Informations spécifiques et Texte additionnel automatiques
730 | Lors d'une création manuelle, les 'Informations spécifiques' et/ou le 'Texte additionnel (imprimé sur la page suivante)' éventuellement définis par défaut dans les Paramètres du compte ou du département sont automatiquement ajoutés. En revanche, par API cet ajout automatique a besoin d'être spécifié en envoyant :
731 | - soit le paramètre `department_id` du département vendeur : les 'Informations spécifiques' de la fiche du département seront envoyées.
732 | ```shell
733 | curl https://votrecompte.vosfactures.fr/invoices.json \
734 | -H 'Accept: application/json' \
735 | -H 'Content-Type: application/json' \
736 | -d '{"api_token": "API_TOKEN",
737 | “fill_default_descriptions”:true,
738 | "invoice": {
739 | "kind":"vat",
740 | "number": null,
741 | "sell_date": "2013-01-16",
742 | "issue_date": "2013-01-16",
743 | "payment_to": "2013-01-23",
744 | "department_id": 1,
745 | "client_id": 1,
746 | "positions":[
747 | {"name":"Produit A1", "tax":23, "total_price_gross":10.23, "quantity":1},
748 | ]
749 | }}'
750 | ```
751 | - soit le paramètre `fill_default_descriptions` : les 'Informations spécifiques' et/ou 'Texte additionnel' du paramètres du compte seront envoyés.
752 | ```shell
753 | curl https://votrecompte.vosfactures.fr/invoices.json \
754 | -H 'Accept: application/json' \
755 | -H 'Content-Type: application/json' \
756 | -d '{"api_token": "API_TOKEN",
757 | “fill_default_descriptions”:true,
758 | "invoice": {
759 | "kind":"vat",
760 | "number": null,
761 | "sell_date": "2013-01-16",
762 | "issue_date": "2013-01-16",
763 | "payment_to": "2013-01-23",
764 | "seller_name": "Société Chose",
765 | "seller_tax_no": "FR5252445767",
766 | "client_id": 1,
767 | "positions":[
768 | {"name":"Produit A1", "tax":23, "total_price_gross":10.23, "quantity":1},
769 | ]
770 | }}'
771 | ```
772 |
773 |
774 |
775 | Créer une nouvelle facture (version rapide)
776 |
777 | Vous pouvez ajouter une nouvelle facture en complétant seulement les champs obligatoires (version minimale): si seuls les ID du produit (```product_id```), de l'acheteur (```buyer_id```) et du vendeur (```department_id```) sont indiqués, la facture créée sera datée du jour et aura une date limite de règlement de 5 jours.
778 |
779 | ```shell
780 | curl https://votrecompte.vosfactures.fr/invoices.json \
781 | -H 'Accept: application/json' \
782 | -H 'Content-Type: application/json' \
783 | -d '{"api_token": "API_TOKEN",
784 | "invoice": {
785 | "department_id": 1,
786 | "client_id": 1,
787 | "positions":[
788 | {"product_id": 1, "quantity":2}
789 | ]
790 | }}'
791 | ```
792 |
793 | Remarque
794 | Si vous obtenez le message suivant:
795 | {"code":"error","message":{"seller_bank_account":["Protection contre la modification du numéro de compte bancaire"]}}
796 | cela signifie que vous avez choisi un niveau de sécurité standard ou élevé contre le changement de compte bancaire (Paramètres > Paramètres du compte > Options par défaut > Sécurité) et que vous essayez tout de même de créer un document avec des coordonnées bancaires différentes de celles indiquées dans la fiche du département vendeur (Paramètres > Compagnies/départements). Il faut donc soit changer le niveau de sécurité, soit vérifier les coordonnées bancaires envoyées.
797 |
798 |
799 |
800 | Créer une nouvelle facture avec réduction
801 |
802 | Il faut indiquer :
803 | - dans la partie document ("invoice") : l'affichage (`show_discount`) et le type (`discount_kind`) de réduction
804 | - et dans la partie produit ("positions") : la valeur (`discount` ou `discount_percent`) de la réduction
805 | Notez que les prix des produits sont à envoyer avant réduction (`total_price_gross`).
806 | -> Exemple avec une réduction en tant que montant ttc :
807 |
808 | ```shell
809 | curl https://votrecompte.vosfactures.fr/invoices.json \
810 | -H 'Accept: application/json' \
811 | -H 'Content-Type: application/json' \
812 | -d '{"api_token": "API_TOKEN",
813 | "invoice": {
814 | "kind":"vat",
815 | "number": null,
816 | "issue_date": "2018-02-22",
817 | "payment_to": "2018-03-01",
818 | "buyer_name": "Client Untel",
819 | "discount_kind":"amount",
820 | "show_discount":true,
821 | "positions":[
822 | {"name":"Produit A",
823 | "quantity":1,
824 | "tax":20,
825 | "total_price_gross":10,20,
826 | "discount":"5.20"
827 | },
828 | {"name":"Produit B",
829 | "quantity":2,
830 | "tax":0,
831 | "total_price_gross":50,
832 | }
833 | ]
834 | }}'
835 | ```
836 |
837 | -> Exemple avec une réduction en tant que pourcentage sur le prix unitaire TTC :
838 |
839 | ```shell
840 | curl https://votrecompte.vosfactures.fr/invoices.json \
841 | -H 'Accept: application/json' \
842 | -H 'Content-Type: application/json' \
843 | -d '{"api_token": "API_TOKEN",
844 | "invoice": {
845 | "kind":"vat",
846 | "number": null,
847 | "issue_date": "2018-02-22",
848 | "payment_to": "2018-03-01",
849 | "buyer_name": "Client Untel",
850 | "discount_kind":"percent_unit_gross",
851 | "show_discount":true,
852 | "positions":[
853 | {"name":"Produit A",
854 | "quantity":1,
855 | "tax":20,
856 | "total_price_gross":10,20,
857 | "discount_percent":"20"
858 | },
859 | {"name":"Produit B",
860 | "quantity":2,
861 | "tax":0,
862 | "total_price_gross":50,
863 | }
864 | ]
865 | }}'
866 | ```
867 |
868 |
869 |
870 | Créer une nouvelle facture avec sous-total
871 |
872 | Dans l'exemple ci-dessous, la facture est créée avec un sous-total des produits A et B.
873 |
874 | ```shell
875 | curl https://votrecompte.vosfactures.fr/invoices.json \
876 | -H 'Accept: application/json' \
877 | -H 'Content-Type: application/json' \
878 | -d '{
879 | "api_token": "API_TOKEN",
880 | "invoice": {
881 | "kind":"vat",
882 | "number": null,
883 | "sell_date": "2020-10-26",
884 | "issue_date": "2020-10-26",
885 | "payment_to": "2020-11-02",
886 | "buyer_name": "Client Untel",
887 | "buyer_tax_no": "FR5252445767",
888 | "positions":[
889 | {"name":"Product A", "tax":23, "total_price_gross":30.94, "quantity":3},
890 | {"name":"Product B", "tax":23, "total_price_gross":17.23, "quantity":1},
891 | {"name":"Subtotal", "tax":"disabled", "total_price_gross":0, "quantity":0, "kind":"subtotal"},
892 | {"name":"Product C", "tax":0, "total_price_gross":50, "quantity":2}
893 | ]
894 | }}'
895 | ```
896 |
897 |
898 | Créer une nouvelle facture avec une ligne de texte
899 |
900 | Utilisez le paramètre `text_separator` lorsque vous souhaitez insérer une ou plusieurs ligne de texte dans votre tableau. Une ligne de texte peut être un sous-titre ou contenir une mention. En savoir plus sur cette option ici : https://aide.vosfactures.fr/856880-Ins-rer-des-sous-titres-lignes-de-texte-
901 |
902 | ```shell
903 | curl https://votrecompte.vosfactures.fr/invoices.json \
904 | -H 'Accept: application/json' \
905 | -H 'Content-Type: application/json' \
906 | -d '{
907 | "api_token": "API_TOKEN",
908 | "invoice": {
909 | "kind":"vat",
910 | "number": null,
911 | "sell_date": "2020-10-26",
912 | "issue_date": "2020-10-26",
913 | "payment_to": "2020-11-02",
914 | "buyer_name": "Client Untel",
915 | "buyer_tax_no": "FR5252445767",
916 | "positions":[
917 | {"name":"Chambre", "kind":"text_separator"},
918 | {"name":"Product A", "tax":23, "total_price_gross":30.94, "quantity":3},
919 | {"name":"Product B", "tax":0, "total_price_gross":50, "quantity":2}
920 | ]
921 | }}'
922 | ```
923 |
924 |
925 |
926 | Créer une facture avec une prime CEE
927 |
928 | Utilisez les paramètres `use_prime_cee` et `prime_cee_value` pour rajouter une prime CEE qui sera déduite du Montant Net à payer sur le document. Pour en savoir plus sur cette option : https://aide.vosfactures.fr/139056185-Facturer-avec-une-Prime-CEE. Attention la valeur de la prime CEE à indiquer est TTC.
929 |
930 | ```shell
931 | curl https://votrecompte.vosfactures.fr/invoices.json \
932 | -H 'Accept: application/json' \
933 | -H 'Content-Type: application/json' \
934 | -d '{
935 | "api_token": "API_TOKEN",
936 | "invoice": {
937 | "kind":"estimate",
938 | "use_prime_cee": true,
939 | "prime_cee_value": 20.00,
940 | "lang": "fr",
941 | "buyer_name": "Client Untel",
942 | "positions": [
943 | { "name": "produit A", "tax": 20, "total_price_gross": 24.00, "quantity": 2}
944 | ]
945 | }}'
946 | ```
947 |
948 |
949 |
950 | Créer une facture en Autoliquidation
951 | Le document sera créé par défaut avec les informations spécifiques correspondant à l'autoliquidation ("Mécanisme d'autoliquidation : la TVA est due par le preneur assujetti"). Si vous souhaitez afficher des informations spécifiques différentes, spécifiez-les via le paramètre ```description``` correspondant.
952 |
953 | ```shell
954 | curl https://votrecompte.vosfactures.fr/invoices.json \
955 | -H 'Accept: application/json' \
956 | -H 'Content-Type: application/json' \
957 | -d '{
958 | "api_token": "API_TOKEN",
959 | "invoice": {
960 | "kind":"vat",
961 | "number": null,
962 | "sell_date": "2021-08-05",
963 | "issue_date": "2021-08-05",
964 | "payment_to": "2021-08-12",
965 | "buyer_name": "ClientABC",
966 | "buyer_tax_no": "BE1234567",
967 | "reverse_charge": true,
968 | "positions":[
969 | {"name":"Produit A1", "total_price_gross":10.50, "quantity":1},
970 | {"name":"Produit A2", "total_price_gross":50, "quantity":2}
971 | ]
972 | }}'
973 | ```
974 |
975 |
976 |
977 | Créer une facture OSS
978 | Vous pouvez gérer facilement la facturation de vos ventes intracommunautaires B2C soumises à la TVA de destination ou "TVA OSS" grâce à la fonction OSS du logiciel. En savoir plus ici : https://aide.vosfactures.fr/96973539-E-Commerce-TVA-OSS
979 | 1) Facturation OSS simple :
980 | Si vous avez coché "Option OSS" dans vos paramètres du compte, vous pouvez créer une facture identifiée comme vente OSS en envoyant la paramètre `use_oss`, et en respectant les conditions attendues (client européen non assujetti et taux de tva de destination).
981 |
982 | ```shell
983 | curl -X POST --location "https://votrecompte.vosfactures.fr/invoices.json" \
984 | -H "Accept: application/json" \
985 | -H "Content-Type: application/json" \
986 | -d "{
987 | "api_token": "API_TOKEN",
988 | "invoice": {
989 | "kind": "vat",
990 | "seller_name": "Société A",
991 | "seller_country": "FR",
992 | "buyer_name": "Client Y",
993 | "buyer_country": "PL",
994 | "use_oss": true,
995 | "positions": [
996 | {
997 | "name": "Produit AB",
998 | "tax": 23,
999 | "total_price_gross": 1.23,
1000 | "quantity": 1
1001 | }
1002 | ]
1003 | }
1004 | }"
1005 | ```
1006 | 2) Facturation OSS automatique
1007 | Si vous avez coché "Option OSS" et l'option "Automatiser la reconnaissance des ventes éligibles au OSS" dans vos paramètres du compte, vous pouvez créer une facture en envoyant la paramètre `identify_oss` : le logiciel identifiera automatiquement la facture à créer comme une vente OSS si les conditions sont respectées : client européen non assujetti et taux de tva de destination. Cela est utile si votre solution est capable d'envoyer le taux de TVA de destination.
1008 |
1009 | ```shell
1010 | curl -X POST --location "https://votrecompte.vosfactures.fr/invoices.json" \
1011 | -H "Accept: application/json" \
1012 | -H "Content-Type: application/json" \
1013 | -d "{
1014 | "api_token": "API_TOKEN",
1015 | "identify_oss": true,
1016 | "invoice": {
1017 | "kind": "vat",
1018 | "seller_name": "Société A",
1019 | "seller_country": "FR",
1020 | "buyer_name": "Client Y",
1021 | "buyer_country": "PL",
1022 | "positions": [
1023 | {
1024 | "name": "Produit AB",
1025 | "tax": 23,
1026 | "total_price_gross": 1.23,
1027 | "quantity": 1
1028 | }
1029 | ]
1030 | }
1031 | }"
1032 | ```
1033 | 3) Facturation OSS automatique et forcée
1034 | Si vous avez coché "Option OSS" et l'option "Automatiser la reconnaissance des ventes éligibles au OSS" dans vos paramètres du compte, vous pouvez créer une facture en envoyant les paramètres `identify_oss` et `oss_force_tax`: le logiciel identifiera automatiquement la facture à créer comme une vente OSS uniqument si les conditions suivantes sont respectées : client européen non assujetti, et ne tiendra pas en compte des taux de tva envoyées dans la requête : à la place les taux de tva de destiniation seront appliqués à la facture. Cela est utile si vous ne pouvez pas envoyer le bon taux de TVA (Tva de destination) car votre solution n'est pas capable de distinguer les ventes OSS des autres ventes.
1035 |
1036 | ```shell
1037 | curl -X POST --location "https://votrecompte.vosfactures.fr/invoices.json" \
1038 | -H "Accept: application/json" \
1039 | -H "Content-Type: application/json" \
1040 | -d "{
1041 | "api_token": "API_TOKEN",
1042 | "identify_oss": true,
1043 | "oss_force_tax": true,
1044 | "invoice": {
1045 | "kind": "vat",
1046 | "seller_name": "Test",
1047 | "seller_country": "FR",
1048 | "buyer_name": "Client",
1049 | "buyer_country": "PL",
1050 | "positions": [
1051 | {
1052 | "name": "Product",
1053 | "tax": 20,
1054 | "total_price_gross": 1.23,
1055 | "quantity": 1
1056 | }
1057 | ]
1058 | }
1059 | }"
1060 | ```
1061 |
1062 |
1063 |
1064 | Créer un document similaire
1065 |
1066 | Vous pouvez créer un document (ex : facture) similaire à un autre document de facturation existant (ex: devis) grâce à un appel API correspondant à l'option "Créer un document similaire" ou à l'option "Créer la facture" du logiciel. Vous pouvez ainsi créer un document en tout point similaire à un document existant (le n° du document créé étant bien sûr automatiquement généré conformément à vos paramètres du numérotation).
1067 |
1068 | ```shell
1069 | curl https://votrecompte.vosfactures.fr/invoices.json \
1070 | -H 'Accept: application/json' \
1071 | -H 'Content-Type: application/json' \
1072 | -d '{
1073 | "api_token": "API_TOKEN",
1074 | "invoice": {
1075 | "copy_invoice_from": ID_du_document_source,
1076 | "kind": "Type_du_document_à_créer"
1077 | }
1078 | }'
1079 | ```
1080 |
1081 | Remarque: vous pouvez spécifier lors de la requête "copy_invoice_from" les paramètres `payment_to_kind` ou `payment_to`, si vous souhaitez créer un document simlilaire avec une date limite de règlement différente de celle du document copié.
1082 |
1083 | Exemple : Créer la facture depuis un devis
1084 |
1085 | ```shell
1086 | curl https://votrecompte.vosfactures.fr/invoices.json \
1087 | -H 'Accept: application/json' \
1088 | -H 'Content-Type: application/json' \
1089 | -d '{
1090 | "api_token": "API_TOKEN",
1091 | "invoice": {
1092 | "copy_invoice_from": ID_du_devis,
1093 | "kind": "vat"
1094 | }
1095 | }'
1096 | ```
1097 |
1098 | Exemple : Créer la facture depuis une facture proforma
1099 |
1100 | ```shell
1101 | curl https://votrecompte.vosfactures.fr/invoices.json \
1102 | -H 'Accept: application/json' \
1103 | -H 'Content-Type: application/json' \
1104 | -d '{
1105 | "api_token": "API_TOKEN",
1106 | "invoice": {
1107 | "copy_invoice_from": ID_de_la_proforma,
1108 | "kind": "vat"
1109 | }
1110 | }'
1111 | ```
1112 |
1113 | Exemple : Dupliquer une facture
1114 |
1115 | ```shell
1116 | curl https://votrecompte.vosfactures.fr/invoices.json \
1117 | -H 'Accept: application/json' \
1118 | -H 'Content-Type: application/json' \
1119 | -d '{
1120 | "api_token": "API_TOKEN",
1121 | "invoice": {
1122 | "copy_invoice_from": ID_de_la_facture,
1123 | "kind": "vat"
1124 | }
1125 | }'
1126 | ```
1127 |
1128 |
1129 |
1130 | Créer une facture d'acompte
1131 | Facture d'acompte en tant que pourcentage du montant total d'un devis
1132 |
1133 | ```shell
1134 | curl https://votrecompte.vosfactures.fr/invoices.json \
1135 | -H 'Accept: application/json' \
1136 | -H 'Content-Type: application/json' \
1137 | -d '{
1138 | "api_token": "API_TOKEN",
1139 | "invoice": {
1140 | "copy_invoice_from": ID_du_devis,
1141 | "kind": "advance",
1142 | "advance_creation_mode": "percent",
1143 | "advance_value": "30",
1144 | "position_name": "Acompte de 30% sur devis n° 123"
1145 | }
1146 | }'
1147 | ```
1148 |
1149 | Facture d'acompte en tant que montant depuis un devis
1150 |
1151 | ```shell
1152 | curl https://votrecompte.vosfactures.fr/invoices.json \
1153 | -H 'Accept: application/json' \
1154 | -H 'Content-Type: application/json' \
1155 | -d '{
1156 | "api_token": "API_TOKEN",
1157 | "invoice": {
1158 | "copy_invoice_from": ID_du_devis,
1159 | "kind": "advance",
1160 | "advance_creation_mode": "amount",
1161 | "advance_value": "150",
1162 | "position_name": "Acompte de 150€ sur devis n° 123"
1163 | }
1164 | }'
1165 | ```
1166 |
1167 |
1168 |
1169 | Créer une facture de solde
1170 | Une fois le(s) acomptes créé(s), vous pouvez facturer le solde facilement en créant la facture de solde qui reprendra le détail du devis en y déduisant les acomptes déjà facturés.
1171 |
1172 | ```shell
1173 | curl https://votrecompte.vosfactures.fr/invoices.json \
1174 | -H 'Accept: application/json' \
1175 | -H 'Content-Type: application/json' \
1176 | -d '{
1177 | "api_token": "API_TOKEN",
1178 | "invoice": {
1179 | "copy_invoice_from": ID_du_devis,
1180 | "kind": "final",
1181 | "invoice_ids": [ID_du_premier_acompte, ID_du_deuxième_acompte, ...]
1182 | }
1183 | }'
1184 | ```
1185 |
1186 |
1187 |
1188 | Créer une facture d'avoir (partielle)
1189 |
1190 | ```shell
1191 | curl https://votrecompte.vosfactures.fr/invoices.json \
1192 | -H 'Accept: application/json' \
1193 | -H 'Content-Type: application/json' \
1194 | -d '{"api_token": "API_TOKEN",
1195 | "invoice": {
1196 | "kind": "correction",
1197 | "correction_reason": "erreur de quantité",
1198 | "from_invoice_id": "2432393",
1199 | "invoice_id": "2432393",
1200 | "client_id": 1,
1201 | "positions":[
1202 | {"name": "Produit A1",
1203 | "quantity":-1,
1204 | "total_price_gross":"-10",
1205 | "tax":"23",
1206 | "kind":"correction",
1207 | "correction_before_attributes": {
1208 | "name":"Produit A1",
1209 | "quantity":"2",
1210 | "total_price_gross":"20",
1211 | "tax":"23",
1212 | "kind":"correction_before"
1213 | },
1214 | "correction_after_attributes": {
1215 | "name":"Produit A1",
1216 | "quantity":"1",
1217 | "total_price_gross":"10",
1218 | "tax":"23",
1219 | "kind":"correction_after"
1220 | }
1221 | }]
1222 | }}'
1223 | ```
1224 | Remarque: Si vous souhaitez afficher sur la facture d'avoir le numéro de la facture de référence (qui apparaît sous la forme de la mention "Avoir sur Facture N°xxxx"), il est conseillé d'utiliser le paramètre ```invoice_id``` (en y indiquant le n° ID de la facture de référence) qui créera le lien fonctionnel entre la facture et la facture d'avoir. Sinon, vous pouvez alternativement utiliser le paramètre ```from_invoice_id``` (en indiquant également le n° ID de la facture), ou ```correction``` (en indiquant le contenu que vous souhaitez afficher) - mais dans ces deux cas aucun lien fonctionnel n'est créé.
1225 |
1226 |
1227 |
1228 | Créer une facture d'avoir (totale)
1229 |
1230 | ```shell
1231 | curl https://votrecompte.vosfactures.fr/invoices.json \
1232 | -H 'Accept: application/json' \
1233 | -H 'Content-Type: application/json' \
1234 | -d '{
1235 | "api_token":"API_TOKEN",
1236 | "invoice": {
1237 | "copy_invoice_from": 2432393,
1238 | "kind": "correction",
1239 | "total_correction": "1",
1240 | "correction_reason": "commande annulée"
1241 | }
1242 | }'
1243 | ```
1244 | En attribuant la valeur "1" au paramètre ```total_correction```, une facture d'avoir totale est créée. Si au contraire vous indiquez la valeur "0", le montant de la facture d'avoir sera de zéro (car émise avec des lignes de produits identiques avant et après la correction).
1245 |
1246 |
1247 | Créer une facture à compléter
1248 | Le logiciel vous permet par API de créer et envoyer une facture de vente à votre client afin qu'il complète/vérifie ses coordonnées de facturation, avant de valider celle-ci et pouvoir la télécharger et/ou la recevoir par email. En effet, une fois la facture incomplète créée par API, vous pouvez envoyer le lien de l’aperçu de la facture au client, qui verra un message l’invitant à compléter ses coordonnées, avec un bouton pour valider (situé sous les champs de coordonnées de l’acheteur). Une fois validée, la facture ne peut plus être modifiée par l’acheteur.
1249 | La création de la facture est classique, avec les champs usuels - sauf que :
1250 | - Les coordonnées de l'acheteur dans la requête sont facultatives,
1251 | - l’état de la facture à créer est `incomplete`,
1252 | - des paramètres spécifiques peuvent être inclus dans la requête :
1253 | - ` prevent_send_email_to_complete ` : par défaut lorsque la facture à compléter est créée, l'acheteur reçoit le lien de la facture par email, l’invitant à la compléter. Pour ne pas envoyer cet email à l'acheteur, ajouter ce paramètre avec la valeur ` true `
1254 | - ` paid_after_completion ` : par défaut la facture est créée avec l’état “A compléter”. Avec ce paramètre ayant la valeur ` true `, l’état de la facture est changée automatiquement en “payé” une fois la facture validée par le client.
1255 | - ` send_after_completion ` : par défaut après avoir cliqué sur le bouton “Sauvegarder” pour valider la facture, le client peut télécharger la facture en PDF. En envoyant ce paramètre ayant la valeur ` true `, le bouton change d’intitulé en “Valider et recevoir par email” et la facture est envoyée au client par email.
1256 |
1257 | ```shell
1258 | curl -X POST --location "https://votrecompte.vosfactures.fr/invoices.json" \
1259 | -H "Content-Type: application/json" \
1260 | -d "{
1261 | \"api_token\": \"API_TOKEN",
1262 | \"invoice\": {
1263 | \"status\": \"incomplete\",
1264 | \"lang\": \"fr\",
1265 | \"buyer_company\": false,
1266 | \"buyer_first_name\": \"Jean\",
1267 | \"buyer_last_name\": \"Dupont\",
1268 | \"buyer_email\": \"email1@vemail.fr\",
1269 | \"buyer_mobile_phone\": \"003300000000\",
1270 | \"buyer_street\": \"50 rue des Fleurs\",
1271 | \"buyer_post_code\": \"06000\",
1272 | \"buyer_city\": \"Nice\",
1273 | \"paid_after_completion\": true,
1274 | \"send_after_completion\": true,
1275 | \"send_completion_to\": \"email2@email.fr\",
1276 | \"prevent_send_email_to_complete\": true,
1277 | \"positions\": [
1278 | {
1279 | \"name\": \"Produit 1\",
1280 | \"quantity\": 1,
1281 | \"total_price_gross\": 24.00,
1282 | \"tax\": 20
1283 | },
1284 | {
1285 | \"name\": \”produit 2\",
1286 | \"quantity\": 1,
1287 | \"total_price_gross\": 12.00,
1288 | \"tax\": 20
1289 | }
1290 | ]
1291 | }
1292 | }"
1293 | ```
1294 |
1295 |
1296 | Créer une facture d'achat (dépense)
1297 | La création de dépenses est similaire à celle des documents de vente. Toutefois :
1298 | - Pensez à attribuer la valeur `0` au paramètre `income`.
1299 | - les champs acheteur et vendeur sont inversés sur les dépenses : les paramètres `seller_` correspondent à la section "Acheteur" (votre département vendeur) et les paramètres `buyer_` à la section "Vendeur" (le contact fournisseur).
1300 | Notez que pouvez envoyer l'ID du département (`seller_ID`) et/ou l'ID du contact ("client_id") pour une version plus courte de la requête ci-dessous :
1301 |
1302 | ```shell
1303 | curl https://votrecompte.vosfactures.fr/invoices.json \
1304 | -H 'Accept: application/json' \
1305 | -H 'Content-Type: application/json' \
1306 | -d '{
1307 | "api_token": "API_TOKEN",
1308 | "invoice": {
1309 | "kind":"vat",
1310 | "income": "0",
1311 | "sell_date": "2013-01-16",
1312 | "issue_date": "2013-01-16",
1313 | "payment_to": "2013-01-23",
1314 | "seller_name": "Société Chose",
1315 | "seller_tax_no": "FR5252445767",
1316 | "buyer_name": "Fournisseur XYZ",
1317 | "buyer_email": "xyz@testemail.com",
1318 | "buyer_tax_no": "BE453627823",
1319 | "positions":[
1320 | {"name":"Produit A1", "tax":20, "total_price_gross":10.23, "quantity":1},
1321 | ]
1322 |
1323 | }
1324 | }'
1325 | ```
1326 |
1327 |
1328 | ## Modification et Suppression
1329 |
1330 |
1331 |
1332 | Modifier une facture
1333 |
1334 | ```shell
1335 | curl https://votrecompte.vosfactures.fr/invoices/111.json \
1336 | -X PUT \
1337 | -H 'Accept: application/json' \
1338 | -H 'Content-Type: application/json' \
1339 | -d '{
1340 | "api_token": "API_TOKEN",
1341 | "invoice": {
1342 | "buyer_name": "Nouveau nom du client"
1343 | }
1344 | }'
1345 | ```
1346 |
1347 |
1348 | Modifier un produit listé sur une facture
1349 |
1350 | Il faut spécifier l'ID du produit.
1351 |
1352 | ```shell
1353 | curl https://votrecompte.vosfactures.fr/invoices/111.json \
1354 | -X PUT \
1355 | -H 'Accept: application/json' \
1356 | -H 'Content-Type: application/json' \
1357 | -d '{
1358 | "api_token": "API_TOKEN",
1359 | "invoice": {
1360 | "positions": [{"id":32649087, "name":"test"}]
1361 | }
1362 | }'
1363 | ```
1364 |
1365 |
1366 | Supprimer un produit listé sur une facture
1367 |
1368 | Pour supprimer un article sur la facture, entrez l'ID du produit avec le paramètre "_destroy" égal à 1.
1369 |
1370 | ```shell
1371 | curl https://votrecompte.vosfactures.fr/invoices/111.json \
1372 | -X PATCH \
1373 | -H 'Accept:application/json' \
1374 | -H 'Content-Type:application/json' \
1375 | -d '{
1376 | "api_token": "API_TOKEN",
1377 | "invoice": {
1378 | "positions":[{"id":32649087,"_destroy":1}]
1379 | }
1380 | }'
1381 | ```
1382 |
1383 |
1384 | Ajouter un produit sur une facture
1385 |
1386 | Notez que le produit ajouté sera listé en dernier sur le document de facturation.
1387 |
1388 | ```shell
1389 | curl https://votrecompte.vosfactures.fr/invoices/111.json \
1390 | -X PUT \
1391 | -H 'Accept: application/json' \
1392 | -H 'Content-Type: application/json' \
1393 | -d '{
1394 | "api_token": "API_TOKEN",
1395 | "invoice": {
1396 | "positions": [{"name":"Produit A1", "tax":20, "total_price_gross":10.20, "quantity":1}]
1397 | }
1398 | }'
1399 | ```
1400 |
1401 |
1402 | Changer l'état d'une facture
1403 |
1404 | ```shell
1405 | curl "https://votrecompte.vosfactures.fr/invoices/INVOICE_ID/change_status.json?api_token=API_TOKEN&status=STATUS" -X POST
1406 | ```
1407 |
1408 | Remarque : Documents "Exportés"
1409 | En terme de suivi comptable, vous avez la possibilité d'afficher la colonne "Exporté" sur la liste des documents, vous permettant ainsi de visualiser rapidement les documents ayant fait l'objet d'un export - cet état "exporté" étant mis à jour automatiquement par le système après un export. Vous pouvez forcer cet état en envoyant le paramètre : "accounting_status" : "exported"
1410 | P.S: Depuis l'aperçu du document, dans l'encadré "suivi du document" il y a aura la trace d'une activité "Modification" avec la date et l'heure.
1411 |
1412 |
1413 | Ajouter une pièce jointe à une facture
1414 |
1415 | 1. Téléchargement des données nécessaires à l'envoi de la pièce jointe :
1416 | ```shell
1417 | curl https://votrecompte.vosfactures.fr/invoices/INVOICE_ID/get_new_attachment_credentials.json?api_token=API_TOKEN
1418 | ```
1419 |
1420 | 2. Envoi de la pièce jointe :
1421 | ```shell
1422 | curl -F 'AWSAccessKeyId=received_AWSAccessKeyId' \
1423 | -F 'key=received_key' \
1424 | -F 'policy=received_policy' \
1425 | -F 'signature=received_signature' \
1426 | -F 'acl=received_acl' \
1427 | -F 'success_action_status=received_success_action_status' \
1428 | -F 'file=@/file_path/name.ext' \
1429 | received_url
1430 | ```
1431 |
1432 | 3. Ajout de la pièce jointe à la facture :
1433 | ```shell
1434 | curl -X POST https://votrecompte.vosfactures.fr/invoices/INVOICE_ID/add_attachment.json?api_token=API_TOKEN&file_name=name.ext
1435 | ```
1436 |
1437 | 4. Rendre visible la pièce jointe
1438 | Par défaut les pièces jointes aux documents de facturation ne sont pas visibles par les clients (destinataires du document). Pour les rendre visibles, envoyer le paramètre ```show_attachments```.
1439 | ```shell
1440 | curl https://votrecompte.vosfactures.fr/invoices/INVOICE_ID.json \
1441 | -X PUT \
1442 | -H 'Accept: application/json' \
1443 | -H 'Content-Type: application/json' \
1444 | -d '{
1445 | "api_token": "API_TOKEN",
1446 | "invoice": {
1447 | "show_attachments": true
1448 | }
1449 | }'
1450 |
1451 |
1452 |
1453 | Supprimer une facture
1454 |
1455 | ```shell
1456 | curl -X DELETE "https://votrecompte.vosfactures.fr/invoices/INVOICE_ID.json?api_token=API_TOKEN"
1457 | ```
1458 |
1459 |
1460 | Annuler une facture
1461 |
1462 | ```shell
1463 | curl https://votrecompte.vosfactures.fr/invoices/cancel.json \
1464 | -X POST \
1465 | -H 'Accept:application/json' \
1466 | -H 'Content-Type:application/json' \
1467 | -d '{
1468 | "api_token": "API_TOKEN",
1469 | "cancel_invoice_id": "INVOICE ID",
1470 | "cancel_reason": "Raison de l'annulation (optionnelle)"
1471 | }'
1472 | ```
1473 |
1474 | Remarque : Pour visualiser la raison de l'annulation indiquée sur un document annulé, incluez le paramètre `additional_fields[invoice]=cancel_reason`à votre url de requête. Exemple : https://moncompte.vosfactures.fr/invoices/ID.json?api_token=API_TOKEN&additional_fields[invoice]=cancel_reason
1475 |
1476 |
1477 | ## Récurrences
1478 |
1479 |
1480 | Télécharger la liste des récurrences
1481 |
1482 | ```shell
1483 | curl https://votrecompte.vosfactures.fr/recurrings.json?api_token=API_TOKEN
1484 | ```
1485 |
1486 |
1487 | Créer une nouvelle récurrence
1488 |
1489 | Dans l'exemple ci-dessous, la récurrence est basée sur un document existant identifié par son ID ("invoice_id"), débute le 01/01/2016 ("start_date"), est mensuelle ("every"), est créée avec un état non payé ("create_as_paid"), à 11H30 ("time_in_timezone") même si c'est un week-end ("issue_working_day_only"), et n'a pas de date de fin ("end_date"). Les factures récurrentes générées sont envoyées automatiquement au client ("buyer_email") par email ("send_email") et une notification vous est envoyée ("email_notification_enabled"). Les paramètres "only_year_month" (correspondant à l'option "Afficher uniquement le mois et l'année dans le champ "Date additionnelle") et "end_of_month_sell_date" (correspondant à l'option "Générer avec une date additionnelle égale au dernier jour du mois") ne peuvent pas avoir la même valeur "true" en même temps.
1490 |
1491 |
1492 | ```shell
1493 | curl https://votrecompte.vosfactures.fr/recurrings.json \
1494 | -H 'Accept: application/json' \
1495 | -H 'Content-Type: application/json' \
1496 | -d '{"api_token": "API_TOKEN",
1497 | "recurring": {
1498 | "name": "Nom de la récurrence",
1499 | "invoice_id": 1,
1500 | "start_date": "2016-01-01",
1501 | "every": "1m",
1502 | "time_in_timezone": "11:30",
1503 | "issue_working_day_only": false,
1504 | "only_year_month": false,
1505 | "end_of_month_sell_date": false,
1506 | "invoice_pattern_enabled": true,
1507 | "invoice_pattern": "F/nr",
1508 | "convert_to_vat_invoice":true
1509 | "create_as_paid": false,
1510 | "send_email": true,
1511 | "buyer_email": "client1@email.fr, client2@email.fr",
1512 | "email_notification_enabled":true,
1513 | "end_date": "null",
1514 | "comment": ""
1515 | }}'
1516 | ```
1517 |
1518 | Vous pouvez également créer une récurrence non basée sur un document de référence. Pour cela, il suffit de spécifier le département vendeur (ID), le détail des produits (ID, quantité, prix, devise), contact (ID), et conditions de paiement, qui devront apparaître sur les factures générées par la récurrence.
1519 |
1520 | ```shell
1521 | curl https://votrecompte.vosfactures.fr/recurrings.json \
1522 | -H 'Accept: application/json' \
1523 | -H 'Content-Type: application/json' \
1524 | -d '{"api_token": "API_TOKEN",
1525 | "recurring": {
1526 | "name": "Nom de la récurrence",
1527 | "income": "true",
1528 | "department_id": 259461,
1529 | "product_id": 20419921,
1530 | "quantity": '1',
1531 | "price_gross": "20,00",
1532 | "currency": "EUR",
1533 | "client_id": 16673825,
1534 | "buyer_email": "client1@email.fr, client2@email.fr"
1535 | "payment_to": "1m",
1536 | "start_date": "2019-03-02",
1537 | "every": "1m",
1538 | "time_in_timezone": "11:30",
1539 | "issue_working_day_only": false,
1540 | "create_as_paid": false,
1541 | "only_year_month": false,
1542 | "end_of_month_sell_date": false,
1543 | "invoice_pattern_enabled": "true",
1544 | "invoice_pattern": "F/nr",
1545 | "convert_to_vat_invoice":false,
1546 | "send_email": true,
1547 | "buyer_email": "client1@email.fr, client2@email.fr",
1548 | "email_notification_enabled":true,
1549 | "end_date": "null",
1550 | "comment": "",
1551 | }}'
1552 | ```
1553 |
1554 | Pour résumer : Champs d'une récurrence
1555 | ```shell
1556 | "name": "Nom de la récurrence"
1557 | "start_date": "2019-03-02" - Date de création du 1er document récurrent
1558 | "next_invoice_date": "2019-03-02" - Date de création du prochain document récurrent
1559 | "every": "1m" - Récurrence ("1w" -> hebdomadaire, "1m" -> mensuelle, "2m" -> bimestrielle, "3m" -> trimestrielle, "6m" -> semestrielle, "1y" -> annuelle)
1560 | "time_in_timezone": "11:30" - Heure de création
1561 | "issue_working_day_only": true ou false - Créer uniquement en semaine
1562 | "convert_to_vat_invoice":true ou false - Générer des factures (au cas où le document de référence est une profroma)
1563 | "create_as_paid": true ou false - Générer les documents récurrents avec l'état Payé.
1564 | "only_year_month": true ou false - Afficher uniquement le mois et l'année dans le champ "Date additionnelle"
1565 | "end_of_month_sell_date": true ou false - Générer avec une date additionnelle égale au dernier jour du mois
1566 | "invoice_pattern_enabled": true ou false - Autre que le format de numérotation par défaut (l'option ne s'applique pas en cas de dépenses). Si vous donnez la valeur "true", vous devez alors spécifier le format de numérotation souhaité via le paramètre "invoice_pattern" (ex: "invoice_pattern": "F/nr")
1567 | "send_email": true ou false - Envoi automatique de chaque nouveau document au client par email
1568 | "email_notification_enabled":true ou false - Notification envoyée sur l'email du propriétaire du compte à chaque document généré.
1569 | "end_date": "null" - Date de fin (date du dernier document généré)
1570 | "comment": "" - Commentaires (privés) de la récurrence
1571 | ```
1572 |
1573 |
1574 | Mettre à jour une récurrence existante (ex: changement de la date de la prochaine facture)
1575 |
1576 | ```shell
1577 | curl https://votrecompte.vosfactures.fr/recurrings/111.json \
1578 | -X PUT \
1579 | -H 'Accept: application/json' \
1580 | -H 'Content-Type: application/json' \
1581 | -d '{
1582 | "api_token": "API_TOKEN",
1583 | "recurring": {
1584 | "next_invoice_date": "2016-02-01"
1585 | }
1586 | }'
1587 | ```
1588 |
1589 |
1590 | ## Relances
1591 |
1592 |
1593 | Télécharger la liste les relances d'une facture donnée
1594 | Vous pouvez obtenir pour une facture donnée (via son ID) le détail des relances ayant été effectuées, en passant la requête suivante :
1595 |
1596 | ```shell
1597 | curl "https://votrecompte.vosfactures.fr/invoices/100.json?additional_fields[invoice]=reminders_info&api_token=API_TOKEN"
1598 | ```
1599 |
1600 | Vous obtenez alors :
1601 | - le nombre total de relances,
1602 | - la date et le type de la dernière relance
1603 | - le nombre et les dates d'envoi pour chaque type de relance (`send_overdue` = relance par email, `print_overdue` = relance simple, `formal_letter` = relance recommandée, `recovery_procedure` = mise en recouvrement).
1604 |
1605 | ```shell
1606 | ...
1607 | "reminders_info": {
1608 | "count": 3,
1609 | "last_reminder_date": "2023-10-27 14:46:21",
1610 | "last_reminder_type": "overdue",
1611 | "reminders": [
1612 | {
1613 | "date": "2023-10-27 14:46:21",
1614 | "type": "overdue"
1615 | },
1616 | {
1617 | "date": "2023-10-27 14:40:11",
1618 | "type": "formal_letter"
1619 | },
1620 | {
1621 | "date": "2023-10-27 14:35:11",
1622 | "type": "recovery_procedure"
1623 | }
1624 | ]
1625 | ```
1626 |
1627 |
1628 | Télécharger la liste des relances pour une période donnée
1629 | Vous pouvez obtenir la liste de toutes les relances effectuées par type et par date de relance pour une période choisie de 7 jours maximum (pour une période plus longue, faites-le depuis l'interface), en passant la requête suivante :
1630 |
1631 | ```shell
1632 | curl -X GET --location "https://votrecompte.vosfactures.fr/reports/reminders_report.json?date_from=2024-02-16&date_to=2024-02-16&api_token=API_TOKEN"
1633 | ```
1634 |
1635 | Vous pouvez appliquer comme paramètres additionnels le type de relance (`overdue` = relances simples email et pdf, `formal_letter` = relances recommandées, `recovery_procedure` = mises en recouvrement) et le département concerné.
1636 |
1637 | Vous obtenez alors par date :
1638 | - le type de relance effectuée (`send_overdue` = relance manuelle par email, `auto_send_overdue`= relance automatique par email, `print_overdue`= relance simple PDF, `formal_letter` = relance recommandée PDF, `recovery_procedure` = mise en recouvrement)
1639 | - l'utilisateur (nom et ID) à l'origine de la relance
1640 | - le document relancé (N° et ID)
1641 | - le client relancé (nom et ID).
1642 |
1643 |
1644 |
1645 |
1646 | # Département vendeur
1647 |
1648 |
1649 | Créer un département
1650 |
1651 | Vous pouvez créer votre département (fiche entreprise) soit lors de la création d'un document (voir plus bas), soit directement :
1652 |
1653 | ```shell
1654 | curl https://votrecompte.vosfactures.fr/departments.json
1655 | -H 'Accept: application/json' \
1656 | -H 'Content-Type: application/json' \
1657 | -d '{
1658 | "api_token": "API_TOKEN",
1659 | "department": {
1660 | "name": "Entreprise ABC", "shortcut": "ABC"
1661 | }
1662 | }'
1663 | ```
1664 |
1665 |
1666 | Modifier un département
1667 |
1668 | Vous pouvez modifier un département par son ID :
1669 |
1670 | ```shell
1671 | curl https://votrecompte.vosfactures.fr/departments/100.json
1672 | -X PUT
1673 | -H 'Accept: application/json'
1674 | -H 'Content-Type: application/json'
1675 | -d '{
1676 | "api_token": "API_TOKEN",
1677 | "department": {
1678 | "name":"nouveau_nom",
1679 | "shortcut": "nouveau_nom_usage",
1680 | "tax_no": "xxx-xxx-xx-xx"
1681 | }}'
1682 | ```
1683 |
1684 |
1685 | Télécharger la liste des départements
1686 |
1687 | ```shell
1688 | curl "https://votrecompte.vosfactures.fr/departments.json?api_token=API_TOKEN"
1689 | ```
1690 |
1691 |
1692 | Obtenir un département selon ID
1693 |
1694 | ```shell
1695 | curl "https://votrecompte.vosfactures.fr/departments/100.json?api_token=API_TOKEN"
1696 | ```
1697 |
1698 |
1699 | Supprimer un département selon ID
1700 |
1701 | ```shell
1702 | curl -X DELETE "https://votrecompte.vosfactures.fr/departments/100.json?api_token=API_TOKEN"
1703 | ```
1704 |
1705 |
1706 | Ajouter un logo à un département
1707 |
1708 | ```shell
1709 | curl -X PUT https://votrecompte.vosfactures.fr/departments/100.json \
1710 | -F 'api_token=API_TOKEN' \
1711 | -F 'department[logo]=@/file_path/logo.png'
1712 | ```
1713 |
1714 |
1715 | Remarque : Champs
1716 | Voici les champs que vous pouvez utiliser:
1717 |
1718 | ```shell
1719 |
1720 | "name" : "Entreprise ABC" - Nom du département vendeur
1721 | "shortcut" : "ABC" - Nom d'usage du département (interne)
1722 | "kind":"SARL" - Forme juridique
1723 | "main":true - Département principal (true) ou non (false) (en cas de multidépartements)
1724 | "tax_no_kind":"" - Titre du type de n° d'immatriculation (ex: "TVA", "Siren" ...) - par défaut TVA
1725 | "tax_no" :"" - N° d'immatriculation - par défaut TVA
1726 | "post_code" : "75022" - Code Postal
1727 | "city" : "Paris" - Ville
1728 | "street" : "32 Rue du commerce" - N° et nom de rue
1729 | "country" : "France" - Pays
1730 | "person" : "Nom vendeur" - Nom du vendeur (en savoir plus ici:https://aide.vosfactures.fr/468616-Nom-du-vendeur)
1731 | "email" : "abc@compagnie.com"
1732 | "phone" : "" - Téléphone
1733 | "mobile_phone" : "" - Téléphone Portable
1734 | "www" : "" - site internet
1735 | "fax" : "" - Fax
1736 | "bank" : "" - Domiciliation bancaire
1737 | "bank_account" : "" - IBAN (ou n° de compte bancaire)
1738 | "bank_swift" :"" - BIC
1739 | "bank_account_currency" : "EUR" - devise du compte bancaire
1740 | "bank_accountancy_account" : "" - compte comptable banque (de la fonction "Plan Comptable": https://aide.vosfactures.fr/3069258-Exports-comptables-journaux-comptes-comptables)
1741 | "invoice_lang" : "fr" - Langue des documents par défaut (pour bilingue indiquez par ex "fr/de")
1742 | "invoice_description" : "" - Contenu par défaut du champ 'Informations spécifiques' des documents
1743 | "default_tax":"20" - Taux de taxe par défaut (pour un taux de taxe inactif indiquez "disabled")
1744 | "invoice_template_id" : 2400 - ID du format par défaut (en cas de multidépartements)
1745 | "cash_init_state" : ""150.0" - Total initial des espèces détenues
1746 | "footer_content" : "" - Contenu du bas de page personnalisé. Il convient d'envoyer également le paramètre "footer_kind": "own".
1747 | "use_pattern" : false - Numérotation indépendante des documents de ce département (en cas de multi-départements). Si true, indiquez les champs correspondants (ex: "invoice_pattern":"Fyyyy.mm.nr" pour les factures, "pattern_estimate":"FA-yymm-nr-m" pour les devis etc ...)
1748 | "own_email_settings" : false - Paramétrage indépendant du système d'envoi des emails (en cas de multi-départements). Si true, indiquez les champs correspondants ("email_from":"","email_cc":"","email_subject":"","email_template":null,"email_template_kind":"default","email_pdf":true,"own_overdue_email_settings":false,"overdue_email_subject":"","overdue_email_template":null,"overdue_email_template_kind":"default","overdue_email_pdf":true)
1749 | "restrict_warehouses" : false - Option "Restriction des entrepôts" activée (true) ou désactivée (false)
1750 | "warehouse_id" : null - ID des entrepôts en cas d'option "Restriction des entrepôts" activée
1751 | ```
1752 |
1753 |
1754 | # Contacts
1755 |
1756 |
1757 | Champs fiche contact
1758 |
1759 | ```shell
1760 | "name": "" - nom (obligatoire); S'il s'agit d'un particulier, c'est le prénom suivi du nom du contact.
1761 | "first_name":"" - prénom
1762 | "last_name":"" - Nom de famille
1763 | "company": - nature du contact : professionnel (valeur true par défaut) ou un particulier (valeur false)
1764 | "shortcut": "" - nom d'usage
1765 | "title":"" - Civilité
1766 | "last_name": "" - nom de famille
1767 | "first_name": "" - prénom
1768 | "post_code": "" - code postal
1769 | "city": "" - Ville
1770 | "street": "" - N° et nom de rue
1771 | "country": "FR" - pays (code ISO 3166)
1772 | "use_delivery_address":"" - Pour indiquer une adresse additionnelle ("1")
1773 | "delivery_address":"" - adresse additionnelle
1774 | "tax_no_kind": "" - type du n° d'identification fiscale
1775 | "tax_no": "" - n° d'identification fiscale
1776 | "external_id":"" - Réf/code client
1777 | "note":"" - description additionnelle
1778 | "phone":"" - Téléphone
1779 | "mobile_phone":"" - Tel. portable
1780 | "fax": "" - Fax
1781 | "email": "" - Email(s)
1782 | "email_for_reminders": "" - Email(s) de relance
1783 | "www": "" - site internet
1784 | "bank": "" - Nom de la banque
1785 | "bank_account": "" - IBAN
1786 | "tag_list": ["tag1", "tag2"] - tags associés au contact
1787 | "category_id":"" - ID de la catégorie du contact
1788 | "price_list_id":"" - ID du Tarif éventuel applicable au contact
1789 | "kind":"" - Type de contact : acheteur ("buyer"), vendeur ("seller") ou les deux ("both")
1790 | "payment_to_kind":"" - Date limite de règlement par défaut
1791 | "discount":"10.0" - Pourcentrage de réduction par défaut
1792 | "default_tax":"0" - Pourcentrage de taxe par défaut
1793 | "default_payment_type": "" - Mode de règlement par défaut
1794 | "disable_auto_reminders": - Envoyer (par défaut `false`) ou ne pas envoyer (`true`) de relances automatiques
1795 | "default_payment_type": "" - Mode de règlement par défaut
1796 | "department_id":"" - Nom du département lié dans le cadre de l'option "Visibilité des Contacts restreinte"
1797 | "person":"" - Personne à contacter
1798 | "use_mass_payment":true - Paiements de masse
1799 | "mass_payment_code":"" - Code de paiement de masse
1800 | "panel_url":"" - lien url de l'espace client
1801 | "accounting_id":"" - Compte comptable général (de la fonction Plan Comptable: https://aide.vosfactures.fr/3069258-Exports-comptables-journaux-comptes-comptables )
1802 | "accounting_id2":"" - Compte comptable auxiliaire
1803 | -> Option SEPA :
1804 | "sepa_b2b": true - SEPA B2B
1805 | "sepa_mandate_no":"" - RUM (N° de mandat SEPA)
1806 | -> Option "Chorus Pro" :
1807 | "chorus_identifier_type":"" - Typage Identifiant Débiteur (Chorus Pro). Voici les valeurs numériques (de 1 à 6) que vous pouvez attribuer à ce paramètre:
1808 | "1" pour "Tiers avec SIRET"
1809 | "2" pour "Structure Européenne hors France"
1810 | "3" pour "Structure hors UE"
1811 | "4" pour "RIDET"
1812 | "5" pour "Numéro Tahiti"
1813 | "6" pour "Autre"
1814 | "chorus_identifier":"123456789" - Identifiant Débiteur (Chorus Pro)
1815 | "chorus_service_code":"" - Code Service Débiteur (Chorus Pro)
1816 | "ingenico_id":"" - ID client Ingenico (paiement en ligne)
1817 | -> Option "URSSAF - API Tiers de Prestation" :
1818 | "birth_date":"" - Date de naissance
1819 | "birth_insee_country":"" - Code Insee Pays de naissance
1820 | "birth_insee_department":"" - Code Insee Département de naissance
1821 | "birth_insee_community":"" - Code Insee Ville de naissance
1822 | "birth_city":"" - Ville de naissance
1823 | "insee_country":"" - Code Insee Pays de l’adresse
1824 | "insee_community":"" - Code Insee Ville de l’adresse
1825 | "street_kind":"" - Code Insee Type de voie
1826 | "chorus_identifier_type":"1" -
1827 | "chorus_identifier":"" -
1828 | "chorus_service_code":"" - Code Service Débiteur
1829 | "urssaf_id":"" - Code ID Urssaf (en cas d'inscription)
1830 | ```
1831 |
1832 |
1833 | Télécharger la liste des contacts (par page)
1834 |
1835 | ```shell
1836 | curl "https://votrecompte.vosfactures.fr.com/clients.json?api_token=API_TOKEN&page=1"
1837 | ```
1838 |
1839 | Remarque : si les contacts ont des tags, ceux-ci seront visibles dans la réponse API par défaut. Si vous ne souhaitez obtenir les tags, envoyez le paramètre `with_tags=false` :
1840 |
1841 | ```shell
1842 | curl "https://votrecompte.vosfactures.fr.com/clients.json?with_tags=false&api_token=API_TOKEN&page=1"
1843 | ```
1844 |
1845 |
1846 | Télécharger les derniers contacts modifiés
1847 |
1848 | ```shell
1849 | curl "https://votrecompte.vosfactures.fr.com/clients.json?order=updated_at&api_token=API_TOKEN&page=1"
1850 | ```
1851 |
1852 |
1853 | Obtenir un contact selon son ID
1854 |
1855 | ```shell
1856 | curl "https://votrecompte.vosfactures.fr.com/clients/100.json?api_token=API_TOKEN"
1857 | ```
1858 |
1859 |
1860 | Obtenir un contact selon son "Réf/code client"
1861 |
1862 | ```shell
1863 | curl "https://votrecompte.vosfactures.fr.com/clients.json?external_id=100&api_token=API_TOKEN"
1864 | ```
1865 |
1866 |
1867 | Obtenir un contact selon son N° d'identification fiscale
1868 |
1869 | ```shell
1870 | curl "https://votrecompte.vosfactures.fr.com/clients.json?tax_no=100&api_token=API_TOKEN"
1871 | ```
1872 |
1873 |
1874 | Obtenir un contact selon son nom
1875 |
1876 | ```shell
1877 | curl "https://votrecompte.vosfactures.fr.com/clients.json?name=NOM&api_token=API_TOKEN"
1878 | ```
1879 |
1880 |
1881 | Obtenir un contact selon son nom d'usage
1882 |
1883 | ```shell
1884 | curl "https://votrecompte.vosfactures.fr.com/clients.json?shortcut=NOM_USAGE&api_token=API_TOKEN"
1885 | ```
1886 |
1887 |
1888 | Obtenir un contact selon son adresse email
1889 |
1890 | ```shell
1891 | curl "https://votrecompte.vosfactures.fr.com/clients.json?email=EMAIL&api_token=API_TOKEN"
1892 | ```
1893 |
1894 |
1895 | Remarque:
1896 | La variable `panel_url` est retournée lors de l'appel API d'un contact. Cette variable correspond au lien url de l'Espace Facturation du contact.
1897 |
1898 |
1899 |
1900 | Créer un contact
1901 | Seul le paramètre `name` est obligatoire.
1902 |
1903 | ```shell
1904 | curl https://votrecompte.vosfactures.fr/clients.json \
1905 | -H 'Accept: application/json' \
1906 | -H 'Content-Type: application/json' \
1907 | -d '{"api_token": "API_TOKEN",
1908 | "client": {
1909 | "name" : "Client1",
1910 | "tax_no" : "FR5252445333",
1911 | "bank" : "banque1",
1912 | "bank_account" : "IBAN1",
1913 | "city" : "Nice",
1914 | "street" : "13 Rue des Fleurs",
1915 | "country" : "",
1916 | "email" : "client@email.fr",
1917 | "post_code" : "06000",
1918 | "phone" : "0400000000",
1919 | "mobile_phone" : "0600000000"
1920 |
1921 | }}'
1922 | ```
1923 | Nature : Professionnel ou particulier
1924 |
1925 | La nature du contact créé est par défaut un professionel. Pour créer un contact particulier, vous devez envoyer également le paramètre ```company``` avec la valeur "false" et le paramètre ```last_name``` (nom de famille du contact).
1926 |
1927 | ```shell
1928 | curl https://votrecompte.vosfactures.fr/clients.json \
1929 | -H 'Accept: application/json' \
1930 | -H 'Content-Type: application/json' \
1931 | -d '{"api_token": "API_TOKEN",
1932 | "client": {
1933 | "name" : "Client1",
1934 | "last_name": "Nom de famille",
1935 | "company": false
1936 | "bank" : "banque1",
1937 | "bank_account" : "IBAN1",
1938 | "city" : "Nice",
1939 | "street" : "13 Rue des Fleurs",
1940 | "country" : "",
1941 | "email" : "client@email.fr",
1942 | "post_code" : "06000",
1943 | "phone" : "0400000000",
1944 | "mobile_phone" : "0600000000"
1945 |
1946 | }}'
1947 | ```
1948 |
1949 |
1950 | Modifier un contact
1951 |
1952 | Vous pouvez modifier un contact par son ID :
1953 |
1954 | ```shell
1955 | curl https://votrecompte.vosfactures.fr/clients/111.json \
1956 | -X PUT \
1957 | -H 'Accept: application/json' \
1958 | -H 'Content-Type: application/json' \
1959 | -d '{"api_token": "API_TOKEN",
1960 | "client": {
1961 | "name": "Client2",
1962 | "tax_no": "FR52524457672",
1963 | "bank" : "banque2",
1964 | "bank_account" : "bank_account2",
1965 | "city" : "Ville2",
1966 | "country" : "EUR",
1967 | "email" : "client2@email.fr",
1968 | "person" : "person2",
1969 | "post_code" : "post-code2",
1970 | "phone" : "phone2",
1971 | "street" : "street2",
1972 | }}'
1973 | ```
1974 |
1975 | Supprimer un contact
1976 |
1977 | Vous pouvez supprimer définitivement un contact par son ID :
1978 |
1979 | ```shell
1980 | curl -X DELETE "https://votrecompte.vosfactures.fr/clients/CLIENT_ID.json?api_token=API_TOKEN"
1981 | ```
1982 |
1983 |
1984 | Fusionner des contacts
1985 |
1986 | Il arrive parfois de créer par erreur des doublons de contacts : vous pouvez alors les fusionner en indiquant les ID des contacts à fusionner - l'ID appelé dans l'url est le contact qui sera conservé. Les documents de facturation éventuels liés aux autres contacts listés lui seront ainsi attribués, et les autres contacts seront supprimés.
1987 | Ainsi dans l'exemple d'appel ci-dessous, les contacts 1, 2, et 3 seront fusionnés : le contact 1 sera conservé, et les contacts 2 et 3 seront supprimés.
1988 |
1989 | ```shell
1990 | curl -X POST --location "https://votrecompte.vosfactures.fr/clients/ID_contact1/merge.json" \
1991 | -H "Content-Type: application/json" \
1992 | -d '{
1993 | "api_token": "API_TOKEN",
1994 | "merge_ids": [
1995 | ID_Contact2,
1996 | ID_Contact3,
1997 | ...
1998 | ]
1999 | }'
2000 | ```
2001 |
2002 |
2003 | # Produits
2004 |
2005 |
2006 | Télécharger la Liste des produits (par page)
2007 |
2008 |
2009 | ```shell
2010 | curl "https://votrecompte.vosfactures.fr/products.json?api_token=API_TOKEN&page=1"
2011 | ```
2012 |
2013 |
2014 | Télécharger la liste des produits et quantités pour un entrepôt en particulier (par page)
2015 |
2016 | ```shell
2017 | curl "https://votrecompte.ivosfactures.fr/products.json?api_token=API_TOKEN&warehouse_id=WAREHOUSE_ID&page=1"
2018 | ```
2019 |
2020 |
2021 | Obtenir un produit selon son ID
2022 |
2023 | ```shell
2024 | curl "https://votrecompte.vosfactures.fr/products/100.json?api_token=API_TOKEN"
2025 | ```
2026 |
2027 |
2028 | Obtenir un produit et sa quantité selon son ID pour un entrepôt en particulier
2029 |
2030 | ```shell
2031 | curl "https://votrecompte.vosfactures.fr/products/100.json?api_token=API_TOKEN&warehouse_id=WAREHOUSE_ID"
2032 | ```
2033 |
2034 |
2035 | Créer un produit
2036 |
2037 |
2038 | ```shell
2039 | curl https://votrecompte.vosfactures.fr/products.json \
2040 | -H 'Accept: application/json' \
2041 | -H 'Content-Type: application/json' \
2042 | -d '{"api_token": "API_TOKEN",
2043 | "product": {
2044 | "name": "ProduitA" - nom
2045 | "code": "A001" - référence
2046 | "price_gross": "100" - prix unitaire TTC
2047 | "tax": "20" - % de taxe
2048 | }}'
2049 | ```
2050 |
2051 |
2052 | Créer un produit lot
2053 | Pour créer un produit en tant que lot, vous devez spécifier dans le paramètre `package_products_details` l'ID et la quantité respective de chaque produit le composant, en numérotant à partir de 0 (0, 1, 2, 3 ...).
2054 |
2055 | ```shell
2056 | curl https://votrecompte.vosfactures.fr/products.json \
2057 | -H 'Accept: application/json' \
2058 | -H 'Content-Type: application/json' \
2059 | -d '{"api_token": "API_TOKEN",
2060 | "product": {
2061 | "name": "Lot ABC",
2062 | "price_net": "100",
2063 | "tax": "20",
2064 | "service": "true",
2065 | "package": "true",
2066 | "package_products_details": {
2067 | "0": {
2068 | "quantity": 1,
2069 | "id": id_produitA
2070 | },
2071 | "1": {
2072 | "quantity": 1,
2073 | "id": id_produitB
2074 | },
2075 | "2": {
2076 | "quantity": 1,
2077 | "id": id_produitC
2078 | }
2079 | },
2080 | }}'
2081 | ```
2082 |
2083 |
2084 | Modifier un produit
2085 |
2086 | Vous pouvez modifier un produit par son ID :
2087 |
2088 | ```shell
2089 | curl https://votrecompte.vosfactures.fr/products/333.json \
2090 | -X PUT \
2091 | -H 'Accept: application/json' \
2092 | -H 'Content-Type: application/json' \
2093 | -d '{"api_token": "API_TOKEN",
2094 | "product": {
2095 | "name": "ProduitA" - nom
2096 | "code": "A0012" - référence
2097 | "price_gross": "102" - prix unitaire TTC
2098 | "tax": "20" - % de taxe
2099 | }}'
2100 | ```
2101 |
2102 | Vous pouvez aussi modifier un produit par sa référence ("code") :
2103 |
2104 | ```shell
2105 | curl https://votrecompte.vosfactures.fr/products/REFABC.json
2106 | -X PUT \
2107 | -H 'Accept: application/json' \
2108 | -H 'Content-Type: application/json' \
2109 | -d '{"api_token": "API_TOKEN",
2110 | "find_by": "code",
2111 | "product": {
2112 | "name": "Product A",
2113 | "tax": "20",
2114 | "price_gross": "102",
2115 | "description": "Test 123"
2116 | }}'
2117 | ```
2118 |
2119 |
2120 | Mise à jour du Prix HT: Le prix HT d'un produit est calculé par le système sur la base du prix TTC et du taux de taxe - il ne peut donc pas être directement mis à jour par API.
2121 |
2122 |
2123 |
2124 | Remarques
2125 | Champs fiche produit
2126 |
2127 | ```shell
2128 | "name":"" - nom du produit
2129 | "description":"" - description du produit
2130 | "code":""- référence du produit
2131 | "quantity_unit":"" - unité
2132 | "price_gross": "" - prix unitaire ttc de vente
2133 | "price_net": "" - prix unitaire ht de vente
2134 | "tax":"20": "" - taux de taxe (vente)
2135 | "price_tax":"" - montant de taxe (vente)
2136 | "purchase_price_gross": "" - prix unitaire ttc d'achat
2137 | "purchase_price_net": "" - prix unitaire ht d'achat
2138 | "purchase_tax":"" - taux de taxe (achat)
2139 | "purchase_price_tax":"" - montant de taxe (achat)
2140 | "currency": "EUR" - devise
2141 | "stock_level": "" - quantité disponible
2142 | "disabled": - produit actif (false) ou inactif (true)
2143 | "kind":"" - Type du produit : à la vente ("sell"), à l'achat ("buy"), ou les deux ("both")
2144 | "category_id":"" - ID de la catégorie du produit
2145 | "department_id":"" - Nom du département lié dans le cadre de l'option "Visibilité des Produits restreinte"
2146 | "tag_list": ["tag1", "tag2"] - tags associés au produit
2147 | "service": "" - si le produit est un service ("1") ou non ("0")
2148 | "limited": "" - si l'option Restriction de quantité est cochée ("1") ou non ("0")
2149 | "warehouse_quantity":"-1.0" - quantité en stock (avec fonction Gestion de Stock)
2150 | "quantity": "" - Quantité vendue par défaut
2151 | "package":false - si le produit est un lot (true) ou non (false)
2152 | "package_product_ids":"" - ID des produits composant le lot
2153 | "ean_code":"" - Code-barres (code EAN13) du produit
2154 | "weight":"" - poids
2155 | "weight_unit":"" - unité du poids "kg" ou "g"
2156 | "size_height":"" - hauteur
2157 | "size_width":"" - largeur
2158 | "size":null"" - longueur
2159 | size_unit":"" - unité longueur ("m" ou "cm")
2160 | "supplier_code":"" - Référence fournisseur
2161 | "use_moss":"" - si le produit est soumis à la TVA OSS ("1") ou non ("0")
2162 | "additional_info":"" - Code nature du produit (dans le cadre de l'option API Tiers de Prestation de l'URSSAF)
2163 | "accounting_id" : "" - Compte comptable (produits) (de la fonction Plan Comptable: https://aide.vosfactures.fr/3069258-Exports-comptables-journaux-comptes-comptables )
2164 | "accounting_id2" : "" - Compte comptable (charges)
2165 | "accounting_tax_code" : "" - Compte comptable TVA (vente)
2166 | "accounting_tax_code_exp" : "" - Compte comptable TVA (achat)
2167 | "is_delivery":true - si le produit représente des frais de livraison
2168 | "accounting_activity_code" : "" - Code Activité
2169 | "accounting_sheet_code" : "" - Code Journal
2170 | ```
2171 |
2172 | Filtres
2173 | ```shell
2174 | "disabled" pour rechercher les produits inactifs, ex:
2175 | curl "https://votrecompte.vosfactures.fr/products.json?filter=disabled&api_token=API_TOKEN&page=1"
2176 | ```
2177 |
2178 | # Multi-Tarifs
2179 |
2180 |
2187 | Vous obtiendrez la réponse suivante :
2188 | ```shell
2189 | [
2190 | {
2191 | "id": 1,
2192 | "name": "Nom Tarif 1",
2193 | "description": "description Tarif 1",
2194 | "currency": "EUR",
2195 | "deleted": false,
2196 | "account_id": 2,
2197 | "created_at": "2021-07-28T09:28:04.000+02:00",
2198 | "updated_at": "2021-07-28T09:29:04.000+02:00"
2199 | },
2200 | ...
2201 | ]
2202 | ```
2203 | Remarque:
2204 | Pour obtenir le prix d'un ou plusieurs produits dans un Tarif donné :
2205 | ```shell
2206 | curl "https://votrecompte.vosfactures.fr/price_lists/100/prices_for_products.json?api_token=API_TOKEN&product_ids[]=1&product_ids[]=2"
2207 | ```
2208 | où 100 est l'ID du Tarif, et 1 et 2 sont les ID de deux produits. Vous obtiendrez la réponse suivante :
2209 |
2210 | ```shell
2211 | {
2212 | "1": {
2213 | "price_net": "23.0",
2214 | "price_gross": "27.6",
2215 | "tax": "",
2216 | "currency": "EUR",
2217 | "category_id": null
2218 | },
2219 | ...
2220 | }
2221 | ```
2222 |
2223 |
2224 | Créer un Tarif
2225 |
2226 | ```shell
2227 | curl https://votrecompte.vosfactures.fr/price_lists.json
2228 | -H 'Accept: application/json'
2229 | -H 'Content-Type: application/json'
2230 | -d '{
2231 | "api_token": "API_TOKEN",
2232 | "price_list": {
2233 | "name": "Nom du Tarif",
2234 | "description": "Description du Tarif",
2235 | "currency": "EUR",
2236 | "price_list_positions_attributes": {
2237 | "0": {
2238 | "priceable_id": "ID de la position",
2239 | "priceable_name": "Nom du produit",
2240 | "priceable_type": "Product",
2241 | "use_percentage": "0",
2242 | "percentage": "",
2243 | "price_net": "100.0",
2244 | "price_gross": "120.00",
2245 | "use_tax": "1",
2246 | "tax": "20"
2247 | }
2248 | }
2249 | }}'
2250 | ```
2251 |
2252 |
2253 | Modifier un Tarif
2254 |
2255 | Vous pouvez modifier un Tarif par son ID :
2256 |
2257 | ```shell
2258 | curl https://votrecompte.vosfactures.fr/price_lists/100.json
2259 | -X PUT
2260 | -H 'Accept: application/json'
2261 | -H 'Content-Type: application/json'
2262 | -d '{
2263 | "api_token": "API_TOKEN",
2264 | "price_list": {
2265 | "name": "Nouveau nom du Tarif",
2266 | "description": "Description du Tarif",
2267 | "currency": "EUR",
2268 | "price_list_positions_attributes": {
2269 | "0": {
2270 | "id": "ID pozycji",
2271 | "priceable_id": "ID du produit",
2272 | "price_net": "10.0",
2273 | "price_gross": "10.80"
2274 | "use_tax": "1",
2275 | "tax": "8"
2276 | }}'
2277 | ```
2278 |
2279 |
2280 | Supprimer un Tarif
2281 |
2282 | ```shell
2283 | curl -X DELETE "https://votrecompte.vosfactures.fr/price_lists/100.json?api_token=API_TOKEN"
2284 | ```
2285 |
2286 |
2287 | Facturer avec un Tarif
2288 |
2289 | ```shell
2290 | curl https://votrecompte.vosfactures.fr/invoices.json \
2291 | -H 'Accept: application/json' \
2292 | -H 'Content-Type: application/json' \
2293 | -d '{
2294 | "api_token": "API_TOKEN",
2295 | "invoice": {
2296 | "use_prices_from_price_lists": true,
2297 | "price_list_id": 123
2298 | "kind":"vat",
2299 | "number": null,
2300 | "sell_date": "2020-10-26",
2301 | "issue_date": "2020-10-26",
2302 | "payment_to": "2020-11-02",
2303 | "buyer_name": "Client Untel",
2304 | "buyer_tax_no": "FR5252445767",
2305 | "positions":[
2306 | {"product_id":111, "quantity":3},
2307 | {"product_id":222, "quantity":1}
2308 | ]
2309 | }}'
2310 | ```
2311 | Remarque : Vous pouvez identifier le tarif à appliquer aux produits facturés soit via le paramètre `price_list_id=`(ID du Tarif) soit via le paramètre `client_id` (ID du client) :
2312 |
2313 | ```shell
2314 | curl https://votrecompte.vosfactures.fr/invoices.json \
2315 | -H 'Accept: application/json' \
2316 | -H 'Content-Type: application/json' \
2317 | -d '{
2318 | "api_token": "API_TOKEN",
2319 | "invoice": {
2320 | "use_prices_from_price_lists": true,
2321 | "kind":"vat",
2322 | "number": null,
2323 | "sell_date": "2020-10-26",
2324 | "issue_date": "2020-10-26",
2325 | "payment_to": "2020-11-02",
2326 | "client_id": 555
2327 | "positions":[
2328 | {"product_id":111, "quantity":3},
2329 | {"product_id":222, "quantity":1}
2330 | ]
2331 | }}'
2332 | ```
2333 |
2334 |
2335 | # Catégories
2336 |
2337 |
2338 | Télécharger la liste des catégories
2339 |
2340 | ```shell
2341 | curl " https://votrecompte.vosfactures.fr/categories.json?api_token=API_TOKEN "
2342 | ```
2343 |
2344 |
2345 | Obtenir une catégorie selon son ID
2346 |
2347 | ```shell
2348 | curl " https://votrecompte.vosfactures.fr/categories/100.json?api_token=API_TOKEN "
2349 | ```
2350 |
2351 |
2352 | Créer une catégorie
2353 |
2354 | ```shell
2355 | curl https://votrecompte.vosfactures.fr/categories.json
2356 | -H 'Accept: application/json'
2357 | -H 'Content-Type: application/json'
2358 | -d '{
2359 | "api_token": "API_TOKEN",
2360 | "category": {
2361 | "name":"catégorie A",
2362 | "description": null
2363 | }}'
2364 | ```
2365 |
2366 |
2367 | Modifier une catégorie
2368 |
2369 | Vous pouvez modifier une catégorie par son ID :
2370 |
2371 | ```shell
2372 | curl https://votrecompte.vosfactures.fr/categories/100.json
2373 | -X PUT
2374 | -H 'Accept: application/json'
2375 | -H 'Content-Type: application/json'
2376 | -d '{
2377 | "api_token": "API_TOKEN",
2378 | "category": {
2379 | "name":"catégorie A",
2380 | "description": "description nouvelle"
2381 | }}'
2382 | ```
2383 |
2384 | Supprimer la catégorie avec l'ID donné
2385 |
2386 | ```shell
2387 | curl -X DELETE " https://votrecompte.vosfactures.fr/categories/100.json?api_token=API_TOKEN "
2388 | ```
2389 |
2390 |
2391 | # Gestion de Stock
2392 |
2393 |
2394 | ## Documents de stock
2395 |
2396 |
2397 | Télécharger les documents de stock
2398 |
2399 | ```shell
2400 | curl "https://votrecompte.vosfactures.fr/warehouse_documents.json?api_token=API_TOKEN"
2401 | ```
2402 | Vous pouvez utiliser en général les mêmes paramètres que ceux décrits pour les documents de facturation.
2403 |
2404 |
2405 | Télécharger les documents de stock d'une période donnée
2406 |
2407 | ```shell
2408 | curl "https://votrecompte.vosfactures.fr/warehouse_documents.json?api_token=API_TOKEN&period=more&date_from=2018-01-01&date_to=2018-04-30&search_date_type=issue_date"
2409 | ```
2410 | Pour la recherche pour une période entre deux dates, vous pouvez rechercher les documents de stock par date de création (`issue_date`) ou date de vente (`transaction_date`) en utilisant le paramètre `search_date_type`.
2411 |
2412 |
2413 | Obtenir un document de stock par son ID
2414 |
2415 | ```shell
2416 | curl "https://votrecompte.vosfactures.fr/warehouse_documents/555.json?api_token=API_TOKEN"
2417 | ```
2418 |
2419 |
2420 | Créer un bon d'entrée (BE)
2421 |
2422 | ```shell
2423 | curl https://votrecompte.vosfactures.fr/warehouse_documents.json
2424 | -H 'Accept: application/json'
2425 | -H 'Content-Type: application/json'
2426 | -d '{
2427 | "api_token": "API_TOKEN",
2428 | "warehouse_document": {
2429 | "kind":"pz",
2430 | "number": null,
2431 | "warehouse_id": "1",
2432 | "issue_date": "2017-10-23",
2433 | "department_name": "Department1",
2434 | "client_name": "Fournisseur1",
2435 | "warehouse_actions":[
2436 | {"product_name":"Produit A1", "purchase_tax":20, "purchase_price_net":10.20, "quantity":1},
2437 | {"product_name":"Produit A2", "purchase_tax":0, "purchase_price_net":50, "quantity":2}
2438 | ]
2439 | }}'
2440 | ```
2441 |
2442 |
2443 | Créer un bon de livraison (BL)
2444 |
2445 | ```shell
2446 | curl https://votrecompte.vosfactures.fr/warehouse_documents.json
2447 | -H 'Accept: application/json'
2448 | -H 'Content-Type: application/json'
2449 | -d '{
2450 | "api_token": "API_TOKEN",
2451 | "warehouse_document": {
2452 | "kind":"wz",
2453 | "number": null,
2454 | "warehouse_id": "1",
2455 | "issue_date": "2017-10-23",
2456 | "department_name": "Department1",
2457 | "client_name": "Client1",
2458 | "warehouse_actions":[
2459 | {"product_id":"333", "tax":20, "price_net":10.20, "quantity":1},
2460 | {"product_id":"444", "tax":0, "price_net":50, "quantity":2}
2461 | ]
2462 | }}'
2463 | ```
2464 |
2465 | Créer un bon de transfert (BT)
2466 |
2467 | ```shell
2468 | curl https://votrecompte.vosfactures.fr/warehouse_documents.json
2469 | -H 'Accept: application/json'
2470 | -H 'Content-Type: application/json'
2471 | -d '{
2472 | "api_token": "API_TOKEN",
2473 | "warehouse_document": {
2474 | "kind":"mm",
2475 | "number": null,
2476 | "warehouse_id": "1",
2477 | "issue_date": "2017-10-23",
2478 | "department_name": "Department1 SA",
2479 | "client_name": "Client ABC",
2480 | "warehouse_actions":[
2481 | {"product_name":"Produit A1", "purchase_tax":20, "purchase_price_net":10.20, "quantity":1, "warehouse2_id":13}
2482 | ]
2483 | }}'
2484 | ```
2485 |
2486 |
2487 | Créer un bon d'entrée (BE) pour un contact, département, ou produit existant
2488 |
2489 | ```shell
2490 | curl https://votrecompte.vosfactures.fr/warehouse_documents.json
2491 | -H 'Accept: application/json'
2492 | -H 'Content-Type: application/json'
2493 | -d '{
2494 | "api_token": "API_TOKEN",
2495 | "warehouse_document": {
2496 | "kind":"pz",
2497 | "number": null,
2498 | "warehouse_id": "1",
2499 | "issue_date": "2017-10-23",
2500 | "department_id": "222",
2501 | "client_id": "111",
2502 | "warehouse_actions":[
2503 | {"product_id":"333", "purchase_tax":20, "price_net":10.20, "quantity":1},
2504 | {"product_id":"444", "purchase_tax":0, "price_net":50, "quantity":2}
2505 | ]
2506 | }}'
2507 | ```
2508 |
2509 |
2510 | Modifier un document de stock
2511 |
2512 | Vous pouvez modifier un document de stock par son ID :
2513 |
2514 | ```shell
2515 | curl https://votrecompte.vosfactures.fr/warehouse_documents/555.json
2516 | -X PUT
2517 | -H 'Accept: application/json'
2518 | -H 'Content-Type: application/json'
2519 | -d '{"api_token": "API_TOKEN",
2520 | "warehouse_document": {
2521 | "client_name": "Nouveau contact"
2522 | }}'
2523 | ```
2524 |
2525 |
2526 | Supprimer un document de stock
2527 |
2528 | ```shell
2529 | curl -X DELETE "https://votrecompte.vosfactures.fr/warehouse_documents/100.json?api_token=API_TOKEN"
2530 | ```
2531 |
2532 |
2533 | ## Entrepôts
2534 |
2535 |
2536 | Liste des entrepôts
2537 |
2538 | ```shell
2539 | curl "https://votrecompte.vosfactures.fr/warehouses/100.json?api_token=API_TOKEN"
2540 | ```
2541 |
2542 |
2543 | Téléchargement de l'entrepôt sélectionné par son ID
2544 |
2545 | ```shell
2546 | curl "https://votrecompte.vosfactures.fr/warehouses/100.json?api_token=API_TOKEN"
2547 | ```
2548 |
2549 |
2550 | Créer un entrepôt
2551 |
2552 | ```shell
2553 | curl https://votrecompte.vosfactures.fr/warehouses.json
2554 | -H 'Accept: application/json'
2555 | -H 'Content-Type: application/json'
2556 | -d '{
2557 | "api_token": "API_TOKEN",
2558 | "warehouse": {
2559 | "name":"Entrepôt A",
2560 | "kind": null,
2561 | "description": null
2562 | }}'
2563 | ```
2564 |
2565 |
2566 | Modifier un entrepôt
2567 |
2568 | Vous pouvez modifier un entrepôt par son ID :
2569 |
2570 | ```shell
2571 | curl https://votrecompte.vosfactures.fr/warehouses/100.json
2572 | -X PUT
2573 | -H 'Accept: application/json'
2574 | -H 'Content-Type: application/json'
2575 | -d '{
2576 | "api_token": "API_TOKEN",
2577 | "warehouse": {
2578 | "name":Entrepôt A",
2579 | "kind": null,
2580 | "description": "nouvelle description"
2581 | }}'
2582 | ```
2583 |
2584 |
2585 | Supprimer un entrepôt sélectionné par ID
2586 |
2587 | ```shell
2588 | curl -X DELETE "https://votrecompte.vosfactures.fr/warehouses/100.json?api_token=API_TOKEN"
2589 | ```
2590 |
2591 |
2592 |
2593 | ## Opération des stocks
2594 |
2595 |
2596 |
2597 | Télécharger la liste des opérations
2598 |
2599 | ```shell
2600 | curl "https://votrecompte.vosfactures.fr/warehouse_actions.json?api_token=API_TOKEN"
2601 | ```
2602 |
2603 |
2604 | Paramètres additionnels de téléchargement
2605 |
2606 | Des paramètres supplémentaires peuvent être passés aux appels API. En effet vous pouvez utiliser les mêmes filtres que ceux proposés par le logiciel dans le moteur de recherche, par exemple `page=`, `per_page=` etc.
2607 |
2608 | Le paramètre `warehouse_id=` (ID de l'entrepôt) listera uniquement les opérations d'un entrepôt donné.
2609 |
2610 | Le paramètre `kind=` (type d'opération) listera uniquement les types d'opération donnés.
2611 |
2612 | Le paramètre `product_id=` (ID produit) permet de filtrer les opérations concernant un produit donné.
2613 |
2614 | `date_from=` et `date_to=` ciblent les opérations créées depuis ou avant une date donnée.
2615 |
2616 | Le paramètre `from_warehouse_document=` ciblent les opérations de sortie depuis un entrepôt donné.
2617 |
2618 | Le paramètre `to_warehouse_document=` ciblent les opérations d'entrée dans un entrepôt donné.
2619 |
2620 | Le paramètre `warehouse_document_id=` (ID du document de stock) ciblent les opérations liées à un document de stock en particulier.
2621 |
2622 |
2623 | # Paiements
2624 |
2625 | Vous pouvez via l'API ajouter un paiement que vous retrouverez dans votre onglet "Paiements" de votre compte VosFactures, qu'il s'agisse d'un paiement manuel, ou d'un paiement en ligne (réalisé depuis une facture via la fonction "Paiement en ligne", ou depuis le wigdet de paiement de la fonction "Paiements E-commerce").
2626 |
2627 |
2628 |
2629 | Champs disponibles
2630 |
2631 | Coordonnées de l'acheteur apparaissant dans les champs "grisés" du paiement (et non sur la facture) :
2632 | ```shell
2633 | "last_name" - Nom de famille
2634 | "first_name" - Prénom
2635 | "street" - N° et nom de rue
2636 | "city" - Ville
2637 | "post_code" - Code Postal
2638 | "country" - Pays
2639 | "client_id" - ID de l'acheteur
2640 | "phone" - Téléphone
2641 | "email" - Email
2642 | ```
2643 |
2644 | Coordonnées de l'acheteur apparaissant sur la facture correspondant au paiement :
2645 | ```shell
2646 | "invoice_id" - ID de la facture qui reçoit le paiement
2647 | "invoice_name" - Nom
2648 | "invoice_street" - N° et nom de rue
2649 | "invoice_city" - Ville
2650 | "invoice_post_code" - Code Postal
2651 | "invoice_country" - Pays
2652 | "invoice_tax_no" - N° d'identification fiscal
2653 | ```
2654 | Concernant le paiement :
2655 | ```shell
2656 | "price" - Montant du paiement
2657 | "name" - Titre du paiement
2658 | "description" - Description du paiement
2659 | "comment" - Commentaire du paiement
2660 | "currency" - Devise du paiement
2661 | "paid_date" - Date du paiement
2662 | "department_id" - ID du département vendeur concerné
2663 | "oid" - N° de commande qu reçoit le paiement
2664 | "paid" - "1" ou "0" pour indiquer si le Paiement est "payé" ou non
2665 | "kind" - Type de paiement (origine). Si ajouté par API, la valeur devrait être "api".
2666 | "provider"- Nom de la plateforme de paiement (en cas de Paiement en Ligne)
2667 | "provider_response" - Réponse de la plateforme de paiement (en cas de Paiement en Ligne)
2668 | "provider_status" - Etat du paiement selon la plateforme de paiement (en cas de Paiement en Ligne)
2669 | "provider_title" - Titre de la plateforme de paiement (en cas de Paiement en Ligne)
2670 | ```
2671 |
2672 | En cas de widget de paiement (Fonction "Paiements E-commerce"):
2673 | ```shell
2674 | "invoice_comment" - Commentaire éventuellement laissé par l'acheteur (n'apparaît pas sur les factures)
2675 | "product_id" - ID du produit à l'origine du paiement
2676 | "quantity" - Quantité du produit
2677 | "promocode" - Code promotionnel
2678 | ```
2679 |
2680 |
2681 | Télécharger la liste des Paiements
2682 |
2683 | Vous pouvez utiliser les mêmes paramètres de filtre que ceux disponibles pour une recherche manuelle depuis l'onglet Paiements.
2684 |
2685 | XML
2686 | ```shell
2687 | curl "https://votrecompte.vosfactures.fr/banking/payments.xml?api_token=API_TOKEN"
2688 | ```
2689 |
2690 | JSON
2691 | ```shell
2692 | curl "https://votrecompte.vosfactures.fr/banking/payments.json?api_token=API_TOKEN"
2693 | ```
2694 |
2695 | Télécharger la liste des Paiements avec les factures liées
2696 |
2697 | XML
2698 | ```shell
2699 | curl "https://votrecompte.vosfactures.fr/banking/payments.xml?include=invoices&api_token=API_TOKEN"
2700 | ```
2701 |
2702 | JSON
2703 | ```shell
2704 | curl "https://votrecompte.vosfactures.fr/banking/payments.json?include=invoices&api_token=API_TOKEN"
2705 | ```
2706 |
2707 | Télécharger la liste des Paiements d'une facture donnée
2708 |
2709 | Vous pouvez télécharger une facture (via son ID) avec les paiements qui y sont rattachés.
2710 |
2711 | XML
2712 | ```shell
2713 | curl "https://votrecompte.vosfactures.fr/invoices/100.xml?additional_fields[invoice]=connected_payments&api_token=API_TOKEN"
2714 | ```
2715 |
2716 | JSON
2717 | ```shell
2718 | curl "https://votrecompte.vosfactures.fr/invoices/100.json?additional_fields[invoice]=connected_payments&api_token=API_TOKEN"
2719 | ```
2720 |
2721 |
2722 | Obtenir un paiement selon son ID
2723 |
2724 | XML
2725 | ```shell
2726 | curl "https://votrecompte.vosfactures.fr/banking/payments/100.xml?api_token=API_TOKEN"
2727 | ```
2728 |
2729 | JSON
2730 | ```shell
2731 | curl "https://votrecompte.vosfactures.fr/banking/payment/100.json?api_token=API_TOKEN"
2732 | ```
2733 |
2734 |
2735 | Ajouter un nouveau paiement
2736 |
2737 | Minimal JSON
2738 | ```shell
2739 | curl https://votrecompte.vosfactures.fr/banking/payments.json
2740 | -H 'Accept: application/json'
2741 | -H 'Content-Type: application/json'
2742 | -d '{
2743 | "api_token": "API_TOKEN",
2744 | "banking_payment": {
2745 | "name":"Titre du Paiement",
2746 | "price": 100.00,
2747 | "invoice_id": null,
2748 | "paid":true,
2749 | "kind": "api"
2750 | }
2751 | }'
2752 | ```
2753 |
2754 | Full JSON
2755 | ```shell
2756 | curl https://votrecompte.vosfactures.fr/banking/payments.json
2757 | -H 'Accept: application/json'
2758 | -H 'Content-Type: application/json'
2759 | -d '{
2760 | "api_token": "API_TOKEN",
2761 | "banking_payment": {
2762 | "city": null,
2763 | "client_id":null,
2764 | "comment":null,
2765 | "country":null,
2766 | "currency":"EUR",
2767 | "department_id":null,
2768 | "description":"abonnement mensuel",
2769 | "email":"email@email.com",
2770 | "first_name":"Paul",
2771 | "generate_invoice":true,
2772 | "invoice_city":"Paris",
2773 | "invoice_comment":"",
2774 | "invoice_country":null,
2775 | "invoice_id":null,
2776 | "invoice_name":"Durand Paul",
2777 | "invoice_post_code":"06800",
2778 | "invoice_street":"75 Rue du Parc",
2779 | "invoice_tax_no":"FR5252445767",
2780 | "last_name":"Durand",
2781 | "name":"Titre du Paiement",
2782 | "oid":"",
2783 | "paid":true,
2784 | "paid_date":null,
2785 | "phone":null,
2786 | "post_code":null,
2787 | "price":"100.00",
2788 | "product_id":1,
2789 | "promocode":"",
2790 | "provider":"virement",
2791 | "provider_response":null,
2792 | "provider_status":null,
2793 | "provider_title":null,
2794 | "quantity":1,
2795 | "street":null,
2796 | "kind": "api"
2797 | }
2798 | }'
2799 | ```
2800 |
2801 | Ajouter un nouveau paiement lié à plusieurs factures
2802 |
2803 | ```shell
2804 | curl https://votrecompte.vosfactures.fr/banking/payments.json \
2805 | -H 'Accept: application/json' \
2806 | -H 'Content-Type: application/json' \
2807 | -d '{
2808 | "api_token": "API_TOKEN",
2809 | "banking_payment": {
2810 | "name":"Titre du paiement",
2811 | "price": 200,
2812 | "invoice_ids": [555, 666],
2813 | "paid":true,
2814 | "kind": "api"
2815 | }}'
2816 | ```
2817 | Attention : l'ordre dans lequel vous spécifiez l'ID des factures dans le paramètre `invoice_ids` est important, car le montant du paiement sera appliqué dans cet ordre. Dans notre exemple, si le montant à payer de la facture ID 555 est de 100 euros, et celui de la facture ID 666 est de 150 euros, le paiement de 200 euros s'applique d'abord à la facture 555 (payée en totalité) et ensuite à la facture 666 (payée en partie).
2818 |
2819 |
2820 | Modifier un paiement
2821 |
2822 | Vous pouvez modifier un paiement par son ID :
2823 |
2824 | ```shell
2825 | curl https://votrecompte.vosfactures.fr/banking/payments/100.json
2826 | -X PATCH
2827 | -H 'Accept: application/json'
2828 | -H 'Content-Type: application/json'
2829 | -d '{
2830 | "api_token": "API_TOKEN",
2831 | "banking_payment": {
2832 | "name":"Nouveau titre du Paiement",
2833 | "price": 120.00,
2834 | }}'
2835 | ```
2836 |
2837 |
2838 | Supprimer un paiement
2839 |
2840 | ```shell
2841 | curl -X DELETE "https://votrecompte.vosfactures.fr/banking/payments/100.json?api_token=API_TOKEN"
2842 | ```
2843 |
2844 |
2845 | ## Gestion des Comptes(s) à partir d'application tierce
2846 |
2847 | C'est une option utile si, en tant qu'utilisateur de VosFactures, vous avez une application tierce et souhaitez offrir à vos clients/utilisateurs de votre application une solution de facturation. Il est en effet possible via l'API de créer et configurer des comptes de facturation sur VosFactures à partir d'une application tierce (exemple: site e-commerce, système de réservation, etc...).
Ainsi directement depuis votre portail, votre client/utilisateur peut créer un compte avec un seul bouton et commencer immédiatement à émettre des factures (il n'a pas besoin de créer son compte depuis le site vosfactures.fr).
2848 |
2849 |
2850 | Créer un nouveau compte
2851 | Pour créer un compte depuis votre application intégrée, vous avez besoin d'envoyer :
2852 | - le code API de votre compte
2853 | - le préfixe du compte à créer
2854 | - l'utilisateur éventuel qui sera propriétaire du compte à créer (si vous souhaitez que le propriétaire du nouveau compte créé soit le même que celui de votre compte, il suffira de ne pas inclure dans votre requête de section "user")
2855 | - le paramètre `integration_token` (code d'intégration) lié à votre compte. Contactez-nous par email à info@vosfactures.fr afin de l'obtenir.
2856 |
Les champs suivants ne sont pas obligatoires : `user.login`, `user.from_partner`, `user`, `company` (département du compte à créer).
2857 |
2858 |
2859 | ```shell
2860 | curl https://votrecompte.vosfactures.fr/account.json \
2861 | -H 'Accept: application/json' \
2862 | -H 'Content-Type: application/json' \
2863 | -d '{
2864 | "api_token": "API_TOKEN",
2865 | "account": {
2866 | "prefix": "ABC"
2867 | "lang": "fr"
2868 | },
2869 | "user": {
2870 | "login": "identifiantABC",
2871 | "email": "email@abc.com",
2872 | "password": "motdepasseABC",
2873 | "from_partner": "code_parrainage"
2874 | },
2875 | "company": {
2876 | "name": "Société ABC",
2877 | "tax_no": "FR5252445700",
2878 | "post_code": "06000",
2879 | "city": "Nice",
2880 | "street": "Rue de la Joie",
2881 | "person": "Julie Durand",
2882 | "bank": "Crédit Niçois",
2883 | "bank_account": "111222333444555666111"
2884 | },
2885 | "integration_token": ""
2886 | }'
2887 | ```
2888 | REMARQUE: le paramètre ```integration_token``` est requis pour télécharger le code API actuel de l'utilisateur.
2889 |
2890 | Après avoir créé le nouveau compte :
2891 |
2892 | ```shell
2893 | {
2894 | "prefix":"ABC", - préfixe du compte créé (notez qu'il peut être différent de celui voulu lorsqu'un compte avec le même préfixe existe déjà)
2895 | "api_token":"62YPJfIekoo111111", - code API du compte créé
2896 | "url":"https://ABC.vosfactures.fr", - url du compte créé
2897 | "login":"identifiantABC", - identifiant de l'utilisateur (notez qu'il peut être différent de celui voulu lorsqu'un utilisateur avec le même identifiant existe déjà)
2898 | "email":"email@abc.com"
2899 | }
2900 | ```
2901 |
2902 | Autres champs disponibles lors de la création d'un nouveau compte (utile pour l'intégration) :
2903 |
2904 | ```shell
2905 | "account": {
2906 | "prefix": "ABC",
2907 | "lang": "fr",
2908 | "integration_fast_login": true - permet la connexion automatique de vos utilisateurs dans VosFactures
2909 | "integration_logout_url": "https://votresite.com/" - vous permet de renvoyer vos utilisateurs sur votre site après la déconnexion des utilisateurs de VosFactures
2910 | }
2911 | ```
2912 |
2913 |
2914 | Télécharger les informations du compte
2915 |
2916 | ```shell
2917 | curl "https://votrecompte.vosfactures.fr/account.json?api_token=API_TOKEN&integration_token="
2918 | ```
2919 |
2920 |
2921 | Supprimer un compte
2922 | Après l'envoi de la requête ci-dessous, la procédure de suppression du compte par API est la même qu'une suppression manuelle : un e-mail de confirmation est envoyé. En savoir plus : https://aide.vosfactures.fr/20342070-Supprimer-son-compte-VosFactures.
2923 |
2924 | ```shell
2925 | curl https://votrecompte.vosfactures.fr/account/delete.json \
2926 | -X POST \
2927 | -H 'Accept:application/json' \
2928 | -H 'Content-Type: application/json' \
2929 | -d '{
2930 | "api_token": "API_TOKEN"
2931 | }'
2932 | ```
2933 | Exemple de réponse :
2934 |
2935 | ```shell
2936 | {
2937 | "code": "success",
2938 | "message": "Email de suppression du compte envoyé !"
2939 | }
2940 | ```
2941 |
2942 |
2943 |
2944 |
2945 | Création d'utilisateur
2946 |
2947 | Une fois que vous avez créé un compte par API et défini son propritéaire (voir ci-dessus), vous pouvez ajouter par API d'autres utilisateurs au compte, et définir leur rôle. Pour ajouter un utilisateur à un compte, vous avez besoin d'envoyer :
2948 | - le code API du compte (```api_token```)
2949 | - votre code d'intégration (```integration_token```). Contactez-nous par email à info@vosfactures.fr afin de l'obtenir.
2950 | - le paramètre ```invite``` pour spécifier :
2951 | - si l'utilisateur doit être créé ("false") : vous devez alors choisir un mot de passe en plus d'envoyer l'adresse email
2952 | - si l'utilisateur existe déjà car lié à un autre compte VosFactures ("true") : seule son adresse email est nécessaire
2953 | - le rôle de l'utilisateur (```role```):
2954 | - pour un des rôles par défaut, choisissez la valeur : "member" pour un utilisateur simple, "admin" pour un administrateur, ou "accountant" pour un comptable.
2955 | - pour un rôle personnalisé, envoyez la valeur "role_1234" où 1234 représente l'ID du rôle personnalisé du compte.
2956 | - le ou les ID des départements (```department_ids```) auxquels l'utilisateur non administrateur a accès.
2957 |
2958 | Pour en savoir plus sur les différents rôles des utilisateurs : https://aide.vosfactures.fr/29416365-R-les-des-Utilisateurs.
2959 |
2960 | ```shell
2961 | POST https://votrecompte.vosfactures.fr/account/add_user.json
2962 | Content-Type: application/json
2963 | {
2964 | "api_token": "API_TOKEN",
2965 | "integration_token": "INTEGRATION_TOKEN",
2966 | "user": {
2967 | "invite": true,
2968 | "email": "email@test.fr",
2969 | "password": "Password123",
2970 | "role": "member",
2971 | "department_ids": []
2972 | }
2973 | }
2974 | ```
2975 |
2976 |
2977 |
2978 | Connexion via API
2979 |
2980 | La requête suivante (qui nécessite le mot de passe) renvoie le code API du compte et les informations sur le compte VosFactures :
2981 | ```shell
2982 | curl https://app.vosfactures.fr/login.json \
2983 | -H 'Accept: application/json' \
2984 | -H 'Content-Type: application/json' \
2985 | -d '{
2986 | "login": "identifiant_ou_email",
2987 | "password": "mot_de_passe"
2988 | "integration_token": ""
2989 | }'
2990 | ```
2991 | REMARQUE: Pour recevoir le "integration_token", veuillez nous contacter par email à info@vosfactures.fr.
2992 |
2993 | Voici la réponse retournée, qui inclut notamment le `prefixe`, l' `url` et le code API du compte :
2994 | ```shell
2995 | {
2996 | "login":"paul",
2997 | "email":"paul@email.com",
2998 | "prefix":"YYYYYYY",
2999 | "url":"https://YYYYYYY.vosfactures.fr",
3000 | "first_name":"Paul",
3001 | "last_name":"Lebrun",
3002 | "api_token":"XXXXXXXXXXXXXX"
3003 | }
3004 | ```
3005 | Notez que le code API (```api_token```) n'est retourné que si l'utilisateur indiqué a préalablement généré le code API (l'utilisateur peut l'ajouter depuis Paramètres -> Paramètres du compte -> Intégration -> Code d'autorisation API).
3006 |
3007 |
3008 | # Webhooks
3009 |
3010 | Vous pouvez gérer vos webhooks soit depuis l'interface du logiciel (Paramètres > Paramètres du compte > Intégrations), soit directement par API.
3011 | Les différents types de webhooks disponibles sont :
3012 | `client:create` - création d'un contact
3013 | `client:update` - modification d'un contact
3014 | `client:destroy` - suppression d'un contact
3015 | `invoice:create` - création d'un document de facturation
3016 | `invoice:update` - modification d'un document de facturation
3017 | `invoice:destroy` - suppression d'un document de facturation
3018 | `product:create` - création d'un produit
3019 | `product:update` - modification d'un produit
3020 | `product:destroy` - suppression d'un produit
3021 |
3022 | Télécharger la liste des webhooks existants
3023 | ```shell
3024 | curl "https://votrecompte.vosfactures.fr/webhooks.json?api_token=API_TOKEN"
3025 | ```
3026 | Télécharger un webhook donné
3027 | ```shell
3028 | curl "https://votrecompte.vosfactures.fr/webhooks/1.json?api_token=API_TOKEN"
3029 | ```
3030 |
3031 | Créer un nouveau webhook
3032 | ```shell
3033 | curl -X POST --location "https://votrecompte.vosfactures.fr/webhooks.json" \
3034 | -H "Accept: application/json" \
3035 | -H "Content-Type: application/json" \
3036 | -d "{
3037 | \"api_token\": \"API_TOKEN\",
3038 | \"webhook\": {
3039 | \"kind\": \"client:create\",
3040 | \"url\": \"https://votrepage.fr/webhook_endpoint\",
3041 | \"api_token\": \"MY_ENDPOINT_API_TOKEN\",
3042 | \"active\": true
3043 | }
3044 | }"
3045 | ```
3046 |
3047 | Modifier un webhook donné
3048 | ```shell
3049 | curl -X PUT --location "https://votrecompte.vosfactures.fr/webhooks/1.json" \
3050 | -H "Accept: application/json" \
3051 | -H "Content-Type: application/json" \
3052 | -d "{
3053 | \"api_token\": \"API_TOKEN\",
3054 | \"webhook\": {
3055 | \"kind\": \"client:create\",
3056 | \"url\": \"https://votrepage.fr/webhook_endpoint\",
3057 | \"api_token\": \"MY_ENDPOINT_API_TOKEN\",
3058 | \"active\": true
3059 | }
3060 | }"
3061 | ```
3062 |
3063 | Supprimer un webhook donné
3064 | ```shell
3065 | curl -X DELETE "https://votrecompte.vosfactures.fr/webhooks/1.json?api_token=API_TOKEN"
3066 | ```
3067 |
3068 |
3069 | # Exemples
3070 |
3071 | CURL : https://github.com/vosfactures/API/blob/master/example.curl
3072 |
3073 | PHP : https://github.com/vosfactures/API/blob/master/example1.php
3074 |
3075 | Ruby : https://github.com/vosfactures/API/blob/master/example1.rb
3076 |
3077 |
--------------------------------------------------------------------------------
/example.curl:
--------------------------------------------------------------------------------
1 | curl http://votrecompte.vosfactures.fr/invoices.json -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"api_token": "votre_code_API","invoice": {"kind":"vat", "number": null, "sell_date": "2013-07-19", "issue_date": "2013-07-19", "payment_to": "2013-07-26","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}]}}'
2 |
--------------------------------------------------------------------------------
/example1.php:
--------------------------------------------------------------------------------
1 |
13 |
14 |
--------------------------------------------------------------------------------
/example1.rb:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | require 'net/https'
4 | require 'uri'
5 | require 'json'
6 |
7 | endpoint = 'http://votrecompte.vosfactures.fr/invoices.json'
8 | uri = URI.parse(endpoint)
9 |
10 | json_params = {
11 | "api_token" => "votre_API_code",
12 | "invoice" => {
13 | "number" => nil,
14 | "kind" => "vat",
15 | "sell_date" => "2013-07-19",
16 | "issue_date" => "2013-07-19",
17 | "payment_to" => "2013-07-26",
18 | "seller_name" => "Société Chose",
19 | "seller_tax_no" => "FR5252445767",
20 | "buyer_name" => "Client Intel",
21 | "buyer_tax_no" => "FR45362780010",
22 | "positions" => [
23 | { "name" => "Produit A1", "tax" => 23, "total_price_gross" => 10.23, "quantity" => 1 },
24 | { "name" => "Produit A2", "tax" => 0, "total_price_gross" => 50, "quantity" => 3 }
25 | ]
26 | }
27 | }
28 |
29 | request = Net::HTTP::Post.new(uri.path)
30 | request.body = JSON.generate(json_params)
31 | request["Content-Type"] = "application/json"
32 |
33 | http = Net::HTTP.new(uri.host, uri.port)
34 | response = http.start { |h| h.request(request) }
35 |
36 | if response.code == '201'
37 | ret = JSON.parse(response.body)
38 | else
39 | ret = response.body
40 | end
41 |
42 | puts ret.to_json
43 |
--------------------------------------------------------------------------------