{{ t.msg }}
Votre periode d'essai est terminee. Ajoutez votre IBAN pour activer le prelevement SEPA (moins de frais) Essai gratuit — {{ trialDaysLeft }} jour(s) restant(s)

Compte suspendu

Votre compte a ete suspendu pour defaut de paiement. Veuillez regulariser votre situation pour retrouver l'acces.

Se deconnecter
Mes clients ({{ companies.length }})
| Mois en cours : {{ currentMonth }} |
{{ monthLabel }}
📥 Installer l'agent CABINET
{{ consoleStatusText }} {{ jobTimer }}
Lance une recuperation pour voir les logs ici.
{{ l.tsStr }} {{ l.text }}
Historique des executions
DateMoisModulesStatusDureeOKErr
{{ fmtDate(r.started_at) }} {{ r.target_month }} {{ r.modules }} {{ r.status }} {{ r.duration_s ? r.duration_s+'s' : '-' }} {{ r.nb_ok }} {{ r.nb_error }}
Aucun historique
Detail du run #{{ runDetail.run.id }}
FournisseurRefDateTTCFichierStatus
{{ inv.provider }} {{ inv.invoice_ref || '-' }} {{ inv.invoice_date || '-' }} {{ inv.amount_ttc ? inv.amount_ttc.toFixed(2)+' EUR' : '-' }} {{ inv.filename || '-' }} {{ inv.status }}
⚠ {{ rejetsAlerts.length }} rejet(s) de prelevement
!
{{ r.label }}
{{ r.operation_date }} — {{ Math.abs(r.amount).toFixed(2) }} EUR
Client(s) possible(s) : {{ c.likelyReject ? '⚠ ' : '' }}{{ c.ref }} — {{ c.client }} ({{ c.amount_ttc?.toFixed(2) }} EUR){{ c.reconciled ? ' ✓' : '' }}
Export comptable {{ targetMonth }}
{{ stats.totalInvoices }}
Factures ce mois
{{ stats.reconciled }}
Rapprochees
{{ stats.unreconciled }}
Non rapprochees
Suivi rapprochement — {{ monthLabel }}
Factures d'achat
{{ reconSummary.achats.pct }}%
{{ reconSummary.achats.matched }} rapprochees {{ reconSummary.achats.total }} factures
{{ reconSummary.achats.missing }} facture(s) d'achat manquante(s) Voir ›
Toutes les factures d'achat sont rapprochees
Factures de vente
{{ reconSummary.ventes.pct }}%
{{ reconSummary.ventes.matched }} rapprochees {{ reconSummary.ventes.total }} encaissements
{{ reconSummary.ventes.unmatched }} encaissement(s) non rapproche(s) Voir ›
Tous les encaissements sont rapproches
Calcul TVA — {{ targetMonth }} Regime : {{ {debits:'sur les debits',encaissements:'sur les encaissements',mixte:'mixte'}[tvaStats.regime] || tvaStats.regime }}
TVA collectee (ventes)
{{ tvaStats.tvaCollectee?.toFixed(2) }} EUR
{{ tvaStats.ventes?.nb || 0 }} facture(s) — HT {{ tvaStats.ventes?.ht?.toFixed(2) }} EUR
TVA deductible (achats)
{{ tvaStats.tvaDeductible?.toFixed(2) }} EUR
{{ tvaStats.achats?.nb || 0 }} facture(s) — HT {{ tvaStats.achats?.ht?.toFixed(2) }} EUR
TVA {{ tvaStats.tvaAPayer >= 0 ? 'a payer' : 'credit' }}
{{ Math.abs(tvaStats.tvaAPayer)?.toFixed(2) }} EUR
{{ tvaStats.tvaAPayer >= 0 ? 'Collectee - Deductible' : 'Credit de TVA' }}
{{ tvaStats.achats.manquants.length }} facture(s) sans TVA — montants estimes a 20%
{{ m.provider }} {{ m.filename?.replace(/\.pdf$/i,'')?.substring(0,30) }} {{ m.amount_ttc?.toFixed(2) }} EUR EUR
Cliquez sur le nom du fichier pour ouvrir la facture. Selectionnez le taux de TVA ou saisissez le montant exact.
Detail par fournisseur
FournisseurTypeNbHTTVATTC
{{ s.provider }} {{ s.type }} {{ s.nb }} {{ s.total_ht ? s.total_ht.toFixed(2) : '-' }} {{ s.total_tva ? s.total_tva.toFixed(2) : '-' }} {{ s.total_ttc ? s.total_ttc.toFixed(2) : '-' }}
Bilan annuel
Selectionnez une annee
Depenses cartes bancaires — {{ annualYear }}
CB CIC (carte 9184/4565)
{{ fmtK(depensesCb.cb?.total) }}
{{ depensesCb.cb?.count }} operations
Carte Amex
{{ fmtK(depensesCb.amex?.total) }}
{{ depensesCb.amex?.topMerchants?.reduce((s,m)=>s+m.count,0) || 0 }} transactions
Total cartes
{{ fmtK(depensesCb.grandTotal) }}
{{ annualYear }}
Par categorie
CategorieCB CICAmexTotal
{{ cat.name }} {{ cat.cb ? cat.cb.toFixed(0) : '-' }} {{ cat.amex ? cat.amex.toFixed(0) : '-' }} {{ cat.total.toFixed(0) }} EUR
Top marchands CB CIC
{{ m.name }} x{{ m.count }} {{ m.total.toFixed(0) }} EUR
Top marchands Amex
{{ m.name }} x{{ m.count }} {{ m.total.toFixed(0) }} EUR
📱 {{ p.only }} attend le code reçu par SMS :
TVA — {{ tvaS.summary.month }}
Régime : TVA sur les {{ tvaS.summary.regime }} · {{ ({declared:'déclarée',none:'pas de déclaration',grouped:'regroupée avec le mois suivant'})[tvaS.summary.declaration.status] }} ({{ fmtE(tvaS.summary.declaration.paid_amount) }} payés le {{ fmtD(tvaS.summary.declaration.declared_at) }}) — {{ tvaS.summary.declaration.note }} pas encore déclarée
Nouveautés depuis {{ nouv.source==='revue' ? 'la dernière revue du cabinet, le' : nouv.source==='declaration' ? 'la dernière déclaration de TVA ('+nouv.period+'), le' : 'le' }} {{ fmtUtc(nouv.since) }} : {{ nouv.nb }} élément(s) Télécharger avec les justificatifs (ZIP) CSV seul
Dernière revue du cabinet : {{ fmtUtc(nouv.history[0].reviewed_at) }} par {{ nouv.history[0].email }}. Aucune revue enregistrée pour l'instant : le point de départ est la dernière déclaration de TVA. Le bouton « J'ai tout pris en compte » fixe le nouveau point de départ.
Rien de nouveau depuis ce passage.
TVA collectée{{ fmtE(tvaS.summary.collectee) }}ventes HT {{ fmtE(tvaS.summary.ventesHt) }}
TVA déductible certaine{{ fmtE(tvaS.summary.deductibleCertaine) }}{{ tvaS.summary.nbCertaines }} pièce(s), {{ tvaS.summary.nbTransmises }} déjà transmise(s)
TVA estimée (non chiffrée)~{{ fmtE(tvaS.summary.estimee.tva) }}{{ tvaS.summary.estimee.nb }} achat(s), {{ fmtE(tvaS.summary.estimee.ttc) }} TTC
Documents à vérifier{{ tvaS.summary.review.nb }}{{ fmtE(tvaS.summary.review.ttc) }} TTC
Pièces manquantes{{ tvaS.summary.piecesManquantes.nb }}~{{ fmtE(tvaS.summary.piecesManquantes.tvaEnJeu) }} de TVA en jeu
TVA à régulariser (rattrapages) : {{ tvaS.rattrapage.nb }} pièce(s), {{ fmtE(tvaS.rattrapage.tva) }} Exporter et marquer transmis (ZIP)
Pièces de mois déjà déclarés (jusqu'à {{ tvaS.rattrapage.lastDeclared || '—' }}) validées après coup : à reporter sur la prochaine déclaration en « autre TVA à déduire ».
{{ i.month }}{{ fmtD(i.date) }}{{ i.provider }}{{ fmtE(i.ht) }}{{ fmtE(i.tva) }}{{ fmtE(i.ttc) }}
Rien à régulariser. Les pièces que vous validerez dans « À vérifier » pour des mois déjà déclarés apparaîtront ici.
À confirmer avec la comptable : {{ tvaS.aConfirmer.nb }} pièce(s), {{ fmtE(tvaS.aConfirmer.tva) }} de TVA Exporter (ZIP)
Pièces de mois déjà déclarés que la comptable a peut-être déjà reçues (récapitulatifs, factures transmises directement) : à reprendre en régularisation seulement si elles n'ont pas été déduites.
{{ i.month }}{{ fmtD(i.date) }}{{ i.provider }}{{ i.kind==='recap_envoye'?'dans un récap envoyé':'TVA non chiffrée à la déclaration' }}{{ fmtE(i.ttc) }}{{ fmtE(i.tva) }}
Achats sans TVA française — autoliquidation / exonération ({{ tvaS.summary.autoliquidation.length }}) : à signaler à la comptable
{{ fmtD(i.date) }}{{ i.provider }}{{ i.regime==='autoliquidation'?'Autoliquidation':'Exonéré' }}{{ fmtE(i.ttc) }}
TVA non chiffrée — à compléter (ouvrir dans « À vérifier » / Fichiers)
{{ fmtD(i.date) }}{{ i.provider }}{{ fmtE(i.ttc) }}~{{ fmtE(i.estTva) }}
Pièces manquantes du mois (TVA perdue sans facture) — détail dans l'onglet Banque
{{ fmtD(i.date) }}{{ i.compte }}{{ i.contrepartie }}{{ fmtE(i.montant) }}
Déclarations
Aucune déclaration trouvée pour : {{ tvaS.missing.join(', ') }}. Indiquez ce qu'il en est :
{{ m }} :
{{ p.period }}{{ ({declared:'déclarée',none:'pas de déclaration',grouped:'regroupée'})[p.status] }}{{ p.paid_amount?fmtE(p.paid_amount):'' }}{{ p.source }}{{ p.note?' — '+p.note:'' }}
Chargement…
Santé de ZenFactu
Contrôlé {{ health.generatedAt ? new Date(health.generatedAt).toLocaleString('fr-FR') : '…' }} · rapport hebdomadaire {{ health.email ? 'envoyé à ' + health.email + ' le lundi' : 'non configuré' }} · dernier envoi {{ health.lastSent.slice(0,16) }}
{{ c.status==='ok'?'✓':(c.status==='warn'?'!':'✕') }}
{{ c.label }}
{{ c.detail }}
  • {{ i }}
{{ health.loading ? 'Contrôle en cours…' : 'Aucune donnée' }}
Déposer un relevé PDF (CIC, Amex, avis de remise de prélèvements) ici, ou analyse…
Exporter les pièces à récupérer (CSV)
Relevés manquants
{{ g.message }}
{{ st.account_label || st.account }} {{ st.check_ok ? 'contrôle OK' : 'contrôle KO' }}
du {{ fmtD(st.period_start) }} au {{ fmtD(st.period_end) }} · {{ st.nb_lines }} opérations
Solde {{ fmtE(st.opening_balance) }} → {{ fmtE(st.closing_balance) }}
Voir le PDF
Aucun relevé importé pour ce mois.
Opérations{{ bank.summary.nb }}
Pièces à récupérer{{ bank.summary.missing }}{{ fmtE(bank.summary.missingAmount) }}
Encaissements à rapprocher{{ bank.summary.toMatch }}
Rapprochées{{ bank.summary.matched }}
Débits / Crédits−{{ fmtE(bank.summary.debit) }} / +{{ fmtE(bank.summary.credit) }}
{{ bankRows.length }} ligne(s)
DateCompteOpérationMontantPièce
{{ bank.loading ? 'Chargement…' : 'Aucune opération' }}
Telecharger le mois en ZIP
{{ {achats:'Achats',ventes:'Ventes',banques:'Banques'}[section] }} ({{ (filesData[section]||[]).length }})
Upload en cours...
📄
{{ f.name }}
{{ f.provider||f.client }} · {{ f.invDate }} · HT {{ Number(f.ht).toFixed(2) }} · TTC {{ Number(f.ttc).toFixed(2) }} €
{{ formatBytes(f.size) }}
Glissez des fichiers ici
ou cliquez "Ajouter"
🔒
Mode lecture seule — ces fichiers sont en attente de validation par le client avant integration.
Aucun fichier a verifier — tout est en ordre
{{ reviewFiles.length }} fichier(s) a verifier
{{ f.month }} — {{ f.filename }}
Fournisseur
{{ s.name }}[{{ s.accounting_code }}]
Date
Montant TTC EUR
TVA EUR
Ouvrir le PDF
🔒
Mode lecture seule — vous consultez les rapprochements achats du client. Les modifications sont reservees au client.
{{ reconData.matchedDebits }} / {{ reconData.totalDebits }} rapproches {{ reconData.missingInvoices }} facture(s) manquante(s)
{{ reconData.matchedDebits }} / {{ reconData.totalDebits }} rapproches {{ reconData.missingInvoices }} facture(s) manquante(s)
▸ Vue détaillée par ligne bancaire ({{ reconData.totalDebits }} débits dont {{ reconData.matchedDebits }} rapprochés)
Date Libelle bancaire Montant ↔ Facture TTC Confiance
Factures ({{ invoicesView.length }}) Rapprochée Non rapprochée Orpheline / suspecte
Date Fournisseur Montant
{{ fmtDay(inv.invoice_date || inv.month) }} {{ (inv.amount_ttc||0).toFixed(2) }}
{{ reconSelectedInvs.length }} facture(s) selectionnee(s) : {{ reconSelectedTotal.toFixed(2) }} EUR
{{ reconSelectedInvs.length }} facture(s) : {{ reconSelectedTotal.toFixed(2) }} EUR  ↔  Debit : {{ Math.abs(reconData.debits.find(d=>d.id===reconSelectedDebit)?.amount||0).toFixed(2) }} EUR Montant exact ✓ Ecart : {{ (reconSelectedTotal - Math.abs(reconData.debits.find(d=>d.id===reconSelectedDebit)?.amount||0)).toFixed(2) }} EUR
🔒
Mode lecture seule — vous consultez les rapprochements ventes du client. Les modifications sont reservees au client.
{{ ventesSelected.ids.length }} facture(s) sélectionnée(s) — Total : {{ ventesSelected.total.toFixed(2) }} EUR
Scanner facturettes
Deposer des factures ici
PDF, JPG, PNG — glisser-deposer ou cliquer
Analyse en cours...
{{ fmtDay(s.invoice_date || s.month) }} {{ s._source }} {{ s.provider || '???' }} HT {{ s.amount_ht ? s.amount_ht.toFixed(2) : '?' }} | TVA {{ s.amount_tva ? s.amount_tva.toFixed(2) : '?' }} | TTC {{ s.amount_ttc ? s.amount_ttc.toFixed(2) : '?' }} Corriger
Fournisseur
Date
HT
TVA
TTC
Aucun scan
Fournisseurs ({{ suppliersList.length }})
{{ supForm.id ? 'Modifier' : 'Nouveau fournisseur' }}
Nom
Aliases
Code comptable
Categorie
Connecteur
NomAliasesCode comptableCategorieConnecteurActions
{{ s.name }} {{ (s.aliases||[]).join(', ') || '-' }} {{ s.accounting_code || '-' }} {{ s.category || '-' }} {{ s.connector }}-
🔒
Mode lecture seule — vous consultez les notes de frais du client.
Detail — {{ expenseDetail.report.month }}
Ajouter une depense
{{ t.icon }} {{ t.label }}
Paye avec :
{{ pm.icon }} {{ pm.label }}
TypeDescriptionDateMontantPaye avecInviteRemb.
{{ expenseTypes.find(t=>t.id===l.expense_type)?.icon }} {{ expenseTypes.find(t=>t.id===l.expense_type)?.label || l.expense_type }} {{ l.description || '-' }} {{ l.date || '-' }} {{ l.amount.toFixed(2) }} EUR {{ expensePayMethods.find(p=>p.id===l.payment_method)?.icon || '' }} {{ expensePayMethods.find(p=>p.id===l.payment_method)?.label || l.payment_method || 'CB perso' }} {{ l.guest_name ? l.guest_name + ' (' + (l.guest_company||'?') + ')' : '-' }} Rembourse En attente
Total {{ expenseDetail.lines.reduce((s,l)=>s+l.amount,0).toFixed(2) }} EUR Tout rembourse {{ expenseDetail.lines.filter(l=>!l.reimbursed).length }} en attente
Aucune ligne
Note du manager : {{ expenseDetail.report.review_note }}

Documents manquants — {{ monthLabel }}

Récap du mois — {{ monthLabel }}

Chargement…

Bilan de cloture

Selectionnez une annee

Mon cabinet

{{ cabinetClients.length }}
Clients
{{ cabinetClients.filter(c=>c.access_status==='active').length }}
Acces actifs
{{ cabinetClients.filter(c=>c.access_status==='pending').length }}
En attente
Mes clients
SocieteSIRETClientStatusDepuisActions
{{ c.name }} {{ c.siret || '-' }} {{ c.owner_first }} {{ c.owner_last }} ({{ c.owner_email }}) Actif En attente {{ c.access_status }} {{ c.access_since?.slice(0,10) }} Validation en cours
Aucun client. Demandez a vos clients de vous inviter depuis leur espace ZenFactu.
Export en masse
Parametres d'export
Periode
Mois
Trimestre
Annee
Du
Au
Type
Choisir le format
{{ f.label }}
{{ exportFormatDesc[f.id] || '' }}
Apercu ({{ exportPreviewCount }} ecritures)
{{ exportPreview }}
🔒
Mode lecture seule — vous consultez l'equipe du client. Seul le client peut inviter ou retirer des membres.
Equipe — {{ companyName }}
MembreEmailRoleStatusDernier loginActions
{{ m.first_name }} {{ m.last_name }} {{ m.email }} {{ m.role }} Actif En attente {{ m.last_login?.slice(0,10) || '-' }}
Permissions par role
PermissionOwnerManagerCollaborateurViewer
{{ label }} {{ permMatrix[r][perm] ? '✓' : '✗' }}
Configuration pour {{ companyName }}
Fournisseurs detectes dans vos releves bancaires

Nous avons analyse vos releves et detecte ces fournisseurs. Configurez-les pour recuperer automatiquement vos factures.

{{ p.name }}
{{ p.desc }}
{{ p.transactions }} transaction{{ p.transactions>1?'s':'' }}
✓
Demander la mise en place du connecteur {{ setupRequestForm.providerName }}

Nous n'avons pas encore de connecteur automatique pour {{ setupRequestForm.providerName }}. Indiquez-nous comment vous vous connectez et nous le mettrons en place pour vous.

Methode de connexion
Remarques
Demande envoyee pour {{ setupRequestForm.providerName }}. Notre equipe reviendra vers vous rapidement.
Importez un releve bancaire pour que ZenFactu detecte automatiquement vos fournisseurs et vous propose les bons connecteurs.
Tous les connecteurs
{{ cfgStatusDot(g) }} {{ g }}
Aucune configuration pour cet onglet
{{ cfgTestResult }}

Agent local

L'agent se connecte a votre logiciel de comptabilite (Dolibarr, Ciel, EBP...) et synchronise vos documents (Achats, Ventes, Banques) depuis votre reseau local vers ZenFactu.

Installation en 3 etapes
1
Telechargez et installez l'agent sur le poste qui a acces a votre comptabilite. Lors de l'installation, Windows peut afficher un avertissement — c'est normal, voir ci-dessous.
2
Connectez-vous avec votre email et mot de passe ZenFactu. L'agent apparait dans la barre des taches Windows.
3
Configurez vos dossiers (Achats, Ventes, Banques) et votre ERP dans la section ERP / Compta ci-dessus. L'agent synchronise tout automatiquement.
Telecharger l'agent
ZenFactu Agent v2.0.0 — se lance au demarrage, icone dans la barre des taches
Windows affiche un avertissement a l'installation

C'est normal : l'agent n'est pas encore certifie par Microsoft. Il est 100% sur — voici comment continuer :

Ecran bleu "Windows a protege votre ordinateur" :
Cliquer sur "Informations complementaires" puis "Executer quand meme"
Si Defender bloque le fichier :
Securite Windows > Protection contre les virus > Historique de protection > Autoriser
Ajouter une exclusion (facultatif)
Securite Windows > Exclusions > Ajouter le dossier : C:\Users\[utilisateur]\AppData\Local\Programs\ZenFactu Agent
Tokens agent actifs
{{ t.label }} Vu {{ t.last_seen?.slice(0,16) }} Jamais connecte

Connecteurs ERP / Compta

Connectez votre logiciel de facturation pour synchroniser automatiquement vos factures de vente et d'achat.

🔌
{{ c.name }}
{{ c.description }}
✓

{{ erpSelectedDef.name }} — Configuration

Dolibarr est sur votre reseau local
Le serveur ZenFactu ne peut pas acceder directement a votre Dolibarr. C'est l'agent local installe sur votre poste qui se connecte a Dolibarr et synchronise les donnees.
1. Renseignez l'URL locale et la cle API ci-dessous, puis cliquez Enregistrer
2. Installez l'agent (section Config > general)
3. L'agent recuperera automatiquement ces identifiants et se connectera a Dolibarr
Le bouton "Tester la connexion" ne fonctionnera pas depuis le cloud — la connexion sera testee par l'agent directement.
Import par fichiers
{{ erpSelectedDef.name }} fonctionne par import de fichiers (FEC, XIMPORT, CSV). Configurez le dossier d'export ci-dessous, puis l'agent local surveillera ce dossier et enverra automatiquement les fichiers vers ZenFactu.
{{ f.label }}
{{ erpTestResult }}

Reception de factures par email

Recevez automatiquement vos factures d'achat par email. Transferez vos factures et les PJ (PDF, images) seront classees dans Achats.

Adresse de reception
in@zenfactu.fr
Comment ca marche :
  1. Vous recevez une facture par email
  2. Vous la transferez a in@zenfactu.fr
  3. La facture est automatiquement classee dans vos Achats
L'identification se fait par votre adresse email ({{ accountEmail }}). Tous les membres de votre societe peuvent aussi transferer des factures depuis leur propre adresse.