Aller au contenu

Format du fichier d’export de vos données

Depuis la page Compte, le bouton « Télécharger mes données (JSON) » télécharge un fichier JSON (maitredevis-export.json, encodé en UTF-8) qui contient toutes les données de votre compte et de votre entreprise. Cette page en décrit la structure et les formats ; nous la tenons à jour à chaque évolution du fichier.

Les PDF de vos devis émis et les fichiers que vous avez ajoutés (logo, attestation d’assurance) sont dans une archive ZIP distincte, téléchargée depuis la même page (« Télécharger mes documents (ZIP) ») : le dossier « devis » contient un PDF par devis émis, nommé d’après son numéro, et le dossier « fichiers » vos fichiers.

Le fichier est un objet JSON. Les noms des champs sont en anglais ; les textes sont tels que vous les avez saisis. Les dates et heures sont en UTC (ISO 8601). Un champ qui peut ne pas avoir de valeur vaut alors null.

Types de valeurs

  • texte
  • nombre entier
  • vrai ou faux (true / false)
  • date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
  • date au format « AAAA-MM-JJ »
  • mois au format « AAAA-MM »
  • identifiant aléatoire (UUID)
  • code parmi les valeurs indiquées
  • adresse e-mail
  • empreinte SHA-256 d’un fichier (64 caractères hexadécimaux)
  • couleur au format « #rrggbb »
  • objet, dont les champs suivent
  • liste
  • document figé du devis émis

Contenu du fichier

exportedAt · account · termsAcceptances · security · invitation · email · supportNotes · warnings · suspensions · grants · adminActions · company · clients · devis · lineLibrary · files · aiUsage · voiceUsage · aiReports · billing

Date de l’export (exportedAt)

Le moment où le fichier a été produit.

ChampTypePrécisions
exportedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)

Compte (account)

Votre adresse de connexion, la langue de l’application, vos accords (intelligence artificielle, transcription des enregistrements, lettre d’information), la sécurité de la connexion, les dates de création, de dernière connexion et de dernière activité, et la dernière version des conditions acceptée. « dictationLanguage » : champ qui n’est plus utilisé ; sa valeur est toujours null.

ChampTypePrécisions
accountobjet, dont les champs suivent
account.emailadresse e-mail
account.localecode parmi les valeurs indiquéesvaleurs : tr, fr, ar, pt, ro, pl
account.emailVerifiedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
account.emailChangedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
account.aiConsentVersionnombre entierpeut valoir null
account.aiConsentAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
account.voiceConsentVersionnombre entierpeut valoir null
account.voiceConsentAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
account.newsletterOptInAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
account.newsletterOptInSourcecode parmi les valeurs indiquéesvaleurs : signup, settings ; peut valoir null
account.dictationLanguagecode parmi les valeurs indiquéesvaleurs : tr, fr, ar, pt, ro, pl ; peut valoir null
account.failedLoginCountnombre entier
account.loginLockedUntildate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
account.lastLoginAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
account.lastSeenAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
account.createdAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
account.termsAcceptedVersionnombre entierpeut valoir null
account.termsAcceptedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
account.hasPasswordvrai ou faux (true / false)

Acceptations des conditions (termsAcceptances)

Chaque acceptation des conditions générales d’utilisation et de vente : version, langue d’affichage, circonstance, date et heure. « backfilled » : acceptation enregistrée avant l’historique, dont la langue n’a pas été conservée.

ChampTypePrécisions
termsAcceptancesliste d’objets
termsAcceptances[].versionnombre entier
termsAcceptances[].localecode parmi les valeurs indiquéesvaleurs : tr, fr, ar, pt, ro, pl ; peut valoir null
termsAcceptances[].circumstancecode parmi les valeurs indiquéesvaleurs : sign_up, site_checkout, app_store_purchase, new_version
termsAcceptances[].acceptedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
termsAcceptances[].recordedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
termsAcceptances[].backfilledvrai ou faux (true / false)

Sécurité (security)

Les sessions ouvertes, les appareils reconnus, l’historique des connexions et des changements d’identifiants, et le changement d’adresse en cours.

ChampTypePrécisions
securityobjet, dont les champs suivent
security.sessionsliste d’objets
security.sessions[].createdAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
security.sessions[].lastSeenAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
security.sessions[].expiresAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
security.sessions[].clientcode parmi les valeurs indiquéesvaleurs : web, native
security.sessions[].ipAddresstextepeut valoir null
security.sessions[].userAgenttextepeut valoir null
security.trustedDevicesliste d’objets
security.trustedDevices[].clientcode parmi les valeurs indiquéesvaleurs : web, native
security.trustedDevices[].createdAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
security.trustedDevices[].lastUsedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
security.trustedDevices[].revokedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
security.signInEventsliste d’objets
security.signInEvents[].kindcode parmi les valeurs indiquéesvaleurs : account_created, login_succeeded, login_failed, login_blocked, password_changed, password_reset, email_change_requested, email_change_completed, email_change_cancelled
security.signInEvents[].atdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
security.signInEvents[].ipAddresstextepeut valoir null
security.signInEvents[].userAgenttextepeut valoir null
security.pendingEmailChangeobjet, dont les champs suiventpeut valoir null
security.pendingEmailChange.newEmailadresse e-mail
security.pendingEmailChange.newConfirmedvrai ou faux (true / false)
security.pendingEmailChange.oldConfirmedvrai ou faux (true / false)
security.pendingEmailChange.expiresAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)

Invitation (invitation)

L’invitation qui a servi à créer le compte, le cas échéant.

ChampTypePrécisions
invitationobjet, dont les champs suiventpeut valoir null
invitation.createdAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
invitation.notetextepeut valoir null
invitation.sourceadresse e-mailpeut valoir null

E-mails (email)

Votre adresse sur la liste d’opposition (« suppressions »), les messages que votre messagerie a refusés et que l’application vous présente (« notices »), et les avis de suppression pour inactivité.

ChampTypePrécisions
emailobjet, dont les champs suivent
email.suppressionsliste d’objets
email.suppressions[].reasoncode parmi les valeurs indiquéesvaleurs : hard_bounce, unsubscribed
email.suppressions[].sourcecode parmi les valeurs indiquéesvaleurs : smtp, dsn, invitation, newsletter
email.suppressions[].detailtextepeut valoir null
email.suppressions[].createdAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
email.noticesliste d’objets
email.notices[].kindcode parmi les valeurs indiquéescode du service, en anglais
email.notices[].subjecttexte
email.notices[].bodytexte
email.notices[].sentAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
email.notices[].undeliveredAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
email.notices[].shownAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
email.inactivityNoticesliste d’objets
email.inactivityNotices[].lastActivityAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
email.inactivityNotices[].deletionAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
email.inactivityNotices[].firstNoticeAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
email.inactivityNotices[].secondNoticeAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null

Notes de l’assistance (supportNotes)

Les notes internes de notre assistance à propos de votre compte.

ChampTypePrécisions
supportNotesliste d’objets
supportNotes[].atdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
supportNotes[].notetexte

Avertissements (warnings)

Les avertissements adressés au compte, avec la date de remise de l’e-mail ou de son affichage dans l’application.

ChampTypePrécisions
warningsliste d’objets
warnings[].atdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
warnings[].scopecode parmi les valeurs indiquéesvaleurs : account, ai
warnings[].groundcode parmi les valeurs indiquéesvaleurs : security, illegal_use, others_data, automated_ai_use, free_plan_abuse, payment_fraud, false_information, other_serious_breach
warnings[].factstexte
warnings[].deadlinedate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
warnings[].deliveredAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
warnings[].shownAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null

Suspensions (suspensions)

Les suspensions du compte ou de la rédaction par intelligence artificielle, et leur levée.

ChampTypePrécisions
suspensionsliste d’objets
suspensions[].scopecode parmi les valeurs indiquéesvaleurs : account, ai
suspensions[].groundcode parmi les valeurs indiquéesvaleurs : security, illegal_use, others_data, automated_ai_use, free_plan_abuse, payment_fraud, false_information, other_serious_breach
suspensions[].factstexte
suspensions[].basiscode parmi les valeurs indiquéesvaleurs : notice_expired, urgent
suspensions[].startedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
suspensions[].noticeDeadlinedate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
suspensions[].deliveredAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
suspensions[].shownAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
suspensions[].liftedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
suspensions[].liftReasontextepeut valoir null

Allocations et accès offerts (grants)

Les utilisations de l’IA, devis, espaces de stockage et accès offerts, et le code promotionnel d’une invitation.

ChampTypePrécisions
grantsliste d’objets
grants[].kindcode parmi les valeurs indiquéesvaleurs : ai_bonus_month, ai_bonus_lifetime, free_devis_bonus, complimentary, checkout_promotion, storage_bonus
grants[].amountnombre entierpeut valoir null
grants[].monthmois au format « AAAA-MM »peut valoir null
grants[].endsAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
grants[].sourcecode parmi les valeurs indiquéesvaleurs : admin, invitation
grants[].reasontextepeut valoir null
grants[].createdAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
grants[].revokedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
grants[].consumedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null

Actions d’administration (adminActions)

Les actions de notre outil d’administration concernant votre compte : date, code de l’action, résultat et motif.

ChampTypePrécisions
adminActionsliste d’objets
adminActions[].atdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
adminActions[].actioncode parmi les valeurs indiquéescode du service, en anglais
adminActions[].resultcode parmi les valeurs indiquéesvaleurs : started, succeeded, failed, refused
adminActions[].reasontextepeut valoir null

Entreprise (company)

Le profil de votre entreprise, tel que vos devis l’impriment, les valeurs par défaut de chaque nouveau devis (délai de paiement pour un client professionnel, prix du devis), sa palette de couleurs, sa date de création et la date à laquelle la note sur ce que l’application n’ajoute pas à vos devis a été fermée. Il comprend aussi votre assurance décennale, la gestion de vos déchets de chantier (« wasteManagement ») et le lieu où vos devis sont habituellement signés (« usualSigningPlace » : « hors_etablissement » chez le client ou sur le chantier, « distance » à distance, « etablissement » dans vos locaux).

ChampTypePrécisions
companyobjet, dont les champs suiventpeut valoir null
company.legalNametexte
company.tradeNametextepeut valoir null
company.legalFormcode parmi les valeurs indiquéesvaleurs : EI, EURL, SARL, SASU, SAS, SA, SNC
company.microEntrepreneurvrai ou faux (true / false)peut valoir null
company.shareCapitalCentsnombre entieren centimes d’euro ; peut valoir null
company.sirettexte
company.rcsCitytextepeut valoir null
company.rneArtisanvrai ou faux (true / false)
company.vatRegimecode parmi les valeurs indiquéesvaleurs : assujetti, franchise
company.vatNumbertextepeut valoir null
company.addressLine1texte
company.addressLine2textepeut valoir null
company.postalCodetexte
company.citytexte
company.headOfficeobjet, dont les champs suiventpeut valoir null
company.headOffice.addressLine1texte
company.headOffice.postalCodetexte
company.headOffice.citytexte
company.phonetexte
company.emailadresse e-mail
company.websitetextepeut valoir null
company.signatoryNametexte
company.signatoryRoletexte
company.decennaleobjet, dont les champs suiventpeut valoir null
company.decennale.insurerNametexte
company.decennale.insurerAddresstexte
company.decennale.policyNumbertexte
company.decennale.coverageAreatexte
company.decennale.validFromdate au format « AAAA-MM-JJ »
company.decennale.validUntildate au format « AAAA-MM-JJ »
company.decennale.activitiestexte
company.rcProobjet, dont les champs suiventpeut valoir null
company.rcPro.insurerNametexte
company.rcPro.insurerAddresstexte
company.rcPro.policyNumbertexte
company.rcPro.coverageAreatexte
company.mediatorobjet, dont les champs suiventpeut valoir null
company.mediator.nametexte
company.mediator.addresstexte
company.mediator.websitetexte
company.paymentMethodsliste de : code parmi les valeurs indiquéesvaleurs : virement, cheque, especes, carte_bancaire
company.defaultValidityDaysnombre entieren jours
company.defaultPaymentTermstexte
company.defaultPaymentDelayDaysnombre entieren jours ; peut valoir null
company.defaultQuoteFeeCentsnombre entieren centimes d’euro
company.devisIntroFrtextepeut valoir null
company.devisClosingFrtextepeut valoir null
company.footerNoteFrtextepeut valoir null
company.activitycode parmi les valeurs indiquéesvaleurs : maconnerie, plomberie, chauffage_climatisation, electricite, menuiserie, carrelage, peinture, platrerie_isolation, charpente_couverture, facade, serrurerie_metallerie, vitrerie, terrassement_vrd, renovation_generale, autre_batiment, autre ; peut valoir null
company.wasteManagementobjet, dont les champs suiventpeut valoir null
company.wasteManagement.collectionPointNametexte
company.wasteManagement.collectionPointAddresstexte
company.wasteManagement.collectionPointTypetexte
company.wasteManagement.sortingTermstexte
company.wasteManagement.removalTermstexte
company.usualSigningPlacecode parmi les valeurs indiquéesvaleurs : hors_etablissement, distance, etablissement
company.brandPaletteliste d’objets
company.brandPalette[].colorcouleur au format « #rrggbb »
company.brandPalette[].originalcouleur au format « #rrggbb »
company.brandPalette[].sourcecode parmi les valeurs indiquéesvaleurs : logo, manual, neutral, derived
company.createdAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
company.scopeNoticeDismissedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null

Clients (clients)

Vos clients, tels que vous les avez saisis ; pour un client professionnel rempli depuis le registre des entreprises, ce que le registre en disait (« registry » : SIREN, tranche d’effectif et son année, code NAF, jour de lecture).

ChampTypePrécisions
clientsliste d’objets
clients[].ididentifiant aléatoire (UUID)
clients[].kindcode parmi les valeurs indiquéesvaleurs : particulier, professionnel
clients[].nametexte
clients[].contactNametextepeut valoir null
clients[].sirentextepeut valoir null
clients[].vatNumbertextepeut valoir null
clients[].employeeCountnombre entierpeut valoir null
clients[].mainActivitytextepeut valoir null
clients[].addressLine1texte
clients[].addressLine2textepeut valoir null
clients[].postalCodetexte
clients[].citytexte
clients[].emailadresse e-mailpeut valoir null
clients[].phonetextepeut valoir null
clients[].registryobjet, dont les champs suiventpeut valoir null
clients[].registry.sirentexte
clients[].registry.headcountBandcode parmi les valeurs indiquéesvaleurs : NN, 00, 01, 02, 03, 11, 12, 21, 22, 31, 32, 41, 42, 51, 52, 53 ; peut valoir null
clients[].registry.headcountYearnombre entierpeut valoir null
clients[].registry.nafCodetextepeut valoir null
clients[].registry.checkedOndate au format « AAAA-MM-JJ »
clients[].createdAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
clients[].updatedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)

Devis (devis)

Tous vos devis, brouillons et devis émis, avec leurs lignes (« lines ») ; pour un devis émis, son document figé (« snapshot ») et l’empreinte de son PDF. Les champs des questions de l’ancien formulaire de devis (de « conclusionContext » à « wasteCostHtCents ») sont renseignés pour un devis préparé avec ce formulaire, que certaines versions de l’application mobile utilisent encore ; ils valent null pour un devis préparé avec le formulaire actuel, qui ne pose plus ces questions. Le titre d’un brouillon (« title ») peut être vide tant que l’intelligence artificielle n’en a pas proposé et que vous n’en avez pas saisi. « materialsSupplier » : qui fournit les matériaux (« artisan » : vous, « client » : le client), demandé une seule fois par devis, seulement quand la description ne le précise pas. Dans les lignes, « quantityOrigin » et « priceOrigin » indiquent d’où viennent la quantité et le prix unitaire (« stated » : lu dans vos propres mots, ceux de la description ou d’une ligne ; « library » : votre prix enregistré ; « typed » : saisi à la main ; null : inconnu) ; « materialsPending » indique que le libellé de la ligne attend cette réponse. « signingPlace » : le lieu de signature du devis quand il diffère de celui de votre profil (null : celui du profil) ; « repairWork » : travaux de réparation ou d’entretien, sans la section sur les déchets ; « wasteQuantity » et « wasteCostCents » : la quantité et le coût estimés des déchets indiqués sur le devis (null : repris des lignes).

ChampTypePrécisions
devisliste d’objets
devis[].ididentifiant aléatoire (UUID)
devis[].clientIdidentifiant aléatoire (UUID)
devis[].statuscode parmi les valeurs indiquéesvaleurs : draft, issued, accepted, declined, replaced
devis[].numbertextepeut valoir null
devis[].issueDatedate au format « AAAA-MM-JJ »peut valoir null
devis[].titletexte
devis[].sourceTexttexte
devis[].sourceLanguagecode parmi les valeurs indiquéesvaleurs : tr, fr, ar, pt, ro, pl ; peut valoir null
devis[].siteSameAsClientvrai ou faux (true / false)
devis[].siteAddressLine1textepeut valoir null
devis[].siteAddressLine2textepeut valoir null
devis[].sitePostalCodetextepeut valoir null
devis[].siteCitytextepeut valoir null
devis[].validityDaysnombre entieren jours
devis[].scheduleKindcode parmi les valeurs indiquéesvaleurs : dates, relative ; peut valoir null
devis[].startDatedate au format « AAAA-MM-JJ »peut valoir null
devis[].endDatedate au format « AAAA-MM-JJ »peut valoir null
devis[].startWithinDaysnombre entieren jours ; peut valoir null
devis[].completionWithinDaysnombre entieren jours ; peut valoir null
devis[].conclusionContextcode parmi les valeurs indiquéesvaleurs : etablissement, hors_etablissement, distance ; peut valoir null
devis[].outsideClientCoreActivityvrai ou faux (true / false)peut valoir null
devis[].urgentRepairvrai ou faux (true / false)peut valoir null
devis[].urgentWorksOnlyvrai ou faux (true / false)peut valoir null
devis[].repairMaintenancevrai ou faux (true / false)peut valoir null
devis[].timeCountingTermstextepeut valoir null
devis[].suppliesGoodsvrai ou faux (true / false)peut valoir null
devis[].goodsDeliverycode parmi les valeurs indiquéesvaleurs : single, multiple, lots ; peut valoir null
devis[].earlyStartRequestedvrai ou faux (true / false)peut valoir null
devis[].decennaleApplicablevrai ou faux (true / false)peut valoir null
devis[].subcontractingvrai ou faux (true / false)peut valoir null
devis[].subcontractedCleaningvrai ou faux (true / false)peut valoir null
devis[].plansSubcontractingvrai ou faux (true / false)peut valoir null
devis[].wasteApplicablevrai ou faux (true / false)peut valoir null
devis[].wasteEstimatedQuantitytextepeut valoir null
devis[].wasteManagementTermstextepeut valoir null
devis[].wasteSortedCategoriestextepeut valoir null
devis[].wasteCollectionPointNametextepeut valoir null
devis[].wasteCollectionPointAddresstextepeut valoir null
devis[].wasteCollectionPointTypetextepeut valoir null
devis[].wasteCostHtCentsnombre entieren centimes d’euro ; peut valoir null
devis[].depositKindcode parmi les valeurs indiquéesvaleurs : none, acompte, arrhes
devis[].depositPercentBpnombre entieren centièmes de pour cent (2 000 = 20 %) ; peut valoir null
devis[].balanceTermstexte
devis[].paymentDelayDaysnombre entieren jours ; peut valoir null
devis[].paymentMethodsliste de : code parmi les valeurs indiquéesvaleurs : virement, cheque, especes, carte_bancaire
devis[].quoteFeeCentsnombre entieren centimes d’euro
devis[].additionalConditionsFrtextepeut valoir null
devis[].introFrtextepeut valoir null
devis[].closingFrtextepeut valoir null
devis[].materialsSuppliercode parmi les valeurs indiquéesvaleurs : artisan, client ; peut valoir null
devis[].signingPlacecode parmi les valeurs indiquéesvaleurs : hors_etablissement, distance, etablissement ; peut valoir null
devis[].repairWorkvrai ou faux (true / false)
devis[].wasteQuantitytextepeut valoir null
devis[].wasteCostCentsnombre entieren centimes d’euro ; peut valoir null
devis[].revisionOfidentifiant aléatoire (UUID)peut valoir null
devis[].revisionIndexnombre entier
devis[].totalHtCentsnombre entieren centimes d’euro
devis[].totalVatCentsnombre entieren centimes d’euro
devis[].totalTtcCentsnombre entieren centimes d’euro
devis[].snapshotdocument figé du devis émispeut valoir null
devis[].pdfSha256empreinte SHA-256 d’un fichier (64 caractères hexadécimaux)peut valoir null
devis[].issuedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
devis[].decidedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
devis[].createdAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
devis[].updatedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
devis[].linesliste d’objets
devis[].lines[].ididentifiant aléatoire (UUID)
devis[].lines[].devisIdidentifiant aléatoire (UUID)
devis[].lines[].positionnombre entier
devis[].lines[].kindcode parmi les valeurs indiquéesvaleurs : item, section
devis[].lines[].designationFrtexte
devis[].lines[].glosstextepeut valoir null
devis[].lines[].quantityMillinombre entieren millièmes d’unité (1 500 = 1,5) ; peut valoir null
devis[].lines[].unitcode parmi les valeurs indiquéesvaleurs : u, m², m³, ml, m, kg, t, h, j, forfait, ens, lot, L ; peut valoir null
devis[].lines[].unitPriceCentsnombre entieren centimes d’euro ; peut valoir null
devis[].lines[].vatRateBpcode parmi les valeurs indiquéesvaleurs : 2000, 1000, 550, 0 ; peut valoir null
devis[].lines[].needsReviewvrai ou faux (true / false)
devis[].lines[].quantityOrigincode parmi les valeurs indiquéesvaleurs : typed, stated ; peut valoir null
devis[].lines[].priceOrigincode parmi les valeurs indiquéesvaleurs : typed, stated, library ; peut valoir null
devis[].lines[].materialsPendingvrai ou faux (true / false)

Le document figé d’un devis émis (« snapshot »)

Pour chaque devis émis, le champ « snapshot » contient le devis tel qu’il a été émis : les informations de votre entreprise (« company »), celles du client (« client ») et le contenu du devis (« devis »), avec la version de son format (« version »). Il permet de reproduire le PDF à l’identique ; ses champs suivent les mêmes conventions que le reste du fichier. Depuis la version 6 du format, le document figé d’un devis préparé avec le formulaire actuel ne contient ni l’assurance décennale ni les réponses de l’ancien formulaire, que ce devis n’imprime pas.

Lignes enregistrées (lineLibrary)

Les lignes et les prix enregistrés à partir de vos devis émis : libellé en français, explication dans votre langue et sa langue, unité, prix unitaire hors taxes, date et origine du prix (« issued » : un devis émis, « edited » : votre modification). L’intelligence artificielle ne voit jamais cette liste.

ChampTypePrécisions
lineLibraryliste d’objets
lineLibrary[].designationFrtexte
lineLibrary[].glosstextepeut valoir null
lineLibrary[].glossLanguagecode parmi les valeurs indiquéesvaleurs : tr, fr, ar, pt, ro, pl ; peut valoir null
lineLibrary[].unitcode parmi les valeurs indiquéesvaleurs : u, m², m³, ml, m, kg, t, h, j, forfait, ens, lot, L
lineLibrary[].unitPriceCentsnombre entieren centimes d’euro
lineLibrary[].priceSetAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
lineLibrary[].priceSourcecode parmi les valeurs indiquéesvaleurs : issued, edited
lineLibrary[].createdAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
lineLibrary[].updatedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)

Fichiers (files)

Le logo et l’attestation d’assurance que vous avez ajoutés : type, taille et empreinte. Les fichiers eux-mêmes sont dans l’archive ZIP.

ChampTypePrécisions
filesliste d’objets
files[].kindcode parmi les valeurs indiquéesvaleurs : logo, decennale_attestation
files[].mimeTypecode parmi les valeurs indiquéesvaleurs : image/png, application/pdf
files[].byteSizenombre entieren octets
files[].sha256empreinte SHA-256 d’un fichier (64 caractères hexadécimaux)
files[].pageCountnombre entierpeut valoir null
files[].uploadedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)

Utilisations de l’intelligence artificielle (aiUsage)

Chaque demande à l’intelligence artificielle : date, devis, modèle, résultat et volume traité. « freeLineAddition » vaut true lorsque la demande a ajouté une ligne, par « Ajouter une ligne », à un devis déjà rédigé par l’IA : elle n’a pas compté comme une utilisation. Le texte de la description figure dans le devis ; le texte saisi pour ajouter une ligne n’est pas conservé.

ChampTypePrécisions
aiUsageliste d’objets
aiUsage[].atdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
aiUsage[].devisIdidentifiant aléatoire (UUID)peut valoir null
aiUsage[].modeltexte
aiUsage[].outcomecode parmi les valeurs indiquéesvaleurs : ok, refused, truncated, invalid_output, api_error, cancelled, pending, abandoned
aiUsage[].inputTokensnombre entieren jetons (unités de texte traitées par l’intelligence artificielle) ; peut valoir null
aiUsage[].outputTokensnombre entieren jetons (unités de texte traitées par l’intelligence artificielle) ; peut valoir null
aiUsage[].freeLineAdditionvrai ou faux (true / false)

Enregistrements transcrits (voiceUsage)

Les enregistrements faits dans la zone de description ou dans celle qu’ouvre « Ajouter une ligne », et envoyés pour être transcrits en texte, par mois (heure de Paris) : leur nombre et leur durée totale. Ni les enregistrements ni leurs textes ne sont conservés.

ChampTypePrécisions
voiceUsageliste d’objets
voiceUsage[].monthmois au format « AAAA-MM »
voiceUsage[].recordingsnombre entier
voiceUsage[].secondsnombre entieren secondes

Signalements de résultats de l’intelligence artificielle (aiReports)

Les résultats de l’intelligence artificielle que vous avez signalés : raison, commentaire, date.

ChampTypePrécisions
aiReportsliste d’objets
aiReports[].reportedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
aiReports[].reasoncode parmi les valeurs indiquéesvaleurs : offensive, inaccurate, unrelated, other
aiReports[].commenttextepeut valoir null
aiReports[].generationIdidentifiant aléatoire (UUID)peut valoir null

Abonnement (billing)

L’état de votre abonnement souscrit sur le site et vos abonnements souscrits dans l’application iPhone. Les factures sont disponibles dans la page Abonnement.

ChampTypePrécisions
billingobjet, dont les champs suiventpeut valoir null
billing.subscriptionStatuscode parmi les valeurs indiquéescode du service, en anglais ; peut valoir null ; absent sans abonnement souscrit sur le site
billing.currentPeriodEnddate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null ; absent sans abonnement souscrit sur le site
billing.cancelAtPeriodEndvrai ou faux (true / false)absent sans abonnement souscrit sur le site
billing.appStoreSubscriptionsliste d’objets
billing.appStoreSubscriptions[].environmentcode parmi les valeurs indiquéesvaleurs : Production, Sandbox
billing.appStoreSubscriptions[].originalTransactionIdtexte
billing.appStoreSubscriptions[].productIdtexte
billing.appStoreSubscriptions[].statuscode parmi les valeurs indiquéesvaleurs : 1, 2, 3, 4, 5
billing.appStoreSubscriptions[].expiresAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)
billing.appStoreSubscriptions[].gracePeriodExpiresAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
billing.appStoreSubscriptions[].autoRenewvrai ou faux (true / false)
billing.appStoreSubscriptions[].revokedAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)peut valoir null
billing.appStoreSubscriptions[].createdAtdate et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z »)