Mapping d'intégration Netsuite
Connexion à NetSuite
Suivez ces étapes pour connecter Fincome à NetSuite :
- Assurez-vous que votre compte NetSuite est activé pour les Web Services REST et dispose du rôle/permissions approprié.
- Obtenez les informations d'identification suivantes depuis votre compte NetSuite ou votre enregistrement d'intégration :
- Account ID (remplacez
_par-dans les URLs) - Client ID
Remarque : Le connecteur implémente actuellement un flux Machine-to-Machine (client_credentials / JWT). Les flux OAuth interactifs sont présents dans le code mais non encore implémentés. OAuth sera la méthode principale pour les WebServices NetSuite.
Données synchronisées
Objet NetSuite | Champs clés synchronisés |
|---|---|
Clients | id, entityId (nom), email |
Factures (transaction + lignes + devise) | invoice_id, invoice_number, customer_id, date, status, invoice_line_item_id, description, netamount, foreignamount, currency_code, period_start, period_end |
Devise | symbol → currency_code |
Comportement détaillé de l'intégration
- Extraction SuiteQL
Le connecteur compose des requêtes SuiteQL combinant les objets transaction, transactionLine et currency. Les champs sélectionnés sont codés en dur pour l’instant, mais pourraient devenir configurables à l’avenir.
- Extraction incrémentale
L’intégration NetSuite supporte l’extraction incrémentale via le champ last_modified_date.
- Authentification & rafraîchissement du token
- Les tokens d’accès expirent après une heure et sont automatiquement rafraîchis.
- Classification des types de ligne
- Le connecteur NetSuite détermine si une ligne est
subscriptionouone_offselon le champ personnalisécustcol_iw_item_revenue_categoryet la validité des dates de période. - Gestion des devises
- Le connecteur récupère
currency.symbolen tant quecurrency_code. - Si
netamountetforeignamountexistent tous deux, ce dernier peut être utilisé pour calculer les montants en devise d’origine ou devise de base selon les besoins.
Points à savoir
- Champs personnalisés utilisés
Le connecteur utilise des champs personnalisés NetSuite (ex. custcol_iw_rr_start_date, custcol_iw_rr_end_date, custcol_iw_item_revenue_category). Si votre compte NetSuite utilise d’autres IDs, mettez à jour fields_per_object, where_conditions et la logique de mapping en conséquence.
- Format des dates
Le connecteur attend JJ/MM/AAAA. Adaptez l’OperationMap Date si NetSuite renvoie un format différent.
- Pagination et offsets
SuiteQL supporte limit et offset. Les synchronisations historiques volumineuses peuvent prendre du temps ; le connecteur met à jour le curseur et reprend automatiquement.
- Portée & permissions
L’intégration nécessite le scope rest_webservices et un compte/role avec accès lecture sur transaction, transactionLine, currency et les données clients.
Vue d'ensemble de l'intégration
Élément | Détail |
|---|---|
Méthode d’intégration | JWT client-assertion → OAuth2 token (Machine-to-Machine) |
Objets pris en charge | customer, transaction (invoice), transactionLine, currency |
Fréquence de synchronisation | Incrémentale via curseur + rafraîchissement du token à la demande |
Import initial | Historique complet via SuiteQL avec pagination par offset |
Méthode de synchronisation | Requêtes SuiteQL via NetSuite REST |
Suppressions | Non propagées (soft-deletes à gérer séparément) |
Paramètres & comportements des données
Paramètre | Comportement |
|---|---|
Format de date | |
Mapping statuts facture | |
Classification ligne facture | |
Inversion des montants | |
Filtre | Factures avec |
Mapping technique (NetSuite → Fincome)
Clients
NetSuite | Fincome |
|---|---|
id | original_id |
entityId | name |
Factures & Lignes
NetSuite | Fincome |
|---|---|
t.id | original_id (facture) |
t.number | invoice_number |
t.entity | customer_id |
t.tranDate | date |
t.status | status (via |
original_id (ligne facture) | |
tl.item | produit / référence |
tl.netamount | amount_excluding_tax_after_discount (inversé actuellement) |
tl.foreignamount | montant étranger optionnel |
tl.memo | description |
tl.custcol_iw_rr_start_date | period_start |
tl.custcol_iw_rr_end_date | period_end |
cur.symbol | currency_code |
Avoirs
NetSuite | Fincome |
|---|---|
transaction avec recordtype = credit note | original_id (avoir) |
facture liée | invoice_id |
id ligne | original_id (ligne avoir) |
netamount | amount (négatif) |
foreignamount | montant étranger optionnel |
memo | description |
start/end dates | period_start / period_end |
currency.symbol | currency_code |
Mis à jour le : 04/06/2026
Merci !
