66 % du montant du don pour un organisme d’intérêt général classique, 75 % pour certains organismes d’aide aux personnes en difficulté : ce taux de réduction d’impôt doit figurer noir sur blanc sur le justificatif remis au donateur, faute de quoi le reçu ne peut pas servir de pièce justificative auprès de l’administration fiscale. Ce point, en apparence anecdotique, a occupé une bonne partie du cahier des charges d’un module de dons développé pour une association d’aide alimentaire reconnue d’intérêt général.
Le formulaire Cerfa 11580 (« Reçu au titre des dons à certains organismes d’intérêt général ») n’est pas un simple PDF récapitulatif : c’est un document normé, dont la structure et les mentions obligatoires sont fixées par l’administration. Le générer automatiquement après chaque don suppose de reproduire fidèlement cette structure, avec les bonnes données, au bon moment du parcours de paiement.
Ce que le Cerfa 11580 exige précisément
Le formulaire impose plusieurs mentions obligatoires : la dénomination et l’adresse de l’organisme bénéficiaire, son objet, la mention explicite du régime fiscal applicable, l’identité complète du donateur, le montant et la date du don, ainsi que la forme de celui-ci (numéraire, chèque, virement). Une case précise si le don ouvre droit à une réduction d’impôt sur le revenu ou sur l’IFI, ce qui n’est pas toujours identique selon la nature de l’organisme.
Pour l’association concernée, reconnue d’intérêt général au sens de l’article 200 du Code général des impôts, le taux applicable était de 66 %, avec un plafond de 20 % du revenu imposable — des informations à reproduire sur le document sans erreur, sous peine de fragiliser juridiquement le reçu émis.
Générer le PDF après confirmation du paiement
Le reçu ne doit jamais être produit à la simple soumission du formulaire de don : seul un paiement confirmé justifie son émission. Le déclenchement se fait donc sur un hook personnalisé, appelé uniquement après vérification du statut de paiement auprès du prestataire :

Structurer le module autour d’un CPT don
Chaque don est enregistré comme une entrée d’un type de contenu personnalisé, avec les métadonnées nécessaires à la génération du reçu :
register_post_type( 'don_asso', array(
'label' => 'Dons',
'public' => false,
'show_ui' => true,
'show_in_menu' => true,
'supports' => array( 'title' ),
'capability_type' => 'post',
) );
register_post_meta( 'don_asso', '_montant_don', array(
'type' => 'number',
'single' => true,
'show_in_rest' => false,
) );
register_post_meta( 'don_asso', '_recu_pdf_genere', array(
'type' => 'boolean',
'single' => true,
'show_in_rest' => false,
) );
La génération du PDF s’appuie sur la bibliothèque dompdf/dompdf, installée via Composer, à partir d’un gabarit HTML reproduisant fidèlement la mise en page du Cerfa 11580 : en-tête de l’organisme, tableau des informations du don, mentions légales en pied de page.
Stocker le reçu hors des uploads publics
Un reçu fiscal contient des données personnelles (nom, adresse, montant du don) qui n’ont rien à faire dans le dossier wp-content/uploads accessible publiquement par une simple devinette d’URL. Le PDF est généré dans un répertoire protégé, en dehors de la racine web quand c’est possible sur l’hébergement, et servi via un point d’entrée qui vérifie l’identité du donateur :
- Génération dans un dossier
wp-content/uploads/recus-prives/protégé par un fichier.htaccessrefusant l’accès direct. - Téléchargement exposé via une action
admin-post.phpqui vérifie un nonce et l’identité du donateur avant de lire le fichier. - Suppression programmée des PDF au-delà de la durée de conservation fiscale applicable (généralement liée à la prescription de trois ans, prolongée par prudence).
Notifier le donateur par email
Le reçu est joint à un email de remerciement envoyé automatiquement, avec un lien de téléchargement de secours en cas de souci de pièce jointe :
- Confirmation du paiement reçue depuis le prestataire de paiement.
- Génération du PDF Cerfa 11580 à partir des métadonnées du don.
- Envoi de l’email avec le PDF en pièce jointe via
wp_mail(). - Enregistrement du reçu dans l’espace personnel du donateur, s’il en existe un.
Un module de dons n’est jamais qu’un module de paiement : c’est aussi, souvent, un générateur de document fiscal engageant — autant le traiter avec le même sérieux que la partie paiement elle-même.
Notre verdict
Automatiser l’émission du Cerfa 11580 a demandé plus de rigueur documentaire que de complexité technique : la difficulté n’était pas de générer un PDF, mais de s’assurer que chaque mention obligatoire y figure correctement, au bon moment du parcours, avec des données protégées comme il se doit. Pour une association qui dépend de la confiance de ses donateurs, ce niveau de soin sur un document aussi sensible qu’un justificatif fiscal fait clairement partie du produit, pas d’un détail technique secondaire à négliger.