├── 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 | --------------------------------------------------------------------------------