ERP, facturation et rapprochement bancaire
Envoyez les paiements et les devis acceptés vers votre ERP et rapprochez automatiquement vos transactions bancaires avec les paiements en attente, le tout en modèle BYO (l'ERP et la banque sont les vôtres).
Cette intégration est un connecteur générique, neutre et global pour vos opérations financières, avec deux capacités indépendantes : (1) envoyer des données vers votre ERP/système comptable lorsqu'un paiement est confirmé ou qu'un devis est accepté ; et (2) recevoir les transactions de votre banque (via l'Open Banking, un agrégateur financier comme Plaid, Tink ou TrueLayer, ou la banque elle-même) et les rapprocher automatiquement avec les paiements en attente. Cela fonctionne dans n'importe quel pays et devise, avec n'importe quel ERP (QuickBooks, Xero, NetSuite, SAP, entre autres) et n'importe quelle banque. Modèle BYO : les comptes et identifiants sont les vôtres ; il n'y a aucun coût de notre côté.
Les deux démarrent inertes : rien ne se passe tant que vous n'avez pas configuré et activé. Les secrets (clé API ERP et secret du webhook bancaire) sont stockés chiffrés et ne sont jamais réaffichés.
Prérequis
- ERP/Facturation : un point de terminaison HTTP dans votre ERP (QuickBooks, Xero, NetSuite, SAP ou un autre) capable de recevoir un POST JSON, et l'identifiant pour l'authentifier (clé API ou jeton).
- Rapprochement bancaire : un compte auprès d'une banque ou d'un agrégateur Open Banking (Plaid, Tink, TrueLayer ou la banque elle-même) pouvant envoyer des webhooks de transaction et les signer avec HMAC-SHA256.
- Dans Sellio, un accès administrateur pour enregistrer et activer les connecteurs dans Paramètres → Intégrations.
ERP / Facturation (envoi)
Lorsqu'un paiement est confirmé (par le webhook du fournisseur de paiement ou par le rapprochement bancaire), ou lorsque le devis lié est accepté, le CRM effectue un POST vers votre point de terminaison ERP avec une enveloppe JSON au format { event, data, source, sentAt }. Le event indique le fait (par exemple, payment.paid) et le data porte les champs (montant, devise, référence, identifiants de devis/opportunité).
- Ouvrez Paramètres → Intégrations et allez sur la fiche « ERP / Facturation ».
- Point de terminaison (URL) : collez l'adresse de votre ERP qui reçoit le POST (par exemple, https://erp.votreentreprise.com/api/webhooks/crm).
- En-tête d'authentification et Préfixe : indiquez comment s'authentifier (par exemple, Authorization avec le préfixe « Bearer », ou un en-tête personnalisé comme X-Api-Key sans préfixe).
- Clé API : collez votre clé ERP. Elle est stockée chiffrée.
- Enregistrez le connecteur, utilisez « Envoyer un test » pour valider puis cliquez sur Activer. L'envoi automatique ne se produit qu'avec le connecteur ACTIVÉ.
Rapprochement bancaire (réception)
Vous pointez le webhook de votre banque/Open Banking vers l'URL générée par le CRM. Pour chaque transaction reçue (un JSON avec montant, devise, référence/description et un identifiant externe), le CRM recherche un paiement EN ATTENTE correspondant et le marque comme payé.
- Sur la fiche « Rapprochement bancaire », saisissez le Secret du webhook (la clé utilisée pour signer les appels) et enregistrez.
- Générez l'URL du webhook et collez-la dans votre banque/Open Banking/agrégateur.
- Configurez le fournisseur pour signer le corps de chaque appel avec HMAC-SHA256 et envoyer la signature dans l'en-tête X-Signature (hexadécimal ou base64, avec ou sans le préfixe sha256=).
- Activez l'intégration.
Comment fonctionne la correspondance
Le CRM rapproche de manière prudente (c'est de l'argent, donc il ne devine jamais) et indépendamment du pays : (1) il filtre les paiements en attente par le montant exact et, lorsque la transaction indique la devise, par la même devise ; (2) si la transaction porte une référence/description, il privilégie le paiement dont l'identifiant (id, id externe, devis ou opportunité) apparaît dans cette référence ; (3) sans référence pour départager, il ne rapproche que s'il existe exactement un paiement en attente avec ce montant. Si plusieurs paiements ont le même montant et que rien ne les distingue, la transaction reste non rapprochée (pour un traitement manuel de votre part).
Comment tester
- ERP : le connecteur étant activé, cliquez sur « Envoyer un test » sur la fiche « ERP / Facturation » et confirmez dans votre ERP que le POST est arrivé (recherchez l'enregistrement/le journal du webhook reçu).
- Rapprochement bancaire : créez un paiement en attente avec un montant unique et déclenchez (ou simulez) une transaction dans votre banque/agrégateur avec le même montant et une référence citant le devis/l'opportunité. Vérifiez que le paiement est passé à « Payé ».
- Vérifiez l'historique/le journal de l'intégration pour voir les appels reçus et le résultat du rapprochement.
Dépannage
- « Envoyer un test » échoue avec 401/403 : la clé API ERP est incorrecte ou l'en-tête/préfixe d'authentification ne correspond pas. Recollez la clé et vérifiez le nom de l'en-tête (par exemple, Authorization « Bearer », ou X-Api-Key).
- 404 lors de l'envoi : le point de terminaison ERP est incorrect ou la route n'existe pas. Confirmez l'URL complète qui reçoit le POST.
- Signature invalide lors du rapprochement (webhook rejeté) : le secret du webhook dans le CRM diffère de celui que la banque utilise pour signer, ou la signature n'arrive pas dans l'en-tête X-Signature (HMAC-SHA256, hexadécimal ou base64). Alignez le même secret des deux côtés.
- La transaction ne se rapproche pas : il peut exister plus d'un paiement en attente avec le même montant et aucune référence pour départager, incluez donc l'id/le devis dans la description de la transaction, ou rapprochez manuellement. Confirmez aussi que la devise correspond.
- Rien ne se passe à l'envoi : l'envoi automatique ne se produit qu'avec le connecteur ACTIVÉ. Activez-le après l'enregistrement.