Retour aux guides
| Mathis Rodrigues | 20 minutes de lecture | Version PDF

Importer ses devis et factures depuis un fichier JSON

importjsonfacturation
Vous migrez depuis un autre logiciel, ou un programme à vous produit déjà vos documents ? Le JSON est le format le plus précis pour les faire entrer dans Meolya : chaque champ a un nom et un type fixes, et la moindre clé inconnue est signalée au lieu d'être ignorée en silence.
Un seul fichier peut porter jusqu'à 500 devis et factures. Meolya les analyse, vous montre ce qu'il va créer et ce qui cloche, puis crée les documents valides en brouillon, clients compris. Ce guide vous emmène du premier objet JSON jusqu'aux brouillons, puis sert de référence : le schéma complet, chaque règle de calcul et chaque message d'erreur y est décrit.
ℹ️
Ce qu'il vous faut

Le droit de créer des documents dans Meolya (écriture sur les documents), vérifié à chaque étape. Un fichier de 5 Mo au plus, jusqu'à 500 documents et 1 000 lignes par document. Et quelques minutes pour lire l'analyse : rien n'est créé tant que vous n'avez pas confirmé.

Étape 1 : ouvrir l'import

Dans Facturation, ouvrez le menu Nouveau en haut à droite et choisissez Importer depuis un fichier. Le même choix existe au clic droit sur la liste, ou par un appui long sur un écran tactile. L'entrée n'apparaît que si vous pouvez créer des documents, et jamais dans les archives.
Menu Nouveau de la liste Facturation
Nouveau devis, Nouvelle facture, et sous le séparateur : Importer depuis un fichier.
La fenêtre Importer des devis et factures rappelle les trois règles qui ne changent jamais : les documents sont créés en brouillon, les clients inconnus sont créés, et les dates du fichier sont ignorées, car un brouillon reçoit sa date à sa validation. Le bouton Analyser reste grisé tant qu'aucun fichier valable n'est choisi.
Fenêtre Importer des devis et factures
JSON, CSV ou Excel (.xlsx), 5 Mo et 500 documents au maximum. Le format est reconnu tout seul.

Étape 2 : le fichier JSON

  • Encodage : UTF-8, avec ou sans BOM. L'UTF-16 est refusé.
  • Extension .json, et un contenu qui commence par {. Un tableau au premier niveau n'est pas accepté : tout est dans l'objet racine.
  • Types stricts : un nombre s'écrit comme un nombre (12, 8.4), jamais entre guillemets. "quantite": "12" est une erreur. Un oui/non s'écrit true ou false, un texte entre guillemets. Le séparateur décimal est le point.
  • Toujours en texte : le SIRET, le code postal et le téléphone, entre guillemets, pour garder les zéros de tête. Un code postal écrit comme un nombre est refusé.
  • Clés exactes : la casse compte (prixUnitaireHT, pas prixunitaireht). Toute clé inconnue est une erreur : au premier niveau, elle bloque le fichier ; dans un document, elle écarte ce document.
  • Notes : toute clé qui commence par _ est ignorée, à tous les niveaux, quelle que soit sa valeur : "_commentaire": "à relire".
  • null vaut une clé absente pour une valeur simple, une remise, une majoration ou une adresse. Pour client, lignes, acomptes ou livraison, null est une erreur de type : retirez plutôt la clé.

L'exemple complet du guide

Voici le fichier utilisé dans les captures : un devis pour une entreprise, avec catégories, remise et majoration globales et de ligne, deux acomptes et une note publique ; puis une facture pour une particulière, avec deux taux de TVA et une note interne. Copiez-le dans un fichier .json pour vous entraîner.
{
  "format": "meolya-documents",
  "version": 1,
  "documents": [
    {
      "type": "devis",
      "reference": "D-2026-101",
      "titre": "Devis parquet",
      "objet": "Pose d'un parquet dans le séjour",
      "tvaParDefaut": 10,
      "remise": {
        "type": "pourcentage",
        "valeur": 5
      },
      "majoration": {
        "type": "montant",
        "valeur": 35,
        "nom": "Frais de déplacement"
      },
      "notePublique": "Devis valable 30 jours.",
      "client": {
        "type": "structure",
        "raisonSociale": "Agence Roche Immobilier",
        "formeJuridique": "SAS",
        "siret": "12345678900017",
        "email": "contact@roche-immobilier.fr",
        "telephone": "04 75 11 22 33",
        "adresse": {
          "ligne1": "14 rue des Artisans",
          "codePostal": "26000",
          "ville": "Valence"
        }
      },
      "lignes": [
        {
          "type": "categorie",
          "nom": "Fournitures"
        },
        {
          "type": "produit",
          "nom": "Parquet chêne massif 14 mm",
          "code": "PARQ14",
          "description": "Lames de 90 mm, finition huilée",
          "quantite": 32,
          "unite": "m2",
          "prixUnitaireHT": 48.5,
          "totalHT": 1552.0
        },
        {
          "type": "produit",
          "nom": "Plinthes chêne",
          "quantite": 40,
          "unite": "ml",
          "prixUnitaireHT": 6.2,
          "remise": {
            "type": "pourcentage",
            "valeur": 10
          },
          "totalHT": 223.2
        },
        {
          "type": "categorie",
          "nom": "Pose"
        },
        {
          "type": "produit",
          "nom": "Pose collée",
          "quantite": 32,
          "unite": "m2",
          "prixUnitaireHT": 22,
          "majoration": {
            "type": "pourcentage",
            "valeur": 15
          },
          "totalHT": 809.6
        }
      ],
      "acomptes": [
        {
          "pourcentage": 30,
          "echeance": "2026-11-16"
        },
        {
          "pourcentage": 70,
          "echeance": "2026-12-18"
        }
      ],
      "totalHT": 2494.6,
      "totalTTC": 2744.06
    },
    {
      "type": "facture",
      "reference": "F-2026-101",
      "objet": "Réglage et quincaillerie",
      "noteInterne": "Cliente recommandée par l'agence Roche.",
      "client": {
        "type": "particulier",
        "prenom": "Élodie",
        "nom": "Garnier",
        "email": "elodie.garnier@exemple.fr",
        "adresse": {
          "ligne1": "3 place des Clercs",
          "codePostal": "26000",
          "ville": "Valence"
        }
      },
      "lignes": [
        {
          "type": "produit",
          "nom": "Réglage des portes",
          "quantite": 1,
          "unite": "forfait",
          "prixUnitaireHT": 90,
          "tva": 10
        },
        {
          "type": "produit",
          "nom": "Charnière invisible",
          "quantite": 4,
          "unite": "u",
          "prixUnitaireHT": 12.9,
          "tva": 20
        }
      ],
      "totalHT": 141.6,
      "totalTTC": 160.92
    }
  ]
}

Le schéma, clé par clé

Premier niveau. format vaut toujours "meolya-documents", version vaut 1 (un nombre), documents est une liste de 1 à 500 documents, et entreprise (facultatif) déclare l'entreprise émettrice.
Clé du documentTypeRôle
typetexte, obligatoire"devis" ou "facture"
referencetextevotre référence, affichée dans l'analyse, non enregistrée
objet, titretexteobjet (500 caractères), titre imprimé (120)
notePublique, noteInternetextenote imprimée (1 024), note interne (4 096)
devisetexte"EUR" (ou euro, euros, le signe euro) seulement
tvaParDefautnombre20, 10, 5.5, 2.1 ou 0 ; 20 si absent
autoliquidationtrue / falseautoliquidation de la TVA
remise, majorationobjetremise et majoration globales
clientobjet, obligatoirele client du document
adresseFacturationobjet Adressesi elle diffère de celle du client
livraisonobjetnom (96) et adresse
lignesliste, obligatoireau moins une ligne de produit, 1 000 au plus
acompteslistedevis seulement
entrepriseobjetentreprise émettrice de ce document
totalHT, totalTTCnombrecontrôle, jamais repris
Clé du clientRôle
typeparticulier, marie, pacse, structure, international (et synonymes) ; déduit s'il manque
raisonSociale, formeJuridiquenom et forme d'une entreprise
prenom, nomparticulier, ou personne 1 d'un couple (ou personne1)
personne2objet {"prenom", "nom"} : personne 2 d'un couple
sirettexte, 14 chiffres (ou SIREN, 9) ; obligatoire pour créer une structure
tvanuméro de TVA intracommunautaire ; obligatoire pour une entreprise étrangère de l'UE
identifiantFiscal, email, telephonetexte
adresseobjet Adresse ; obligatoire pour créer un client
ObjetClés
Adresseligne1 (obligatoire), ligne2, codePostal (texte, obligatoire), ville (obligatoire), pays (France si absent)
Ligne de produit"type": "produit", nom (96), code, description, quantite (> 0), unite (10), prixUnitaireHT, tva, remise, majoration, totalHT (contrôle)
Ligne de catégorie"type": "categorie" et nom (64), aucune autre clé
Remise{"type": "pourcentage" | "montant", "valeur": nombre}, sans nom
Majorationcomme une remise, plus nom (48) sur la majoration globale seulement
Acomptepourcentage ou montant (jamais les deux), echeance facultative : "2026-11-16" ou "16/11/2026"
Entreprisesiret, tva
⚠️
Clés refusées, clés ignorées

Dans un document ou un client, id, numero, statut, status, paiement, paiements, fsn et serie sont refusées : le numéro est attribué à la validation du brouillon. Les clés de date d'un document (date, dateEmission, dateEcheance, validite...) sont acceptées mais ignorées, avec un avertissement.

Étape 3 : analyser

Choisissez le fichier, puis cliquez sur Analyser. Meolya envoie le fichier, le lit en entier et vous montre l'Aperçu de l'import. À ce stade, rien n'existe encore dans votre Meolya.
Aperçu de l'import avec deux documents
Six tuiles pour vérifier d'un coup d'oeil, puis un document par ligne, avec son client et son statut.
  • Documents, Lignes, Clients existants, Nouveaux clients, Total HT et Total TTC ne comptent que les documents qui seront importés. Les totaux sont ceux que Meolya a calculés, pas ceux du fichier.
  • Chaque document porte son client avec la pastille Nouveau client ou Client existant : c'est le moment de vérifier qu'un client n'est pas créé en double.
  • Le statut dit tout : Prêt, N avertissements (le document sera importé), ou N erreurs (il sera ignoré).
  • Une ligne d'information rappelle si le fichier déclare l'entreprise émettrice, et si c'est bien la vôtre.
Cliquez sur un document pour le déplier. Chaque remarque donne son emplacement : son chemin JSON, par exemple documents[0].lignes[1].code. Vous savez exactement où corriger.
Document déplié avec un avertissement
Un code absent du catalogue n'empêche rien : la ligne devient un produit propre au document.

Lire une erreur et la corriger

Un avertissement ne bloque jamais : la valeur concernée est ignorée ou corrigée, comme le message l'explique. Une erreur dans un document écarte ce document, et seulement lui : les autres sont importés. Une erreur de fichier (fichier illisible, trop gros, sans document) n'ouvre même pas l'aperçu : la fenêtre Fichier refusé liste les problèmes et vous propose de Choisir un autre fichier.
Aperçu avec une facture ignorée pour trois erreurs
1 document sera importé, 1 ignoré. Chaque erreur dit quoi, et où.
Dans cet exemple, la seconde facture écrit sa quantité "0" (un texte au lieu d'un nombre) et une TVA de 19.6, un taux qui n'existe plus. Remarquez la troisième erreur, Aucune ligne de produit : une ligne en erreur est retirée du document, et quand il n'en reste aucune, le document l'est aussi. Corrigez les deux premières, la troisième disparaît d'elle-même.
Corrigez le fichier, puis importez-le de nouveau : l'analyse ne crée rien, refaites-la autant que nécessaire.

Étape 4 : importer

Le bas de l'aperçu annonce le résultat, par exemple 2 documents seront importés ou 1 document sera importé, 1 ignoré. Cliquez sur Importer 2 documents. Les brouillons sont créés en arrière-plan : vous pouvez quitter la page, l'import continue et sa progression réapparaît à votre retour. Arrêter l'import garde les brouillons déjà créés, et Reprendre l'import crée les suivants.
Fenêtre Import terminé
Brouillons créés, documents ignorés, nouveaux clients. Ouvrir le premier vous emmène au premier brouillon.
Chaque document devient un brouillon sans numéro, exactement comme s'il avait été saisi dans l'éditeur : il s'ouvre, se modifie et s'imprime comme les autres. Le numéro définitif est attribué quand vous le validez, et sa date avec.
Devis importé ouvert dans l'éditeur
Catégories, codes et TVA sont en place. La colonne Impact montre ce que les remises et majorations changent sur chaque ligne, part globale comprise. Valider attribue le numéro.
Le code PARQ14 du fichier est gardé ; la ligne sans code a reçu un code généré, quatre lettres et huit chiffres. Les acomptes sont dans le panneau Acomptes, à gauche.
ℹ️
Un document qui échoue au dernier moment

Si un client existant est supprimé entre l'analyse et l'import, ou si un document est refusé à la création, ce document est annulé, avec le client créé uniquement pour lui, et l'import continue. Il apparaît dans Documents non créés, avec sa raison. Une analyse reste valable 10 minutes : au-delà, importez le fichier de nouveau.

Les règles de lecture

Nombres. En JSON, un nombre s'écrit comme un nombre JSON : 1234.5. La TVA accepte 20, 10, 5.5, 2.1 ou 0 (ou 0.2 pour 20 %). Une remise et une majoration sont des objets : {"type": "pourcentage", "valeur": 10} ou {"type": "montant", "valeur": 15}.
ValeurRègle
Quantitéobligatoire, supérieure à 0, au plus 1 000 000 ; arrondie à 4 décimales (avertissement)
Prix unitaire HTobligatoire (sauf produit du catalogue), de 0 à 10 milliards ; arrondi au centime (avertissement)
Remise en %supérieure à 0, au plus 100
Remise en montantmontant HT en euros, au plus le HT de la ligne (ou du document, pour une remise globale)
Majorationcomme une remise, mais un montant n'est pas plafonné par le HT
Nom de la majoration globale48 caractères au plus ; sans nom, elle s'imprime Majoration

Comment Meolya calcule

Les totaux de votre fichier ne sont jamais repris : Meolya recalcule tout, et compare seulement ce que vous avez écrit, avec un avertissement si l'écart dépasse un centime.
  • Un pourcentage, de remise ou de majoration, de ligne ou global, se calcule sur le HT brut de chaque ligne (quantité x prix unitaire). Les pourcentages ne se cumulent pas entre eux.
  • Un montant global est réparti sur les lignes au prorata de leur HT brut.
  • La TVA de chaque ligne s'applique à son HT après remises et majorations.
  • HT net = HT brut - remises + majorations ; TTC = HT net + TVA.
  • Le total d'une ligne (contrôle) est son HT brut, moins sa remise de ligne, plus sa majoration de ligne, sans sa part des remises et majorations globales.
Devis D-2026-101CalculMontant
HT brut1 552,00 + 248,00 + 704,002 504,00
Remise de ligne10 % des plinthes (248,00)- 24,80
Majoration de ligne15 % de la pose (704,00)+ 105,60
Remise globale5 % du HT brut de chaque ligne- 125,20
Majoration globale35,00 réparti au prorata+ 35,00
HT net2 494,60
TVA10 % de chaque ligne249,46
TTC2 744,06
Acomptes30 % puis 70 % du TTC, arrondi reporté sur le dernier823,22 et 1 920,84

Clients, produits et acomptes

Retrouver un client. Meolya cherche parmi vos clients (pas vos partenaires), dans cet ordre, et s'arrête au premier critère qui trouve : le SIRET (ou le SIREN), le numéro de TVA, l'e-mail, puis le nom avec le code postal. Un client trouvé est utilisé tel quel, avec sa propre adresse : sa fiche n'est jamais modifiée. Si plusieurs clients répondent, le document est en erreur : ajoutez le SIRET ou l'e-mail.
Créer un client. Un client introuvable est créé à l'import, une seule fois même si plusieurs documents le visent. Il lui faut une adresse complète (adresse, code postal, ville ; France si le pays manque) et, selon son type :
Type écritClient crééObligatoire en plus
particulier, personne, individu, personne physiqueParticulierprénom et nom
marie, maries, couple marieCouple mariéprénom et nom de la personne 1
pacse, pacses, couple pacseCouple pacséprénom et nom de la personne 1
structure, entreprise, societe, professionnel, pro, personne morale, associationEntreprise (France)raison sociale et SIRET
international, etranger, entreprise etrangereEntreprise étrangèreraison sociale, et un numéro de TVA si le pays est dans l'Union européenne
Sans type, Meolya le déduit : une raison sociale donne une entreprise, un prénom et un nom un particulier. La ville ne contient que des lettres, espaces, points, apostrophes et tirets (Lyon, pas Lyon 3e). Le pays s'écrit en toutes lettres ou en code : FR, BE, LU, DE, CH, IT, ES, NL, PT, GB, IE, AT, PL, CA, US, MA, TN, DZ, MC, AD. Un e-mail invalide ou une forme juridique inconnue sont simplement ignorés, avec un avertissement.
Produits. Un code qui correspond à un produit de votre catalogue relie la ligne à ce produit (casse, espaces et ponctuation ignorés, produits archivés exclus) : ce que le fichier laisse vide est pris dans le catalogue. Sinon, la ligne reçoit un produit propre au document, qui n'entre pas dans le catalogue. Son code est gardé en majuscules sans ponctuation s'il compte de 3 à 12 caractères, sinon Meolya en génère un.
Acomptes. Réservés aux devis. Chacun est soit un pourcentage, soit un montant TTC, sans mélange dans un même devis. Les pourcentages totalisent 100, ou les montants le TTC à un centime près. Une échéance facultative s'écrit 16/11/2026 ou 2026-11-16, et les échéances ne reviennent pas en arrière.
⚠️
Ce que l'import ne reprend jamais

Les numéros, les statuts et les paiements sont refusés : un document importé est toujours un brouillon. Les dates du devis ou de la facture sont ignorées, avec un avertissement : seules les échéances d'acomptes sont lues. La devise est l'euro, uniquement. Pour l'historique de vos anciennes factures émises, gardez leurs PDF : les réimporter en brouillon créerait de nouvelles factures.

Entreprise émettrice. Le fichier peut déclarer le SIRET et le numéro de TVA de l'entreprise qui émet les documents, pour éviter d'importer dans la mauvaise entreprise. S'ils diffèrent des vôtres, les documents concernés sont écartés. N'ajoutez cette déclaration que si le fichier est fait pour une seule entreprise.
{
  "format": "meolya-documents",
  "version": 1,
  "entreprise": { "siret": "12345678900017" },
  "documents": [ ... ]
}
LimiteValeur
Taille du fichier5 Mo
Documents par fichier500
Lignes par document (produits et catégories)1 000
Lignes par fichier50 000
Nouveaux clients par fichier500
Acomptes par devis100
Validité d'une analyse10 minutes, prolongée pendant l'import
Analysesune à la fois par compte, 6 par minute et 60 par jour

Référence des messages

L'aperçu affiche des messages en français. Chacun correspond à un code stable, utile pour chercher dans ce guide ou pour expliquer le problème à quelqu'un, ou à une IA. Les mots en italique sont remplacés par la valeur réelle.
Erreurs de fichier : rien n'est importé, la fenêtre Fichier refusé s'ouvre.
Message affichéCodeQue faire
Le JSON est mal formé (ligne ligne, colonne colonne).file.jsonValidez le fichier avec un vérificateur JSON : virgule en trop, guillemet manquant, clé en double.
Version du format non prise en charge (attendue : attendu).file.versionAjoutez "version": 1, un nombre.
Champ inconnu : champ.field.unknownAu premier niveau : retirez la clé, corrigez son nom, ou préfixez-la par _.
Le fichier ne contient aucun document.file.emptyAjoutez au moins un document.
Trop de documents : nombre (maximum max).file.too_many_docsCoupez le fichier en plusieurs.
Trop de lignes dans le fichier : nombre (maximum max).file.too_many_linesCoupez le fichier en plusieurs.
Le fichier dépasse une limite : limite (maximum max).file.limitsCoupez ou allégez le fichier.
Le contenu du fichier n'est pas dans un format accepté (attendu : attendu).file.formatEnregistrez le fichier dans le bon format, en UTF-8.
Erreurs d'un document : ce document est ignoré, les autres sont importés.
Message affichéCodeQue faire
Champ inconnu : champ.field.unknownVérifiez le nom exact dans le schéma, casse comprise, ou préfixez la clé par _.
Type de valeur incorrect pour champ (attendu attendu).field.typeUn nombre sans guillemets, un texte entre guillemets, true/false, un objet {} ou une liste [].
Type de ligne inconnu : valeur (produit ou categorie attendu).line.typeAjoutez "type": "produit" ou "type": "categorie".
Type de document absent ou invalide (DEVIS ou FACTURE attendu) : valeur.doc.typeIndiquez devis ou facture.
Aucune ligne de produit.doc.no_linesAjoutez au moins une ligne avec un nom, une quantité et un prix ; ou corrigez les lignes en erreur.
Trop de lignes dans ce document (maximum max).doc.too_many_linesCoupez le document en plusieurs.
Devise non acceptée : valeur. Seul l'euro est accepté.doc.deviseRetirez la devise ou mettez EUR.
Champ non autorisé : champ. Le numéro, le statut et les paiements sont attribués par Meolya.field.forbiddenRetirez ce champ : numéro, statut et paiements sont attribués par Meolya.
Texte trop long pour champ (maximum max caractères).field.lengthRaccourcissez le texte sous la limite indiquée.
Nombre invalide pour champ : valeur.field.numberÉcrivez un nombre, par exemple 1 234,50.
Valeur oui ou non invalide pour champ : valeur.field.booleanÉcrivez oui ou non.
Taux de TVA non accepté : valeur. Taux possibles : 20, 10, 5,5, 2,1 ou 0.tva.valueUtilisez 20, 10, 5,5, 2,1 ou 0.
Remise hors limites : valeur (maximum max).remise.rangeUne remise positive, au plus 100 %, ou au plus le HT.
Majoration hors limites : valeur (maximum max).majoration.rangeUne majoration positive, au plus 100 % en pourcentage.
Nom de ligne absent ou trop long (maximum max caractères).line.nameDonnez un nom à la ligne, ou un code du catalogue.
Quantité absente ou hors limites : valeur (maximum max).line.qty.rangeUne quantité supérieure à 0.
Prix absent ou hors limites : valeur (maximum max).line.price.rangeUn prix HT de 0 ou plus.
Unité trop longue : valeur (maximum max caractères).line.unit.lengthAbrégez l'unité : h, ml, u, forfait.
Aucun client.client.missingAjoutez le client du document.
Type de client inconnu : valeur.client.typeUtilisez un type de la table des clients.
Plusieurs clients correspondent (nombre) : noms.client.ambiguousAjoutez le SIRET ou un e-mail propre à ce client.
Nouveau client incomplet, champ manquant : champ.client.incompleteComplétez le champ indiqué.
Nouveau client : adresse incomplète ou refusée (champ).client.addressAdresse, code postal et ville valides, et un pays connu.
SIRET ou SIREN du client invalide ou manquant : valeur.client.siretUn SIRET de 14 chiffres ou un SIREN de 9.
Numéro de TVA du client invalide ou manquant : valeur.client.tvaUn numéro du type FR12987654321 ou BE0123456789.
Trop de nouveaux clients dans le fichier (maximum max).client.too_manyImportez en plusieurs fichiers.
Adresse de adresse refusée (champ).address.invalidComplétez l'adresse de facturation ou de livraison.
Les acomptes ne sont acceptés que sur un devis.acompte.factureRetirez les acomptes, ou faites un devis.
Acompte invalide : valeur.acompte.valueUne seule valeur positive par acompte.
Les acomptes mélangent pourcentages et montants.acompte.mixedSeulement des pourcentages, ou seulement des montants.
Les acomptes totalisent somme % au lieu de 100 %.acompte.sumAjustez les pourcentages pour totaliser 100.
Les acomptes totalisent somme au lieu de attendu (total TTC).acompte.sumAjustez les montants pour totaliser le TTC.
Échéance d'acompte illisible : valeur.acompte.dateÉcrivez JJ/MM/AAAA ou AAAA-MM-JJ.
Échéances d'acompte dans le désordre : valeur.acompte.orderClassez les acomptes par date.
L'entreprise émettrice déclarée n'est pas la vôtre.entreprise.mismatchImportez dans la bonne entreprise, ou retirez la déclaration.
SIRET de l'entreprise émettrice invalide : valeur.entreprise.siretUn SIRET de 9 ou 14 chiffres.
Le document a été refusé : raison.doc.refusedVérifiez le client et les adresses du document.
Avertissements : jamais bloquants.
Message affichéCodeQue faire
Date ignorée (champ) : un brouillon reçoit sa date à sa validation.field.date_ignoredRien à faire : la date est attribuée à la validation.
champ du fichier (fichier) différent du total calculé (calcul) : le total calculé est retenu.doc.total_mismatchVérifiez vos totaux ; le calcul de Meolya est gardé.
Total de ligne du fichier (fichier) différent du total calculé (calcul) : il est ignoré.line.total_mismatchVérifiez le total de la ligne ; le calcul est gardé.
Quantité arrondie : valeur devient arrondi.line.qty.roundedRien à faire, ou donnez 4 décimales au plus.
Prix arrondi : valeur devient arrondi.line.price.roundedRien à faire, ou arrondissez au centime.
Code code absent du catalogue : la ligne devient un produit du document.line.code.unknownNormal pour un nouveau produit ; sinon corrigez le code.
Adresse e-mail invalide, ignorée : valeur.client.emailCorrigez l'e-mail si vous voulez le garder.
Forme juridique inconnue, ignorée : valeur.client.formeSAS, SASU, SARL, EURL, SA, SNC, SCI, EI, Micro-entreprise...
L'adresse du client existant est incomplète et le fichier n'en fournit pas.client.address_incompleteComplétez l'adresse du client dans l'éditeur.
L'entreprise émettrice déclarée n'a pas pu être vérifiée : votre entreprise n'a ni SIRET ni numéro de TVA.entreprise.room_unknownRenseignez le SIRET et le numéro de TVA de votre entreprise.
Échecs à la création : le document n'est pas créé, il apparaît dans Documents non créés.
Message affichéCodeQue faire
Le client a été supprimé entre-temps.client.goneRéimportez ce document.
Le nouveau client a été refusé.client.refusedVérifiez les données du client.
Des lignes auraient été perdues (nombre) : le document n'est pas créé.line.droppedVérifiez les lignes du document et réimportez-le.
Les acomptes ne totalisent plus le total TTC une fois le document créé : il n'est pas créé.acompte.sumAjustez les acomptes et réimportez le devis.
Erreur interne pendant la création de ce document.internalRéessayez ; si cela persiste, contactez-nous.

Faire préparer ou corriger le fichier par une IA

Ce guide est écrit pour être lu aussi par un assistant IA. Donnez-lui l'adresse de cette page, votre fichier (ou l'export de votre ancien logiciel) et, s'il y en a, les messages de l'aperçu avec leur emplacement. Par exemple :
Voici mon fichier JSON d'import de devis et factures pour Meolya, et les messages de
l'aperçu de l'import avec leur emplacement. Corrige le fichier en suivant exactement
le guide https://meolya.com/guides/importer-ses-devis-et-factures-depuis-un-fichier-json
Ne change ni les montants, ni les quantités, ni les clients, sauf si un message le demande.
Explique chaque correction, puis rends le fichier complet.
⚠️
Relisez avant d'importer

Une IA peut se tromper de taux, de client ou de signe. L'analyse de Meolya reste votre filet : elle ne crée rien, recalcule tout et vous montre chaque client trouvé ou créé. Comparez les tuiles Total HT et Total TTC avec vos chiffres avant de cliquer sur Importer.

Questions fréquentes
Puis-je importer des factures déjà émises ?~Elles arrivent en brouillon et recevront un nouveau numéro à leur validation. Pour l'historique, gardez plutôt les PDF de vos anciennes factures.;;Mon client existe déjà, sera-t-il dupliqué ?~Non, s'il est retrouvé par son SIRET, son numéro de TVA, son e-mail ou son nom avec son code postal. La pastille Client existant le confirme dans l'aperçu.;;La fiche d'un client existant est-elle mise à jour ?~Jamais. Un client trouvé est utilisé tel quel. Modifiez sa fiche dans Clients et Partenaires si besoin.;;Pourquoi mes totaux sont-ils différents ?~Meolya recalcule tout. Un écart vient le plus souvent d'une remise globale calculée sur le net au lieu du HT brut, ou d'un arrondi. Le message donne les deux valeurs.;;Puis-je annuler un import ?~Les documents créés sont des brouillons : supprimez ceux que vous ne voulez pas garder. Les clients créés restent dans votre annuaire.;;Combien de fois puis-je analyser ?~Autant que nécessaire, dans la limite de 6 analyses par minute et 60 par jour. Rien n'est créé avant Importer.

Les bons réflexes

  • Commencez petit. Un fichier de deux ou trois documents, analysé et importé, vous apprend plus vite que 500 documents d'un coup.
  • Lisez les pastilles client. Un Nouveau client inattendu signale souvent un SIRET ou un e-mail mal écrit.
  • Gardez les codes de votre catalogue. Une ligne reliée à un produit existant reprend son nom, son prix et sa description.
  • Écrivez vos totaux. Ils ne sont jamais repris, mais ils détectent une erreur de saisie à l'analyse.
  • Notez sans risque. Une clé qui commence par _ est une note : jamais importée, jamais signalée.
  • Validez ensuite un par un. Relisez chaque brouillon dans l'éditeur, puis validez-le : il reçoit alors son numéro et sa date.

✅
Vos documents ont déménagé

Des heures de saisie en moins, et des brouillons propres, recalculés, avec leurs clients. Le même import existe pour les autres formats : importer ses devis et factures depuis excel et importer ses devis et factures depuis un fichier csv. Pour la suite, relisez et validez vos documents avec le guide gérer sa facturation.

Reprenez vos documents en quelques minutes

Meolya importe vos devis et factures depuis Excel, CSV ou JSON, et recalcule tout pour vous.

Commencer gratuitement