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,transactionLineetcurrency. 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 à jourfields_per_object,where_conditionset la logique de mapping en conséquence.Format des dates Le connecteur attend
JJ/MM/AAAA. Adaptez l’OperationMapDatesi NetSuite renvoie un format différent.Pagination et offsets SuiteQL supporte
limitetoffset. 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_webserviceset un compte/role avec accès lecture surtransaction,transactionLine,currencyet 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 query/v1/suiteql endpoint
Suppressions
Non propagées (soft-deletes à gérer séparément)
Paramètres & comportements des données
Paramètre
Comportement
Format de date
%d/%m/%Y via l’OperationMap Date
Mapping statuts facture
A → open, B → paid, D → pending, autres ignorés
Classification ligne facture
custcol_iw_item_revenue_category + dates de période
Inversion des montants
netamount actuellement inversé dans IliAmount
Filtre
Factures avec custcol_iw_item_revenue_category IS NOT NULL et netamount IS NOT NULL
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 InvoiceStatus)
tl.id
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