> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.fincome.co/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Préparer mon fichier

Importer vos données de facturation dans Fincome commence par une étape essentielle : **structurer correctement votre fichier d'import**. Ce fichier Excel (.xlsx) ou Google Sheet permet d'intégrer vos clients, abonnements, factures, lignes de factures et avoirs selon le modèle Fincome. Une bonne préparation garantit la fiabilité de vos indicateurs (MRR, ARR, churn, revenue recognition…) et évite toute erreur à l'import.

Retrouvez les templates sur Fincome > Réglages > Connecter un nouveau système de facturation :

- Excel : vous trouverez un exemple et le template vide.
- Google Sheet : vous trouverez le template à compléter avant d'intégrer le lien.

## 1. Structure du fichier

Le fichier d'import est un tableau dans lequel chaque ligne représente une **ligne de facture** (un produit ou service facturé), c'est-à-dire un composant de la facture.

Il consolide 7 grandes catégories d'informations :

- Facture (Invoice)
- Avoir (Credit note)
- Ligne de facture (Line item)
- Abonnement (Subscription)
- Client (Customer)
- Plan (Price)
- Produit (Product)

**Optionnel :** autant de colonnes que nécessaire peuvent être ajoutées pour intégrer des données d'enrichissement (pas d'inquiétude, ces données peuvent aussi être ajoutées dans un second temps).

Une même facture peut comporter plusieurs lignes, et un même client peut apparaître plusieurs fois (sur différentes factures). Lorsqu'un même élément se répète, les attributs qui le décrivent doivent rester rigoureusement identiques sur toutes les lignes correspondantes. Par exemple, un même `invoice_id` doit toujours porter le même `status`, la même `date` et la même `currency`.

## 2. Format des dates

- Toutes les dates doivent être saisies au **format Excel JJ/MM/AAAA** (type **Date**).
- Les formats texte, ISO (ex. `2025-09-15`) ou copiés depuis un CSV ne sont pas reconnus.

## 3. Colonne « type » (obligatoire)

Chaque ligne du fichier doit indiquer un **type** de donnée importée. Trois valeurs sont possibles.

**`subscription`**
Abonnement récurrent **inclus dans le MRR/ARR**. Les colonnes bleu foncé sont obligatoires. Les champs `period_start` et `period_end` doivent être renseignés, avec :

- `period_start` < `period_end` (jamais identiques) ;
- des périodes qui **s'enchaînent** pour un même abonnement (ex. du 01/01/25 au 01/02/25, puis du 01/02/25 au 01/03/25, et ainsi de suite).

**`one_off`**
Ligne de facturation **ponctuelle (hors MRR)**. Même structure que `subscription`, mais **sans** `period_start` ni `period_end`.

**`future_sub`**
Abonnement **futur non encore facturé** (contrat signé avec démarrage différé). Seules les colonnes suivantes sont obligatoires : `type`, `customer_id` et les colonnes violet foncé du modèle.

Respectez bien l'un de ces trois termes dans la colonne « type » pour que le fichier soit exploitable.

## 4. Intégrer des avoirs (credit notes)

Pour ajouter un avoir dans Fincome, deux solutions sont possibles :

1. Créer une ligne de facture négative, identique à celle(s) qu'elle vient annuler, mais avec un montant négatif.
2. Créer une **ligne dédiée** dans le fichier, en renseignant :
   - `invoice_id` avec l'identifiant de la facture annulée,
   - un **montant négatif** dans `amount_excluding_tax_after_discount`,
   - les colonnes bleu-vert (liées à la ligne annulée).

Fincome ajustera automatiquement vos indicateurs (MRR, ARR, revenue recognition, etc.).

## 5. Exemples concrets des lignes obligatoires

### Exemple 1 — Abonnement mensuel

| invoice_id   | date       | type         | amount_excluding_tax_after_discount | description | period_start | period_end | customer_id |
| ------------ | ---------- | ------------ | ----------------------------------- | ----------- | ------------ | ---------- | ----------- |
| INV-2025-002 | 01/02/2025 | subscription | 1500                                | Sub X       | 01/02/2025   | 01/03/2025 | CUST-002    |

### Exemple 2 — Ligne one_off

| invoice_id   | date       | type    | amount_excluding_tax_after_discount | description | customer_id |
| ------------ | ---------- | ------- | ----------------------------------- | ----------- | ----------- |
| INV-2025-002 | 01/02/2025 | one_off | 1500                                | Set up by X | CUST-002    |

### Exemple 3 — Avoir

| invoice_id   | credit_note_id | credit_note_date | currency_code | amount_excluding_tax_after_discount |
| ------------ | -------------- | ---------------- | ------------- | ----------------------------------- |
| INV-2025-001 | CN_1           | 17/08/2022       | EUR           | -600                                |

## 6. Axes d'analyse personnalisés (optionnel)

Vous pouvez enrichir vos données en ajoutant des colonnes supplémentaires : `canal_acquisition`, `pays`, `segment_client`, `CSM`, etc. Ces colonnes deviennent automatiquement des **axes analytiques personnalisés**, liés exclusivement au client, exploitables dans vos filtres et décompositions Fincome.

## 7. Valeurs autorisées

- **Statut d'abonnement (`subscription_status`)** : `active`, `paused`, `canceled`
- **Statut de facture (`invoice_status`)** : `open`, `pending`, `paid`, `unpaid`

Toute autre valeur sera refusée à l'import.

## 8. Identifier la « Date jusqu'à laquelle porte l'import »

Au moment de charger votre fichier, Fincome vous demande une **« Date jusqu'à laquelle porte l'import »**. Repérez-la dès la préparation du fichier : elle doit **toujours** correspondre à la **dernière date d'émission de facture présente dans le fichier**, c'est-à-dire à la valeur la plus récente de la colonne `date`.

**Pourquoi c'est déterminant :** Fincome considère que vos données sont **complètes jusqu'à cette date**. Tout l'intervalle entre votre dernière facture réelle et la date déclarée est donc lu comme une **absence de facturation**, et non comme une donnée manquante.

**Exemple :** vos dernières factures émises datent du **01/08**, mais vous renseignez le **01/09** comme date de fin d'import. Fincome en déduit qu'aucune facture n'a été émise entre le 01/08 et le 01/09, donc que les abonnements se sont arrêtés : vous voyez apparaître du **churn fictif** sur ce mois.

**Cas des imports séparés (factures émises / abonnements futurs) :** si vous scindez vos données en plusieurs fichiers — par exemple un fichier de factures émises (`subscription`, `one_off`) et un fichier d'abonnements futurs (`future_sub`) — la date de fin d'import doit rester basée sur la **dernière facture réellement émise**. Jamais sur les dates des abonnements futurs : les lignes `future_sub` portent sur du revenu à venir, non facturé, et ne prolongent donc pas la période couverte par vos données de facturation.

## 9. Checklist avant import

- Fichier au format **.xlsx**
- Toutes les **colonnes obligatoires** complétées selon le type de ligne
- Identifiants (`customer_id`, `invoice_id`, `subscription_id`) **stables et cohérents**
- Dates Excel valides et ordonnées (`period_start` < `period_end`)
- Montants au format **numérique**, sans séparateurs de milliers
- Valeurs de statut et de devise conformes au modèle Fincome
- **Date jusqu'à laquelle porte l'import** identifiée = dernière date d'émission de facture du fichier (valeur la plus récente de la colonne `date`)

## FAQ — Préparation du fichier

**Une facture peut-elle comporter plusieurs lignes ?**
Oui. Un même `invoice_id` peut agréger plusieurs line items (ex. abonnement + frais de mise en service). Veillez simplement à ce que tous les champs décrivant la facture (`status`, `date`, `currency`) soient strictement identiques sur chaque ligne.

**L'Invoice ID est-il obligatoire, même fictif ?**
Oui. Le champ `invoice_id` est obligatoire pour que l'import aboutisse, même lorsque le numéro est fictif. Si vos lignes ne disposent pas d'un numéro de facture réel (par exemple pour un historique reconstitué), renseignez un identifiant fictif : l'import ne se fera pas tant que ce champ est vide.

**Quelle date renseigner dans « Date jusqu'à laquelle porte l'import » ?**
Toujours la **dernière date d'émission de facture** contenue dans votre fichier (valeur la plus récente de la colonne `date`) — et non la date du jour. Une date postérieure à vos dernières factures crée une période sans facturation aux yeux de Fincome, et donc du **churn fictif**. Si vous importez vos abonnements futurs (`future_sub`) dans un fichier distinct, la date reste celle de la dernière facture réellement émise.

**Puis-je ajouter des colonnes supplémentaires ? Que deviennent-elles ?**
Oui. Toute colonne supplémentaire est conservée et rattachée au profil du client, où elle devient un axe analytique personnalisé (voir la section « Axes d'analyse personnalisés »).

**Les lignes « one_off » sont-elles prises en compte dans le MRR/ARR ?**
Non. Seules les lignes `type = "subscription"` contribuent au MRR/ARR. Les `one_off` représentent des revenus ponctuels.

**Comment modéliser un abonnement annuel ou trimestriel ?**
Renseignez la période réelle de service : `period_start = 01/01/2026` et `period_end = 31/12/2026` pour un abonnement annuel, par exemple. Fincome s'appuie sur ces dates pour calculer les mouvements MRR/ARR et la reconnaissance du revenu.

**Comment gérer une montée en gamme (« upsell ») ou une réduction (« downsell ») ?**
Créez plusieurs lignes non chevauchantes pour le même `customer_id` : `01/01 → 15/03` pour l'ancien plan, puis `16/03 → 31/12` pour le nouveau. Fincome détecte automatiquement les variations (upsell/downsell).

**Comment représenter une période d'essai (trial) ?**
Utilisez `type = "subscription"`, `subscription_status = "trialing"` et indiquez une période d'essai. Si l'essai est non facturé : `amount_excluding_tax_after_discount = 0`. Les essais gratuits peuvent être ignorés si vous ne souhaitez pas les tracer.

**Comment gérer les avoirs / notes de crédit ?**
Deux solutions : ajouter une ligne d'ajustement avec un montant négatif, associée au `invoice_id` d'origine ; ou créer une ligne credit note dédiée selon les consignes du modèle.

**Quelles valeurs de statut utiliser ?**
Facture (`invoice_status`) : `open`, `paid`, `unpaid`. Abonnement (`subscription_status`) : `trialing`, `active`, `paused`, `canceled`, `unpaid`. Toute autre valeur sera rejetée.

**Quelles sont les bonnes pratiques pour les dates ?**
Utilisez des dates Excel (JJ/MM/AAAA), pas du texte. `period_end` doit toujours être postérieur à `period_start`. Pour les `one_off`, vous pouvez omettre les dates ou utiliser la date de facture.

**Comment gérer les montants HT, remises et TVA ?**
`amount_excluding_tax_after_discount` correspond au montant HT net de remise. Les taxes sont gérées séparément, et la revenue recognition s'occupe de leur ventilation comptable.

**Notre facturation est multi-devises : comment procéder ?**
Renseignez la colonne `currency` (code ISO : EUR, USD, GBP…). Fincome gère la consolidation multi-devises et l'impact FX.

**Que faire si un client ou une facture apparaissent sur plusieurs lignes ?**
C'est attendu, mais les champs du même objet (ex. `status`, `currency`) doivent être identiques. Tout écart sera signalé comme incohérence.

**Que faire pour un import volumineux ?**
Découpez en lots (par période ou entité) et commencez par un échantillon test de 5 à 10 k lignes.

**Comment éviter les erreurs de séparateur décimal ?**
Formatez vos montants en Nombre, pas en texte. Évitez les séparateurs de milliers, et vérifiez que la virgule/point correspond à votre format régional.

## Ensuite

[Importer mon fichier](https://help.fincome.co/fr/article/importer-mon-fichier-180lxcx/)