# 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.

{% hint style="info" %}
Retrouvez les templates sur Fincome > Réglages > Connecter un nouveau système de facturation :

* Excel  : vous trouverez un exemple et le template vide
* Gsheet : vous trouverez le template à completer avant d'integrer le lien
  {% endhint %}

## 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é), i.e. 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écessaires peuvent être ajoutées pour intégrer des données d’enrichissement (pas d’inquiétudes, ces données d’enrichissement peuvent être ajoutées dans un second temps).

{% hint style="warning" %}

* Une même facture peut comporter plusieurs lignes.
* Un même client peut apparaître plusieurs fois (sur différentes factures).
* Lorsque le même élément se répète (ex. une facture, client), les attributs le décrivant doivent rester rigoureusement identiques sur l’ensemble des lignes correspondantes.&#x20;

*Exemple : un même `invoice_id` doit toujours avoir le même `status`, la même `date` et la même `currency`.*, **mais les informations d’un même identifiant doivent rester parfaitement identiques** sur chaque ligne.
{% endhint %}

## 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)
  * Les périodes doivent **s’enchaîner** 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).&#x20;

#### `"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.

{% hint style="danger" %}
Respectez bien l'un de ses trois termes pour la colonne "Type" pour que le fichier soit exploitable.&#x20;
{% endhint %}

&#x20;

## 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 annulé(es) mais avec le montant négatif.&#x20;

2- Créez une **ligne dédiée** dans le fichier.

Renseignez :

* `invoice_id` avec l’identifiant de la facture que l'on vient annuler,
* 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 | Textperiod\_end | customer\_id |
| ------------ | ---------- | -------- | --------------------------------------- | ----------- | ------------- | --------------- | ------------ |
| INV-2025-002 | 01/02/2025 | one\_off | 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ées aux client exclusivement, 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. Checklist avant import

* &#x20;Fichier au format **.xlsx**
* &#x20;Toutes les **colonnes obligatoires** complétées selon le type de ligne
* &#x20;Identifiants (`customer_id`, `invoice_id`, `subscription_id`) **stables et cohérents**
* &#x20;Dates Excel valides et ordonnées (`period_start` < `period_end`)
* &#x20;Montants au format **numérique**, sans séparateurs de milliers
* &#x20;Valeurs de statut et de devise conformes au modèle Fincome

## 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.

***

**→ 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.
* 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` = **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–10k 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 :

{% content-ref url="importer-mon-fichier" %}
[importer-mon-fichier](https://help.fincome.co/guide/sources/importer-un-fichier-de-facturation/importer-mon-fichier)
{% endcontent-ref %}
