This module handles donations by cash, check or by credit transfer and generate the corresponding journal entries and tax receipts. To fully support donations by credit transfer, if you are using the OCA bank statement reconcile interface, you also need the module donation_bank_statement_oca.
This module will assist you in writing a thanks letter.
This module also supports in-kind donations (in-kind donations don't generate any accounting entry but can generate a tax receipt).
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Manage donations in Odoo: record cash, check, credit-transfer and in-kind donations, validate them to generate journal entries and tax receipts, and print thanks letters. Donations can also be created directly from bank statement lines.
This module turns Odoo into a donation management tool. Users record a donation with a donor, a date, a payment method and one or more donation lines (product, quantity, unit price). Donations can be cash, check, credit transfer or in-kind; in-kind donations do not create accounting entries but can still be eligible for a tax receipt.
When a donation is validated, the module checks that the date is not in the future, that there is at least one line, that the total is not zero, and (for users with the right setting) that the check amount matches the sum of the lines. It then creates and posts the journal entry, generates a tax receipt when the donor is set to "For Each Donation", and updates the donor's rank. Fully in-kind donations skip the journal entry.
From a bank statement line, users can create a donation in one click; the donor, amount, date and payment reference are pre-filled, and after validation the donation is reconciled with the bank statement line.
Other features: donation campaigns with codes and dates, thanks letter templates with text and image, a "Print Thanks Letter" button that marks the letter as printed, a wizard to validate several draft donations at once, a wizard to switch a donation's tax receipt option, and a report/analysis view on donations. Donors see their donation count on their contact form, and users can save their favourite campaign and payment method as defaults.
Depends on
Required by other modules
Menus it adds
Models and fields (15)
- res.users · extends an existing modelcontext_donation_campaign_id, context_donation_payment_method_line_id
- res.company · extends an existing modeldonation_account_id (Donation by Credit Transfer Account), donation_credit_transfer_product_id (Product for Donations via Credit Transfer)
- res.partner · extends an existing modeldonation_ids (Donations), donation_count (# of Donations)
- donation.line · new modelamount, in_kind, quantity, sequence, company_id, product_id, unit_price, currency_id, donation_id, tax_receipt_ok, tax_receipt_amount (Tax Receipt Eligible Amount), company_currency_id (Company Currency), product_donation_type (Product Type donation), amount_company_currency (Amount in Company Currency)
- donation.report · new modelin_kind, company_id, country_id, partner_id, product_id, campaign_id, donation_date, tax_receipt_ok (Eligible for a Tax Receipt), thanks_printed, product_categ_id, tax_receipt_amount (Tax Receipt Eligible Amount), thanks_template_id (Thanks Template), company_currency_id, product_donation_type, payment_method_line_id, amount_company_currency (Amount)
- donation.campaign · new modelcode, name, note (Notes), active, sequence, company_id, start_date
- donation.donation · new modelstate, number (Donation Number), move_id (Journal Entry), line_ids (Donation Lines), company_id, country_id, partner_id (Donor), campaign_id (Donation Campaign), check_total (Check Amount), currency_id, payment_ref (Payment Reference), amount_total, donation_date, tax_receipt_id, thanks_printed, tax_receipt_total (Tax Receipt Eligible Amount), tax_receipt_option, thanks_template_id, company_currency_id (Company Currency), commercial_partner_id (Parent Donor), bank_statement_line_id (Source Bank Statement Line), payment_method_line_id (Payment Method), amount_total_company_currency (Amount Total in Company Currency)
- donation.validate · new model
- res.config.settings · extends an existing modeldonation_account_id, group_donation_check_total (Check Total on Donations), donation_credit_transfer_product_id
- donation.tax.receipt · extends an existing modeldonation_ids (Related Donations)
- donation.thanks.template · new modelname, text, image, active, sequence, company_id
- account.bank.statement.line · extends an existing modeldonation_ids (Donations)
- account.payment.method.line · extends an existing modeldonation
- account.analytic.applicability · extends an existing modelbusiness_domain
- donation.tax.receipt.option.switch · new modeldonation_id (Donation), new_tax_receipt_option (Tax Receipt Option)
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 5 confirmed, 4 with no information of 9 versions.
Sources · Odoo 14.0
Confirmed on 2026-11-03 in branch 14.0 of OCA/donation.
terminal Installation and usage
OCA documentation · Odoo 18.0Configuration
Source · Odoo 18.0To configure this module, you need to:
> - create donation products > - make sure you have an inbound payment method for each payment method > used to receive donations. This payment method must be configured with > Link to Bank Account set to Fixed and with the donation option > active. > - if you wish to have a control amount on the donation, add the users > to the group Donation Check Total
If you receive donations via credit transfer, you must also:
- in the configuration page Invoicing \> Configuration \> Settings, in the Donations section, select the product that will be used for donations by credit transfer.
- on the bank journals corresponding to the bank accounts on which you receive donations by credit transfer, in the Payments Configuration tab, select the Donation by credit transfer account. This account must allow reconciliation.
- Make sure that the accountant that processes bank statements has User access level or higher on the Donation application.
Usage
Source · Odoo 18.0This module handles donations by cash, check or by credit transfer:
- for donation by cash or check, you should first create a new donation and validate it. Then, if you have the module account_check_deposit from the project OCA/account-financial-tools, you can create a check deposit.
- for a donation by credit transfer, the process is different: import your bank statement file and, while processing it, you will see a donation button that allow you to create a new donation directly from the bank statement reconcile interface.
When you validate a donation:
- it will create a journal entry that goes directly from the revenue account to the payment account without going through a receivable account.
- if the tax receipt option of the donor is configured as For Each Donation and the product of the donation line is eligible to a tax receipt, it will generate the tax receipt.
To have some statistics about the donations, go to the menu Donation \> Reporting \> Donations Analysis.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.