# Mapping d'intégration Pennylane

### Connexion à Pennylane

[Suivez ce guide](https://help.fincome.co/guide/sources/connecter-mon-compte-pennylane) pour établir la connexion à l'API Pennylane.

### Données synchronisées

| **Entité**                  | **Champs clés synchronisés**                                                                                                 |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Clients                     | id, nom, email, pays, code\_postal, référence\_client                                                                        |
| Produits (Products)         | id, nom                                                                                                                      |
| Prix (Prices)               | id, montant\_HT, devise (lié\_au\_produit)                                                                                   |
| Abonnements (Subscriptions) | id, client lié, statut, dates de début et de fin, montant\_mensuel                                                           |
| Factures (Invoices)         | <p>id, statut, date, numéro, client<br>• Lignes : produit\_lié, montant\_HT, TVA, devise, quantité, période, description</p> |
| Avoirs (Crédit Notes)       | Extraits des credit\_notes rattachés à une facture                                                                           |

***

### Fonctionnement détaillé de l'intégration

* Mapping structuré : toutes les entités sont mappées champ par champ à partir de la structure Pennylane
* Détection des abonnements : basée sur les modèles de facturation (invoice\_template.line\_items)
* Montants HT et taxes : analysés ligne par ligne, avec conversion en devise de base
* Avoirs intégrés : via les credit\_notes de facture, avec montant inversé
* Périodes de service : extraites automatiquement (period\_start, period\_end)

***

### À savoir

* Factures en brouillon (is\_draft) : non synchronisées
* Remises : non remontées actuellement (champ forcé à 0)
* Synchronisation quotidienne : toutes les nuits automatiquement
* Suppression de données dans Pennylane : non propagée dans Fincome
* Références personnalisées : supportées via le champ reference des clients
* Synchronisation incrémentale non supportée: les données doivent être extraites en intégralité

***

### Vue d'ensemble de l'intégration

| Élément                          | Détail                                                 |
| -------------------------------- | ------------------------------------------------------ |
| Méthode d’intégration            | OAuth 2.0 ou clé API Pennylane                         |
| Entités prises en charge         | Clients, Produits, Prix, Abonnements, Factures, Avoirs |
| Fréquence de synchronisation     | Quotidienne (nuit)                                     |
| Portée de l’import initial       | Données disponibles via API                            |
| Méthode de synchronisation       | API REST avec pagination                               |
| Suppression de données Pennylane | Non supportée                                          |

***

### Paramètres de données

| Comportement / Réglage    | Fonctionnement dans Fincome                                         |
| ------------------------- | ------------------------------------------------------------------- |
| Pays / Code postal client | Détection via plusieurs champs prioritaires (country\_alpha2, etc.) |
| Abonnements               | À partir des modèles de facturation (template)                      |
| Montants HT / taxes       | Champs currency\_price\_before\_tax, currency\_tax                  |
| Avoirs                    | Lignes inversées, avec structure identique aux factures             |
| Remises                   | Non disponibles (remontées à 0)                                     |
| Conversion de devise      | Basée sur currency et date                                          |
| Périodes de facturation   | period\_start, period\_end extraits par Fincome                     |

***

### Mapping technique (Pennylane → Fincome)

#### Clients

| Champ Pennylane                                                                      | Champ Fincome                 |
| ------------------------------------------------------------------------------------ | ----------------------------- |
| source\_id                                                                           | original\_id                  |
| name                                                                                 | name                          |
| email                                                                                | email                         |
| country\_alpha2, billing\_address.country\_alpha2, delivery\_address.country\_alpha2 | country                       |
| postal\_code, billing\_address.postal\_code, delivery\_address.postal\_code          | zip\_code                     |
| reference                                                                            | custom\_axis\_field.reference |

#### Produits & Prix

| Champ Pennylane    | Champ Fincome                 |
| ------------------ | ----------------------------- |
| source\_id         | original\_id (produit & prix) |
| label              | name (produit & prix)         |
| price\_before\_tax | amount                        |
| currency           | currency\_code                |

#### Abonnements

| Champ Pennylane                                        | Champ Fincome                 |
| ------------------------------------------------------ | ----------------------------- |
| invoice\_template.line\_items\[].product\_id           | price\_id                     |
| invoice\_template.currency                             | currency\_code                |
| invoice\_template.line\_items\[].subscription\_set\_id | subscription\_set\_id         |
| start                                                  | subscription\_start\_date     |
| stopped\_at                                            | canceled\_at                  |
| finish                                                 | effective\_cancellation\_date |
| activated\_at                                          | deal\_closed\_date            |

#### Factures & Lignes

| Champ Pennylane     | Champ Fincome          |
| ------------------- | ---------------------- |
| id                  | original\_id (facture) |
| date                | date                   |
| invoice\_number     | invoice\_number        |
| status              | status                 |
| customer.source\_id | customer\_id           |

#### Lignes de facture

| Champ Pennylane              | Champ Fincome                           |
| ---------------------------- | --------------------------------------- |
| id                           | original\_id (ligne)                    |
| product\_id                  | price\_id                               |
| currency\_price\_before\_tax | amount\_excluding\_tax\_after\_discount |
| currency\_tax                | tax\_amount                             |
| label                        | description                             |
| quantity                     | quantity                                |
| currency                     | currency\_code                          |
| Périodes                     | period\_start, period\_end              |

#### Avoirs

| Champ Pennylane              | Champ Fincome                 |
| ---------------------------- | ----------------------------- |
| credit\_notes\[].id          | original\_id                  |
| currency\_price\_before\_tax | amount (inversé)              |
| currency\_tax                | tax\_amount (inversé)         |
| currency                     | currency\_code                |
| Montant remisé               | discount\_amount = 0 (forcé)  |
| Avoir rattaché à facture     | credit\_note\_id, invoice\_id |

***

### Prochaines étapes

* Consultez vos KPIs dans les vues MRR, Churn, et Cohortes
* Ajoutez d’autres sources de facturation (Stripe, Chargebee, etc.)
* Enrichissez vos données clients (segmentation, taille d’entreprise...)
* Planifiez une session avec votre Customer Success pour aller plus loin
