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.
| Champ | Type | Précisions |
|---|---|---|
exportedAt | date 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.
| Champ | Type | Précisions |
|---|---|---|
account | objet, dont les champs suivent | |
account.email | adresse e-mail | |
account.locale | code parmi les valeurs indiquées | valeurs : tr, fr, ar, pt, ro, pl |
account.emailVerifiedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
account.emailChangedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
account.aiConsentVersion | nombre entier | peut valoir null |
account.aiConsentAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
account.voiceConsentVersion | nombre entier | peut valoir null |
account.voiceConsentAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
account.newsletterOptInAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
account.newsletterOptInSource | code parmi les valeurs indiquées | valeurs : signup, settings ; peut valoir null |
account.dictationLanguage | code parmi les valeurs indiquées | valeurs : tr, fr, ar, pt, ro, pl ; peut valoir null |
account.failedLoginCount | nombre entier | |
account.loginLockedUntil | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
account.lastLoginAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
account.lastSeenAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
account.createdAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
account.termsAcceptedVersion | nombre entier | peut valoir null |
account.termsAcceptedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
account.hasPassword | vrai 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.
| Champ | Type | Précisions |
|---|---|---|
termsAcceptances | liste d’objets | |
termsAcceptances[].version | nombre entier | |
termsAcceptances[].locale | code parmi les valeurs indiquées | valeurs : tr, fr, ar, pt, ro, pl ; peut valoir null |
termsAcceptances[].circumstance | code parmi les valeurs indiquées | valeurs : sign_up, site_checkout, app_store_purchase, new_version |
termsAcceptances[].acceptedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
termsAcceptances[].recordedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
termsAcceptances[].backfilled | vrai 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.
| Champ | Type | Précisions |
|---|---|---|
security | objet, dont les champs suivent | |
security.sessions | liste d’objets | |
security.sessions[].createdAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
security.sessions[].lastSeenAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
security.sessions[].expiresAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
security.sessions[].client | code parmi les valeurs indiquées | valeurs : web, native |
security.sessions[].ipAddress | texte | peut valoir null |
security.sessions[].userAgent | texte | peut valoir null |
security.trustedDevices | liste d’objets | |
security.trustedDevices[].client | code parmi les valeurs indiquées | valeurs : web, native |
security.trustedDevices[].createdAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
security.trustedDevices[].lastUsedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
security.trustedDevices[].revokedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
security.signInEvents | liste d’objets | |
security.signInEvents[].kind | code parmi les valeurs indiquées | valeurs : account_created, login_succeeded, login_failed, login_blocked, password_changed, password_reset, email_change_requested, email_change_completed, email_change_cancelled |
security.signInEvents[].at | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
security.signInEvents[].ipAddress | texte | peut valoir null |
security.signInEvents[].userAgent | texte | peut valoir null |
security.pendingEmailChange | objet, dont les champs suivent | peut valoir null |
security.pendingEmailChange.newEmail | adresse e-mail | |
security.pendingEmailChange.newConfirmed | vrai ou faux (true / false) | |
security.pendingEmailChange.oldConfirmed | vrai ou faux (true / false) | |
security.pendingEmailChange.expiresAt | date 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.
| Champ | Type | Précisions |
|---|---|---|
invitation | objet, dont les champs suivent | peut valoir null |
invitation.createdAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
invitation.note | texte | peut valoir null |
invitation.source | adresse e-mail | peut 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é.
| Champ | Type | Précisions |
|---|---|---|
email | objet, dont les champs suivent | |
email.suppressions | liste d’objets | |
email.suppressions[].reason | code parmi les valeurs indiquées | valeurs : hard_bounce, unsubscribed |
email.suppressions[].source | code parmi les valeurs indiquées | valeurs : smtp, dsn, invitation, newsletter |
email.suppressions[].detail | texte | peut valoir null |
email.suppressions[].createdAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
email.notices | liste d’objets | |
email.notices[].kind | code parmi les valeurs indiquées | code du service, en anglais |
email.notices[].subject | texte | |
email.notices[].body | texte | |
email.notices[].sentAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
email.notices[].undeliveredAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
email.notices[].shownAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
email.inactivityNotices | liste d’objets | |
email.inactivityNotices[].lastActivityAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
email.inactivityNotices[].deletionAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
email.inactivityNotices[].firstNoticeAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
email.inactivityNotices[].secondNoticeAt | date 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.
| Champ | Type | Précisions |
|---|---|---|
supportNotes | liste d’objets | |
supportNotes[].at | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
supportNotes[].note | texte |
Avertissements (warnings)
Les avertissements adressés au compte, avec la date de remise de l’e-mail ou de son affichage dans l’application.
| Champ | Type | Précisions |
|---|---|---|
warnings | liste d’objets | |
warnings[].at | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
warnings[].scope | code parmi les valeurs indiquées | valeurs : account, ai |
warnings[].ground | code parmi les valeurs indiquées | valeurs : security, illegal_use, others_data, automated_ai_use, free_plan_abuse, payment_fraud, false_information, other_serious_breach |
warnings[].facts | texte | |
warnings[].deadline | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
warnings[].deliveredAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
warnings[].shownAt | date 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.
| Champ | Type | Précisions |
|---|---|---|
suspensions | liste d’objets | |
suspensions[].scope | code parmi les valeurs indiquées | valeurs : account, ai |
suspensions[].ground | code parmi les valeurs indiquées | valeurs : security, illegal_use, others_data, automated_ai_use, free_plan_abuse, payment_fraud, false_information, other_serious_breach |
suspensions[].facts | texte | |
suspensions[].basis | code parmi les valeurs indiquées | valeurs : notice_expired, urgent |
suspensions[].startedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
suspensions[].noticeDeadline | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
suspensions[].deliveredAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
suspensions[].shownAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
suspensions[].liftedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
suspensions[].liftReason | texte | peut 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.
| Champ | Type | Précisions |
|---|---|---|
grants | liste d’objets | |
grants[].kind | code parmi les valeurs indiquées | valeurs : ai_bonus_month, ai_bonus_lifetime, free_devis_bonus, complimentary, checkout_promotion, storage_bonus |
grants[].amount | nombre entier | peut valoir null |
grants[].month | mois au format « AAAA-MM » | peut valoir null |
grants[].endsAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
grants[].source | code parmi les valeurs indiquées | valeurs : admin, invitation |
grants[].reason | texte | peut valoir null |
grants[].createdAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
grants[].revokedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
grants[].consumedAt | date 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.
| Champ | Type | Précisions |
|---|---|---|
adminActions | liste d’objets | |
adminActions[].at | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
adminActions[].action | code parmi les valeurs indiquées | code du service, en anglais |
adminActions[].result | code parmi les valeurs indiquées | valeurs : started, succeeded, failed, refused |
adminActions[].reason | texte | peut 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).
| Champ | Type | Précisions |
|---|---|---|
company | objet, dont les champs suivent | peut valoir null |
company.legalName | texte | |
company.tradeName | texte | peut valoir null |
company.legalForm | code parmi les valeurs indiquées | valeurs : EI, EURL, SARL, SASU, SAS, SA, SNC |
company.microEntrepreneur | vrai ou faux (true / false) | peut valoir null |
company.shareCapitalCents | nombre entier | en centimes d’euro ; peut valoir null |
company.siret | texte | |
company.rcsCity | texte | peut valoir null |
company.rneArtisan | vrai ou faux (true / false) | |
company.vatRegime | code parmi les valeurs indiquées | valeurs : assujetti, franchise |
company.vatNumber | texte | peut valoir null |
company.addressLine1 | texte | |
company.addressLine2 | texte | peut valoir null |
company.postalCode | texte | |
company.city | texte | |
company.headOffice | objet, dont les champs suivent | peut valoir null |
company.headOffice.addressLine1 | texte | |
company.headOffice.postalCode | texte | |
company.headOffice.city | texte | |
company.phone | texte | |
company.email | adresse e-mail | |
company.website | texte | peut valoir null |
company.signatoryName | texte | |
company.signatoryRole | texte | |
company.decennale | objet, dont les champs suivent | peut valoir null |
company.decennale.insurerName | texte | |
company.decennale.insurerAddress | texte | |
company.decennale.policyNumber | texte | |
company.decennale.coverageArea | texte | |
company.decennale.validFrom | date au format « AAAA-MM-JJ » | |
company.decennale.validUntil | date au format « AAAA-MM-JJ » | |
company.decennale.activities | texte | |
company.rcPro | objet, dont les champs suivent | peut valoir null |
company.rcPro.insurerName | texte | |
company.rcPro.insurerAddress | texte | |
company.rcPro.policyNumber | texte | |
company.rcPro.coverageArea | texte | |
company.mediator | objet, dont les champs suivent | peut valoir null |
company.mediator.name | texte | |
company.mediator.address | texte | |
company.mediator.website | texte | |
company.paymentMethods | liste de : code parmi les valeurs indiquées | valeurs : virement, cheque, especes, carte_bancaire |
company.defaultValidityDays | nombre entier | en jours |
company.defaultPaymentTerms | texte | |
company.defaultPaymentDelayDays | nombre entier | en jours ; peut valoir null |
company.defaultQuoteFeeCents | nombre entier | en centimes d’euro |
company.devisIntroFr | texte | peut valoir null |
company.devisClosingFr | texte | peut valoir null |
company.footerNoteFr | texte | peut valoir null |
company.activity | code parmi les valeurs indiquées | valeurs : 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.wasteManagement | objet, dont les champs suivent | peut valoir null |
company.wasteManagement.collectionPointName | texte | |
company.wasteManagement.collectionPointAddress | texte | |
company.wasteManagement.collectionPointType | texte | |
company.wasteManagement.sortingTerms | texte | |
company.wasteManagement.removalTerms | texte | |
company.usualSigningPlace | code parmi les valeurs indiquées | valeurs : hors_etablissement, distance, etablissement |
company.brandPalette | liste d’objets | |
company.brandPalette[].color | couleur au format « #rrggbb » | |
company.brandPalette[].original | couleur au format « #rrggbb » | |
company.brandPalette[].source | code parmi les valeurs indiquées | valeurs : logo, manual, neutral, derived |
company.createdAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
company.scopeNoticeDismissedAt | date 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).
| Champ | Type | Précisions |
|---|---|---|
clients | liste d’objets | |
clients[].id | identifiant aléatoire (UUID) | |
clients[].kind | code parmi les valeurs indiquées | valeurs : particulier, professionnel |
clients[].name | texte | |
clients[].contactName | texte | peut valoir null |
clients[].siren | texte | peut valoir null |
clients[].vatNumber | texte | peut valoir null |
clients[].employeeCount | nombre entier | peut valoir null |
clients[].mainActivity | texte | peut valoir null |
clients[].addressLine1 | texte | |
clients[].addressLine2 | texte | peut valoir null |
clients[].postalCode | texte | |
clients[].city | texte | |
clients[].email | adresse e-mail | peut valoir null |
clients[].phone | texte | peut valoir null |
clients[].registry | objet, dont les champs suivent | peut valoir null |
clients[].registry.siren | texte | |
clients[].registry.headcountBand | code parmi les valeurs indiquées | valeurs : NN, 00, 01, 02, 03, 11, 12, 21, 22, 31, 32, 41, 42, 51, 52, 53 ; peut valoir null |
clients[].registry.headcountYear | nombre entier | peut valoir null |
clients[].registry.nafCode | texte | peut valoir null |
clients[].registry.checkedOn | date au format « AAAA-MM-JJ » | |
clients[].createdAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
clients[].updatedAt | date 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).
| Champ | Type | Précisions |
|---|---|---|
devis | liste d’objets | |
devis[].id | identifiant aléatoire (UUID) | |
devis[].clientId | identifiant aléatoire (UUID) | |
devis[].status | code parmi les valeurs indiquées | valeurs : draft, issued, accepted, declined, replaced |
devis[].number | texte | peut valoir null |
devis[].issueDate | date au format « AAAA-MM-JJ » | peut valoir null |
devis[].title | texte | |
devis[].sourceText | texte | |
devis[].sourceLanguage | code parmi les valeurs indiquées | valeurs : tr, fr, ar, pt, ro, pl ; peut valoir null |
devis[].siteSameAsClient | vrai ou faux (true / false) | |
devis[].siteAddressLine1 | texte | peut valoir null |
devis[].siteAddressLine2 | texte | peut valoir null |
devis[].sitePostalCode | texte | peut valoir null |
devis[].siteCity | texte | peut valoir null |
devis[].validityDays | nombre entier | en jours |
devis[].scheduleKind | code parmi les valeurs indiquées | valeurs : dates, relative ; peut valoir null |
devis[].startDate | date au format « AAAA-MM-JJ » | peut valoir null |
devis[].endDate | date au format « AAAA-MM-JJ » | peut valoir null |
devis[].startWithinDays | nombre entier | en jours ; peut valoir null |
devis[].completionWithinDays | nombre entier | en jours ; peut valoir null |
devis[].conclusionContext | code parmi les valeurs indiquées | valeurs : etablissement, hors_etablissement, distance ; peut valoir null |
devis[].outsideClientCoreActivity | vrai ou faux (true / false) | peut valoir null |
devis[].urgentRepair | vrai ou faux (true / false) | peut valoir null |
devis[].urgentWorksOnly | vrai ou faux (true / false) | peut valoir null |
devis[].repairMaintenance | vrai ou faux (true / false) | peut valoir null |
devis[].timeCountingTerms | texte | peut valoir null |
devis[].suppliesGoods | vrai ou faux (true / false) | peut valoir null |
devis[].goodsDelivery | code parmi les valeurs indiquées | valeurs : single, multiple, lots ; peut valoir null |
devis[].earlyStartRequested | vrai ou faux (true / false) | peut valoir null |
devis[].decennaleApplicable | vrai ou faux (true / false) | peut valoir null |
devis[].subcontracting | vrai ou faux (true / false) | peut valoir null |
devis[].subcontractedCleaning | vrai ou faux (true / false) | peut valoir null |
devis[].plansSubcontracting | vrai ou faux (true / false) | peut valoir null |
devis[].wasteApplicable | vrai ou faux (true / false) | peut valoir null |
devis[].wasteEstimatedQuantity | texte | peut valoir null |
devis[].wasteManagementTerms | texte | peut valoir null |
devis[].wasteSortedCategories | texte | peut valoir null |
devis[].wasteCollectionPointName | texte | peut valoir null |
devis[].wasteCollectionPointAddress | texte | peut valoir null |
devis[].wasteCollectionPointType | texte | peut valoir null |
devis[].wasteCostHtCents | nombre entier | en centimes d’euro ; peut valoir null |
devis[].depositKind | code parmi les valeurs indiquées | valeurs : none, acompte, arrhes |
devis[].depositPercentBp | nombre entier | en centièmes de pour cent (2 000 = 20 %) ; peut valoir null |
devis[].balanceTerms | texte | |
devis[].paymentDelayDays | nombre entier | en jours ; peut valoir null |
devis[].paymentMethods | liste de : code parmi les valeurs indiquées | valeurs : virement, cheque, especes, carte_bancaire |
devis[].quoteFeeCents | nombre entier | en centimes d’euro |
devis[].additionalConditionsFr | texte | peut valoir null |
devis[].introFr | texte | peut valoir null |
devis[].closingFr | texte | peut valoir null |
devis[].materialsSupplier | code parmi les valeurs indiquées | valeurs : artisan, client ; peut valoir null |
devis[].signingPlace | code parmi les valeurs indiquées | valeurs : hors_etablissement, distance, etablissement ; peut valoir null |
devis[].repairWork | vrai ou faux (true / false) | |
devis[].wasteQuantity | texte | peut valoir null |
devis[].wasteCostCents | nombre entier | en centimes d’euro ; peut valoir null |
devis[].revisionOf | identifiant aléatoire (UUID) | peut valoir null |
devis[].revisionIndex | nombre entier | |
devis[].totalHtCents | nombre entier | en centimes d’euro |
devis[].totalVatCents | nombre entier | en centimes d’euro |
devis[].totalTtcCents | nombre entier | en centimes d’euro |
devis[].snapshot | document figé du devis émis | peut valoir null |
devis[].pdfSha256 | empreinte SHA-256 d’un fichier (64 caractères hexadécimaux) | peut valoir null |
devis[].issuedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
devis[].decidedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
devis[].createdAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
devis[].updatedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
devis[].lines | liste d’objets | |
devis[].lines[].id | identifiant aléatoire (UUID) | |
devis[].lines[].devisId | identifiant aléatoire (UUID) | |
devis[].lines[].position | nombre entier | |
devis[].lines[].kind | code parmi les valeurs indiquées | valeurs : item, section |
devis[].lines[].designationFr | texte | |
devis[].lines[].gloss | texte | peut valoir null |
devis[].lines[].quantityMilli | nombre entier | en millièmes d’unité (1 500 = 1,5) ; peut valoir null |
devis[].lines[].unit | code parmi les valeurs indiquées | valeurs : u, m², m³, ml, m, kg, t, h, j, forfait, ens, lot, L ; peut valoir null |
devis[].lines[].unitPriceCents | nombre entier | en centimes d’euro ; peut valoir null |
devis[].lines[].vatRateBp | code parmi les valeurs indiquées | valeurs : 2000, 1000, 550, 0 ; peut valoir null |
devis[].lines[].needsReview | vrai ou faux (true / false) | |
devis[].lines[].quantityOrigin | code parmi les valeurs indiquées | valeurs : typed, stated ; peut valoir null |
devis[].lines[].priceOrigin | code parmi les valeurs indiquées | valeurs : typed, stated, library ; peut valoir null |
devis[].lines[].materialsPending | vrai 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.
| Champ | Type | Précisions |
|---|---|---|
lineLibrary | liste d’objets | |
lineLibrary[].designationFr | texte | |
lineLibrary[].gloss | texte | peut valoir null |
lineLibrary[].glossLanguage | code parmi les valeurs indiquées | valeurs : tr, fr, ar, pt, ro, pl ; peut valoir null |
lineLibrary[].unit | code parmi les valeurs indiquées | valeurs : u, m², m³, ml, m, kg, t, h, j, forfait, ens, lot, L |
lineLibrary[].unitPriceCents | nombre entier | en centimes d’euro |
lineLibrary[].priceSetAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
lineLibrary[].priceSource | code parmi les valeurs indiquées | valeurs : issued, edited |
lineLibrary[].createdAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
lineLibrary[].updatedAt | date 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.
| Champ | Type | Précisions |
|---|---|---|
files | liste d’objets | |
files[].kind | code parmi les valeurs indiquées | valeurs : logo, decennale_attestation |
files[].mimeType | code parmi les valeurs indiquées | valeurs : image/png, application/pdf |
files[].byteSize | nombre entier | en octets |
files[].sha256 | empreinte SHA-256 d’un fichier (64 caractères hexadécimaux) | |
files[].pageCount | nombre entier | peut valoir null |
files[].uploadedAt | date 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é.
| Champ | Type | Précisions |
|---|---|---|
aiUsage | liste d’objets | |
aiUsage[].at | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
aiUsage[].devisId | identifiant aléatoire (UUID) | peut valoir null |
aiUsage[].model | texte | |
aiUsage[].outcome | code parmi les valeurs indiquées | valeurs : ok, refused, truncated, invalid_output, api_error, cancelled, pending, abandoned |
aiUsage[].inputTokens | nombre entier | en jetons (unités de texte traitées par l’intelligence artificielle) ; peut valoir null |
aiUsage[].outputTokens | nombre entier | en jetons (unités de texte traitées par l’intelligence artificielle) ; peut valoir null |
aiUsage[].freeLineAddition | vrai 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.
| Champ | Type | Précisions |
|---|---|---|
voiceUsage | liste d’objets | |
voiceUsage[].month | mois au format « AAAA-MM » | |
voiceUsage[].recordings | nombre entier | |
voiceUsage[].seconds | nombre entier | en 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.
| Champ | Type | Précisions |
|---|---|---|
aiReports | liste d’objets | |
aiReports[].reportedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
aiReports[].reason | code parmi les valeurs indiquées | valeurs : offensive, inaccurate, unrelated, other |
aiReports[].comment | texte | peut valoir null |
aiReports[].generationId | identifiant 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.
| Champ | Type | Précisions |
|---|---|---|
billing | objet, dont les champs suivent | peut valoir null |
billing.subscriptionStatus | code parmi les valeurs indiquées | code du service, en anglais ; peut valoir null ; absent sans abonnement souscrit sur le site |
billing.currentPeriodEnd | date 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.cancelAtPeriodEnd | vrai ou faux (true / false) | absent sans abonnement souscrit sur le site |
billing.appStoreSubscriptions | liste d’objets | |
billing.appStoreSubscriptions[].environment | code parmi les valeurs indiquées | valeurs : Production, Sandbox |
billing.appStoreSubscriptions[].originalTransactionId | texte | |
billing.appStoreSubscriptions[].productId | texte | |
billing.appStoreSubscriptions[].status | code parmi les valeurs indiquées | valeurs : 1, 2, 3, 4, 5 |
billing.appStoreSubscriptions[].expiresAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | |
billing.appStoreSubscriptions[].gracePeriodExpiresAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
billing.appStoreSubscriptions[].autoRenew | vrai ou faux (true / false) | |
billing.appStoreSubscriptions[].revokedAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») | peut valoir null |
billing.appStoreSubscriptions[].createdAt | date et heure en UTC, au format ISO 8601 (« 2026-10-05T09:30:00.000Z ») |