Facture numérique pour TakePOS

Facture électronique TakePOS

Résumé : Permet à l’acheteur d’une vente TakePOS de demander sa facture électronique au moyen d’un QR code sur son reçu.
Version du module : 1.0.0
Compatibilité déclarée : Dolibarr 23.0 ou supérieur, PHP 7.2 ou supérieur
Dernière vérification documentaire : 2026-09-29

Vidéo de démonstration :

Site de démonstration : Ouvrir le site de démonstration

Site de l’éditeur : 01Consulting

Ce guide couvre l’installation, les réglages, le QR code des reçus, le parcours client, le suivi des demandes, l’intégration EInvoicing, les permissions et le diagnostic.

1. Rôle du module et périmètre

Les ventes TakePOS sont souvent enregistrées avec le tiers générique associé au terminal. Ce module donne à l’acheteur d’une vente payée un parcours pour fournir les coordonnées de son entreprise, confirmer son adresse e-mail et demander la facture électronique correspondant à cette vente.

Le traitement identifie ou crée un tiers client, rattache la facture TakePOS à ce tiers, prépare la facture avec EInvoicing, la transmet au prestataire configuré dans EInvoicing, puis envoie au demandeur le PDF lisible officiel récupéré auprès de ce prestataire.

Le parcours public est destiné aux entreprises françaises disposant d’un SIRET actif à 14 chiffres. Il ne sert pas à créer une nouvelle facture commerciale : il agit sur la facture TakePOS déjà payée. Les particuliers et les entreprises étrangères ne sont pas pris en charge.

2. Fonctionnement d’ensemble

  1. À la validation d’une facture TakePOS, le module crée un identifiant aléatoire de 64 caractères et le conserve dans l’extrafield de facture hash.
  2. Le reçu imprime ou affiche un QR code qui ouvre le formulaire public de cette facture.
  3. L’acheteur fournit les coordonnées de l’entreprise et son SIRET ; le module contrôle les champs, le domaine e-mail et les données disponibles dans le registre officiel.
  4. Le module envoie un lien de confirmation à l’adresse fournie. La demande n’est pas traitée avant l’ouverture de ce lien.
  5. Après confirmation, le module réutilise le tiers correspondant ou crée un tiers, puis rattache la facture payée au tiers identifié.
  6. EInvoicing génère le document électronique selon le protocole configuré et le transmet à la plateforme agréée.
  7. Le module récupère la vue PDF lisible officielle de la plateforme et l’envoie par e-mail au demandeur.

Une erreur à une étape est enregistrée sur la demande. Un utilisateur autorisé peut relancer le traitement ; si la facture a déjà été transmise, le même flux est repris pour récupérer le PDF et la facture n’est pas envoyée une seconde fois.

3. Prérequis et compatibilité

  • Dolibarr : le descripteur déclare Dolibarr 23.0 ou supérieur ; le module a été préparé pour Dolibarr 23.0.3.
  • PHP : version 7.2 minimum déclarée par le module.
  • Modules Dolibarr : Factures, TakePOS et EInvoicing doivent être activés.
  • EInvoicing : le module doit être configuré avec une plateforme agréée, ses prérequis satisfaits et un protocole CII ou Factur-X.
  • E-mails : l’envoi des e-mails depuis Dolibarr doit être correctement configuré.
  • Serveur : il doit pouvoir joindre l’API Recherche d’entreprises, le service DNS et, si cette option est activée, l’API Verifalia en HTTPS.
  • Accès client : l’adresse publique de Dolibarr doit être joignable depuis le téléphone qui scanne le reçu.
  • Terminal TakePOS : chaque point de vente concerné doit disposer d’un tiers générique par défaut, utilisé pour déterminer si l’acheteur est encore anonyme.

4. Installation, activation et mise à jour

4.1. Installer et activer

  1. Copier le dossier takeposdigitalinvoice dans htdocs/custom.
  2. Dans Dolibarr, ouvrir Accueil > Configuration > Modules/Applications.
  3. Activer Facture électronique TakePOS. Vérifier auparavant que Factures, TakePOS et EInvoicing sont disponibles et activés.
  4. Ouvrir la configuration du module et renseigner les onglets Général et E-mails.
  5. Attribuer les permissions de lecture et de traitement aux utilisateurs concernés.
  6. Ajouter le tag du QR code au modèle de reçu navigateur et/ou au modèle ESC/POS utilisé par le terminal.
  7. Réaliser une vente de test et vérifier le QR code, le formulaire public, la confirmation par e-mail et le suivi de la demande.

L’activation charge la table des demandes, ajoute l’extrafield de facture hash (varchar de 64 caractères), déclare le menu de suivi, l’onglet de facture, les permissions et la tâche planifiée de rétention. Une migration intégrée traite aussi les anciennes colonnes de suivi CII et renseigne le format à partir des documents déjà générés lorsque cela est possible.

4.2. Mettre à jour

Sauvegarder la base de données et le répertoire de documents Dolibarr avant la mise à jour. Remplacer les fichiers du module par la nouvelle version, puis réactiver le module si sa déclaration de menu ou d’onglet a changé. L’activation exécute les migrations prévues par le descripteur. Contrôler la page de configuration, le menu de demandes et l’onglet d’une facture TakePOS après la mise à jour.

4.3. Désactiver ou désinstaller

La procédure et les effets de suppression des tables, de l’extrafield et des documents dépendent de l’opération choisie dans Dolibarr. Sauvegarder les données avant toute désinstallation et vérifier les conséquences affichées par Dolibarr. La désactivation empêche le fonctionnement du parcours tant que le module reste inactif.

5. Permissions, menus et écrans

Droit ou écranFonction
Consulter les demandesOuvre le menu de liste et l’onglet de suivi sur une facture TakePOS. Le droit Dolibarr de consulter la facture reste requis.
Traiter les demandesAutorise les actions Réessayer et Annuler dans la liste et l’onglet de facture.
Administrer les demandesDroit déclaré dans le descripteur du module. Les pages de configuration vérifient également le statut d’administrateur Dolibarr.
ConfigurationAccessible aux administrateurs Dolibarr depuis la fiche de configuration du module ; comprend les onglets Général, E-mails et À propos.

Le menu Facturation/Paiement > Facture électronique TakePOS est affiché aux utilisateurs ayant le droit de lecture. L’onglet de facture n’apparaît que pour les factures dont la source est TakePOS et si l’utilisateur possède ce même droit.

6. Configuration générale

Ouvrir la fiche du module, puis l’onglet Général. Les valeurs par défaut suivantes sont définies dans le code de la page de configuration ; Dolibarr peut conserver une valeur déjà enregistrée pour l’entité.

RéglageDéfautEffet
Durée du lien public30 joursDurée à partir de la validation de la facture ; au minimum un jour.
Nombre maximal de tentatives5Limite les soumissions pour une même facture et une même adresse IP hachée.
Fenêtre de limitation15 minutesFenêtre de temps appliquée au compteur de tentatives.
Conservation des demandes terminées365 joursAprès ce délai, la tâche de rétention peut supprimer les demandes terminées.
Conservation des erreurs90 joursAprès ce délai, la tâche peut supprimer les demandes en erreur.
URL de politique de confidentialitéVideLien facultatif affiché sous le formulaire public lorsqu’il est renseigné.
Message du QR code« Scannez ce QR code pour demander votre facture électronique. »Texte imprimé ou affiché avec le QR code ; un message vide revient au texte traduit.
URL du formulaire publicCalculéeValeur en lecture seule à vérifier depuis l’extérieur du serveur.

7. Configuration des e-mails et du PDF

Dans l’onglet E-mails, régler les éléments suivants :

RéglageValeur initialeDescription
Durée du jeton de confirmation24 heuresLe lien est à usage unique et expire à la date enregistrée.
Délai de renvoi2 minutesDélai minimal avant une nouvelle demande d’e-mail pour cette facture.
Nom de l’expéditeurVideNom facultatif ajouté à l’adresse d’expédition générale de Dolibarr.
Vérification VerifaliaDésactivéeContrôle externe facultatif de la délivrabilité ; requiert identifiant et mot de passe API.
Délai maximal Verifalia20 secondesValeur admise : 5 à 30 secondes par appel.
Tentatives de récupération du PDF4Valeur admise : 1 à 6 consultations du même flux.
Attente entre les tentatives2 secondesValeur admise : 1 à 5 secondes ; aucune nouvelle transmission n’est effectuée.

L’adresse d’expédition est MAIN_MAIL_EMAIL_FROM, définie dans la configuration générale des e-mails de Dolibarr. Le nom d’expéditeur du module est utilisé pour l’e-mail de confirmation et celui contenant le PDF. Si Verifalia est activé sans identifiants, ou si son service refuse la requête, la demande est bloquée avec un message adapté.

8. Ajouter le QR code aux reçus

8.1. Reçu navigateur

  1. Ouvrir la configuration du module TakePOS, puis le modèle du reçu navigateur concerné.
  2. Insérer une fois le tag __DOL_FAC_NUM__ à l’emplacement souhaité.
  3. Enregistrer le modèle et imprimer le reçu d’une nouvelle facture TakePOS validée.

Dans le reçu navigateur, la substitution affiche une image QR produite par le moteur TCPDF de Dolibarr, avec le message configuré. Le module charge les extrafields de la facture avant la substitution.

8.2. Imprimante ESC/POS

  1. Dans la configuration de l’imprimante RAW/Texte, ouvrir le modèle de reçu.
  2. Ajouter une seule fois {dol_fac_num}.
  3. Sélectionner ce modèle pour le terminal, puis effectuer une impression de contrôle.

Le module documente le tag dans l’aide de configuration des modèles ESC/POS et le remplace par l’instruction QR native {dol_print_qrcode}, suivie de l’URL publique. Les variantes {DOL_FAC_NUM} et {__DOL_FAC_NUM__} sont aussi reconnues par le remplacement ESC/POS. Le message QR est envoyé comme texte ESC/POS après le code.

Les substitutions __DOL_FAC_NUM_URL__, dol_fac_num et __dol_fac_num__ sont également préparées par le module. Si aucun hash valide n’est disponible, les substitutions sont vides ; au moment de l’impression ESC/POS, le module tente de créer le hash. S’il échoue, il retire le tag de l’impression et écrit une erreur dans le journal Dolibarr.

Ne pas ajouter le tag dans deux emplacements du même modèle. Après l’activation du module, vérifier une facture nouvellement validée : le hash est créé lors du déclencheur de validation de facture TakePOS. Les anciens reçus ne sont pas réimprimés automatiquement.

9. Formulaire public et données demandées

Le formulaire reçoit le hash de la facture dans son URL. Il n’est accepté que si le hash correspond à une facture dont la source est TakePOS, si le lien n’a pas expiré, si la facture est payée/clôturée et si elle est toujours rattachée au tiers générique du terminal.

Le résumé public affiche le nom du vendeur, la date de vente, le total TTC, le terminal et une référence de facture masquée sauf ses quatre derniers caractères. Il ne montre pas les lignes de vente, les informations de paiement, l’identité du tiers ni la référence complète.

Le formulaire demande :

  • raison sociale ;
  • adresse et complément d’adresse facultatif ;
  • code postal et ville ;
  • SIRET à 14 chiffres ;
  • adresse e-mail.

Le pays est fixé à la France dans le traitement du tiers ; il n’est pas proposé comme choix dans le formulaire. L’URL de politique de confidentialité est affichée uniquement si elle est configurée.

10. Contrôles d’entreprise et de l’adresse e-mail

10.1. Contrôle du SIRET

Le module interroge l’API publique Recherche d’entreprises à l’adresse https://recherche-entreprises.api.gouv.fr/search?q=, avec le SIRET fourni. Il exige 14 chiffres, trouve l’établissement correspondant et vérifie que son état administratif est actif. Il compare aussi la raison sociale à la donnée officielle après normalisation des accents, casse et séparateurs, puis compare le code postal et la ville (casse et accents normalisés pour la ville).

Limite du contrôle actuel : l’adresse de voie saisie est enregistrée et peut servir à créer le tiers, mais le code ne la compare pas aux champs d’adresse retournés par l’API. La validation de cohérence couvre le nom, le code postal et la ville, pas la rue. Un SIRET absent, fermé, invalide ou une divergence sur ces champs bloque la soumission. Les erreurs réseau, DNS, TLS, délai dépassé, réponse illisible et limitation du service donnent des messages distincts ou génériques et ne créent pas de tiers.

10.2. Contrôle de l’adresse e-mail

Le module vérifie le format de l’adresse, puis vérifie par DNS que le domaine possède un enregistrement MX. Si Verifalia est activé, son API est également appelée : les adresses classées non délivrables ou jetables sont refusées ; les résultats classés délivrables, risqués ou inconnus sont acceptés par ce contrôle. Une panne ou une erreur d’identification/crédit Verifalia bloque la soumission lorsque l’option est activée.

La confirmation par e-mail reste requise même quand Verifalia est désactivé ou renvoie un résultat accepté. Le jeton aléatoire envoyé au client est stocké sous forme hachée en base, expire selon la durée configurée et ne peut être utilisé qu’une fois. Le renvoi est soumis au délai minimal configuré.

11. Confirmation et traitement de la facture

  1. À la soumission valide, la demande est enregistrée dans la table de suivi en état En attente de confirmation. Le lien de confirmation est envoyé à l’adresse saisie.
  2. Le client ouvre le lien reçu avant son expiration. Le jeton est consommé et l’état de la demande passe à Prête.
  3. Le traitement recharge la facture et confirme qu’elle provient de TakePOS et qu’elle est payée/clôturée. Un verrou atomique évite le traitement concurrent d’une même demande.
  4. Le module recherche un tiers par SIRET, puis par SIREN (les neuf premiers chiffres), avec priorité à la correspondance exacte de SIRET. S’il n’existe pas, il crée un tiers client français et laisse Dolibarr attribuer le code client.
  5. La facture TakePOS est rattachée à ce tiers. Tant qu’elle est encore liée au tiers par défaut du terminal, la préparation et l’envoi EInvoicing sont refusés.
  6. Le module vérifie qu’EInvoicing est actif, que ses prérequis sont satisfaits et que le protocole configuré est CII ou Factur-X. Il marque uniquement cette facture comme prête à la génération EInvoicing.
  7. EInvoicing génère le document correspondant au protocole. Pour Factur-X, le PDF Dolibarr source est généré avant de demander le document Factur-X hybride. Pour CII, le protocole produit le fichier XML.
  8. Le fournisseur configuré dans EInvoicing transmet la facture à la plateforme agréée. Le module mémorise les étapes de génération, de transmission et le format.
  9. Le module interroge le flux de la plateforme pour récupérer sa ressource ReadableView, qui doit être un PDF lisible. Il effectue le nombre de tentatives configuré lorsque la vue n’est pas encore prête.
  10. Le PDF lisible officiel est enregistré dans le dossier documentaire de la facture et envoyé en pièce jointe au client.
  11. Après l’envoi réussi de l’e-mail, la demande passe à l’état Terminée.

Pour le protocole CII, le fichier XML sert à la transmission ; le client reçoit le PDF lisible officiel de la plateforme. Pour Factur-X, le document hybride est généré et transmis, tandis que la pièce jointe client reste la vue lisible PDF récupérée auprès de la plateforme. Le PDF standard Dolibarr n’est pas le document envoyé au client par ce module.

12. États d’une demande

ÉtatSignificationAction suivante
En attente de confirmationLa demande est enregistrée, mais l’adresse e-mail n’a pas encore été confirmée.Le client doit ouvrir le lien reçu avant expiration.
PrêteL’e-mail est confirmé et le traitement peut démarrer.Traitement automatique ou action Réessayer.
En coursLa demande a été réservée pour un traitement.Attendre la fin du traitement et consulter l’état détaillé.
ErreurUne étape a échoué ; le code d’erreur et l’étape sont conservés.Corriger la cause et utiliser Réessayer si l’e-mail a été confirmé.
TerminéeLa transmission et l’envoi du PDF ont réussi.Le lien public indique que la demande a déjà été traitée.
AnnuléeLa demande ne peut plus utiliser son lien public.Aucune relance standard n’est proposée.

La table conserve également des indicateurs distincts pour la confirmation de l’e-mail, la validation SIRET, le rattachement du tiers, la génération EInvoicing, l’envoi à la plateforme, l’envoi du PDF, le protocole utilisé, l’étape de l’erreur et les dates de création, modification, fin ou annulation.

13. Suivre et gérer les demandes

13.1. Liste générale

Ouvrir Facturation/Paiement > Facture électronique TakePOS. La liste présente la facture, le tiers lorsqu’il est connu, le SIRET, l’adresse e-mail, l’état, le dernier code d’erreur et la date de création. Les colonnes autorisent le tri et la liste est paginée. Les filtres portent sur la référence de facture, le tiers, le SIRET, l’e-mail et l’état. Les références de facture et de tiers ouvrent leurs fiches Dolibarr.

13.2. Onglet de la facture

Sur la fiche d’une facture TakePOS, ouvrir l’onglet Facture électronique TakePOS. Il affiche l’état, les dates de création et de modification, la confirmation e-mail, l’e-mail du demandeur, le SIRET, le protocole, les états de génération/transmission/envoi du PDF et, en cas d’échec, l’étape ainsi que le message d’erreur. Le bouton de téléchargement est disponible si un PDF lisible est présent.

13.3. Réessayer

L’action est proposée pour une demande dont l’e-mail est confirmé et dont l’état est Prête ou Erreur. Le service reprend le traitement et réutilise les indicateurs et le flux de plateforme déjà enregistrés. Si la transmission a déjà réussi, la relance n’envoie pas une deuxième facture ; elle cherche à récupérer la vue PDF et à terminer l’envoi au client.

13.4. Annuler

L’action Annuler demande une confirmation, invalide le lien public et marque la demande comme annulée, tant qu’elle n’est ni terminée ni déjà annulée. Elle est également appelée automatiquement par le déclencheur de facture TakePOS lors de l’annulation de la facture. La demande et son état restent consultables jusqu’à leur éventuelle purge.

14. Configuration EInvoicing et conditions d’envoi

TakePOS Digital Invoice ne remplace pas EInvoicing et ne configure pas la plateforme agréée. Le module externe doit être activé et configuré séparément : choix de la plateforme, identifiants et protocole. Le parcours de cette version accepte uniquement les valeurs de protocole CII et FACTURX.

Le client TakePOS anonyme ne peut pas recevoir une facture électronique tant que la facture demeure liée au tiers générique du terminal. Le module vérifie explicitement ce point, y compris dans le hook qui intercepte les actions directes de génération ou d’envoi EInvoicing sur une facture TakePOS. L’identification du client ne rend éligible que la facture concernée ; elle ne change pas le réglage global d’éligibilité des factures TakePOS.

Si le protocole EInvoicing est changé après une transmission, le module bloque le changement de format pour cette demande et demande de rétablir le format associé au flux déjà déposé afin d’éviter une nouvelle transmission incohérente.

15. Données enregistrées, fichiers et confidentialité

  • Extrafield facture : hash, identifiant public aléatoire de 64 caractères. Ne pas le publier séparément ni le modifier manuellement.
  • Table des demandes : entité, facture, tiers éventuel, SIRET, raison sociale, adresse, code postal, ville, e-mail, empreinte de l’adresse IP, empreinte et expiration du jeton, compteurs, états, erreurs et horodatages.
  • Documents : le fichier électronique EInvoicing et le PDF lisible de la plateforme sont enregistrés parmi les documents de la facture, sous le répertoire documentaire de celle-ci.
  • Résumé public : données réduites à l’identification de la vente ; les lignes de facture, les paiements et l’identité du tiers ne sont pas exposés avant identification.
  • Journaux : le journal dédié est DOL_DATA_ROOT/takeposdigitalinvoice/module.log. Des détails d’erreur peuvent aussi se trouver dans les journaux Dolibarr. Ne pas publier ces journaux sans les relire et masquer toute donnée sensible.

La tâche de rétention est déclarée avec une fréquence quotidienne. Elle purge les demandes terminées selon leur date de fin et les demandes en erreur selon leur date de modification. Elle ne purge pas dans cette méthode les demandes en attente, prêtes, en cours ou annulées. Les fichiers de facture ne sont pas supprimés par cette tâche de purge des demandes.

16. Déclencheurs, hooks et substitutions

  • BILL_VALIDATE : pour une facture issue de TakePOS et validée, le trigger s’assure que le hash public existe et le crée s’il manque.
  • BILL_CANCEL : pour une facture TakePOS annulée, le trigger annule sa demande non terminée.
  • Reçu navigateur : le hook charge les extrafields de la facture avant le traitement des substitutions TakePOS.
  • Modèles ESC/POS : le hook ajoute la description du tag QR à l’aide des modèles et substitue le tag dans le texte envoyé à l’imprimante.
  • Actions EInvoicing : un hook refuse la génération ou l’envoi direct sur une facture TakePOS restée rattachée au tiers par défaut.
  • Substitutions : le module renseigne __DOL_FAC_NUM__, __DOL_FAC_NUM_URL__, dol_fac_num et __dol_fac_num__ pour une facture TakePOS avec hash valide.
  • Tâche planifiée : purge périodiquement les demandes terminées ou en erreur au-delà de leurs durées de conservation.

17. Dépannage

Le QR code n’apparaît pas sur le reçu navigateur

Vérifier que le module est activé, que la facture provient de TakePOS, que le modèle contient __DOL_FAC_NUM__ et que la facture a été validée après activation. Vérifier aussi que le tag n’est pas placé deux fois. Le tag navigateur dépend du hash chargé dans les extrafields.

Le QR code ne sort pas sur l’imprimante ESC/POS

Vérifier le modèle RAW/Texte actif, l’orthographe du tag reconnu et que le modèle n’envoie pas déjà un autre tag équivalent. Si le hash n’a pas pu être enregistré, consulter le journal Dolibarr et les permissions d’écriture/base de données.

Le lien public est refusé

Le hash doit être valide, la facture doit provenir de TakePOS, être clôturée/payée et rester liée au tiers générique du terminal. Le lien expire selon la durée depuis la validation. Une demande terminée affiche qu’elle a déjà été traitée ; une demande annulée ne peut plus être utilisée.

La vérification SIRET échoue

Vérifier les 14 chiffres, l’activité de l’établissement, la raison sociale, le code postal et la ville saisis. Une divergence sur ces valeurs ou une indisponibilité de l’API bloque la demande. Le contrôle ne compare pas actuellement la rue saisie aux données de l’API.

Aucun e-mail de confirmation n’arrive

Vérifier l’adresse, le domaine et son enregistrement MX, la configuration générale d’envoi Dolibarr et le dossier de courrier indésirable. Si Verifalia est actif, contrôler les identifiants, le délai configuré et les réponses d’authentification ou de crédit du service.

La confirmation est faite mais le traitement échoue

Consulter la dernière erreur et l’étape concernée dans la liste ou l’onglet de facture. Vérifier le rattachement du tiers, l’activation et la configuration d’EInvoicing, le protocole CII/Factur-X et l’accès aux documents Dolibarr, puis utiliser Réessayer lorsque le droit de traitement est attribué.

La transmission est faite mais le PDF n’est pas encore disponible

La plateforme peut générer sa vue lisible de manière asynchrone. Réessayer plus tard : le module interroge le flux existant et ne transmet pas à nouveau la facture.

Le bouton de téléchargement est indisponible

Le bouton devient actif quand le PDF lisible enregistré est disponible, ou lorsqu’un fichier PDF EInvoicing accessible peut être utilisé comme solution de repli par l’onglet de facture.

18. Limites et précautions d’exploitation

  • Le parcours public actuel est réservé aux entreprises françaises avec SIRET actif ; il ne gère pas les particuliers ou sociétés étrangères.
  • La cohérence de l’établissement contrôle le nom, le code postal et la ville ; l’adresse de rue n’est pas comparée aux données officielles par le code actuel.
  • Une demande par facture est conservée dans le module. Ne pas créer des demandes concurrentes pour une même facture.
  • Ne pas supprimer ni modifier manuellement le hash, les jetons ou les indicateurs de traitement dans la base.
  • Ne pas changer le protocole EInvoicing au milieu d’une demande déjà transmise sans rétablir le format de son flux.
  • Ne pas modifier le tiers de la facture pendant son traitement.
  • La purge supprime l’historique des demandes terminées ou en erreur après les durées réglées ; conserver les informations nécessaires au suivi avant ces échéances.

19. Assistance

Pour obtenir de l’aide ou signaler un problème, contacter contact@01consulting.eu. Indiquer la version du module et de Dolibarr, le type de reçu, l’étape du parcours, l’état de la demande, le code d’erreur et l’heure approximative. Masquer le SIRET, l’adresse e-mail, les jetons, les identifiants de plateforme, les données de facture et toute autre information confidentielle avant de partager une capture ou un extrait de journal.